【发布时间】:2015-08-25 15:44:08
【问题描述】:
我正在尝试使用 python 获取 XBee 网络(API 模式)的数据,因此我正在使用 python-xbee 库和 AT 'ND' 命令来尝试发现所有 XBee 单元(我将将我的代码粘贴到下面的 ND 命令中):
#!/usr/bin/python
from xbee import ZigBee
import serial
ser = serial.Serial('COM7', 9600)
xbee = ZigBee(ser)
xbee.at(command='ND')
xbeeAddrs = []
while True:
try:
newXBeeR = xbee.wait_read_frame()
print newXBeeR
xbeeAddrs.append(newXBeeR['parameter']['source_addr_long'])
except KeyboardInterrupt:
break
ser.close()
但是没有响应消息并且代码在等待一帧时挂起。
对于最简单的测试,我有一个 XBee Router API 板连接到具有 7 段显示器的 Arduino Uno,还有一个 XBee Coordinator API 板使用 sparkfun uart 板连接到计算机。
其他 AT 命令正常工作,但是我需要在发送命令之前发现所有可能的 XBee 路由器单元。如果我使用 X-CTU 软件,发现功能可以完美运行...
我能做什么? 非常感谢,
更新:
在 cmets 中求解...
【问题讨论】:
-
#!/usr/bin/python和ser = serial.Serial('COM7', 9600)在同一个脚本中?您创建了一个符号链接(用于 /dev/ttyXXX)?你的操作系统是什么?您在草图中定义任何端口(串行)? -
您无法仅使用 2 个参数进行连接。阅读:knowledge.digi.com/articles/Knowledge_Base_Article/… 其中奇偶校验、停止位等设置
-
如果您阅读。我将删除消息。因为不是你的正确答案。或者检查你的扫描程序串行参数!
-
感谢 SDilmac,对于同一脚本中的
#!/usr/bin/python和ser = serial.Serial('COM7', 9600),这是由于测试原因,而 Node Discover 无法正常工作。我已经检查了您的链接,但是 在我看来没有什么可以帮助我:( -
正确的 COM 端口和波特率?开发板是否处于 API 模式 (
ATAP=1)?