gfnrf.exe for Windows.
[goodfet] / client / GoodFET.py
index 1ef6171..9b4a1b6 100755 (executable)
@@ -11,12 +11,13 @@ import sqlite3;
 fmt = ("B", "<H", None, "<L")
 
 def getClient(name="GoodFET"):
-    import GoodFET, GoodFETCC, GoodFETAVR, GoodFETSPI, GoodFETMSP430;
+    import GoodFET, GoodFETCC, GoodFETAVR, GoodFETSPI, GoodFETMSP430, GoodFETNRF;
     if(name=="GoodFET" or name=="monitor"): return GoodFET.GoodFET();
     elif name=="cc" or name=="chipcon": return GoodFETCC.GoodFETCC();
     elif name=="avr": return GoodFETAVR.GoodFETAVR();
     elif name=="spi": return GoodFETSPI.GoodFETSPI();
     elif name=="msp430": return GoodFETMSP430.GoodFETMSP430();
+    elif name=="nrf": return GoodFETMSP430.GoodFETNRF();
     
     print "Unsupported target: %s" % name;
     sys.exit(0);
@@ -103,6 +104,7 @@ class GoodFET:
         connected=0;
         while connected==0:
             while self.verb!=0x7F or self.data!="http://goodfet.sf.net/":
+                #print "Resyncing.";
                 self.serialport.flushInput()
                 self.serialport.flushOutput()
                 #Explicitly set RTS and DTR to halt board.
@@ -112,16 +114,17 @@ class GoodFET:
                 self.serialport.setDTR(0);
                 self.serialport.flushInput()
                 self.serialport.flushOutput()
-                #time.sleep(.1);
+                #time.sleep(60);
                 attempts=attempts+1;
                 self.readcmd(); #Read the first command.
             #Here we have a connection, but maybe not a good one.
             connected=1;
             olds=self.infostring();
-            self.monitorclocking();
+            clocking=self.monitorclocking();
             for foo in range(1,30):
                 if not self.monitorecho():
-                    print "Comm error, resyncing.";
+                    if self.verbose: print "Comm error on %i try, resyncing out of %s." % (foo,
+                                                  clocking);
                     connected=0;
                     break;
         if self.verbose: print "Connected after %02i attempts." % attempts;
@@ -347,7 +350,7 @@ class GoodFET:
         data="The quick brown fox jumped over the lazy dog.";
         self.writecmd(self.MONITORAPP,0x81,len(data),data);
         if self.data!=data:
-            if verbose: print "Comm error recognized.";
+            if self.verbose: print "Comm error recognized by monitorecho().";
             return 0;
         return 1;
     def monitorclocking(self):