XBee Arduino API Remote At Command Response

У меня проблемы с программированием моего Arduino. У меня есть два модуля XBee Series 2 и Arduino UNO. Я использую библиотеку XBee-API из: http://code.google.com/p/xbee-api/. Я генерирую три пакета RemoteATRequest (0x17) для управления цифровым выводом удаленного спящего узла и отправляю его из SoftwareSerial координатору XBee, который подключен через Sparkfun XBee Arduino Shield (https://www.sparkfun.com/products/10854) на Arduino UNO. Связь работает нормально. Каждый пакет запроса отправляется на удаленное устройство. И для каждого пакета запроса принимается удаленный пакет. Я проверил это с помощью последовательного монитора и преобразователя RS232‹-> TTL. Но в моем программном обеспечении Arduino кажется, что получен только один удаленный пакет. Любопытно, что когда я отправляю пакеты запросов в то время, когда удаленный спит, я читаю три ответа, если он бодрствует и принимает запросы от координатора.

Кто-нибудь пробовал то же самое или имеет те же проблемы? Я так много пробовал, пока не узнал другую скорость передачи данных, задержки перед отправкой. Ничего не работает.


person user3824388    schedule 10.07.2014    source источник


Ответы (1)


Насколько я помню, ZigBee и/или 802.15.4 заключаются в том, что родительский узел для спящего конечного устройства будет удерживать/ставить в очередь только один кадр, когда спящее устройство просыпается. И обратите внимание, что в ZigBee он гарантированно ставится в очередь только на 7,5 секунды. Возможно, вам придется изменить свой код, чтобы отправлять один запрос Remote AT за раз и ждать ответа, прежде чем отправлять другой.

На этой странице есть хорошее описание того, как уровень MAC работает:

После того, как рама собрана, есть два способа отправить ее. Если он идет к другому маршрутизатору или конечному устройству, приемник которого всегда включен, кадр будет отправлен напрямую через радио. В противном случае, если получателем является спящее конечное устройство, кадр необходимо будет отправить в виде непрямой передачи. Кадр будет помещаться в косвенную очередь до тех пор, пока целевое устройство не проснется и не опросит родителя. Как только придет опрос, кадр будет отправлен в пункт назначения.

Было бы здорово, если бы модуль XBee поддерживал тип фрейма, который содержит несколько AT-команд, но, насколько я могу судить, это не вариант.

person tomlogic    schedule 10.07.2014