def init_sim(self,n): """ initialize simulation for n receivers. """ if n < 3: print 'Number of receivers %i is less than three.' %n print 'Simulation controller will not run.' print 'Now exiting.' sys.exit() self.data.set_rx_number(n) tx_loc = test_coords.get_tx_coords() self.data.set_tx_location(tx_loc) self.data.reset_rx_location() for i in range(n): rx_loc = alex_random.get_random_coord() print "\n\n\n\n\n\nstore location: ", rx_loc print '\n\n\n\n\n\n' self.data.set_rx_location(rx_loc) tof = self.geo_utils.time_of_flight(rx_loc,tx_loc) self.data.set_rx_time_delay(tof) id = i+1 self.data.set_rx_team_id(id) if self.DEBUG: print 'tx_loc: ', tx_loc print 'rx_loc: ', rx_loc print 'time: ', repr(tof) print 'id: ', id
def init_sim(self, n): """ initialize simulation for n receivers. """ if n < 3: print 'Number of receivers %i is less than three.' % n print 'Simulation controller will not run.' print 'Now exiting.' sys.exit() self.data.set_rx_number(n) self.beacon = beacon() tx_loc = test_coords.get_tx_coords() self.data.set_tx_location(tx_loc) for i in range(n): rx_loc = alex_random.get_random_coord() self.data.set_rx_location(rx_loc) tof = self.geo_utils.time_of_flight(rx_loc, tx_loc) self.data.set_rx_time_delay(tof) id = i + 1 self.data.set_rx_team_id(id) if self.DEBUG: print 'tx_loc: ', tx_loc print 'rx_loc: ', rx_loc print 'time: ', repr(tof) print 'id: ', id
def receiver_chain(self, h): """ simulate receiver chain for n repeaters """ self.host = h n = self.data.get_rx_number() beacon_packet = self.data.get_beacon_packet() time_base = self.data.get_timestamp_base() # lists containing data for all current teams team_id = self.data.get_rx_team_id() location = self.data.get_rx_location() if ENABLE_LOCATION_HISTORY: self.record_location_history(location) tof = self.data.get_rx_time_delay() if self.DEBUG: print "\n\n\n\n\n\nretrieve location: ", location print '' print "type(tof): ", type(tof) conn = psycopg2.connect(host=self.host, user="******", password="******", database="sdrc_db") cur = conn.cursor() for i in range(n): f = open('data_in.data', 'a') (rx_pktno, ) = struct.unpack('!H', beacon_packet[0:2]) (beacon_ID, ) = struct.unpack('!H', beacon_packet[2:4]) # packet number payload1 = struct.pack('!H', self.packet_number & 0xffff) f.write(str(self.packet_number) + ';') # team id ident = team_id[i] payload2 = struct.pack('!H', ident & 0xffff) f.write(str(ident) + ';') # location if (self.iterator == 1): loc = location[i] else: # old_loc = location[i] # loc = alex_random.random_move(old_loc) loc = alex_random.get_random_coord() self.data.set_rx_location(i, loc) f.write(str(loc) + ';') self.iterator += 1 payload3 = new_sim_utils.pack_loc(loc) # toa t = tof[i] toa = time_base + t # if (ENABLE_JITTER): # jitter = self.random_timing_jitter() # toa = toa+jitter # else: # pass if self.DEBUG: print "t = tof[i]: ", repr(t) print "type(t): ", type(t) print "toa = time_base + t: ", repr(toa) print "type(toa): ", type(toa) payload4 = new_sim_utils.pack_time(toa) f.write(repr(toa) + ';') # beacon payload payload5 = struct.pack('!H', rx_pktno & 0xffff) f.write(str(rx_pktno) + ';') payload6 = struct.pack('!H', beacon_ID & 0xffff) f.write(str(beacon_ID) + '\n') f.close() # check if packet dropped drop = self.drop_packet() # this if evaluates true even if drop == False # if (ENABLE_DROPPED_PACKETS and drop): # if drop == 'True' # print 'ENABLE_DROPPED_PACKETS ', ENABLE_DROPPED_PACKETS # print 'drop ', drop # print (ENABLE_DROPPED_PACKETS and drop) # print 'packet dropped' # payload = '' if ENABLE_DROPPED_PACKETS: print 'ENABLE_DROPPED_PACKETS ', ENABLE_DROPPED_PACKETS print 'drop ', drop if drop: # if drop == 'True' print 'drop ', drop print 'packet dropped' payload = '' else: # if drop == 'False' payload = (payload1 + payload2 + payload3 + payload4 + payload5 + payload6) else: # if drop == 'False' payload = (payload1 + payload2 + payload3 + payload4 + payload5 + payload6) print "len(payload): ", len(payload) cur.execute("INSERT INTO blob_table (field_1) VALUES (%s)", (psycopg2.Binary(payload), )) conn.commit() cur.close() conn.close() self.packet_number += 1
def receiver_chain(self): """ simulate receiver chain for n repeaters """ n = self.data.get_rx_number() beacon_packet = self.data.get_beacon_packet() time_base = self.data.get_timestamp_base() # lists containing data for all current teams team_id = self.data.get_rx_team_id() location = self.data.get_rx_location() if ENABLE_LOCATION_HISTORY: self.record_location_history(location) tof = self.data.get_rx_time_delay() if self.DEBUG: print "\n\n\n\n\n\nretrieve location: ", location print '' print "type(tof): ", type(tof) HOST = 'localhost' # The remote host PORT = 1079 # The same port as used by the server # conn = psycopg2.connect(host = "192.168.42.200", # user = "******", # password = "******", # database = "sdrc_db") conn = psycopg2.connect(host = "128.173.90.88", user = "******", password = "******", database = "sdrc_db") cur = conn.cursor() for i in range(n): f = open('data_in.data', 'a') (rx_pktno,) = struct.unpack('!H', beacon_packet[0:2]) (beacon_ID,) = struct.unpack('!H', beacon_packet[2:4]) # packet number payload1 = struct.pack('!H', self.packet_number & 0xffff) f.write(str(self.packet_number) + ';') # team id ident = team_id[i] payload2 = struct.pack('!H', ident & 0xffff) f.write(str(ident) + ';') # location if (self.iterator == 1): loc = location[i] else: # old_loc = location[i] # loc = alex_random.random_move(old_loc) loc = alex_random.get_random_coord() self.data.set_rx_location(i,loc) f.write(str(loc)+';') self.iterator += 1 payload3 = new_sim_utils.pack_loc(loc) # toa t = tof[i] toa = time_base + t # if (ENABLE_JITTER): # jitter = self.random_timing_jitter() # toa = toa+jitter # else: # pass if self.DEBUG: print "t = tof[i]: ", repr(t) print "type(t): ", type (t) print "toa = time_base + t: ", repr(toa) print "type(toa): ", type(toa) payload4 = new_sim_utils.pack_time(toa) f.write(repr(toa)+';') # beacon payload payload5 = struct.pack('!H', rx_pktno & 0xffff) f.write(str(rx_pktno) + ';') payload6 = struct.pack('!H', beacon_ID & 0xffff) f.write(str(beacon_ID) + '\n') f.close() # check if packet dropped drop = self.drop_packet() # this if evaluates true even if drop == False # if (ENABLE_DROPPED_PACKETS and drop): # if drop == 'True' # print 'ENABLE_DROPPED_PACKETS ', ENABLE_DROPPED_PACKETS # print 'drop ', drop # print (ENABLE_DROPPED_PACKETS and drop) # print 'packet dropped' # payload = '' if ENABLE_DROPPED_PACKETS: print 'ENABLE_DROPPED_PACKETS ', ENABLE_DROPPED_PACKETS print 'drop ', drop if drop: # if drop == 'True' print 'drop ', drop print 'packet dropped' payload = '' else: # if drop == 'False' payload = (payload1 + payload2 + payload3 + payload4 + payload5 + payload6) else: # if drop == 'False' payload = (payload1 + payload2 + payload3 + payload4 + payload5 + payload6) print "len(payload): ", len(payload) cur.execute("INSERT INTO blob_table (field_1) VALUES (%s)", (psycopg2.Binary(payload),)) conn.commit() cur.close() conn.close() self.packet_number += 1