92 uint8_t buffer[COUNT_DATA_BYTES];
99 if (buffer[0] != START_CHARACTER_1 || buffer[1] != START_CHARACTER_2) {
100 ESP_LOGW(TAG,
"Start character mismatch: %02X %02X != %02X %02X", buffer[0], buffer[1], START_CHARACTER_1,
105 const uint16_t payload_length =
encode_uint16(buffer[2], buffer[3]);
106 if (payload_length != COUNT_PAYLOAD_BYTES) {
107 ESP_LOGW(TAG,
"Payload length mismatch: %u != %u", payload_length, COUNT_PAYLOAD_BYTES);
113 for (uint8_t i = 0; i < CHECKSUM_START_INDEX; i++) {
117 const uint16_t check =
encode_uint16(buffer[CHECKSUM_START_INDEX], buffer[CHECKSUM_START_INDEX + 1]);
119 ESP_LOGW(TAG,
"Checksum mismatch: %u != %u",
checksum, check);
124 uint16_t buffer_u16[COUNT_16_BIT_VALUES];
125 for (uint8_t i = 0; i < COUNT_16_BIT_VALUES; i++) {
126 const uint8_t buffer_index = COUNT_START_CHARACTER_BYTES + i * 2;
127 buffer_u16[i] =
encode_uint16(buffer[buffer_index], buffer[buffer_index + 1]);
131 memcpy((
void *) data, (
void *) buffer_u16, COUNT_16_BIT_VALUES * 2);