From cf47ccc725fd13d7216400149190328c6077a010 Mon Sep 17 00:00:00 2001 From: travisutk Date: Sat, 22 May 2010 23:23:22 +0000 Subject: [PATCH 1/1] NRF register width automatically determined. git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@552 12e2690d-a6be-4b82-a7b7-67c4a43b65c8 --- client/GoodFETNRF.py | 8 +++++++- client/goodfet.nrf | 4 +--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/client/GoodFETNRF.py b/client/GoodFETNRF.py index 4b2f6c9..74be559 100644 --- a/client/GoodFETNRF.py +++ b/client/GoodFETNRF.py @@ -26,9 +26,15 @@ class GoodFETNRF(GoodFET): self.writecmd(self.NRFAPP,0x00,len(data),data); return self.data; - def peek(self,reg,bytes=1): + def peek(self,reg,bytes=-1): """Read an NRF Register. For long regs, result is flipped.""" data=[reg,0,0,0,0,0]; + + #Automatically calibrate the len. + if bytes==-1: + bytes=1; + if reg==0x0a or reg==0x0b or reg==0x10: bytes=5; + self.writecmd(self.NRFAPP,0x02,len(data),data); toret=0; for i in range(0,bytes): diff --git a/client/goodfet.nrf b/client/goodfet.nrf index f475a36..7d87b3b 100755 --- a/client/goodfet.nrf +++ b/client/goodfet.nrf @@ -63,9 +63,7 @@ if(sys.argv[1]=="test"): if(sys.argv[1]=="regs"): for r in range(0,0x20): - reglen=1; - if r==0x0a or r==0x0b or r==0x10: reglen=5; - print "r[0x%02x]=0x%010x" % (r,client.peek(r,reglen)); + print "r[0x%02x]=0x%010x" % (r,client.peek(r)); if(sys.argv[1]=="sniffob"): #Reversal of transmitter code from nRF_CMD.c of OpenBeacon -- 2.20.1