X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=client%2FGoodFET.py;h=231106203b0fda516e2f50b5a2b63aabddc0ab1d;hp=8d588ed29d5915bae857275ee7f522cbc352e2d7;hb=c5a56b2284ba0cd554cb44ed221eb91489607b9e;hpb=e7fc7a31eae7b7c308c25580fd522d242caf4d3f diff --git a/client/GoodFET.py b/client/GoodFET.py index 8d588ed..2311062 100755 --- a/client/GoodFET.py +++ b/client/GoodFET.py @@ -13,7 +13,7 @@ class GoodFET: def __init__(self, *args, **kargs): self.data=[0]; def timeout(self): - print "timout\n"; + print "timeout\n"; def serInit(self, port=None): """Open the serial port""" @@ -28,7 +28,13 @@ class GoodFET: self.serialport = serial.Serial( port, + #300, + #2400, + #4800, #9600, + #19200, + #38400, + #57600, 115200, parity = serial.PARITY_NONE ) @@ -41,8 +47,8 @@ class GoodFET: #time.sleep(1); self.readcmd(); #Read the first command. if(self.verb!=0x7F): - print "Verb is wrong. Incorrect firmware?"; - + print "Verb %02x is wrong. Incorrect firmware?" % self.verb; + print "Connected." def writecmd(self, app, verb, count, data): """Write a command and some data to the GoodFET.""" self.serialport.write(chr(app)); @@ -90,8 +96,17 @@ class GoodFET: """Determine how many bytes of RAM are unused by looking for 0xBEEF..""" self.writecmd(0,0x91,0,self.data); return ord(self.data[0])+(ord(self.data[1])<<8); + + #Baud rates. + baudrates=[115200, + 9600, + 19200, + 38400, + 57600, + 115200]; def setBaud(self,baud): - rates=[9600, 9600, 19200, 38400]; + """Change the baud rate. TODO fix this.""" + rates=self.baudrates; self.data=[baud]; print "Changing FET baud." self.serialport.write(chr(0x00)); @@ -107,6 +122,21 @@ class GoodFET: print "Baud is now %i." % rates[baud]; return; + def readbyte(self): + return ord(self.serialport.read(1)); + def findbaud(self): + for r in self.baudrates: + print "\nTrying %i" % r; + self.serialport.setBaudrate(r); + #time.sleep(1); + self.serialport.flushInput() + self.serialport.flushOutput() + + for i in range(1,10): + self.readbyte(); + + print "Read %02x %02x %02x %02x" % ( + self.readbyte(),self.readbyte(),self.readbyte(),self.readbyte()); def monitortest(self): """Self-test several functions through the monitor.""" print "Performing monitor self-test.";