接收代码不能正常工作XBee python

问题描述 投票:0回答:1

使用X-CTU配置两个xbee pro s2b,一个作为协调器,另一个作为路由器,API = 2,波特率为9600.发送者代码(协调器)如下:

import time
from xbee import XBee
import serial

PORT = "/dev/ttyUSB0"
BAUDRATE = 9600

#open serial port
sender_port = serial.Serial(PORT, BAUDRATE)
print "serial port object>>>", sender_port

#xbee object API=2
sender = XBee(sender_port,escaped=True)

#address of the remote xbee to which data is to sent
ADDRESS = "\x00\x13\xA2\x00\x40\xD9\x6F\xE5"

#send data using the tx_long_addr
while True:
    try:
        print "sending data..."
        sender.tx_long_addr(frame_id='A', dest_addr=ADDRESS, data="hello")
        time.sleep(1)

    except KeyboardInterrupt:
        break


sender.halt()
sender_port.close()

下面是接收者代码(路由器)

import time
from xbee import XBee
import serial

PORT = "/dev/ttyUSB1"
BAUDRATE = 9600

def byte2hex(byteStr):
     return ''.join(["%02X" % ord(x) for x in byteStr]).strip()

def decodereceivedFrame(data):
     source_address = byte2hex(data['source_addr'])
     xbee_id = data['id']
     rf_data = data['rf_data']
     options = byte2hex(data['options'])
     return [source_address, xbee_id, rf_data, options]

#open serial port at receiving end
remote = serial.Serial(PORT, BAUDRATE)

#xbee object API=2
remote_xbee = XBee(remote, escaped=True)

while True:
    try:
       print "yes i m here"
       data = remote_xbee.wait_read_frame()
       print "data >>>", data
       decoderdata = decodereceivedFrame(data)
       print "data received<<<<", decoderdata

    except KeyboardInterrupt:
       break

remote_xbee.halt()
remote.close()

但是在执行接收器代码时,没有任何反应,它不会打印收到的消息。在X-CTU上正在传输和接收帧而没有任何错误,我在代码中做错了什么。请指导。谢谢

python-2.7 embedded-linux xbee zigbee
1个回答
0
投票

发现问题,我的错----

  1. sender = ZigBee(sender_port,escaped = True)
  2. sender.send('tx',frame_id ='A',dest_addr =“\ x5E \ x71”,dest_addr_long =“\ x00 \ x13 \ xA2 \ x00 \ x40 \ xD9 \ x6F \ xE5”,data =“Hello”)

现在工作.. !!! :)

© www.soinside.com 2019 - 2024. All rights reserved.