def __init__(self, stationsInfo, clientsInfo, handler): # stations initialization self.stations = {} for stationInfo in stationsInfo: self.stations[stationInfo['id']] = BaseStation.BaseStation( stationInfo['center'], stationInfo['radius'], stationInfo['id']) self.calculateNearbyBs(NearbyRange) # clients initialization self.clients = {} for clientInfo in clientsInfo: self.clients[clientInfo['id']] = Client.Client( clientInfo['id'], clientInfo['startPosition'], clientInfo['speed']) # map initialization #self.tkHandler = handler #self.map = Tkinter.Canvas( self.tkHandler, width=MapWidth, height=MapHeight ) #self.map.pack() #self.showBaseStations() self.timer = -1 while (1): self.mainProcess()
def __init__(self): self.tableOPEN = "<table>\n" self.tableCLOSE = "</table>\n" self.rowOPEN = "\t<row>\n" self.rowCLOSE = "\t</row>\n" self.fieldOPEN = "\t\t<field name=\"" self.fieldOPEN2 = "\">" self.fieldCLOSE = "</field>\n" self.NoofBurst = 1 self.Acc = BaseStation.BaseStation() time.sleep(1)
def loadBases(filename): f = open(filename, 'r') lines = f.readlines() f.close() allBases = [] for line in lines: data = line.strip("\n").split(" ") listOfLinks = data[4:] allBases.append( BaseStation.BaseStation(data[0], int(data[1]), int(data[2]), int(data[3]), listOfLinks)) return allBases
authors: Kevin Peterson Modification on 2011-03-7: """ import numpy as np from lib import command from struct import * import time, serial, sys, os from BaseStation import * #Define constants to use DEST_ADDR = '\x20\x12' #Initialize the basestation and the helper functions xb = BaseStation('COM3', 57600, verbose=False) if __name__ == '__main__': print "Type Ctrl+C to exit at any time." print "Initial settings:" print "-----------------" chan = xb.getChannel() print "xbee CHAN : 0x%x" % chan src = xb.getSrcAddr() print "xbee SRC addr : 0x%x" % src pan = xb.getPanID() print "xbee PAN ID : 0x%x" % pan # Change xbee settings
import numpy as np from lib import command from struct import * import time, serial, sys, os import traceback from BaseStation import * #Define constants to use XB1_ADDR = '\x20\x00' XB2_ADDR = '\x30\x00' XB_CHAN = '\x0e' XB_PANID = '\x99\x99' #Initialize the basestation and the helper functions xb1 = BaseStation('COM3', baudrate = 57600 , verbose = False) xb2 = BaseStation('COM4', baudrate = 57600 , verbose = False) if __name__ == '__main__': XBEES = [xb1, xb2] print "Setting temporary XBee config..." # Change xbee settings xb1.setChannel(XB_CHAN) xb1.setSrcAddr(XB1_ADDR) xb1.setPanID(XB_PANID) print "-------- XBee #1 ----------" chan = xb1.getChannel()
authors: Kevin Peterson Modification on 2011-03-7: """ import numpy as np from lib import command from struct import * import time, serial, sys, os from BaseStation import * #Define constants to use DEST_ADDR = '\x20\x12' #Initialize the basestation and the helper functions xb = BaseStation('COM3', 57600, verbose = False) if __name__ == '__main__': print "Type Ctrl+C to exit at any time." print "Initial settings:" print "-----------------" chan = xb.getChannel() print "xbee CHAN : 0x%x" % chan src = xb.getSrcAddr() print "xbee SRC addr : 0x%x" % src pan = xb.getPanID() print "xbee PAN ID : 0x%x" % pan # Change xbee settings
def uwbReceiver(self, data, cB_txmac, cB_ip_3, udp_addr): self.pack_ble_dict['Header'] = str(data[0]) self.pack_ble_dict['PackNum'] = data[1] self.pack_ble_dict['FPGACnt'] = data[2] * 256 + data[3] if len(data) == data[2] * 256 + data[3]: for i in range(data[1]): uwb_data = data[i * 48 + 4:i * 48 + 52] unpack_data = struct.unpack("4x2L4xQ", uwb_data[0:24]) sn_8 = unpack_data[0] Tt = unpack_data[1] Tr = unpack_data[2] AddrT = ''.join(["%02X" % (char) for char in uwb_data[24:32]]) AddrR = ''.join(["%02X" % (char) for char in uwb_data[32:40]]) RXPACC = (uwb_data[40]) CIR_PWR = ((uwb_data[43]) << 8) + (uwb_data[42]) FP_AMPL1 = ((uwb_data[33]) << 8) + (uwb_data[32]) FP_AMPL2 = ((uwb_data[35]) << 8) + (uwb_data[34]) FP_AMPL3 = ((uwb_data[37]) << 8) + (uwb_data[36]) STD_NOISE = ((uwb_data[39]) << 8) + (uwb_data[38]) try: ReceiverPower = 10 * math.log10( CIR_PWR * 2**17 / RXPACC**2) - 121.74 #first path power level FirstPathPower = 10 * math.log10( (FP_AMPL1 * FP_AMPL1 + FP_AMPL2 * FP_AMPL2 + FP_AMPL3 * FP_AMPL3) / RXPACC**2) - 121.74 #receiver power level except: ReceiverPower = 0 FirstPathPower = 0 if udp_addr[0] not in self.ip_mac: self.ip_mac[udp_addr[0]] = AddrR logger.warning([udp_addr[0], AddrR]) content = ''.join([udp_addr[0], ' : ', AddrR]) SendQuene.put_nowait([0, content]) # AddrR = '' # for char in uwb_data[32:40]: # AddrR = AddrR + "%02X"%(char) if uwb_data[0] == 0xAA: # return data_dict = { 'type': 'B', 'SN': sn_8, 'TimeRx': float(Tr) * self.DWT_TIME_UNITS, 'AddrT': AddrT, 'AddrA': AddrR, 'Time': int(time.time() * 1000), 'IP': udp_addr # 'FirstPathPower':FirstPathPower, # 'ReceiverPower':ReceiverPower } # logger.debug(data_dict) # self.testTimeStability('R-'+AddrR+',T-'+AddrT,data_dict['SN'],float(Tr)*self.DWT_TIME_UNITS) elif uwb_data[0] == 0x55: # return data_dict = { 'type': 'S', 'SN': sn_8, 'TimeRxS': float(Tr) * self.DWT_TIME_UNITS, #16表示安装16进制处理 'TimeTxM': float(Tt) * self.DWT_TIME_UNITS * 256, 'AddrM': AddrT, 'AddrS': AddrR # 'FirstPathPower':FirstPathPower, # 'ReceiverPower':ReceiverPower } # if AddrR=="01AA2145CCF0CB1F":#分析定位包时间稳定性 # self.testTimeStability('R-'+AddrR+',T-'+AddrT,data_dict['SN'],float(Tr)*self.DWT_TIME_UNITS) if cB_txmac.currentText() == AddrT: if AddrT in self.slaves: if AddrR in self.slaves[AddrT]: self.slaves[AddrT][AddrR].updateTDC( data_dict['SN'], data_dict['TimeRxS'], data_dict['TimeTxM'], AddrT) else: self.slaves['01AA2145CCF0C7B4'][ '10205F1C10000545'] = BaseStation.Slave( '10205F1C10000545', 0, 0, 0, 0, 0, 0) else: self.slaves['01AA2145CCF0C7B4'] = {} if cB_txmac.findText(AddrT) == -1: cB_txmac.addItem(AddrT) if (cB_txmac.currentText() == 'ALL' or cB_txmac.currentText() == AddrT) and (cB_ip_3.currentText() == 'ALL' or cB_ip_3.currentText() == AddrR): logger.debug(data_dict) if self.cB_txmac_currentText != cB_txmac.currentText(): self.TimeRx_dict = {} self.cB_txmac_currentText = cB_txmac.currentText() self.testTimeStability( AddrT, data_dict['SN'], float(Tr) * self.DWT_TIME_UNITS, float(Tt) * self.DWT_TIME_UNITS * 256, [FirstPathPower, ReceiverPower]) logger.warning([RXPACC, CIR_PWR]) logger.warning([FP_AMPL1, FP_AMPL2, FP_AMPL3, STD_NOISE])