X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;ds=sidebyside;f=client%2FGoodFETNRF.py;h=85a687bc040641d19cd90f4811bc33a3c48578a3;hb=f3dbea2333da46a5f73aa4036048f10e718c015c;hp=3c780a57a68319484372e5fd7645afa5d728ce81;hpb=144771f910594345d1efda0363a01735670ce2e5;p=goodfet diff --git a/client/GoodFETNRF.py b/client/GoodFETNRF.py index 3c780a5..85a687b 100644 --- a/client/GoodFETNRF.py +++ b/client/GoodFETNRF.py @@ -26,6 +26,18 @@ class GoodFETNRF(GoodFET): self.writecmd(self.NRFAPP,0x00,len(data),data); return self.data; + def tune(self,tuning="aa,c78c65805e,14,09"): + """Tune the radio.""" + #MAC,rA,r5,r6 + fields=tuning.split(","); + ra=int(fields[1],16); + r5=int(fields[2],16); + r6=int(fields[3],16); + self.poke(0x0a,ra,5); + self.poke(0x05,r5,1); + self.poke(0x06,r6,1); + self.RF_setmaclen(3); + return; def peek(self,reg,bytes=-1): """Read an NRF Register. For long regs, result is flipped.""" data=[reg,0,0,0,0,0]; @@ -74,7 +86,7 @@ class GoodFETNRF(GoodFET): return "GFSK"; def RF_getrate(self): rate=self.peek(0x06)&0x28; - if rate==0x28: + if rate==0x20: rate=250*10**3; #256kbps elif rate==0x08: rate=2*10**6; #2Mbps @@ -178,14 +190,16 @@ class GoodFETNRF(GoodFET): maclen=5; def RF_getmaclen(self): """Get the number of bytes in the MAC address.""" - choices=[0, 3, 4, 5]; + choices=[2, 3, 4, 5]; choice=self.peek(0x03)&3; self.maclen=choices[choice]; return self.maclen; def RF_setmaclen(self,len): """Set the number of bytes in the MAC address.""" - choices=["illegal", "illegal", "illegal", - 1, 2, 3]; + choices=["illegal", "illegal", + 0, #undocumented + 1, 2, 3 #documented + ]; choice=choices[len]; self.poke(0x03,choice); self.maclen=len;