From 0fe87215efcfc7020083ac7c1e14be22ce8af989 Mon Sep 17 00:00:00 2001 From: Bogdan Pilyugin Date: Tue, 20 Dec 2022 16:18:48 +0200 Subject: [PATCH] fixed lorawan send issue --- src/LoRaWAN.c | 8 +++----- src/MQTT.c | 9 ++------- src/MQTTSysHandler.c | 2 +- 3 files changed, 6 insertions(+), 13 deletions(-) diff --git a/src/LoRaWAN.c b/src/LoRaWAN.c index 5b439e8..12e8a1e 100644 --- a/src/LoRaWAN.c +++ b/src/LoRaWAN.c @@ -46,7 +46,7 @@ #define MESSAGE_LENGTH 32 #define TAG "LoRaWANApp" #define LORAWAN_APP_LOG_ENABLED 1 -#define LORAWAN_MESSAGE_BUFER_LENTH 32 +#define LORAWAN_MESSAGE_BUFER_LENTH 8 QueueHandle_t LORAMessagesQueueHandle; static StaticQueue_t xStaticLoRaMessagesQueue; @@ -60,7 +60,6 @@ void regLoRaUserReceiveHandler( LoRaUserReceiveHandler = user_handler; } - esp_err_t LORASendData(LORA_DATA_SEND_STRUCT *pdss) { char *ptr = (char*) malloc(MESSAGE_LENGTH); @@ -111,14 +110,13 @@ void LoRaWANTransportTask(void *pvParameter) if (ttn_is_provisioned()) { xQueueReceive(LORAMessagesQueueHandle, &DSS, portMAX_DELAY); - ttn_transmit_message((const uint8_t*) DSS.raw_data_ptr, MESSAGE_LENGTH, 1, true); - #if LORAWAN_APP_LOG_ENABLED == 1 char P[MESSAGE_LENGTH * 2 + 1]; BytesToStr((unsigned char*) DSS.raw_data_ptr, (unsigned char*) P, MESSAGE_LENGTH); P[MESSAGE_LENGTH * 2] = 0x00; - ESP_LOGI(TAG, "Sent=%s", P); + ESP_LOGI(TAG, "Send=%s", P); #endif + ttn_transmit_message((const uint8_t*) DSS.raw_data_ptr, MESSAGE_LENGTH, 1, true); } else { diff --git a/src/MQTT.c b/src/MQTT.c index 334a39c..07f4bc0 100644 --- a/src/MQTT.c +++ b/src/MQTT.c @@ -25,7 +25,7 @@ #include "NetTransport.h" #include "MQTT.h" -#define MQTT_MESSAGE_BUFER_LENTH 32 //size of mqtt queue +#define MQTT_MESSAGE_BUFER_LENTH 8 //size of mqtt queue #define MQTT_RECONNECT_CHANGE_ADAPTER 3 #if CONFIG_WEBGUIAPP_MQTT_ENABLE @@ -221,7 +221,7 @@ void MQTTTaskTransmit(void *pvParameter) { while (!mqtt[idx].is_connected) vTaskDelay(pdMS_TO_TICKS(1000)); - xQueuePeek(mqtt[idx].mqtt_queue, &DSS, portMAX_DELAY); + xQueueReceive(mqtt[idx].mqtt_queue, &DSS, portMAX_DELAY); if (mqtt[idx].mqtt) { esp_mqtt_client_publish(mqtt[idx].mqtt, @@ -232,12 +232,7 @@ void MQTTTaskTransmit(void *pvParameter) } else ESP_LOGE(TAG, "MQTT client not initialized"); - - //Here, if need, can be added repeat transmission after delivery timeout. - //In this case, follow code must be skipped here and executed on delivery confirm or on exceeded retry attempts - xQueueReceive(mqtt[idx].mqtt_queue, &DSS, 0); free(DSS.raw_data_ptr); - } } diff --git a/src/MQTTSysHandler.c b/src/MQTTSysHandler.c index 92a20a9..91d9ace 100644 --- a/src/MQTTSysHandler.c +++ b/src/MQTTSysHandler.c @@ -40,7 +40,7 @@ #include "romfs.h" #include "HTTPServer.h" -#define MESSAGE_LENGTH 32 //base message length, mainly depended by radio requirements +#define PANEL_MESSAGE_LENGTH 32 //base message length, mainly depended by radio requirements #define MAX_JSON_MESSAGE 256 //max size of mqtt message to publish #define MAX_FILE_PUBLISH 4096 //bufer for mqtt data publish #define MAX_DYNVAR_LENTH 64