2014-11-17 4 views
2

먼저 AT 모드에서 2 개의 XBee (시리즈 2) 통신을 테스트했으며 모두 올바르게 작동했습니다.API 모드에서 2 개의 Xbee - Python

그런 다음 라우터가 AT 모드 인 동안 코디네이터를 API 모드로 변경하고 아래 스크립트를 실행했습니다. 나는 성공했고 라우터 메시지를 받았다. 그러나 라우터를 API 모드로 설정하고 코디네이터에게 메시지를 보낼 수 없습니다. 간단한 명령을 보낼 수 있는지 또는 주소를 지정해야하는지 또는 fames를 형식화해야하는지 잘 모르겠습니다.

각 xbee는 PC에 연결됩니다. 나는 파이썬 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

어떻게

+0

많은 도움이됩니다. API 모드에서 대칭 키를 설정하는 방법에 대해 알고 있습니까? – loreb

+0

Xctu에서 설정할 암호화 키 값이 있어야합니다. – Thanatheos

+1

X-CTU 또는 "AT Command"프레임 (유형 0x08)을 사용하여'ATKY'를 설정할 수 있습니다. – tomlogic

1

API 모드는 장치가 코디네이터로 구성되어 있는지 여부를 동일하게 작동 API 의사 소통이 웹 사이트 쇼에서 의사 소통을하는 데 도움이되는 몇 가지 라이브러리가있다, 라우터 또는 최종 장치. 라우터가 항상 조정자에게 데이터를 보내면 API 모드에서 실행할 필요가 없습니다. DHDL0으로 설정하여 AT 모드로 유지하면됩니다. 시리얼 포트에 들어오는 모든 데이터를 포함하는 프레임을 코디네이터에게 자동 전송합니다.

라우터에서 API 모드를 사용해야하는 경우 코디네이터에서 이미 사용중인 python-xbee 라이브러리 만 사용하면됩니다.

관련 문제