Как в XBee ZigBee получить RSSI всех конечных устройств от координатора

Как правильно получить RSSI для каждого конечного устройства?

Сценарий: Использование прошивки ZigBee на радиомодулях XBee Series 2, режим API, у меня один координатор и несколько конечных устройств. Каждые несколько секунд каждое конечное устройство отправляет координатору пакет, содержащий информацию датчика, такую ​​как температура...

  1. Я не вижу поля RSSI ни в одном кадре API для анализа.

  2. Если я просто вслепую прочитал контакт 6 (или с помощью команды БД), в котором хранится RSSI последнего полученного пакета, я все равно не знаю, какому конечному устройству принадлежит этот RSSI.


person Tina Tran    schedule 16.12.2015    source источник
comment
Привет. Используете ли вы микроконтроллер на координаторе? линуксовый терминал? Вы пользуетесь библиотекой? вы можете получить эту информацию с помощью некоторой базовой функции из библиотеки Xbee :)   -  person Thanatheos    schedule 16.12.2015
comment
Я использую Galileo/Linux на координаторе и библиотеку XBee C github.com/digidotcom/xbee_ansic_library. Я вижу, что люди используют функцию getRSSI() в Arduino, но я не использую Arduino.   -  person Tina Tran    schedule 16.12.2015


Ответы (1)


Я не верю, что это поле доступно в любом из фреймов API, которые вы собираетесь получать. Вы можете использовать команду ATDB для получения значения RSSI, но, как вы заявляете, вы не знаете, с каким удаленным устройством оно связано.

Если вы действительно используете конечные устройства (а не маршрутизаторы), вы можете отправить удаленную команду ATDB каждому, и ответ даст вам указание уровня сигнала от родительского маршрутизатора конечного устройства, поскольку все кадры будут поступать с этого единственного устройства (как последний переход).

Даже с маршрутизатором вы, вероятно, гарантированно получите значение RSSI кадра удаленного AT-запроса, хотя вы не будете знать, какое радио в ячеистой сети было последним переходом к вашей цели.

Если у вас есть сеть координатора и конечных устройств, то координатор является родителем, и вы будете иметь представление о том, насколько хорошо конечные устройства могут принимать данные — этого может быть достаточно для вашего приложения.

person tomlogic    schedule 17.12.2015
comment
разве он не использует функцию getRSSI(), когда получает пакет от координатора? - person Thanatheos; 18.12.2015
comment
Как работает функция getRSSI()? Как указано в комментарии к вопросу, это функция библиотеки Arduino, которая недоступна в используемой библиотеке. И, согласно документации API Frame, это поле кадров RX16 и RX64 установлено в 0 для прошивки ZigBee (XBee Series 2). - person tomlogic; 18.12.2015
comment
О, хорошо, спасибо за информацию ^^ Я видел несколько документов, которые используют RSSI в S2, чтобы попробовать локализацию конечного устройства. Я проверю позже, потому что я запутался - person Thanatheos; 18.12.2015