From: rmspeers Date: Thu, 24 Feb 2011 21:14:40 +0000 (+0000) Subject: GoodFETCCSPI txtoscount (TinyOS CountToRadio): user specify on a channel, and then... X-Git-Url: http://git.rot13.org/?p=goodfet;a=commitdiff_plain;h=d7127e6bb51da94740f3fadccfd14b4bcbee48b8 GoodFETCCSPI txtoscount (TinyOS CountToRadio): user specify on a channel, and then must have -r to replay back to a mote, or -i to send out independent increment instructions git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@954 12e2690d-a6be-4b82-a7b7-67c4a43b65c8 --- diff --git a/client/goodfet.ccspi b/client/goodfet.ccspi index 80e9fae..5bc7968 100755 --- a/client/goodfet.ccspi +++ b/client/goodfet.ccspi @@ -157,7 +157,11 @@ if(sys.argv[1]=="txtoscount"): Clone of what TinyOS's BlinkToLED demo code does. Specify a channel a TinyOS mote programmed with BlinkToLED is on, and this will act as the second device. ''' - client.RF_promiscuity(1); + if (len(sys.argv)<=3): + print "Provide -r to work via replays or -i to work via incrementing itself."; + sys.exit(1); + if (sys.argv[3]=="-r"): + client.RF_promiscuity(1); client.RF_autocrc(1); if len(sys.argv)>2: freq=eval(sys.argv[2]); @@ -165,31 +169,36 @@ if(sys.argv[1]=="txtoscount"): client.RF_setfreq(freq); else: client.RF_setchan(freq); - client.CC_RFST_RX(); - print "Listening as %010x on %i MHz" % (client.RF_getsmac(), client.RF_getfreq()/10**6); + if (sys.argv[3]=="-r"): + client.CC_RFST_RX(); + print "Listening as %010x on %i MHz" % (client.RF_getsmac(), client.RF_getfreq()/10**6); print "Transmitting like the TinyOS CountToRadio program on %i MHz" % (client.RF_getfreq()/10**6); - #i = 0; - #countpkt = [0x0f, 0x41, 0x88, 0xFF, 0x22, 0x00, 0xff, 0xff, 0x01, 0x00, 0x3f, 0x06, 0xFF, 0x00, 0x00]; + if (sys.argv[3]=="-i"): + i = 0; + countpkt = [0x0f, 0x41, 0x88, 0xFF, 0x22, 0x00, 0xff, 0xff, 0x01, 0x00, 0x3f, 0x06, 0x00, 0xFF]; while 1: - packet=None; - while packet==None: - packet=client.RF_rxpacket(); - print "Recd:", - client.printpacket(packet); - pkt = packet[:14]# + "\x00\x00"; - print "Sent:", - client.printpacket(pkt) - client.RF_txpacket(pkt); - #TODO expand to actually do increments itself, if desired: - #pkt = countpkt[:]; - #pkt[3] = i; - #for j in pkt: - # print hex(j)[2:],; - #print; - #client.RF_txpacket(pkt); - #if i >= 31: i = 0; - #else: i += 1; - #time.sleep(1); + if (sys.argv[3]=="-r"): #give -r to do via replays from the other device + packet=None; + while packet==None: + packet=client.RF_rxpacket(); + #print "Recd:", + #client.printpacket(packet); + pkt = packet[:14]; + #print "Sent:", + #client.printpacket(pkt) + client.RF_txpacket(pkt); + elif (sys.argv[3]=="-i"): #give -i to have it increment and send + #Use this code for it to actually do increments itself: + pkt = countpkt[:]; + pkt[3] = i; + pkt[13] = i+1; + #for j in pkt: + # print hex(j)[2:],; + #print; + client.RF_txpacket(pkt); + if i >= 31: i = 0; + else: i += 1; + time.sleep(0.5); if(sys.argv[1]=="txpiptest"):# or sys.argv[1]=="txpipscapy"): if len(sys.argv)>2: