return self.symbols.get(name);
def timeout(self):
print "timeout\n";
- def serInit(self, port=None, timeout=None):
+ def serInit(self, port=None, timeout=2):
"""Open the serial port"""
+ # Make timeout None to wait forever, 0 for non-blocking mode.
if port is None and os.environ.get("GOODFET")!=None:
glob_list = glob.glob(os.environ.get("GOODFET"));
timeout=timeout
)
- #Explicitly set RTS and DTR to halt board.
- self.serialport.setRTS(1);
- self.serialport.setDTR(1);
- #Drop DTR, which is !RST, low to begin the app.
- self.serialport.setDTR(0);
- self.serialport.flushInput()
- self.serialport.flushOutput()
+ self.verb=0;
+ attempts=0;
+ while self.verb!=0x7F:
+ self.serialport.flushInput()
+ self.serialport.flushOutput()
+ #Explicitly set RTS and DTR to halt board.
+ self.serialport.setRTS(1);
+ self.serialport.setDTR(1);
+ #Drop DTR, which is !RST, low to begin the app.
+ self.serialport.setDTR(0);
+ self.serialport.flushInput()
+ self.serialport.flushOutput()
+ #time.sleep(.1);
+ attempts=attempts+1;
+ self.readcmd(); #Read the first command.
+
+ #print "Connected after %02i attempts." % attempts;
+ self.mon_connected();
- #Read and handle the initial command.
- #time.sleep(1);
- self.readcmd(); #Read the first command.
- if(self.verb!=0x7F):
- print "Verb %02x is wrong. Incorrect firmware or bad Info guess?" % self.verb;
- print "http://goodfet.sf.net/faq/";
- #print "Connected."
def getbuffer(self,size=0x1c00):
writecmd(0,0xC2,[size&0xFF,(size>>16)&0xFF]);
print "Got %02x%02x buffer size." % (self.data[1],self.data[0]);
self.besilent=s;
print "besilent is %i" % self.besilent;
self.writecmd(0,0xB0,1,[s]);
-
+ def mon_connected(self):
+ """Announce to the monitor that the connection is good."""
+ self.writecmd(0,0xB1,0,[]);
def out(self,byte):
"""Write a byte to P5OUT."""
self.writecmd(0,0xA1,1,[byte]);