def receive(self, src, msg): m = SerialMsg(msg.dataGet()) self.num_nodes = m.get_num_nodes() self.num_rounds = m.get_num_rounds() self.num_transmissions = m.get_num_transmissions() print '%s Message Received:' % time.strftime(self.timeformat) print '\tK\tRounds\tTransmissions' logstring = '%d\t%d\t%d' % (self.num_nodes, self.num_rounds, self.num_transmissions) print '\t%s' % logstring lf = open(self.logfile, 'a') lf.write(logstring) lf.write('\n') lf.close()
def create_packet(self, dest, typ, instr, data): self.msg = SerialMsg() # that's because we're always in mote 0 here self.msg.set_sender(0) self.am_type = self.msg.get_amType() self.msg.set_dests(dest) self.msg.set_type(typ) self.msg.set_instr(instr) self.msg.set_data(data)
def receive(self, src, msg): global speed print "Received message: ", msg.get_source(), msg.get_num_msg(), msg.get_total_msg() self.q.put(30) os.kill(self.pid, signal.SIGUSR1) power = 31 interval = 32 ts = SerialMsg() print "send packet, power_level:send_interval", power, ":", interval ts.set_power_level(power) ts.set_send_interval(interval) self.mif.sendMsg(self.source, 0, ts.get_amType(), 0, ts)
t.addChannel("Serial", sys.stdout) t.addChannel("SpinTestC", sys.stdout) for i in range(0, 2): m = t.getNode(i) m.bootAtTime((31 + t.ticksPerSecond() / 10) * i + 1) sf.process() throttle.initialize() for i in range(0, 60): throttle.checkThrottle() t.runNextEvent() sf.process() msg = SerialMsg() msg.set_cmd(7) serialpkt = t.newSerialPacket() serialpkt.setData(msg.data) serialpkt.setType(msg.get_amType()) serialpkt.setDestination(0) serialpkt.deliver(0, t.time() + 3) pkt = t.newPacket() pkt.setData(msg.data) pkt.setType(msg.get_amType()) pkt.setDestination(0) pkt.deliver(0, t.time() + 10) for i in range(0, 20):
class MyPacket(object): # get the TOS_NODE_ID maybe instead def __init__(self, msg=None): self.msg = msg def __str__(self): # TODO: see if it's possible a sort of reverse from Blink.h enum variables return "\ndest: %d\ntype: %d\ninstr: %d\ndata: %d\n" % (self.msg.get_dests(), self.msg.get_type(), self.msg.get_instr(), self.msg.get_data()) def get_data(self): return self.msg.data def create_packet(self, dest, typ, instr, data): self.msg = SerialMsg() # that's because we're always in mote 0 here self.msg.set_sender(0) self.am_type = self.msg.get_amType() self.msg.set_dests(dest) self.msg.set_type(typ) self.msg.set_instr(instr) self.msg.set_data(data)
t.addChannel("Serial", sys.stdout); t.addChannel("SpinTestC", sys.stdout); for i in range(0, 2): m = t.getNode(i); m.bootAtTime((31 + t.ticksPerSecond() / 10) * i + 1); sf.process(); throttle.initialize(); for i in range(0, 60): throttle.checkThrottle(); t.runNextEvent(); sf.process(); msg = SerialMsg() msg.set_cmd(7); serialpkt = t.newSerialPacket(); serialpkt.setData(msg.data) serialpkt.setType(msg.get_amType()) serialpkt.setDestination(0) serialpkt.deliver(0, t.time() + 3) pkt = t.newPacket(); pkt.setData(msg.data) pkt.setType(msg.get_amType()) pkt.setDestination(0) pkt.deliver(0, t.time() + 10) for i in range(0, 20):
t.getNode(2).bootAtTime(800008); t.getNode(3).bootAtTime(180000900); t.getNode(4).bootAtTime(800008); t.getNode(5).bootAtTime(280000900); t.getNode(6).bootAtTime(800008); t.getNode(7).bootAtTime(280000900); sf.process(); throttle.initialize(); for i in range(0, 60): throttle.checkThrottle(); t.runNextEvent(); sf.process(); msg = SerialMsg() msg.set_cmd(2); serialpkt = t.newSerialPacket(); serialpkt.setData(msg.data) serialpkt.setType(msg.get_amType()) serialpkt.setDestination(1) serialpkt.deliver(1, t.time() + 10) for i in range(0, 1500): throttle.checkThrottle(); t.runNextEvent(); sf.process(); serialpkt = t.newSerialPacket(); serialpkt.setData(msg.data)