46 void MBeeResponse::setApiId(uint8_t apiId)
56 void MBeeResponse::setMsbLength(uint8_t msbLength)
58 _msbLength = msbLength;
66 void MBeeResponse::setLsbLength(uint8_t lsbLength)
68 _lsbLength = lsbLength;
88 _frameLength = frameLength;
93 _frameDataPtr = frameDataPtr;
103 return ((_msbLength << 8) & 0xff) + (_lsbLength & 0xff);
108 _extendedFieldsLength = length;
113 return _extendedFieldsLength;
123 _extendedFieldsLength = 0;
129 _errorCode = NO_ERROR_IN_FRAME;
137 setCommon(txResponse);
144 setCommon(rxResponse);
158 setCommon(modemStatusResponse);
165 setCommon(atCommandResponse);
179 setCommon(acknowledge);
189 _complete = complete;
194 return _errorCode > 0;
204 _errorCode = errorCode;
221 if((
getApiId() == RECEIVE_PACKET_EXTENDED_API_FRAME) ||\
222 (
getApiId() == RECEIVE_PACKET_NO_OPTIONS_EXTENDED_API_FRAME) ||\
223 (
getApiId() == REMOTE_AT_COMMAND_RESPONSE_EXTENDED_API_FRAME) ||\
224 (
getApiId() == IO_DATA_SAMPLE_EXTENDED_API_FRAME))
323 if(getValueLength() > 0)
332 return getStatus() == OK_COMMAND_STATUS;
422 return (
getOption() & BV(PACKET_WAS_BROADCAST_BIT));
467 return getData()[getSample(number)];
472 return getData()[getSample(number) - 1];
497 uint16_t analog = (
getData()[getSample(number) + 1] << 8) +
getData()[getSample(number) + 2];
505 if(
getData()[getSample(number)] & 0x80)
513 return (
getData()[getSample(number) + 1] << 24) + (
getData()[getSample(number) + 2] << 16) + (
getData()[getSample(number) + 3] << 8) +
getData()[getSample(number) + 4];
519 void RxIoSampleResponse::getNextSample(uint8_t &alias)
521 switch(
getData()[alias] & 0x7F)
526 case IO_DIGITAL_INPUT:
527 case IO_DIGITAL_OUTPUT_LO:
528 case IO_DIGITAL_OUTPUT_HI:
529 case IO_WAKEUP_INPUT_FALLING_EDGE:
530 case IO_WAKEUP_INPUT_RISING_EDGE:
533 case IO_COUNTER_INPUT1:
534 case IO_COUNTER_INPUT2:
540 uint8_t RxIoSampleResponse::getSample(uint8_t number)
575 return(
getOption() & BV(PACKET_ACKNOWLEDGED_BIT));
625 _commandValue = commandValue;
626 _commandValueLength = commandValueLength;
632 _commandValue = commandValue;
633 _commandValueLength = commandValueLength;
643 return _commandValue;
648 return _commandValueLength;
658 _commandValue = value;
663 _commandValueLength = length;
678 return _commandValue[pos - AT_COMMAND_API_LENGTH];
684 _commandValue = NULL;
685 _commandValueLength = 0;
690 return AT_COMMAND_API_LENGTH + _commandValueLength;
696 PayloadRequest::PayloadRequest(uint8_t apiId, uint8_t frameId, uint8_t *payload, uint8_t payloadLength) :
MBeeRequest(apiId, frameId)
698 _payloadPtr = payload;
699 _payloadLength = payloadLength;
709 _payloadPtr = payload;
714 return _payloadLength;
719 _payloadLength = payloadLength;
727 _remoteAddress = BROADCAST_ADDRESS;
729 _applyChanges =
true;
733 _sleepingDevice =
false;
734 setApiId(REMOTE_AT_COMMAND_REQUEST_API_FRAME);
739 _remoteAddress = remoteAddress;
741 _applyChanges =
true;
745 _sleepingDevice =
false;
746 setApiId(REMOTE_AT_COMMAND_REQUEST_API_FRAME);
751 _remoteAddress = remoteAddress;
753 _applyChanges =
true;
757 _sleepingDevice =
false;
758 setApiId(REMOTE_AT_COMMAND_REQUEST_API_FRAME);
761 uint16_t RemoteAtCommandRequest::getRemoteAddress()
763 return _remoteAddress;
766 void RemoteAtCommandRequest::setRemoteAddress(uint16_t remoteAddress)
768 _remoteAddress = remoteAddress;
771 bool RemoteAtCommandRequest::getAcknowledge()
776 void RemoteAtCommandRequest::setAcknowledge(
bool acknowledge)
778 _acknowledge = acknowledge;
781 bool RemoteAtCommandRequest::getApplyChanges()
783 return _applyChanges;
786 void RemoteAtCommandRequest::setApplyChanges(
bool applyChanges)
788 _applyChanges = applyChanges;
791 bool RemoteAtCommandRequest::getSaveChanges()
796 void RemoteAtCommandRequest::setSaveChanges(
bool saveChanges)
798 _saveChanges = saveChanges;
801 bool RemoteAtCommandRequest::getCca()
806 void RemoteAtCommandRequest::setCca(
bool cca)
811 bool RemoteAtCommandRequest::getEncryption()
816 void RemoteAtCommandRequest::setEncryption(
bool encryption)
818 _encryption = encryption;
821 bool RemoteAtCommandRequest::getSleepingDevice()
823 return _sleepingDevice;
826 void RemoteAtCommandRequest::setSleepingDevice(
bool sleepingDevice)
828 _sleepingDevice = sleepingDevice;
835 return (_remoteAddress >> 8) & 0xff;
839 return _remoteAddress & 0xff;
843 return ((_acknowledge ? 0: BV(ACKNOWLEDGE_DISABLE_COMMAND_OPTIONS_BIT)) +\
844 (_applyChanges ? BV(APPLY_CHANGES_COMMAND_OPTION_BIT): 0) +\
845 (_saveChanges ? 0: BV(APPLY_CHANGES_NO_SAVE_COMMAND_OPTION_BIT)) +\
846 (_cca ? 0: BV(CCA_DISABLE_COMMAND_OPTION_BIT)) +\
847 (_encryption ? BV(ENCRYPTION_ENABLE_COMMAND_OPTION_BIT): 0) +\
848 (_sleepingDevice ? BV(SLEEP_DEVICE_COMMAND_OPTIONS_BIT): 0));
869 void RemoteAtCommandRequest::setDefault()
871 _remoteAddress = BROADCAST_ADDRESS;
873 _applyChanges =
true;
877 _sleepingDevice =
false;
886 _remoteAddress = BROADCAST_ADDRESS;
887 _option = TRANSMIT_OPTION_DEFAULT;
888 _optionEnable =
true;
893 _remoteAddress = remoteAddress;
894 _optionEnable =
true;
895 _option = TRANSMIT_OPTION_DEFAULT;
898 TxRequest::TxRequest(uint16_t remoteAddress, uint8_t option, uint8_t *data, uint8_t dataLength, uint8_t frameId) :
PayloadRequest(TRANSMIT_REQUEST_API_FRAME, frameId, data, dataLength)
900 _remoteAddress = remoteAddress;
901 _optionEnable =
true;
907 return _remoteAddress;
912 _remoteAddress = remoteAddress;
927 return _optionEnable;
932 _optionEnable = optionEnable;
934 setApiId(TRANSMIT_REQUEST_API_FRAME);
936 setApiId(TRANSMIT_REQUEST_NO_OPTIONS_API_FRAME);
941 return (_option & BV(ACKNOWLEDGE_DISABLE_COMMAND_OPTIONS_BIT)) ? false :
true;
947 _option &= ~BV(ACKNOWLEDGE_DISABLE_COMMAND_OPTIONS_BIT);
949 _option |= BV(ACKNOWLEDGE_DISABLE_COMMAND_OPTIONS_BIT);
954 return (_option & BV(CCA_DISABLE_COMMAND_OPTION_BIT)) ? false :
true;
960 _option &= ~BV(CCA_DISABLE_COMMAND_OPTION_BIT);
962 _option |= BV(CCA_DISABLE_COMMAND_OPTION_BIT);
967 return (_option & BV(ENCRYPTION_ENABLE_COMMAND_OPTION_BIT)) ? true :
false;
973 _option |= BV(ENCRYPTION_ENABLE_COMMAND_OPTION_BIT);
975 _option &= ~BV(ENCRYPTION_ENABLE_COMMAND_OPTION_BIT);
980 return (_option & BV(SLEEP_DEVICE_COMMAND_OPTIONS_BIT)) ? true :
false;
986 _option |= BV(SLEEP_DEVICE_COMMAND_OPTIONS_BIT);
988 _option &= ~BV(SLEEP_DEVICE_COMMAND_OPTIONS_BIT);
995 return (_remoteAddress >> 8) & 0xFF;
999 return _remoteAddress & 0xFF;
1001 else if((pos == 2) && _optionEnable)
1033 _response.setFrameData(_responseFrameData);
1034 #if defined(__AVR_ATmega32U4__) || (defined(TEENSYDUINO) && (defined(KINETISK) || defined(KINETISL))) 1046 if(_response.isAvailable() || _response.isError())
1051 if(_pos > 0 && b == START_BYTE && ATAP == 2)
1054 _response.setErrorCode(UNEXPECTED_START_BYTE);
1057 if(_pos > 0 && b == ESCAPE)
1075 if(_pos >= API_ID_INDEX)
1086 _response.setMsbLength(b);
1090 _response.setLsbLength(b);
1094 _response.setApiId(b);
1099 if(_pos > MAX_FRAME_DATA_SIZE + 4)
1101 _response.setErrorCode(PACKET_EXCEEDS_BYTE_ARRAY_LENGTH);
1105 if(_pos == (_response.getPacketLength() + 3))
1107 if((_checksumTotal & 0xff) == 0xff)
1109 _response.setChecksum(b);
1110 _response.setAvailable(
true);
1111 _response.setErrorCode(NO_ERROR_IN_FRAME);
1114 _response.setErrorCode(CHECKSUM_FAILURE);
1115 _response.setFrameLength(_pos - 4);
1121 _response.getFrameData()[_pos - 4] = b;
1134 unsigned long start = millis();
1135 while(
int((millis() - start)) < timeout)
1138 if(getResponse().isAvailable())
1142 else if(getResponse().isError())
1152 while(!(getResponse().isAvailable() || getResponse().isError()))
1165 sendByte(START_BYTE,
false);
1169 sendByte(msbLen,
true);
1170 sendByte(lsbLen,
true);
1172 sendByte(request.
getApiId(),
true);
1175 uint8_t checksum = 0;
1186 checksum = 0xff - checksum;
1187 sendByte(checksum,
true);
1198 void SerialStar::sendByte(uint8_t b,
bool escape)
1211 void SerialStar::resetResponse()
1231 unsigned long start = millis();
1233 status = waitForStatus(request.
getFrameId(), timeout - (millis() - start));
1236 return waitForAcknowledge(request.
getFrameId(), timeout - (millis() - start));
1241 unsigned long start = millis();
1246 uint8_t status = matchStatus(frameId);
1251 }
while (millis() - start < timeout);
1252 return MBEE_WAIT_TIMEOUT ;
1257 unsigned long start = millis();
1262 uint8_t status = matchAcknowledge(frameId);
1267 }
while (millis() - start < timeout);
1268 return MBEE_WAIT_TIMEOUT ;
1274 uint8_t SerialStarWithCallbacks::waitForInternal(uint8_t apiId,
void *response, uint16_t timeout,
void *func, uintptr_t data, int16_t frameId)
1276 unsigned long start = millis();
1283 uint8_t status = matchStatus(frameId);
1284 if(status != 0xff && status != 0)
1287 if(getResponse().
getApiId() == apiId)
1295 case MODEM_STATUS_API_FRAME:
1300 if(!f || f(*r, data))
1305 case TRANSMIT_STATUS_API_FRAME:
1310 if(!f || f(*r, data))
1315 case AT_COMMAND_RESPONSE_IMMEDIATE_APPLY_API_FRAME:
1316 case AT_COMMAND_RESPONSE_API_FRAME:
1317 case AT_COMMAND_RESPONSE_QUEUE_PARAMETER_VALUE_API_FRAME:
1322 if(!f || f(*r, data))
1327 case REMOTE_AT_COMMAND_RESPONSE_API_FRAME:
1328 case REMOTE_AT_COMMAND_RESPONSE_EXTENDED_API_FRAME:
1333 if(!f || f(*r, data))
1338 case REMOTE_ACKNOWLEDGE_API_FRAME:
1343 if(!f || f(*r, data))
1348 case RECEIVE_PACKET_API_FRAME:
1349 case RECEIVE_PACKET_EXTENDED_API_FRAME:
1350 case RECEIVE_PACKET_NO_OPTIONS_API_FRAME:
1351 case RECEIVE_PACKET_NO_OPTIONS_EXTENDED_API_FRAME:
1356 if(!f || f(*r, data))
1361 case IO_DATA_SAMPLE_API_FRAME:
1362 case IO_DATA_SAMPLE_EXTENDED_API_FRAME:
1367 if(!f || f(*r, data))
1375 }
while (millis() - start < timeout);
1376 return MBEE_WAIT_TIMEOUT;
1379 uint8_t SerialStarWithCallbacks::matchStatus(uint8_t frameId)
1381 uint8_t
id = getResponse().getApiId();
1382 uint8_t *data = getResponse().getFrameData();
1383 uint8_t len = getResponse().getFrameDataLength();
1387 if((
id == AT_COMMAND_RESPONSE_IMMEDIATE_APPLY_API_FRAME) || (
id == AT_COMMAND_RESPONSE_API_FRAME) || (
id == AT_COMMAND_RESPONSE_QUEUE_PARAMETER_VALUE_API_FRAME))
1389 else if(
id == REMOTE_AT_COMMAND_RESPONSE_API_FRAME)
1391 else if(
id == TRANSMIT_STATUS_API_FRAME)
1396 if(offset && offset < len && data[0] == frameId)
1397 return data[offset];
1401 uint8_t SerialStarWithCallbacks::matchAcknowledge(uint8_t frameId)
1403 uint8_t
id = getResponse().getApiId();
1404 uint8_t *data = getResponse().getFrameData();
1405 if(
id == REMOTE_ACKNOWLEDGE_API_FRAME)
1407 if(data[4] == frameId)
1413 bool SerialStarWithCallbacks::loopTop()
1416 if(getResponse().isAvailable())
1418 _onResponse.call(getResponse());
1421 else if(getResponse().isError())
1423 _onPacketError.call(getResponse().getErrorCode());
1428 void SerialStarWithCallbacks::loopBottom()
1430 bool called =
false;
1431 uint8_t
id = getResponse().getApiId();
1432 if(
id == MODEM_STATUS_API_FRAME)
1436 called = _onModemStatusResponse.call(response);
1438 else if(
id == TRANSMIT_STATUS_API_FRAME)
1442 called = _onTxStatusResponse.call(response);
1444 else if((
id == AT_COMMAND_RESPONSE_IMMEDIATE_APPLY_API_FRAME) || (
id == AT_COMMAND_RESPONSE_API_FRAME) || (
id == AT_COMMAND_RESPONSE_QUEUE_PARAMETER_VALUE_API_FRAME))
1448 called = _onAtCommandResponse.call(response);
1450 else if((
id == REMOTE_AT_COMMAND_RESPONSE_API_FRAME) || (
id == REMOTE_AT_COMMAND_RESPONSE_EXTENDED_API_FRAME))
1454 called = _onRemoteAtCommandResponse.call(response);
1456 else if(
id == REMOTE_ACKNOWLEDGE_API_FRAME)
1460 called = _onRxAcknowledgeResponse.call(response);
1462 else if((
id == RECEIVE_PACKET_API_FRAME) || (
id == RECEIVE_PACKET_NO_OPTIONS_API_FRAME) || (
id == RECEIVE_PACKET_EXTENDED_API_FRAME) || (
id == RECEIVE_PACKET_NO_OPTIONS_EXTENDED_API_FRAME))
1466 called = _onRxResponse.call(response);
1468 else if((
id == IO_DATA_SAMPLE_API_FRAME) || (
id == IO_DATA_SAMPLE_EXTENDED_API_FRAME))
1472 called = _onRxIoSampleResponse.call(response);
1476 _onOtherResponse.call(getResponse());
RxDataResponse()
Конструктор "по умолчанию".
uint8_t getCommandValueLength()
Возвращает длину поля параметра команды.
uint8_t getFrameDataLength()
Возвращает длину командного фрейма команды.
uint8_t getFrameId()
Возвращает frameId в случае приема пакета расширенного формата.
Класс расширяет базовый класс MBeeResponse для всех сообщений, которые имеют поле frame id...
Супер класс для всех пакетов, передаваемых от хоста к модулям MBee-868-x.0 в проекте SerialStar...
Класс для локального ответа модуля со статусом передачи в эфир или размещением в буфере.
uint8_t getFrameId()
Возвращает frame id.
bool isOk()
Возвращает true, если команда успешно выполнена удаленным модулем.
void setEncryption(bool encryption)
Включает/выключает шифрование поля данных передаваемого пакета.
uint8_t getLsbLength()
Возвращает LSB длины поля данных.
uint8_t getFrameId()
Возвращает frameId пакета, полученного удаленным модулем на который отправлено это подтверждение...
Класс для выдачи в UART принятых по эфиру пакетов, содержаших неструктированные данные.
void readPacketUntilAvailable()
Ожидает приема пакета до тех пор, пока он не будет получен или не произойдет какая-либо ошибка...
AtCommandRequest()
Конструктор "по умолчанию".
void getTxStatusResponse(MBeeResponse &response)
Вызов TxStatusResponse при getApiId() == 0x8B.
uint8_t getPayloadLength()
Возвращает установленную длину поля данных.
uint8_t * getPayload()
Возвращает указатель на поле данных.
uint8_t getValueLength()
Возвращает длину поля параметра команды.
void setAvailable(bool complete)
Устанавливает признак доступности пакета.
void setFrameId(uint8_t frameId)
Устанавливает frame id.
void getAtCommandResponse(MBeeResponse &responses)
Вызов AtCommandResponse при getApiId() == x88).
uint8_t * getCommandValue()
Возвращает указатель на первый байт параметра команды.
bool isError()
Возвращает true если при разборе пакета произошли ошибки.
uint8_t getMsbLength()
Возвращает MSB длины поля данных.
void setCca(bool cca)
Включает/выключает режим CCA (Clear Channel Assessment) при отправке пакетов.
bool isAddressBroadcast()
Возвращает true, если принятый пакет был широковещательный.
void setCommandValueLength(uint8_t length)
Устанавливает длину поля параметра команды.
bool getSleepingDevice()
Возвращает true, если пакет предназначается для спящего модема.
Класс для ответа на командный API-фрейм для удаленного узла.
uint8_t getExtendedFieldsLength(void)
Возвращает длину дополнительных полей пакета расширенного формата.
RxIoSampleResponse()
Конструктор "по умолчанию".
uint8_t * getValue()
Возвращает указатель на массив, содержащий параметр команды.
uint8_t getFrameDataLength()
Возвращает длину данных в пакете между полем типа API-фрейма и контрольной суммой.
void setErrorCode(uint8_t errorCode)
Устанавливает код ошибки.
void getRxAcknowledgeResponse(MBeeResponse &response)
Вызов RxAcknowledgeResponse при getApiId() == 0x8C.
uint8_t * getCommand()
Возвращает указатель на массив, содержащий 2 ASCII символа AT-команды.
TxRequest()
Конструктор "по умолчанию".
Супер класс для всех пакетов, передаваемых по UART модулями MBee-868-x.0 в проекте SerialStar...
uint16_t getPreviousHopAddress()
Возвращает адрес модема, непосредственно отправившего пакет.
uint8_t getVbatt()
Возвращает напряжение источника питания удаленного модема.
uint8_t getApiId()
Возвращает тип API-фрейма.
void setRemoteAddress(uint16_t remoteAddress)
Устанавливает адрес получателя пакета.
uint8_t getDigital(uint8_t number)
Возвращает текущее состояние цифрового входа/выхода, соответствующего порядковому номеру выборки в пр...
void setOptionEnable(bool optionEnable)
Включает/выключает передачу пакетов в соответствии с байтом опций.
MBeeRequest(uint8_t apiId, uint8_t frameId)
Конструктор, создающий фрейм с заданным API ID и идентификатором.
bool isAvailable()
Возвращает true, если пакет успешно принят.
void setApiId(uint8_t apiId)
Устанавливает тип API-фрейма.
MBeeResponse()
Конструктор "по умолчанию".
void getModemStatusResponse(MBeeResponse &response)
Вызов ModemStatusResponse при getApiId() == 0x8A.
uint8_t getFrameDataLength()
Возвращает длину командного фрейма команды.
uint8_t getStatus()
Возвращает статус команды.
bool getAcknowledge()
Возвращает true, если подтверждение удаленным модемом получения пакета включено.
void getRemoteAtCommandResponse(MBeeResponse &response)
Вызов RemoteAtCommandResponse при getApiId() == 0x97, 0x98.
void setPayload(uint8_t *payloadPtr)
Устанавливает указатель на поле данных.
RxResponse()
Конструктор "по умолчанию".
uint32_t getCounter(uint8_t number)
Возвращает число подсчитанных импульсов для счетного входа, соответствующего порядковому номеру выбор...
virtual uint8_t getDataOffset()=0
Возвращает номер байта в принятом пакете с которого начинается поле данных.
uint8_t getFrameId()
Возвращает идентификатор фрейма.
void reset()
Сбрасывает все поля пакета.
void send(void *)
Передача данных модулю или удаленному узлу.
uint8_t getApiId()
Возвращает тип API-фрейма.
virtual uint8_t getFrameData(uint8_t pos)=0
Возвращает буфер, который содержит сообщение.
Класс для пакета с подтверждением получения неструктурированных данных удаленным модемом.
uint8_t waitForStatus(uint8_t frameId, uint16_t timeout)
Ждет приема ответного API-фрейма со статусом после отправки пакета с определенным frameId в течение з...
uint8_t getFrameDataLength()
Возвращает полную длину поля данных API-фрейма.
Класс для локального управления модулем с помощью API-фрейма.
uint8_t getSampleSize()
Возвращает число линий ввода/вывода данные о текущем состоянии которых имеются в принятом пакете...
uint8_t getChecksum()
Подсчет контрольной суммы.
Класс для API-фрейма со статусом модема после инициализации.
uint16_t getPacketLength()
Возвращает длину пакета.
void readPacket()
Чтение всех байт, имеющихся в приемном буфере UART.
void setChecksum(uint8_t checksum)
Запись контрольной суммы в соответствующее поле пакета.
uint8_t getMode(uint8_t number)
Возвращает режим линии ввода/ввода по порядковому номеру выборки в принятом пакете.
void setCommandValue(uint8_t *value)
Устанавливает указатель на первый байт параметра команды.
uint16_t getRemoteAddress()
Возвращает адрес получателя пакета.
uint8_t getDataLength()
Возвращает длину поля данных пакета.
uint8_t waitForAcknowledge(uint8_t frameId, uint16_t timeout)
Ждет API-фрейм c подтверждением приема удаленным модулем пакета с определенным frameId в течение зада...
bool getCca()
Возвращает true, если при отправке пакетов включен режим CCA (Clear Channel Assessment).
Базовый класс для всех пакетов, принятых по эфиру и передаваемых модулем на UART. ...
bool getOptionEnable()
Возвращает true, если передача пакета осуществляется в соответствии с байтом опций и false...
RemoteAtCommandRequest()
Конструктор "по умолчанию".
uint8_t getDataLength()
Возвращает длину поля данных, не включая 2 байт с температурой и напряжением источника питания удален...
uint8_t getTemperature()
Возвращает температуру, измеренную на удаленном модеме.
uint16_t getRemoteAddress()
Возвращает адрес модема, источника данных.
uint8_t getFrameData(uint8_t pos)
Возвращает байт поля данных, номер которого определяется аргументом.
void setAcknowledge(bool acknowledge)
Включает/выключает отправку подтверждения удаленным модемом получения пакета.
void setSleepingDevice(bool sleepingDevice)
Включает/выключает буферизацию пакетов для спящих модемов.
void init()
Инициализация пакета.
uint8_t getDataOffset()
Возвращает смещение поля данных относительно старшего байта адреса.
uint8_t getRssi()
Возвращает RSSI на антенном входе модуля, зафиксированный в момент приема пакета. ...
uint8_t * getData()
Возвращает указатель на поле данных принятого пакета.
ModemStatusResponse()
Конструктор "по умолчанию".
uint8_t * getCommand()
Возвращает указатель на байты с кодом команды.
RxCommonResponse()
Конструктор "по умолчанию".
virtual uint8_t getFrameDataLength()=0
Возвращает длину поля данных фрейма, не включая frame id или api id и checksum.
void setOption(uint8_t option)
Устанавливает опции отправки пакета.
AtCommandResponse()
Конструктор "по умолчанию".
Класс для ответа на локальный командный API-фрейм.
bool isSuccess()
Возвращает true, если команда исполнена.
uint8_t getDataOffset()
Возвращает номер байта в принятом пакете с которого начинается поле данных.
uint8_t getErrorCode()
Возвращает код ошибки или 0, если их нет.
FrameIdResponse()
Конструктор "по умолчанию".
TxStatusResponse()
Конструктор "по умолчанию".
void setPayloadLength(uint8_t payloadLength)
Устанавливает число байт, которое надо поместить в поле данных отправляемого пакета.
uint8_t getStatus()
Возвращает статус команды.
uint8_t getStatus()
Возвращает статус локальной команды.
void getRxResponse(MBeeResponse &response)
Вызов RxResponse при getApiId() == 0x81, 0x82, 0x8F, 0x90.
void setCommand(uint8_t *command)
Устанавливает команду по указателю на байты на кода.
RxAcknowledgeResponse()
Конструктор "по умолчанию".
uint8_t getFrameData(uint8_t pos)
Возвращает в зависимости о номера байта либо код AT-команды, содержащейся в фрейме, либо байта параметра команды.
uint8_t getValueLength()
Возвращает длину поля параметра команды.
void getRxIoSampleResponse(MBeeResponse &response)
Вызов RxIoSampleResponse при getApiId() == 0x83, 0x84.
uint8_t getStatus()
Возвращает статус модема после рестарта.
Базовый класс для всех пакетов, предназначенных для передачи по эфиру неструктурированных данных...
uint8_t * getFrameData()
Возвращает указатель на буфер, который содержит сообщение.
RemoteAtCommandResponse()
Конструктор "по умолчанию".
uint8_t getPin(uint8_t number)
Возвращает номер вывода модуля, соответствующий порядковому номеру выборки в принятом пакете...
uint8_t * getValue()
Возвращает указатель на массив, содержащий параметр команды.
uint8_t getOption()
Возвращает байт опций.
bool isOk()
Возвращает true, если статус эквивалентен AT_OK.
bool getEncryption()
Возвращает true, если включен режим шифрования поля данных.
void setFrameLength(uint8_t frameLength)
Запись поля длины в пакете.
Класс для всех пакетов, принятых по эфиру, передаваемых модулем на UART и содержащих поле данных...
uint8_t getOption()
Возвращает значение байта опций отправки пакета.
void clearCommandValue()
Присваивает указателю на поле кода команды значение NULL и обнуляет поле длины параметра команды...
uint8_t getSampleNumber(uint8_t pin)
Возвращает порядковый номер выборки в принятом пакете, в котором содержится информация о текущем сост...
uint8_t sendAndWaitForAcknowledge(MBeeRequest &request, uint16_t timeout)
Передает в UART API-фрейм, предназначенный для передачи по эфиру.
bool isAcknowledged()
Возвращает true, если на принятый пакет было отправлено подтверждение.
uint8_t * getCommand()
Возвращает указатель на массив, содержащий 2 ASCII символа AT-команды.
void setFrameData(uint8_t *frameDataPtr)
Устанавливает указатель на поле данных пакета.
uint8_t getFrameData(uint8_t pos)
Возвращает в зависимости о номера байта либо код AT-команды, содержащейся в фрейме, либо байта параметра команды.
uint16_t getAnalog(uint8_t number)
Возвращает текущее состояние аналогового входа, соответствующего порядковому номеру выборки в принято...
void setExtendedFieldsLength(uint8_t length)
Устанавливает длину дополнительных полей пакета расширенного формата.