- self.client.txpacket(packet);
-
- if(self.client.peek8(0x2C)&0x80)==0x80:
- print "Error flag raised on transmission. Clearing this flag and proceeding.\n"
- print "INT Flags: %02x" % self.client.peek8(0x2c);
- self.client.MCPbitmodify(0x2C,0x80,0x00);
- print "INT Flags modified to: %02x\n" % self.client.peek8(0x2c);
+
+ #packet = [SIDhigh, SIDlow, 0x00,0x00, # pad out EID regs
+ # 0x08, # bit 6 must be set to 0 for data frame (1 for RTR)
+ # # lower nibble is DLC
+ # 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0xFF]
+ else:
+
+ # if we do have a packet, packet is SID + padding out EID registers + DLC of 8 + packet
+ #
+ # TODO: allow for variable-length packets
+ #
+ packet = [SIDhigh, SIDlow, 0x00,0x00, # pad out EID regs
+ 0x08, # bit 6 must be set to 0 for data frame (1 for RTR)
+ # lower nibble is DLC
+ packet[0],packet[1],packet[2],packet[3],packet[4],packet[5],packet[6],packet[7]]
+
+
+ if(debug):
+ if self.client.MCPcanstat()>>5!=0:
+ print "Warning: currently in %s mode. NOT in normal mode! May not transmit.\n" %self.client.MCPcanstatstr();
+ print "\nInitial state:"
+ print "Tx Errors: %3d" % self.client.peek8(0x1c);
+ print "Rx Errors: %3d" % self.client.peek8(0x1d);
+ print "Error Flags: %02x\n" % self.client.peek8(0x2d);