2016-02-03 2 views
-1

Сконфигурирован два Xbee про s2b с помощью X-CTU, один в качестве координатора и других в качестве маршрутизатора, API = 2, скорость передачи данных, как 9600. Код отправителя (координатор), как показано ниже:Получить код не работает XBee Python

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 передаются и принимаются без ошибок, я делаю что-то неправильно в коде. Пожалуйста, направляйте. Спасибо

ответ

0

Найдено вопрос, моя вина ----

  1. отправитель = ZigBee (sender_port, избегали = True)
  2. sender.send ('ТХ', frame_id = 'A', dest_addr = "\ x5E \ x71", dest_addr_long = "\ x00 \ x13 \ xÀ2 \ x00 \ x40 \ xD9 \ x6F \ xe5", данные = "Hello")

теперь работает .. !!! :)

Смежные вопросы