From 6c149c57264764e85d67b5d4b5271adebdc2d15a Mon Sep 17 00:00:00 2001 From: Alexey Zholtikov Date: Mon, 5 May 2025 11:34:17 +0300 Subject: [PATCH] fix: error receiveng 1 to 3 bytes data --- zh_espnow.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/zh_espnow.c b/zh_espnow.c index 49cb6ef..acefdd0 100755 --- a/zh_espnow.c +++ b/zh_espnow.c @@ -459,7 +459,8 @@ static void _zh_espnow_process_recv(_queue_t *queue) ZH_ESPNOW_LOGI("Processing incoming ESP-NOW data from MAC %02X:%02X:%02X:%02X:%02X:%02X started.", MAC2STR(queue->data.mac_addr)); zh_espnow_event_on_recv_t *recv_data = (zh_espnow_event_on_recv_t *)&queue->data; ++_stats.received; - esp_err_t err = esp_event_post(ZH_ESPNOW, ZH_ESPNOW_ON_RECV_EVENT, recv_data, recv_data->data_len + sizeof(recv_data->mac_addr) + sizeof(uint8_t), portTICK_PERIOD_MS); + uint8_t data_len_offset = recv_data->data_len > 3 ? 0 : (recv_data->data_len == 3 ? 1 : (recv_data->data_len == 2 ? 2 : 3)); + esp_err_t err = esp_event_post(ZH_ESPNOW, ZH_ESPNOW_ON_RECV_EVENT, recv_data, recv_data->data_len + sizeof(recv_data->mac_addr) + sizeof(uint8_t) + data_len_offset, portTICK_PERIOD_MS); if (err == ESP_OK) { ZH_ESPNOW_LOGI("Incoming ESP-NOW data from MAC %02X:%02X:%02X:%02X:%02X:%02X processed successfully.", MAC2STR(queue->data.mac_addr));