From ad13ceb9c2e54c263d4c7380a70e83f611859127 Mon Sep 17 00:00:00 2001 From: theqlabs Date: Wed, 31 Oct 2012 05:55:09 +0000 Subject: [PATCH] Created intelligent sniffer (isniff) to help decode CAN messages git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@1306 12e2690d-a6be-4b82-a7b7-67c4a43b65c8 --- client/GoodFETCC.py | 13 ++++++++++--- client/goodfet.mcpcan | 20 ++++++++++++++++++++ 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/client/GoodFETCC.py b/client/GoodFETCC.py index 644612c..1d5a7b7 100644 --- a/client/GoodFETCC.py +++ b/client/GoodFETCC.py @@ -44,6 +44,7 @@ class GoodFETCC(GoodFET): else: print "SmartRF not found for chip 0x%04x." % ident; def SRF_chipdom(self,chip="cc1110", doc="register_definition.xml"): + #def SRF_chipdom(self,chip="cc1110", doc="workingconfig.xml"): """Loads the chip XML definitions from SmartRF7.""" fn="%s/config/xml/%s/%s" % (self.smartrfpath,chip,doc); #print "Opening %s" % fn; @@ -415,9 +416,15 @@ class GoodFETCC(GoodFET): self.pokebysym("SYNC0",0xB0); self.pokebysym("ADDR", 0xB0); return; - def config_ook(self,band="none"): - self.pokebysym("FSCTRL1" , 0x0C) #08 # Frequency synthesizer control. - self.pokebysym("FSCTRL0" , 0x00) # Frequency synthesizer control. + + def config_ademco(self, band="lf"): + pass + # FIXME Temporary placeholder for me to write the Ademco protocol into the GoodFET Chipcon Application + # TODO Also, write a class that takes in the XML registration files and sets values (not just addresses) + + def config_ook(self,band="none"): + self.pokebysym("FSCTRL1" , 0x0C) #08 # Frequency synthesizer control. + self.pokebysym("FSCTRL0" , 0x00) # Frequency synthesizer control. #Don't change these while the radio is active. self.pokebysym("FSCAL3" , 0xEA) # Frequency synthesizer calibration. diff --git a/client/goodfet.mcpcan b/client/goodfet.mcpcan index 82636b3..1d67c2a 100755 --- a/client/goodfet.mcpcan +++ b/client/goodfet.mcpcan @@ -46,6 +46,7 @@ if(sys.argv[1]=="info"): packet1=client.readrxbuffer(1); for foo in [packet0, packet1]: print client.packet2str(foo); + if(sys.argv[1]=="sniff"): if len(sys.argv)>2: rate=float(sys.argv[2]); @@ -56,6 +57,25 @@ if(sys.argv[1]=="sniff"): if packet!=None: print client.packet2str(packet); +if(sys.argv[1]=="isniff"): + """ An intelligent sniffer, decodes message format """ + """ More features to be added soon """ + plist=[]; # packet listing + client.MCPreqstatListenOnly(); + while 1: + packet=client.rxpacket(); + if packet!=None: + for byte in packet: + plist.append(byte); + arbid=plist[0:2]; + eid=plist[2:4]; + dlc=plist[4:5]; + data=plist[5:13]; + print "ArbID: " + client.packet2str(arbid); + print "EID: " + client.packet2str(eid); + print "DLC: " + client.packet2str(dlc); + print "Data: " + client.packet2str(data); + if(sys.argv[1]=="test"): print "MCP2515 Self Test:"; -- 2.20.1