fsctrl=self.peek(0x18);
mhz=2048+(fsctrl&0x3ff)
return mhz*1000000;
+ def RF_setchan(self,channel):
+ if channel < 11 and channel > 26:
+ print "Only 802.15.4 channels 11 to 26 are currently supported.";
+ else:
+ self.RF_setfreq( ( (channel-11)*5 + 2405 ) * 1000000 );
def RF_getsmac(self):
"""Return the source MAC address."""
return 0xdeadbeef;
print "%s txtest" % sys.argv[0];
print "\n%s rssi" % sys.argv[0];
- print "%s sniff" % sys.argv[0];
+ print "%s sniff [chan]" % sys.argv[0];
print "%s sniffdissect" % sys.argv[0];
sys.exit();
print "%02x %02x" % (ord(data[1]), ord(data[2]));
if(sys.argv[1]=="rssi"):
if len(sys.argv)>2:
- client.RF_setfreq(eval(sys.argv[2]));
+ freq=eval(sys.argv[2]);
+ if freq>100:
+ client.RF_setfreq(freq);
+ else:
+ client.RF_setchan(freq);
print "Listening on %f MHz." % (client.RF_getfreq()/10.0**6);
client.strobe(0x02); #Calibrate
if freq>100:
client.RF_setfreq(freq);
else:
- print "Channels not yet supported."
+ client.RF_setchan(freq);
client.CC_RFST_RX();
print "Listening as %010x on %i MHz" % (client.RF_getsmac(),
client.RF_getfreq()/10**6);
if freq>100:
client.RF_setfreq(freq);
else:
- print "Channels not yet supported."
+ client.RF_setchan(freq);
print "Transmitting DEADBEEF as %010x on %i MHz" % (
client.RF_getsmac(),
client.RF_getfreq()/10**6);