X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=client%2Fgoodfet.zigduino;fp=client%2Fgoodfet.zigduino;h=2a848885ca4fb20a28a835917fc594f5e67d8222;hp=0000000000000000000000000000000000000000;hb=473345590445f43c3f5dd8e5c3716c8f69b9b1cf;hpb=05e744a159e6c7b808b12e53b5ac231a8045bd8b diff --git a/client/goodfet.zigduino b/client/goodfet.zigduino new file mode 100755 index 0000000..2a84888 --- /dev/null +++ b/client/goodfet.zigduino @@ -0,0 +1,72 @@ +#!/usr/bin/env python +#GoodFET zigduino client +#forked from code by neighbor Travis Goodspeed by bx + +import sys, binascii, os, array, time, glob + +from GoodFETatmel128 import GoodFETatmel128rfa1 +from intelhex import IntelHex; + + +def printpacket(packet): + s=""; + i=0; + for foo in packet: + i=i+1; + if i>client.packetlen: break; + s="%s %02x" % (s,ord(foo)); + print "%s" % s; + + +mskbstring=""; +oldseq=-1; + +#def printconfig(): +# print "Encoding %s" % client.RF_getenc(); +# print "Freq %10i MHz" % (client.RF_getfreq()/10**6); +# print "Rate %10i kbps" % (client.RF_getrate()/1000); +# print "PacketLen %02i bytes" % client.RF_getpacketlen(); +# #print "MacLen %2i bytes" % client.RF_getmaclen(); +# print "SMAC 0x%010x" % client.RF_getsmac(); +# print "TMAC 0x%010x" % client.RF_gettmac(); + + +if(len(sys.argv)==1): + print "Usage: %s verb [objects]\n" % sys.argv[0]; + #print "%s info" % sys.argv[0]; + print "%s sniff [channel]\n\tSniffs packets." % sys.argv[0]; + print "%s beaconreq [channel]\n\tSends out beacons requests" % sys.argv[0]; + sys.exit(); + +#Initialize FET and set baud rate +client=GoodFETatmel128rfa1() +#client.verbose = True +client.serInit() + +#if(sys.argv[1ce]=="info"): +# printconfig(); + +if(sys.argv[1]=="sniff"): + client.RF_setup() + if len(sys.argv)>2: + print "Set channel to %s" % sys.argv[2]; + client.RF_setchannel(int(sys.argv[2])); + #Now we're ready to get packets. + + while 1: + packet=None; + while packet==None: + packet=client.RF_rxpacket(); + time.sleep(0.4) + printpacket(packet); + sys.stdout.flush(); + +if (sys.argv[1]=="beaconreq"): + client.RF_setup() + if len(sys.argv)>2: + print "Set channel to %s" % sys.argv[2]; + client.RF_setchannel(int(sys.argv[2])); + packet="\x03\x08\x46\xff\xff\xff\xff\x07\x13\x33" + while 1: + client.RX_txpacket(packet) + time.sleep(1)