From: chrishoder Date: Tue, 12 Feb 2013 03:12:00 +0000 (+0000) Subject: added a method which should oscillate the temperature back and forth X-Git-Url: http://git.rot13.org/?p=goodfet;a=commitdiff_plain;h=430d7e84b2a1035a6b3137a826563cff796a2412 added a method which should oscillate the temperature back and forth git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@1479 12e2690d-a6be-4b82-a7b7-67c4a43b65c8 --- diff --git a/client/FordExperiments.py b/client/FordExperiments.py index c3abf62..357ba6c 100644 --- a/client/FordExperiments.py +++ b/client/FordExperiments.py @@ -128,10 +128,63 @@ class FordExperiments(GoodFETMCPCANCommunication): tpast = time.time() #update our transmit time on the one before print packetCount; + def getBackground(self,sId): + packet1 = self.client.rxpacket(); + if(packet1 != None): + packetParsed = self.client.packet2parsed(packet1); + #keep sniffing till we read a packet + while( packet1 == None or packetParsed.get('sID') != sId ): + packet1 = self.client.rxpacket() + if(packet1 != None): + packetParsed = self.client.packet2parsed(packet1) + + recieveTime = time.time() + return packetParsed + + + def oscillateTemperature(self,time): + #setup chip + self.client.serInit() + self.spitSetup(500) + #FIGURE out how to clear buffers + self.addFilter([1056, 1056, 1056, 1056,1056, 1056], verbose=False) + packetParsed = self.getBackground(1056) + packet = [] + #set data packet to match what was sniffed or at least what was input + for i in range(0,8): + idx = "db%d"%i + packet.append(ord(packetParsed.get(idx))) + packetValue = 0 + packet[1] = packetValue; + + print packet + #### split SID into different regs + SIDlow = (1056 & 0x07) << 5; # get SID bits 2:0, rotate them to bits 7:5 + SIDhigh = (1056 >> 3) & 0xFF; # get SID bits 10:3, rotate them to bits 7:0 + 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]] + packetCount = 1; + self.client.txpacket(packet); + tpast = time.time() + while( (time.time()-recieveTime) < runTime): + dt = tpast - time.time() + value = 30*math.sin(((2.0*math.pi)/5.0)*dt)+130 + packet[5] = int(value) + #packet[6] = 1 + print packet + self.client.txpacket(packet) + packetCount += 1 + #tpast = time.time() #update our transmit time on the one before + print packetCount; + + if __name__ == "__main__": fe = FordExperiments(); packetData = {} packetData['db4'] = 4; - runTime = 10; + runTime = 100; #fe.mimic1056(packetData, runTime) - fe.cycledb1_1056(runTime) + #fe.cycledb1_1056(runTime) + fe.oscillateTemperature(runTime) \ No newline at end of file