![]() |
MBee Arduino library
|
Основной интерфейс для связи с радиомодулями MBee всех серий. Подробнее...
#include <MBee.h>
Открытые члены | |
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 с целью экономии ресурсов микроконтроллера.
|
pure virtual |
Чтение всех байт, имеющихся в приемном буфере UART.
Выполняется до тех пор, пока пакет не будет разобран полностью, не опустошится буфер или не произойдет какая-либо ошибка. Вы можете вызывать MBee.getResponse().isAvailable() после вызова этой функции, для того, чтобы определить был ли принят пакет. Для получения информации об ошибках при приеме пакета пользуйтесь методом MBee.getResponse().isError().
Функция работает быстро, потому что не ждет получения данных по UART, а работает с байтами, имеющимися в буфере на момент вызова.
ВНИМАНИЕ! Вызов этой функции очищает буфер принятого сообщения, следовательно перед ее вызовом предыдущее сообщение должно быть полностью обработано. Метод является чисто виртуальным (pure virtual), поэтому используется присваивание = 0;
Замещается в SerialStar и MB_ZigBee.
|
pure virtual |
Ожидает приема пакета от модуля в течение timeout миллисекунд.
Возвращает true, если пакет принят и false, если заданный интервал истек. Метод является чисто виртуальным (pure virtual), поэтому используется присваивание = 0;
Замещается в SerialStar.
|
pure virtual |
Ожидает приема пакета до тех пор, пока он не будет получен или не произойдет какая-либо ошибка.
ВНИМАНИЕ! Использовать эту функцию следует осторожно, поскольку Ардуино может зависнуть, если пакет (с ошибками или без) так и не будет принят. Метод является чисто виртуальным (pure virtual), поэтому используется присваивание = 0;
Замещается в SerialStar.
|
pure virtual |
Передача данных модулю или удаленному узлу.
Формат пакета зависит от типа объекта (программного обеспечения модуля). См. справку по поддерживаемым методам для конкретного проекта (SerialStar, MB-ZigBee и т.д). Метод является чисто виртуальным (pure virtual), поэтому используется присваивание = 0;
Замещается в SerialStar.
void MBee::setSerial | ( | Stream & | serial | ) |