Beispiel #1
0
    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
Beispiel #5
0
	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