2014-11-17 61 views
2

首先,我測試了AT模式下2個XBee(系列2)的通信,並且都正常工作。API模式下的兩個Xbee - Python

然後,我將協調器更改爲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中的路由器工作?我想要做的就是從路由器發送消息到協調器。

回答

0

要在API模式下通信,您必須發送幀。

一個框架由頁眉和頁腳組成。

有一些庫,幫助您在API

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

這個網站告訴你如何在API溝通

+0

這有助於很多!你知道在API模式下設置對稱密鑰的一切嗎? – loreb

+0

在Xctu中,您必須具有要設置的加密密鑰值。 – Thanatheos

+1

您可以使用X-CTU或「AT命令」框架(類型0x08)設置ATKY。 – tomlogic

1

API模式的工作原理相同的設備是否被配置成協調溝通,路由器或終端設備。如果您的路由器始終向協調器發送數據,則無需在API模式下運行數據 - 只需將其保持在AT模式下即可,其中DHDL設置爲0。它會自動發送幀到協調器,包含串口上的所有數據。

如果您出於某種原因需要在路由器上使用API​​模式,只需使用您已在協調器上使用的python-xbee庫。