+
+ if (client.peek8(0x2C) & 0x80):
+ client.MCPbitmodify(0x2C,0x80,0x00);
+ print"...malformed packet recieved";
+
+if(sys.argv[1]=="snifftest"):
+
+ freqrange=[10.4, 41.6, 83.3, 100, 125, 250, 500, 1000];
+
+ for rate in freqrange:
+
+ print "CAN Freq Test: %3d kHz" %rate;
+ client.MCPsetrate(rate);
+ #print "CNF1/2/3: %02x %02x %02x" %(client.peek8(0x2a), client.peek8(0x29),client.peek8(0x28));
+ client.MCPreqstatListenOnly();
+ print "Mode: %s" % client.MCPcanstatstr();
+ x = 0;
+ errors = 0;
+
+ for n in range(0,400):
+ packet=client.rxpacket();
+ if packet!=None:
+ print client.packet2str(packet);
+ x+=1;
+
+ if (client.peek8(0x2C) & 0x80):
+ errors+=1;
+ client.MCPbitmodify(0x2C,0x80,0x00);
+
+ if x==0:
+ print "No packets sniffed for %3d kHz" %rate;
+ else:
+ percenterror = float(errors/x);
+
+ print "Results for %3.1 kHz: recieved %3d packets, registered %3d RX errors, for a %3.3f percent error rate." %(rate, x, errors, percenterrors);
+
+ client.MCPreset();