JTAGARM7 is back up and running, folks! Tested Halt/Release, Get/Set Registers,...
[goodfet] / client / goodfet.mcpcan
index 44b921e..0c0779c 100755 (executable)
@@ -19,7 +19,9 @@ if(len(sys.argv)==1):
     print "%s peek 0x$start [0x$stop]" % sys.argv[0];
     #print "%s poke 0x$adr 0x$val" % sys.argv[0];
 
-    print "\n%s sniff" % sys.argv[0];
+    print "\n%s sniff [kHz]" % sys.argv[0];
+    print "\n%s isniff [kHz]" % sys.argv[0];
+    print "\nSupported rates: 83.3, 100, 125, 250, 500, 1000 kHz.";
     sys.exit();
 
 #Initialize FET and set baud rate
@@ -45,13 +47,39 @@ if(sys.argv[1]=="info"):
     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]);
+        client.MCPsetrate(rate);
     client.MCPreqstatListenOnly();
     while 1:
         packet=client.rxpacket();
         if packet!=None:
             print client.packet2str(packet);
 
+if(sys.argv[1]=="isniff"):
+    """ An intelligent sniffer, decodes message format """
+    """ More features to be added soon """
+    if len(sys.argv)>2:
+        rate=float(sys.argv[2]);
+        client.MCPsetrate(rate);
+    client.MCPreqstatListenOnly();
+    while 1:
+        packet=client.rxpacket();
+        if packet!=None:
+            plist=[];
+            for byte in packet:
+                plist.append(byte);
+            arbid=plist[0:2];
+            eid=plist[2:4];
+            dlc=plist[4:5];
+            data=plist[5:13];         
+            print "\nArbID: " + 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:";