Created intelligent sniffer (isniff) to help decode CAN messages
authortheqlabs <theqlabs@12e2690d-a6be-4b82-a7b7-67c4a43b65c8>
Wed, 31 Oct 2012 05:55:09 +0000 (05:55 +0000)
committertheqlabs <theqlabs@12e2690d-a6be-4b82-a7b7-67c4a43b65c8>
Wed, 31 Oct 2012 05:55:09 +0000 (05:55 +0000)
git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@1306 12e2690d-a6be-4b82-a7b7-67c4a43b65c8

client/GoodFETCC.py
client/goodfet.mcpcan

index 644612c..1d5a7b7 100644 (file)
@@ -44,6 +44,7 @@ class GoodFETCC(GoodFET):
             else:
                 print "SmartRF not found for chip 0x%04x." % ident;
     def SRF_chipdom(self,chip="cc1110", doc="register_definition.xml"):
             else:
                 print "SmartRF not found for chip 0x%04x." % ident;
     def SRF_chipdom(self,chip="cc1110", doc="register_definition.xml"):
+    #def SRF_chipdom(self,chip="cc1110", doc="workingconfig.xml"):
         """Loads the chip XML definitions from SmartRF7."""
         fn="%s/config/xml/%s/%s" % (self.smartrfpath,chip,doc);
         #print "Opening %s" % fn;
         """Loads the chip XML definitions from SmartRF7."""
         fn="%s/config/xml/%s/%s" % (self.smartrfpath,chip,doc);
         #print "Opening %s" % fn;
@@ -415,9 +416,15 @@ class GoodFETCC(GoodFET):
         self.pokebysym("SYNC0",0xB0);
         self.pokebysym("ADDR", 0xB0);
         return;
         self.pokebysym("SYNC0",0xB0);
         self.pokebysym("ADDR", 0xB0);
         return;
-    def config_ook(self,band="none"):
-        self.pokebysym("FSCTRL1"  , 0x0C) #08   # Frequency synthesizer control.
-        self.pokebysym("FSCTRL0"  , 0x00)   # Frequency synthesizer control.
+
+    def config_ademco(self, band="lf"):
+        pass
+        # FIXME Temporary placeholder for me to write the Ademco protocol into the GoodFET Chipcon Application
+        # TODO  Also, write a class that takes in the XML registration files and sets values (not just addresses)
+
+       def config_ook(self,band="none"):
+               self.pokebysym("FSCTRL1"  , 0x0C) #08   # Frequency synthesizer control.
+               self.pokebysym("FSCTRL0"  , 0x00)   # Frequency synthesizer control.
         
         #Don't change these while the radio is active.
         self.pokebysym("FSCAL3"   , 0xEA)   # Frequency synthesizer calibration.
         
         #Don't change these while the radio is active.
         self.pokebysym("FSCAL3"   , 0xEA)   # Frequency synthesizer calibration.
index 82636b3..1d67c2a 100755 (executable)
@@ -46,6 +46,7 @@ if(sys.argv[1]=="info"):
     packet1=client.readrxbuffer(1);
     for foo in [packet0, packet1]:
         print client.packet2str(foo);
     packet1=client.readrxbuffer(1);
     for foo in [packet0, packet1]:
         print client.packet2str(foo);
+
 if(sys.argv[1]=="sniff"):
     if len(sys.argv)>2:
         rate=float(sys.argv[2]);
 if(sys.argv[1]=="sniff"):
     if len(sys.argv)>2:
         rate=float(sys.argv[2]);
@@ -56,6 +57,25 @@ if(sys.argv[1]=="sniff"):
         if packet!=None:
             print client.packet2str(packet);
 
         if packet!=None:
             print client.packet2str(packet);
 
+if(sys.argv[1]=="isniff"):
+    """ An intelligent sniffer, decodes message format """
+    """ More features to be added soon """
+    plist=[];   # packet listing
+    client.MCPreqstatListenOnly();
+    while 1:
+        packet=client.rxpacket();
+        if packet!=None:
+            for byte in packet:
+                plist.append(byte);
+            arbid=plist[0:2];
+            eid=plist[2:4];
+            dlc=plist[4:5];
+            data=plist[5:13];         
+            print "ArbID: " + client.packet2str(arbid);
+            print "EID: " + client.packet2str(eid);
+            print "DLC: " + client.packet2str(dlc);
+            print "Data: " + client.packet2str(data);
+
 if(sys.argv[1]=="test"):
     print "MCP2515 Self Test:";
     
 if(sys.argv[1]=="test"):
     print "MCP2515 Self Test:";