【问题标题】:Two Xbee in API mode - PythonAPI模式下的两个Xbee - Python
【发布时间】:2014-11-17 06:31:14
【问题描述】:

首先,我在AT模式下测试了2台XBee(2系列)的通信,都正常工作。

然后我将协调器更改为 API 模式并在路由器处于 AT 模式时运行以下脚本。我成功并收到了路由器消息。但是,我无法让路由器处于 API 模式并将消息发送到协调器。我不确定我是否可以只执行简单的发送命令,或者我是否需要指定地址或者是否必须格式化名声。

每个 xbee 都连接到 PC。我正在使用 python 3.4。

API 模式下的协调器接收消息:

连续读取串口并处理从远程 XBee 接收到的 IO 数据。

from xbee import XBee,ZigBee
import serial

ser = serial.Serial('/dev/...', 9600)
xbee = ZigBee(ser)

while True:
    try:
        response = xbee.wait_read_frame()
        print(response)
    except KeyboardInterrupt:
        break
        
ser.close()

有没有其他人做过这个或者知道一个网站可以帮助我解释 API 中的路由器是如何工作的?我要做的就是将消息从路由器发送到协调器。

【问题讨论】:

    标签: api python-3.x router xbee zigbee


    【解决方案1】:

    无论设备配置为协调器、路由器还是终端设备,API 模式的工作方式都相同。如果您的路由器总是向协调器发送数据,则无需在 API 模式下运行它 - 只需将其保持在 AT 模式,并将 DHDL 设置为 0。它会自动向协调器发送帧,其中包含串行端口上的所有数据。

    如果您出于某种原因需要在路由器上使用 API 模式,只需使用您已经在协调器上使用的 python-xbee 库。

    【讨论】:

      【解决方案2】:

      要在 API 模式下进行通信,您必须发送帧。

      框架由页眉和页脚组成。

      有一些库可以帮助您在 API 中进行通信

      http://ftp1.digi.com/support/utilities/digi_apiframes2.htm

      此网站向您展示如何使用 API 进行通信

      【讨论】:

      • 这很有帮助!你知道在 API 模式下设置对称密钥吗?
      • 在 Xctu 中,您必须设置一个加密密钥值。
      • 您可以使用 X-CTU 或“AT 命令”帧(类型 0x08)设置ATKY
      • 我将在 C 中调用一个函数来生成那个密钥,我的对称密钥,所以我不能在 X-CTU 中预先配置它。这个项目是针对我的安全类的,目标是使用 ECC 加密密钥交换对每个 xbee 进行身份验证。
      • “AT 命令”是可以从 Tx、Rx 引脚调用的内部指令。事实上,这就像说我的密钥直接指向 Xbee 而不运行 Xctu。 Xctu 只是一个设置 Xbee 的界面,但您可以编写自己的程序来完成它:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多