2014-07-10 4 views
1

내 Arduino 프로그래밍에 문제가 있습니다. 두 개의 XBee Series 2 모듈과 Arduino UNO가 있습니다. XBee-API 라이브러리는 에서 사용합니다. 원격 Sleepy 노드의 디지털 핀을 제어하기 위해 3 개의 RemoteATRequest 패킷 (0x17)을 생성하고 SoftwareSerial에서 Sparkfun XBee Arduino Shield (https://www.sparkfun.com/products/10854)를 통해 Arduino UNO에 연결되는 XBee 코디네이터로 전송합니다. 통신 잘 작동합니다. 모든 요청 패킷은 원격지로 전송됩니다. 그리고 모든 요청 패킷에 대해 원격 패킷이 수신됩니다. 직렬 모니터 및 RS232 < -> TTL 변환기를 사용하여 이것을 점검했습니다. 하지만 내 Arduino 소프트웨어에서는 Remote Packet이 하나만 수신되는 것으로 보입니다. 호기심은 리모컨이 자고있는 시간에 요청 패킷을 보낼 때 깨어서 코디네이터의 요청을받는 경우 세 개의 응답을 읽었다는 점입니다.XBee Arduino API 원격 명령 응답

누구나 똑같은 문제를 시도합니까? 다른 Baudrate를 알기 전까지는 많은 노력을했습니다. 아무것도 작동하지 않습니다.

답변

0

ZigBee 및/또는 802.15.4를 기억하면 슬리피 엔드 디바이스의 부모 노드가 졸린 디바이스가 깨어 난 경우를위한 단일 프레임 만 대기/대기열에 보관한다는 것입니다. 그리고 ZigBee에서는 7.5 초 동안 큐잉이 보장됩니다. 한 번에 하나의 원격 AT 요청을 보내고 응답을 기다리기 전에 코드를 수정해야 할 수 있습니다. 프레임이 조립되면

, 그것을 보낼 수있는 방법은 두 가지 사실이 있습니다 :

This page는 MAC 계층의 작동 방식에 대한 좋은 설명이있다. 수신자가 인 다른 라우터 또는 최종 장치로 이동하는 경우 프레임이 라디오를 통해 직접 전송됩니다. 그렇지 않은 경우 대상이 슬리피 엔드 장치 인 경우 프레임은 간접 전송으로 이 전송되어야합니다. 프레임은 대상 장치가 깨어나서 부모를 폴링 할 때까지 간접 대기열 으로 이동합니다. 폴링이 수신되면 프레임이 목적지로 전송됩니다. XBee 모듈은 AT 명령을 여러 개 포함 된 프레임 유형을 지원하는 경우

그것은 좋은 것입니다,하지만 지금까지 내가 말할 수있는, 즉 옵션을 선택하지 않습니다.