2013-02-12 4 views
2

Я играл с получением XBee, чтобы передать, вверх или вниз кнопка.Режим API Xbee не отправляет цифровые образцы?

Для этого у меня есть провод, выходящий из схемы, подключенной к DIO4 на XBee. Я использовал X-CTU, чтобы установить DIO4 в режим цифрового ввода. Ничто другое не включено.

Теперь датчик XBee передает пакет индикатора Rx индикатора данных ввода-вывода ZigBee. Я использовал книгу «Building Wireless Sensor Networks», чтобы помочь разобрать пакет. Он говорит, что пакет всегда включает в себя аналоговые значения выборки и будет включать только цифровые, если настроен цифровой контакт. Я получаю 21-байтовый пакет обратно, что означает, что цифровой бит-образец не включен. Цифровая маска говорит, что IO4 включен, и все аналоговые входы отключены. Однако, похоже, цифровые значения были помещены в аналоговые образцы.

Это мое замешательство. Почему цифровой образец заполняется аналоговым образцом? Или аналоговый образец просто отсутствует, если аналоговые входы не настроены (вопреки тому, что говорит книга)?

ответ

2

Короткий ответ: Да, в полезной нагрузке есть только аналоговые сэмплы, если бит установлен в маске аналогового канала.

Длинный ответ: XBee S2B documentation описывает детали пакета в разделе Rx Индикатор Sample ZigBee IO Data на странице 114.

В общем, полезная нагрузка начинается с числа образцов (всегда 0х01), то 16-разрядную маску цифрового канала и 8-битную маску аналогового канала. Маски указывают, какие данные следует. Если в маске цифрового канала были установлены какие-либо биты, будет 16-битное значение, содержащее цифровые сэмплы. Затем 16-битное значение для каждого аналогового образца, указанного в маске аналогового канала, от AD0 до AD3, за которым следует напряжение питания.

У Digi's Open Source XBee Host C Library есть код в include/xbee/io.h и src/xbee/xbee_io.c, которые демонстрируют разбор этих кадров.

+0

@tomlogoic: Ааа, я понял это сейчас. Часть, которую я отсутствовала, была 16 бит _ для каждого аналогового образца, а не только для всех. Так как аналоговая маска = 0 и цифровая маска> 0, цифровые образцы были возвращены с последующим _0_ аналоговыми образцами. Спасибо за ссылку на библиотеку Digi, это действительно помогло! –

 Смежные вопросы

  • Нет связанных вопросов^_^