More of a Radio client.
[goodfet] / client / GoodFET.py
index 3bea602..b9c35e3 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 GoodFETNRF.GoodFETNRF();
     
     print "Unsupported target: %s" % name;
     sys.exit(0);
@@ -88,7 +89,14 @@ class GoodFET:
             glob_list = glob.glob("/dev/ttyUSB*");
             if len(glob_list) > 0:
                 port = glob_list[0];
-        
+        if os.name=='nt':
+            from scanwin32 import winScan;
+            scan=winScan();
+            for order,comport,desc,hwid in sorted(scan.comports()):
+                if hwid.index('FTDI')==0:
+                    port=comport;
+                    #print "Using FTDI port %s" % port
+                    
         
         self.serialport = serial.Serial(
             port,
@@ -269,6 +277,9 @@ class GoodFET:
     def peekword(self,address):
         """Read a word of memory from the monitor."""
         return self.peekbyte(address)+(self.peekbyte(address+1)<<8);
+    def peek(self,address):
+        """Read a word of memory from the monitor."""
+        return self.peekbyte(address)+(self.peekbyte(address+1)<<8);
     def pokebyte(self,address,value):
         """Set a byte of memory by the monitor."""
         self.data=[address&0xff,address>>8,value];
@@ -393,7 +404,6 @@ class GoodFET:
     def dump(self,file,start=0,stop=0xffff):
         """Dump an intel hex file from code memory."""
         print "Dump not implemented.";
-
     def peek32(self,address, memory="vn"):
         return (self.peek16(address,memory)+
                 (self.peek16(address+2,memory)<<16));
@@ -402,5 +412,8 @@ class GoodFET:
                 (self.peek8(address+1,memory)<<8));
     def peek8(self,address, memory="vn"):
         return self.peekbyte(address); #monitor
+    def peekword(self,address, memory="vn"):
+        return self.peek(address); #monitor
+    
     def loadsymbols(self):
         return;