+
+
+ ## This code could be drastica
+ def packet2parsedstr(self,data):
+ dp1 = ord(data[0])
+ dp2 = ord(data[1])
+ dp5 = ord(data[4])
+
+ #converts the CAN message to a string
+ msg="";
+
+
+
+ #get the ide bit. allows us to check to see if we have an extended
+ #frame
+ ide = (dp2 & 0x0f)>>3
+ #we have an extended frame
+ if( ide != 0):
+ #get lower nibble, last 2 bits
+ eId = dp2 & 0x03
+ eId = eId<<8 | ord(data[2])
+ eId = eId<<8 | ord(data[3])
+ rtr = dp5>>6 & 0x01
+ eIDmsg = " eID: %06d" %(eId)
+ rtrmsg = " rtr: %d" % (rtr)
+
+ else:
+ rtr = dp2>>4 & 0x01
+ eIDmsg = ""
+ rtrmsg = " rtr: %d"%(rtr)
+
+ # Create the standard ID. from the message
+ sID = dp1<<3 | dp2>>5
+ length = dp5 & 0x0f
+
+ #generate the data section
+ dbmsg = ""
+ for i in range(0,length):
+ idx = 5 + i
+ dbmsg += " %03d"%ord(data[idx])
+
+ msg = "sID: %04d"%sID
+ msg += eIDmsg + rtrmsg
+ msg += " length: %d"%(length)
+ msg += dbmsg
+
+ return msg
+
+