MBee Arduino library
Открытые члены | Открытые атрибуты | Полный список членов класса
Класс MBeeabstract

Основной интерфейс для связи с радиомодулями MBee всех серий. Подробнее...

#include <MBee.h>

Граф наследования:MBee:
MBee2400 MBee868 MB_ZigBee SerialStar SerialStarWithCallbacks

Открытые члены

virtual void readPacket ()=0
 Чтение всех байт, имеющихся в приемном буфере UART. Подробнее...
 
virtual bool readPacket (int timeout)=0
 Ожидает приема пакета от модуля в течение timeout миллисекунд. Подробнее...
 
virtual void readPacketUntilAvailable ()=0
 Ожидает приема пакета до тех пор, пока он не будет получен или не произойдет какая-либо ошибка. Подробнее...
 
virtual void send (void *)=0
 Передача данных модулю или удаленному узлу. Подробнее...
 
void begin (Stream &serial)
 Инициализирует соединение с радиомодулем на заданном COM-порте.
 
void setSerial (Stream &serial)
 Назначает последовательный порт. Подробнее...
 
bool available ()
 Проверяет наличие принятых данных в буфере UART.
 
uint8_t read ()
 Считывает 1 байт из входного буфера UART.
 
void write (uint8_t val)
 Передает 1 байт по UART.
 

Открытые атрибуты

Stream * _serial
 

Подробное описание

Основной интерфейс для связи с радиомодулями MBee всех серий.

Содержит функции для отправки и приема пакетов по радио через UART интерфейс. Необходимо, чтобы модуль находился в пакетном режиме UART как на прием, так и на передачу.

Код исполняется микроконтроллером в одном потоке, поэтому необходимо, чтобы чтение данных из буфера выполнялась бы со скоростью, превыщающей их поступление от модуля. В противном случае будет иметь место потеря данных. Поскольку Ардуино имеет длину приемного буфера всего 128 байт, его могут переполнить всего 2 эфирных пакета. Во избежание этого пользователь библиотеки должен самостоятельно определить период вызова функций, выполняющих чтение приемного буфера UART таких как readPacket(...).

С целью экономии ресурсов микроконтроллера Arduino, библиотека поддерживает хранение только одного принятого пакета в каждый момент времени. Это означает, то скетч должен полностью обработать предыдущий пакет, прежде чем вызывать очередную функцию чтения readPacket(...).

Размер памяти для хранения принятого пакета определяется константой MAX_FRAME_DATA_SIZE, которая зависит от программного обеспечения, загруженного в радиомодуль. Эта константа соответствует максимально возможной длине пакета от модуля. Если в Вашем проекте используются пакеты с длиной меньше максимальной, то Вы можете точно настроить значение константы MAX_FRAME_DATA_SIZE с целью экономии ресурсов микроконтроллера.

Автор
von Boduen. Special thanx to Andrew Rapp.

См. определение в файле MBee.h строка 114

Методы

◆ readPacket() [1/2]

virtual void MBee::readPacket ( )
pure virtual

Чтение всех байт, имеющихся в приемном буфере UART.

Выполняется до тех пор, пока пакет не будет разобран полностью, не опустошится буфер или не произойдет какая-либо ошибка. Вы можете вызывать MBee.getResponse().isAvailable() после вызова этой функции, для того, чтобы определить был ли принят пакет. Для получения информации об ошибках при приеме пакета пользуйтесь методом MBee.getResponse().isError().

Функция работает быстро, потому что не ждет получения данных по UART, а работает с байтами, имеющимися в буфере на момент вызова.

ВНИМАНИЕ! Вызов этой функции очищает буфер принятого сообщения, следовательно перед ее вызовом предыдущее сообщение должно быть полностью обработано. Метод является чисто виртуальным (pure virtual), поэтому используется присваивание = 0;

Замещается в SerialStar и MB_ZigBee.

◆ readPacket() [2/2]

virtual bool MBee::readPacket ( int  timeout)
pure virtual

Ожидает приема пакета от модуля в течение timeout миллисекунд.

Возвращает true, если пакет принят и false, если заданный интервал истек. Метод является чисто виртуальным (pure virtual), поэтому используется присваивание = 0;

Замещается в SerialStar.

◆ readPacketUntilAvailable()

virtual void MBee::readPacketUntilAvailable ( )
pure virtual

Ожидает приема пакета до тех пор, пока он не будет получен или не произойдет какая-либо ошибка.

ВНИМАНИЕ! Использовать эту функцию следует осторожно, поскольку Ардуино может зависнуть, если пакет (с ошибками или без) так и не будет принят. Метод является чисто виртуальным (pure virtual), поэтому используется присваивание = 0;

Замещается в SerialStar.

◆ send()

virtual void MBee::send ( void *  )
pure virtual

Передача данных модулю или удаленному узлу.

Формат пакета зависит от типа объекта (программного обеспечения модуля). См. справку по поддерживаемым методам для конкретного проекта (SerialStar, MB-ZigBee и т.д). Метод является чисто виртуальным (pure virtual), поэтому используется присваивание = 0;

Замещается в SerialStar.

◆ setSerial()

void MBee::setSerial ( Stream &  serial)

Назначает последовательный порт.

Работает только на платах с несколькими аппаратными UART (Mega и т.п.)

См. определение в файле MBee.cpp строка 50

51 {
52  _serial = &serial;
53 }

Объявления и описания членов классов находятся в файлах: