모드 API 2에서 두 개의 XBee Series 2 설정이 있습니다. 하나는 컨트롤러로 설정되고 다른 하나는 끝 노드로 설정됩니다. 끝 노드는 arduino에 연결되어 있으며 지금은 아날로그 센서의 가치를 취하여 보내고 있습니다.패킷 수신을 시도 할 때 XBee 시리즈 2가 멈추고 시간 초과 됨
지금 X-ctu를 통해 XBees를 실행하면 모든 것이 작동합니다. 새 버전에서는 컨트롤러 모듈을 USB 탐색기에 추가합니다. 그런 다음 다른 네트워크 장치를 검색하는 장치의 가운데 단추를 클릭하십시오. 그런 다음 콘솔 모드를 클릭하십시오. 연결 버튼을 클릭하면 즉시 "수신 패킷"수신을 시작합니다. 프레임 세부 정보를 살펴본 후 모든 것이 순서대로 이루어집니다.
xbee-api 자바 라이브러리 또는 python-xbee 라이브러리를 사용하려고하는 순간 문제가 발생하기 시작합니다. 내가 사용하고있는 코드는 예제에서 완전히 복사 한 복사본입니다 (작업하기에 완벽하게 합리적인 것처럼 보입니다). 다음은 파이썬 코드의 예입니다 (Windows 및/dev에/ttyUSB1 장치에 미치는 COM3가. 두 운영체제가 같은 문제가 있습니다.)
from xbee import XBee
import serial
s = serial.Serial('COM3', 9600)
xbee = XBee(s)
while True:
try:
response = xbee.wait_read_frame()
print(response)
except KeyboardInterrupt:
break
s.close()
응용 프로그램은 xbee.wait_read_frame에 달려(). Java 코드는 코드가 결국 "sendAtCommand (new AtCommand ("AP ")) 줄에 도착할 때 Xbee.open()을 호출 할 때와 동일한 방식으로 작동합니다." (또는 sendSynchronous 대안을 사용하여). 메서드가 타임 아웃 해, 예외를 Throw합니다.
이 시점에서 나는 다음에 어디로 갈지 전혀 모른다. XCTU 내부에서 작동하지만 API는 포함하지 않습니다. 두 가지를 함께 연결하기 위해 wait_read_frame 전에해야 할 일이 더 있습니까? (나는 그들이 동일한 팬 ID를 가지고 있기 때문에 그렇지 않은 것으로 간주합니다. 사실 펌웨어 이외의 모든 설정은 동일합니다)
어떤 도움을 주셔서 감사합니다!
당신이 API 모드 2의 두 라이브러리를 구성? 그것들은 모드 1을 디폴트로하고있을 수도 있습니다. – tomlogic
두가지가 모두 모드 2에 있다고 체크했습니다. – Mike
XBee 객체를 생성 할 때 파이썬 예제에 이스케이프 된 파라미터가 포함되지 않습니다 :'xbee = XBee (s, escaped = 사실)'. Java 라이브러리는 사용자가 특별히 구성하지 않는 한'ATAP = 1 '을 기대할 수도 있습니다. 'ATAP = 2'를 사용해야 만하지 않는 한,'ATAP = 1'로 전환하면 코드가 제대로 작동하는지 알 수 있습니다. – tomlogic