当前位置: 首页>>代码示例>>Python>>正文


Python xbee.ZigBee类代码示例

本文整理汇总了Python中xbee.ZigBee的典型用法代码示例。如果您正苦于以下问题:Python ZigBee类的具体用法?Python ZigBee怎么用?Python ZigBee使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了ZigBee类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: hiddenXbeePin

def hiddenXbeePin(xbeeRemAddr, xbeePin, xbeePinState):
    "Manipulate XBee pins. Input: xbeeRemAddr, xbeePin, xbeePinState. Ex: xbee_pin('0013A200406B5174'.decode('hex'),'D0','ON')"

    comPortList = getActiveComPort()
    if comPortList:
        comPort = comPortList[0].get('name')
        timeOut = int(comPortList[0].get('timeout'))
        baudRate = int(comPortList[0].get('baudrate'))
        count = 0
        
    try:
        ser = serial.Serial(comPort, baudRate, timeout=timeOut) 
        xbee = ZigBee(ser,escaped=True)
        
        if xbeePinState == 'ON':
            xbeePinStateHex = '\x05'

        if xbeePinState == 'OFF':
            xbeePinStateHex = '\x04'
            
        try:
            xbee.remote_at(dest_addr_long=xbeeRemAddr,command=xbeePin,parameter=xbeePinStateHex)
        finally:
            return 1
    
    except serial.SerialException as ex:
        text = "Exception is: " + ex.__str__()
        return 0
    else:
        xbee.halt()
        ser.close()
开发者ID:verdered,项目名称:waterStrider,代码行数:31,代码来源:sprinklercomm.py

示例2: main

def main():
    args = setup_argparser()

    #setup serial port
    ser = serial.Serial(args.port, 9600)
    xbee = ZigBee(ser, escaped=True)

    exit_code = 0

    #send force sample command IS
    xbee.remote_at(dest_addr_long=to_hex(args.device), command='IS', frame_id=cmd_id)
    try:
        response = xbee.wait_read_frame()

        #ack received
        if response['status'] == '\x00' and response['frame_id'] == cmd_id:
            try:
                print response['parameter'][0][response_lookup[args.gpio]]

            #desired value not included in response
            except KeyError:
                print "No sample for {0} received. The PIN may not be properly configured. For ADC select Mode 2 (analog input)".format(args.gpio)
                exit_code = -1

        #error message received
        else:
            print "Command was not successful: ", status_help[response['status']]
            exit_code = ord(response['status'])

    except KeyboardInterrupt:
        print "cancel script"

    #clean up
    ser.close()
    exit(exit_code)
开发者ID:WBSS,项目名称:RPi-remote-LED,代码行数:35,代码来源:XBEE-remote-get.py

示例3: hiddenNodediscovery

def hiddenNodediscovery():
    
    comPortList = getActiveComPort()
    if comPortList:
        comPort = comPortList[0].get('name')
        timeOut = int(comPortList[0].get('timeout'))
        baudRate = int(comPortList[0].get('baudrate'))
        
    print "Hidden Discovery"
    
    try:
        ser = serial.Serial(comPort, baudRate, timeout=timeOut)
        print "porta e otworen", ser.isOpen() 
        xbee = ZigBee(ser,escaped=True)
        xbee.at(command='ND')
        response = {'':''}
        while response <> {}:
            response = xbee.wait_read_frame()
            if response:
                print response
            else:
                text = "Xbee: Timeout during node discovery operation!"
                response = {}
                print text

    
    except serial.SerialException as ex:
        text = "Exception: " + ex.__str__()
        return text
    else:
        ser.close()
开发者ID:verdered,项目名称:waterStrider,代码行数:31,代码来源:sprinklercomm.py

示例4: main

def main(argv=sys.argv[1:]):
    parser = argparse.ArgumentParser(
        description="Continuously read sensor data from XBee and write to "
                    "data files in specified folder.")
    parser.add_argument('-d', '--device', metavar='DEVICE',
                        default='/dev/ttyXBEE',
                        help='XBee serial device pseudofile')
    parser.add_argument('-b', '--baud', metavar='RATE', type=int, default=9600,
                        help='Baud rate of XBee serial device.')
    parser.add_argument('folder', metavar='FOLDER', help='Folder for data files.')
    args = parser.parse_args(argv)

    ser = serial.Serial(args.device, args.baud)
    xbee = ZigBee(ser)

    if not os.path.exists(args.folder):
        os.makedirs(args.folder)

    # Continuously read and print packets
    while True:
        try:
            today = datetime.date.today()
            fname = '%4d-%02d-%02d.csv' % (today.year, today.month, today.day)
            response = xbee.wait_read_frame()
            source_addr_long = response['source_addr_long'].encode("hex")
            with open(os.path.join(args.folder, fname), 'a') as f:
                csvout = csv.writer(f)
                for sample in response['samples']:
                    row = (time(), source_addr_long,
                           tempAir(sample['adc-0']), tempWater(sample['adc-1']))
                    csvout.writerow(row)
        except KeyboardInterrupt:
            break

    ser.close()
开发者ID:huslage,项目名称:qfi-xbee-sensor,代码行数:35,代码来源:xbee_sensor.py

示例5: find_bots

def find_bots():
    #The coordinator broadcasts a "Node Discover" AT command and records the addresses recieved, I suspect
    #Add coordinator first, then add on each bot as it responds.
    #robot id command
    
    global xbee
    
    ser = serial.Serial(DEVICE, 57600)
    xbee = ZigBee(ser)

    try:
        print("Searching for bots...")
        xbee.at(
            dest_addr_long = XBEE_ADDR_LONG,
            dest_addr = XBEE_ADDR_SHORT,
            command = 'ND'
            )
        timeout = time.time() + 30
        num_of_robots = 0
        while timeout > time.time():
            dict = xbee.wait_read_frame()
            if dict == None:
                break
            bot_array.append(parse_ND(dict))
            print "Response: %r " % bot_array[num_of_robots]
            num_of_robots += 1
    except KeyboardInterrupt, SerialException:
        sys.exit(0)
开发者ID:RachaelT,项目名称:UTDchess-RospyXbee,代码行数:28,代码来源:cmd_vel_listener.py

示例6: test_read_timeout

 def test_read_timeout(self):
     port = serial.Serial('/dev/ttyUSB0', 9600)
     xbee_device = ZigBee(port)
     self.settings.bind(xbee_device)
     self.assertRaises(ReadException,
                       self.settings.read_all)
     xbee_device.halt()
     port.close()
开发者ID:alflanagan,项目名称:pyxbee,代码行数:8,代码来源:test_settings.py

示例7: linkxbee

def linkxbee(q_down, q_up, e_pause, e_kill, config):
    """
    собиралка телеметрии.
    получает пакет с xbee, тут же бросает в линию данные
    затем не спеша отрисовывает полученные данные

    """
    # подсос значений из конфига
    baudrate = config.getint('Link', 'baudrate')
    port     = config.getint('Link', 'port')

    # 2 стоп-бита стоит установить при наличии глюков с xbee на 115200
    ser = serial.Serial(port, baudrate, stopbits=2)

    xbee = ZigBee(ser, escaped=True)
    device={"GND":'\x00\x13\xA2\x00\x40\x5D\xF9\xEA',
            "PNS":'\x00\x13\xA2\x00\x40\x5D\xF9\xE9'}

    xbee_response = None # пришедший с модема пакет
    msg_up = None # строка, которую надо запихнуть в пакет для отправки

    # ждем, пока нас снимут с паузы
    print "---- link ready"
    e_pause.wait()
    print "---- link run"

    while True:
        if e_kill.is_set():
            print "=== Link. Kill signal received. Exiting"
            return

        # читаем из модема
        try:
            xbee_response = xbee.wait_read_frame()
        except:
            print "xbee not respond"

        # пихаем нагрузку из пришедшего пакета в очередь протокольного анализатора
        if (xbee_response != None) and (xbee_response['id'] == 'rx'):
            try:
                q_down.put_nowait(xbee_response['rf_data'])
            except Full:
                print "Input packet lost"

        # тут же берем из очереди сообщение для отправки
        try:
            msg_up = q_up.get_nowait()
        except Empty:
            pass
        if msg_up != None: # пихаем в модем
            xbee.send("tx",
                      frame_id='\x00',
                      dest_addr_long=device["PNS"],
                      broadcast_radius = '\x01',
                      dest_addr='\xFF\xFE',
                      data=msg_up)
        msg_up = None
开发者ID:barthess,项目名称:u,代码行数:57,代码来源:link.py

示例8: test

def test():
	#print "Output: %s value: %s" % (numOutput, value)
	ser = serial.Serial(PORT, BAUD_RATE)

	# ZB XBee here. If you have Series 1 XBee, try XBee(ser) instead
	xbee = ZigBee(ser)

	#MAC, number written on the back of the XBee module
	# CO1 = my coordinator
	# EP1 = my endpoint with 2 outputs. D12(UP) y D11(DOWN)
	device = {
		'CO1': '\x00\x13\xA2\x00\x40\xA0\xD4\xA3',
		'EP1': '\x00\x13\xa2\x00\x40\x99\x2e\x62'
	}
	#64 bit address

	xbee.remote_at(dest_addr_long = device['EP1'], command = 'P1', parameter = '\x05')
	sleep(1)
	xbee.remote_at(dest_addr_long = device['EP1'], command = 'P1', parameter = '\x04')
	sleep(1)
	xbee.remote_at(dest_addr_long = device['EP1'], command = 'P2', parameter = '\x05')
	sleep(1)
	xbee.remote_at(dest_addr_long = device['EP1'], command = 'P2', parameter = '\x04')
	sleep(1)
	ser.close()
开发者ID:oscargomezf,项目名称:xbeeo2,代码行数:25,代码来源:xbeeo2.py

示例9: test_readall

 def test_readall(self):
     port = serial.Serial('/dev/ttyUSB0', 38400)
     xbee_device = ZigBee(port)
     self.settings.bind(xbee_device)
     read_settings = self.settings.read_all()
     #TODO: clearly we need to allow for other versions, etc.
     self.assertEqual(read_settings['Version'], '21A7 Coord(API)')
     #TODO: and this needs to be configurable
     self.assertEqual(read_settings['PAN ID'], '000000000BADFACE')
     xbee_device.halt()
     port.close()
开发者ID:alflanagan,项目名称:pyxbee,代码行数:11,代码来源:test_settings.py

示例10: main

def main():
    '''After parsing arguments , it instantiates an
    asynchronous dispatcher which creates a new thread
    for every packet that arrives.
    '''

    # Argument parsing
    parser = ArgumentParser(description='Receives data from any number or XBee routers in API mode using Direct I/O and then uploads this information to Cosm.')
    parser.add_argument('--debug', help='prints everything that the coordinator receives', action='store_true', default=False)
    parser.add_argument('device_file', help='where the zigbee cordinator is connected', action='store')
    parser.add_argument('baud_rate', action='store', type=int)
    args = vars(parser.parse_args())


    # Serial connection with the XBee
    try:
        ser = Serial(args['device_file'], args['baud_rate'])
    except SerialException as s:
        print 'Connection with the XBee could not be established... Exiting.'
        exit()
    print 'Listening on', args['device_file'], '...\n'


    # Asynchronous dispatcher
    dispatch = ZBDispatch(ser)
    dispatch.register(
        'direct_io',
        direct_io_handler,
        lambda packet: packet['id']=='rx_io_data_long_addr',
        args['debug']
    )
    dispatch.register(
        'io_data',
        xbee_arduino_handler,
        lambda packet: packet['id']=='rx',
        args['debug']
    )

    zb = ZigBee(ser, callback=dispatch.dispatch, escaped=True)


    # Main loop
    while True:
        try:
            sleep(.1)
        except KeyboardInterrupt as k:
            print '\nCTRL+C received. Exiting.'
            break


    # Close XBee connection
    zb.halt()
    ser.close()
开发者ID:Muminur,项目名称:open-sensor-network,代码行数:53,代码来源:server.py

示例11: __init__

class RemLight:
    def __init__(self, dev, dest_addr_long, dest_addr='\xFF\xFE'):
        self._serial = serial.Serial(dev, 9600)
        self._dest_addr_long = dest_addr_long
        self._dest_addr = dest_addr
        self._xbee = ZigBee(self._serial)

    def _sendByteArray(self, ba):
        data = ''
        for b in ba:
            data += chr(b)
        self._xbee.send('tx', data=data, 
                         dest_addr_long=self._dest_addr_long, 
                         dest_addr=self._dest_addr)

    def _constrain(self, color, max=100):
        if color < 0:
            color = 0
        elif color > max:
            color = max
        return color

    def setColor(self, red, green, blue):
        cmd = [CMD_SET_COLOR, 
               self._constrain(red), 
               self._constrain(green), 
               self._constrain(blue)]
        self._sendByteArray(cmd)

    def crossfade(self, colors):
        size = 0
        data = []
        for c in colors:
            data.append(self._constrain(c[0]))
            data.append(self._constrain(c[1]))
            data.append(self._constrain(c[2]))
            size += 3
        cmd = [CMD_CROSSFADE] + data
        self._sendByteArray(cmd)

    def setCrossfadeWait(self, value):
        value = self._constrain(value, max=65535)
        cmd = [CMD_SET_CROSSFADE_WAIT, 
               value / 255, value % 255]
        self._sendByteArray(cmd)

    def setCrossfadeHold(self, value):
        value = self._constrain(value, max=65535)
        cmd = [CMD_SET_CROSSFADE_HOLD, 
               value / 255, value % 255]
        self._sendByteArray(cmd)
开发者ID:jrmcdan,项目名称:Arduino,代码行数:51,代码来源:RemLight.py

示例12: run

 def run(self):
     stop = False
     ser = serial.Serial(PORT, BAUD_RATE)
     xbee = ZigBee(ser)
     i = 0
     count = 0
     while(True):
         response = xbee.wait_read_frame()
         parsed = self.parse(response)
         if(self.parse(response) != None):
             if(len([x for x in parsed.fftMags if(x == 0)]) == len(parsed.fftMags)):
                 count+= 1
                 print("TOTAL NONZEROS THUS FAR: " + str(count))
             else:
                 data_queue.append(parsed)
     ser.close
开发者ID:reicruz,项目名称:iot-shm,代码行数:16,代码来源:gatewayMain.py

示例13: ReceiverProcess

class ReceiverProcess(\
        process.BaseProcess,
        xbeeparser.XBeeApiFrameBaseParser):
    '''
    Base class of process to receive data from XBee ZB.
    There should be only one instance against one XBee coordinator.
    '''
    def __init__(self, port='/dev/ttyAMA0', baurate=9600, log_level=logging.INFO):
        '''Initialize XBee instance with serial port and baurate.
           The baurate should be set to same value with XBee module.
        '''
        self._logger = logging.getLogger(type(self).__name__)
        self._logger.setLevel(log_level)

        process.BaseProcess.__init__(self, log_level=log_level)
        xbeeparser.XBeeApiFrameBaseParser.__init__(self, log_level=log_level)

        self._port = port
        self._baurate = baurate

    def _init_xbee(self):
        '''
        _init_xbee: None -> None

        This method should be called in run() of child process.
        '''
        def receive_frame(api_frame):
            for monitor in self._monitors:
                addr = self.get_source_addr_long(api_frame)
                if addr == monitor.get_monitoring_address():
                    monitor.post_data_to_service(api_frame)

        self._ser = serial.Serial(self._port, self._baurate)
        self._xbee = ZigBee(self._ser, escaped=True, callback=receive_frame)

    def _terminate(self):
        '''
        _terminate: None -> None

        Wait and join all thread and process.
        '''
        # halt() must be called before closing the serial
        # port in order to ensure proper thread shutdown
        self._xbee.halt()
        self._ser.close()

        process.BaseProcess._terminate(self)
开发者ID:dodo5522,项目名称:home-automation,代码行数:47,代码来源:xbeereceiver.py

示例14: collect_from_zigbee

def collect_from_zigbee(target, stream_id, device=DEFAULT_SERIAL_DEVICE, baud_rate=DEFAULT_BAUD_RATE):
    """Synchronously read from the serial port to target

    target can either be the URL of a couchdb server or a restkit resource
    instance.
    """
    from xbee import ZigBee

    if not hasattr(target, "post"):
        target = Resource(target)

    serial_device = serial.Serial(device, baud_rate)
    headers = {"Content-Type": "application/json"}
    if stream_id is None:
        stream_prefix = ""
    else:
        stream_prefix = stream_id + "_"
    try:
        xbee = ZigBee(serial_device, escaped=True)
        # Continuously read and print packets
        while True:
            try:
                response = xbee.wait_read_frame()
                now = datetime.datetime.utcnow()
                timestamp = now.replace(microsecond=0).isoformat() + "Z"
                logging.debug(response)
                samples = response.get("samples", [])
                for sample in samples:
                    for sensor_id, sensor_value in sample.iteritems():
                        target.post(
                            headers=headers,
                            payload=json.dumps(
                                {
                                    # TODO: use a mapping mechanism instead of stream_id
                                    # prefix
                                    "datastream_id": stream_prefix + sensor_id,
                                    "value": sensor_value,
                                    "timestamp": timestamp,
                                }
                            ),
                        )

            except KeyboardInterrupt:
                break
    finally:
        serial_device.close()
开发者ID:ogrisel,项目名称:instrumentalist,代码行数:46,代码来源:collect.py

示例15: __init__

 def __init__(self, port):
     self.xb = ZigBee(port,callback=self.xbee_callback,escaped=True,start_callback=self.start_callback)
     try:
         self.xb.start()
     except Exception:
         # TODO: check the real exception threading throws up
         pass
     self.discover_nodes()
开发者ID:HelsinkiHacklab,项目名称:partyhatwork,代码行数:8,代码来源:handler.py


注:本文中的xbee.ZigBee类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。