Closer to a self contained carrier wave.
[goodfet] / client / goodfet.cc
index 7ce85a1..d463b1c 100755 (executable)
@@ -6,20 +6,22 @@
 # This code is being rewritten and refactored.  You've been warned!
 
 import sys;
-import binascii;
-
-from GoodFET.GoodFETCC import GoodFETCC;
+import binascii, time;
 
+from GoodFETCC import GoodFETCC;
+from GoodFETConsole import GoodFETConsole;
+from intelhex import IntelHex;
 
 if(len(sys.argv)==1):
     print "Usage: %s verb [objects]\n" % sys.argv[0];
+    print "%s erase" % sys.argv[0];
+    print "%s flash $foo.hex" % sys.argv[0];
     print "%s test" % sys.argv[0];
     print "%s term" % sys.argv[0];
     print "%s info" % sys.argv[0];
-    print "%s radioinfo" % sys.argv[0];
+    print "%s regs" % sys.argv[0];
     print "%s dumpcode $foo.hex [0x$start 0x$stop]" % sys.argv[0];
     print "%s dumpdata $foo.hex [0x$start 0x$stop]" % sys.argv[0];
-    print "%s erase" % sys.argv[0];
     print "%s writedata $foo.hex [0x$start 0x$stop]" % sys.argv[0];
     print "%s verify $foo.hex [0x$start 0x$stop]" % sys.argv[0];
     print "%s peekdata 0x$start [0x$stop]" % sys.argv[0];
@@ -27,6 +29,9 @@ if(len(sys.argv)==1):
     print "%s peek 0x$iram" % sys.argv[0];
     print "%s poke 0x$iram 0x$val" % sys.argv[0];
     print "%s peekcode 0x$start [0x$stop]" % sys.argv[0];
+    
+    print "%s carrier [freq]\n\tHolds a carrier on [freq] Hz." % sys.argv[0];
+    
     sys.exit();
 
 #Initailize FET and set baud rate
@@ -39,6 +44,15 @@ client.setup();
 client.start();
 
 
+if(sys.argv[1]=="carrier"):
+    if len(sys.argv)>2:
+        client.RF_setfreq(eval(sys.argv[2]));
+    client.RF_carrier();
+    #printconfig();
+    print "\nHolding a carrier wave.";
+    while(1):
+        time.sleep(1);
+
 if(sys.argv[1]=="explore"):
     print "Exploring undefined commands."
     print "Status: %s" %client.status();
@@ -95,9 +109,21 @@ if(sys.argv[1]=="dumpdata"):
 if(sys.argv[1]=="status"):
     print "Status: %s" %client.status();
 if(sys.argv[1]=="info"):
-    print "%s" % client.CCidentstr();
-if(sys.argv[1]=="radioinfo"):
+    print "Ident   %s" % client.CCidentstr();
+    
+    try:
+        print "Freq    %10.3f MHz" % (client.RF_getfreq()/10**6);
+        print "RSSI    %02x" % client.RF_getrssi();
+    except:
+        print "Freq, RSSI, etc unknown.  Install SmartRF7.";
+    #print "Rate    %10i kbps" % (client.RF_getrate()/1000);
+    #print "PacketLen %02i bytes" % client.RF_getpacketlen();
+    #print "SMAC  0x%010x" % client.RF_getsmac();
+    #print "TMAC  0x%010x" % client.RF_gettmac();
+
+if(sys.argv[1]=="regs"):
     client.CMDrs();
+
 if(sys.argv[1]=="erase"):
     print "Status: %s" % client.status();
     client.CCchiperase();