Esempio n. 1
0
    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()
Esempio n. 2
0
File: Accel.py Progetto: nesl/netcar
 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)
Esempio n. 3
0
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
Esempio n. 4
0
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
Esempio n. 5
0
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()
Esempio n. 6
0
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
Esempio n. 7
0
    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])