def __init__(self, N, logfile, itMax=1, B=1, verbose=True, dest=False): #CHANGE SO THAT ONLY THINGS THAT ARE CALLED ONCE!! self.verbose = verbose self.prevtime = time.time() self.N = N self.logfile = logfile self.B = B self.itMax = itMax self.timeformat = '%Y/%d/%m %H:%M:%S' #self.A = make_A_matrix(self.N) #self.counter = 0; #self.num_transmissions = 0; self.current_row = 0 #needed now?? Transmitter.setup_logfile(self) ## Set up link to tos mote self.mif = MoteIF.MoteIF() self.source = self.mif.addSource("sf@localhost:9002") #TxSerialMsg.py is be generated by MIG class self.mif.addListener(self, TxSerialMsg) # RESET THESE ## generate random messages #self.W = np.random.randint(0,2**16, (N,B)) # each message is an array of B uint16s ##print 'W is :' ##print self.W ## store final received messages. goal is to "de-NaN" by the end ##self.final_messages = np.nan*np.zeros((N, B)) ##not actually messages but indicator if all the pieces for the node have been received #self.final_messages = np.nan*np.zeros((N, 1)) ## keep track of all transmitted and received messages/symbols #self.tx_symbols = np.array([]) # [1 -by- # of transmissions] # ## keep track of number of transmissions #self.TOTAL_TRANSMISSIONS = 0 ## for TDMA round also? #self.TDMA_TRANSMISSIONS = 0 #antidote matrix A #self.A = np.diag(self.W.reshape(-1)) # receiver (row) i has access to the message it plans to send #rewrite so not dependent on W #self.A = np.eye(N) # Receiver i wants message dest[i] # e.g. dest = [1, 0] means R0 wants W[1] and R1 wants W[0] if dest == False: self.dest = pairingperm(N) if self.verbose: print 'Message destinations chosen by pairing' print 'dest:', self.dest else: self.dest = dest #rewrite A so not dependent on W self.it = 0 Transmitter.reset(self)
def __init__(self, N, logfile, itMax=1, B=1, verbose=True, dest=False): #CHANGE SO THAT ONLY THINGS THAT ARE CALLED ONCE!! self.verbose = verbose self.prevtime = time.time() self.N = N self.logfile = logfile self.B = B self.itMax = itMax self.timeformat = '%Y/%d/%m %H:%M:%S' #self.A = make_A_matrix(self.N) #self.counter = 0; #self.num_transmissions = 0; self.current_row = 0; #needed now?? Transmitter.setup_logfile(self) ## Set up link to tos mote self.mif = MoteIF.MoteIF() self.source = self.mif.addSource("sf@localhost:9002") #TxSerialMsg.py is be generated by MIG class self.mif.addListener(self, TxSerialMsg) # RESET THESE ## generate random messages #self.W = np.random.randint(0,2**16, (N,B)) # each message is an array of B uint16s ##print 'W is :' ##print self.W ## store final received messages. goal is to "de-NaN" by the end ##self.final_messages = np.nan*np.zeros((N, B)) ##not actually messages but indicator if all the pieces for the node have been received #self.final_messages = np.nan*np.zeros((N, 1)) ## keep track of all transmitted and received messages/symbols #self.tx_symbols = np.array([]) # [1 -by- # of transmissions] # ## keep track of number of transmissions #self.TOTAL_TRANSMISSIONS = 0 ## for TDMA round also? #self.TDMA_TRANSMISSIONS = 0 #antidote matrix A #self.A = np.diag(self.W.reshape(-1)) # receiver (row) i has access to the message it plans to send #rewrite so not dependent on W #self.A = np.eye(N) # Receiver i wants message dest[i] # e.g. dest = [1, 0] means R0 wants W[1] and R1 wants W[0] if dest == False: self.dest = pairingperm(N) if self.verbose: print 'Message destinations chosen by pairing' print 'dest:', self.dest else: self.dest = dest #rewrite A so not dependent on W self.it = 0 Transmitter.reset(self)
def __init__(self, N, B=1, verbose=True, dest=False): #is pieces 1 here? self.verbose = verbose self.prevtime = time.time() self.N = N #self.A = make_A_matrix(self.N) self.counter = 0 self.num_transmissions = 0 self.current_row = 0 ## Set up link to tos mote self.mif = MoteIF.MoteIF() self.source = self.mif.addSource("sf@localhost:9002") #TxSerialMsg.py is be generated by MIG class self.mif.addListener(self, TxSerialMsg) # generate random messages self.W = np.random.randint( 0, 2**16, (N, B)) # each message is an array of B uint16s # store final received messages. goal is to "de-NaN" by the end self.final_messages = np.nan * np.zeros((N, B)) # keep track of all transmitted and received messages/symbols self.tx_symbols = np.array([]) # [1 -by- # of transmissions] # keep track of number of transmissions self.TOTAL_TRANSMISSIONS = 0 # for TDMA round also? self.TDMA_TRANSMISSIONS = 0 # antidote matrix A self.A = np.diag(self.W.reshape( -1)) # receiver (row) i has access to the message it plans to send # Receiver i wants message dest[i] # e.g. dest = [1, 0] means R0 wants W[1] and R1 wants W[0] if dest == False: self.dest = pairingperm(N) if self.verbose: print 'Message destinations chosen by pairing' print 'dest:', self.dest else: self.dest = dest mat_dest = (np.arange(self.N), np.array(self.dest)) signal_space = np.zeros((self.N, self.N)) > 0 signal_space[mat_dest] = True self.I = compute_interferers(self.A, signal_space) self.J = self.I.astype(float) self.J[mat_dest] = -1 self.map = np.arange(self.N) if self.verbose: print 'Interferer matrix is:' print self.J
def __init__(self, N, B=1, verbose=True, dest=False): #is pieces 1 here? self.verbose = verbose self.prevtime = time.time() self.N = N #self.A = make_A_matrix(self.N) self.counter = 0; self.num_transmissions = 0; self.current_row = 0; ## Set up link to tos mote self.mif = MoteIF.MoteIF() self.source = self.mif.addSource("sf@localhost:9002") #TxSerialMsg.py is be generated by MIG class self.mif.addListener(self, TxSerialMsg) # generate random messages self.W = np.random.randint(0,2**16, (N,B)) # each message is an array of B uint16s # store final received messages. goal is to "de-NaN" by the end self.final_messages = np.nan*np.zeros((N, B)) # keep track of all transmitted and received messages/symbols self.tx_symbols = np.array([]) # [1 -by- # of transmissions] # keep track of number of transmissions self.TOTAL_TRANSMISSIONS = 0 # for TDMA round also? self.TDMA_TRANSMISSIONS = 0 # antidote matrix A self.A = np.diag(self.W.reshape(-1)) # receiver (row) i has access to the message it plans to send # Receiver i wants message dest[i] # e.g. dest = [1, 0] means R0 wants W[1] and R1 wants W[0] if dest == False: self.dest = pairingperm(N) if self.verbose: print 'Message destinations chosen by pairing' print 'dest:', self.dest else: self.dest = dest mat_dest = (np.arange(self.N), np.array(self.dest)) signal_space = np.zeros((self.N,self.N))>0 signal_space[mat_dest] = True; self.I = compute_interferers(self.A, signal_space) self.J = self.I.astype(float) self.J[mat_dest] = -1 self.map = np.arange(self.N) if self.verbose: print 'Interferer matrix is:' print self.J
def __init__(self, N, B=1, verbose=True, dest=False): #is pieces 1 here? self.verbose = verbose self.prevtime = time.time() self.N = N #self.A = make_A_matrix(self.N) self.counter = 0; self.num_transmissions = 0; self.current_row = 0; ## Set up link to tos mote self.mif = MoteIF.MoteIF() self.source = self.mif.addSource("sf@localhost:9002") #TxSerialMsg.py is be generated by MIG class self.mif.addListener(self, TxSerialMsg) # generate random messages self.W = np.random.randint(0,2**16, (N,B)) # each message is an array of B uint16s #print 'W is :' #print self.W # store final received messages. goal is to "de-NaN" by the end self.final_messages = np.nan*np.zeros((N, B)) #not actually messages but indicator if all the pieces for the node have been received self.final_messages = np.nan*np.zeros((N, 1)) # keep track of all transmitted and received messages/symbols self.tx_symbols = np.array([]) # [1 -by- # of transmissions] # keep track of number of transmissions self.TOTAL_TRANSMISSIONS = 0 # for TDMA round also? self.TDMA_TRANSMISSIONS = 0 # antidote matrix A #self.A = np.diag(self.W.reshape(-1)) # receiver (row) i has access to the message it plans to send #rewrite so not dependent on W self.A = np.eye(N) # Receiver i wants message dest[i] # e.g. dest = [1, 0] means R0 wants W[1] and R1 wants W[0] if dest == False: self.dest = pairingperm(N) if self.verbose: print 'Message destinations chosen by pairing' print 'dest:', self.dest else: self.dest = dest mat_dest = (np.arange(self.N), np.array(self.dest)) signal_space = np.zeros((self.N,self.N))>0 signal_space[mat_dest] = True; self.I = compute_interferers(self.A, signal_space) self.J = self.I.astype(float) self.J[mat_dest] = -1 self.map = np.arange(self.N) print 'size of I is ', np.size(self.I) if self.verbose: print 'Interferer matrix is:' print self.J #send the first tdma packet? self.TDMA_MODE = 1; #self.tm = 0; #needed? self.TDleft = np.arange(self.N, dtype=np.uint8) self.ackList = np.nan*self.TDleft #self.ileft = 0; #transmit the first message Transmitter.tdma_stage(self) self.ileft = 1
def __init__(self, N, B=1, verbose=True, dest=False): #is pieces 1 here? #CHANGE SO THAT ONLY THINGS THAT ARE CALLED ONCE!! self.verbose = verbose self.prevtime = time.time() self.N = N #self.A = make_A_matrix(self.N) self.counter = 0; self.num_transmissions = 0; self.current_row = 0; ## Set up link to tos mote self.mif = MoteIF.MoteIF() self.source = self.mif.addSource("sf@localhost:9002") #TxSerialMsg.py is be generated by MIG class self.mif.addListener(self, TxSerialMsg) # generate random messages self.W = np.random.randint(0,2**16, (N,B)) # each message is an array of B uint16s #print 'W is :' #print self.W # store final received messages. goal is to "de-NaN" by the end self.final_messages = np.nan*np.zeros((N, B)) #not actually messages but indicator if all the pieces for the node have been received self.final_messages = np.nan*np.zeros((N, 1)) # keep track of all transmitted and received messages/symbols self.tx_symbols = np.array([]) # [1 -by- # of transmissions] # keep track of number of transmissions self.TOTAL_TRANSMISSIONS = 0 # for TDMA round also? self.TDMA_TRANSMISSIONS = 0 # antidote matrix A #self.A = np.diag(self.W.reshape(-1)) # receiver (row) i has access to the message it plans to send #rewrite so not dependent on W self.A = np.eye(N) # Receiver i wants message dest[i] # e.g. dest = [1, 0] means R0 wants W[1] and R1 wants W[0] if dest == False: self.dest = pairingperm(N) if self.verbose: print 'Message destinations chosen by pairing' print 'dest:', self.dest else: self.dest = dest mat_dest = (np.arange(self.N), np.array(self.dest)) signal_space = np.zeros((self.N,self.N))>0 signal_space[mat_dest] = True; #rewrite A so not dependent on W self.A = np.eye(N) self.I = compute_interferers(self.A, signal_space) self.J = self.I.astype(float) self.J[mat_dest] = -1 self.map = np.arange(self.N) print 'size of I is ', np.size(self.I) if self.verbose: print 'Interferer matrix is:' print self.J self.TDMA_MODE = 1; #self.tm = 0; #needed? self.TDleft = np.arange(self.N, dtype=np.uint8) self.ackList = np.nan*self.TDleft self.ileft = 0; #transmit the first message Transmitter.tdma_stage(self) self.ileft = 1