Python 2.7 接收不工作的代码XBee python

Python 2.7 接收不工作的代码XBee python,python-2.7,embedded-linux,xbee,zigbee,Python 2.7,Embedded Linux,Xbee,Zigbee,使用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&g

使用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()
下面是接收器代码(路由器)

导入时间
从xbee导入xbee
导入序列号
PORT=“/dev/ttyUSB1”
波特率=9600
def字节2hex(byteStr):
返回“”
def解码接收帧(数据):
源地址=byte2hex(数据['source\u addr'])
xbee_id=数据['id']
射频数据=数据['射频数据']
options=byte2hex(数据['options'])
返回[源地址、xbee\U id、rf\U数据、选项]
#在接收端打开串行端口
远程=串行。串行(端口,波特率)
#xbee对象API=2
远程_xbee=xbee(远程,转义=True)
尽管如此:
尝试:
打印“是的,我在这里”
数据=远程\u xbee.wait\u read\u frame()
打印“数据>>>”,数据
decoderdata=decodereceivedFrame(数据)

打印“收到的数据发现问题,我的错--

  • 发送方=ZigBee(发送方\端口,转义=True)
  • sender.send('tx',frame_id='A',dest_addr=“\x5E\x71”,dest_addr\u long=“\x00\x13\xA2\x00\x40\xD9\x6F\xE5”,data=“Hello”)
  • 现在可以工作了!!!:)

    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()