+ def RF_setfreq(self,frequency):
+ """Set the frequency in Hz."""
+ #FIXME CC1110 specific
+
+ hz=frequency;
+ freq=hz/396.728515625;
+ freq0=freq&0xFF;
+ freq1=(freq&0xFF00)>>8;
+ freq1=(freq&0xFF0000)>>16;
+ self.CCpokedatabyte(0xdf09,freq2);
+ self.CCpokedatabyte(0xdf09,freq1);
+ self.CCpokedatabyte(0xdf09,freq0);
+
+ def RF_getfreq(self):
+ """Get the frequency in Hz."""
+ #FIXME CC1110 specific
+
+ #return (2400+self.peek(0x05))*10**6
+ #self.poke(0x05,chan);
+ freq2=self.CCpeekdatabyte(0xdf09);
+ freq1=self.CCpeekdatabyte(0xdf0a);
+ freq0=self.CCpeekdatabyte(0xdf0b);
+ freq=(freq2<<16)+(freq1<<8)+freq0;
+ hz=freq*396.728515625;
+
+ return hz;
+
+ def RF_carrier(self):
+ """Hold a carrier wave on the present frequency."""
+ # Set CONT_WAVE, PLL_LOCK, and 0dBm in RF_SETUP
+ self.poke(0x06,8+10+4+2);
+
+ def RF_getrssi(self):
+ """Returns the received signal strenght, from 0 to 1."""
+ rssireg=self.symbols.get("RSSI");
+ return self.CCpeekdatabyte(rssireg);
+ def SRF_loadsymbols(self):
+ ident=self.CCident();
+ chip=self.CCversions.get(ident&0xFF00);
+ dom=self.SRF_chipdom(chip,"register_definition.xml");
+ for e in dom.getElementsByTagName("registerdefinition"):
+ for f in e.childNodes:
+ if f.localName=="Register":
+ name="unknownreg";
+ address="0xdead";
+ description="";
+ bitfields="";
+ for g in f.childNodes:
+ if g.localName=="Name":
+ name=g.childNodes[0].nodeValue;
+ elif g.localName=="Address":
+ address=g.childNodes[0].nodeValue;
+ elif g.localName=="Description":
+ if g.childNodes:
+ description=g.childNodes[0].nodeValue;
+ elif g.localName=="Bitfield":
+ bitfields+="%17s/* %-50s */\n" % ("",self.SRF_bitfieldstr(g));
+ #print "SFRX(%10s, %s); /* %50s */" % (name,address, description);
+ self.symbols.define(eval(address),name,description,"data");