From 985642e0feeb22fdb8275e61a6169d7fd6d043ee Mon Sep 17 00:00:00 2001 From: Erick Ahmed Date: Thu, 4 Dec 2025 23:00:34 +0100 Subject: [PATCH] Fix compilation issues with espressif mqtt lib --- firmware/esp32/include/mqtt.hpp | 6 +++++ firmware/esp32/include/wifi-credentials.h | 2 ++ firmware/esp32/main/CMakeLists.txt | 2 +- firmware/esp32/main/idf_component.yml | 2 ++ firmware/esp32/main/main.cpp | 1 + firmware/esp32/main/mqtt.cpp | 29 ++++++++++++----------- 6 files changed, 27 insertions(+), 15 deletions(-) create mode 100644 firmware/esp32/include/mqtt.hpp create mode 100644 firmware/esp32/main/idf_component.yml diff --git a/firmware/esp32/include/mqtt.hpp b/firmware/esp32/include/mqtt.hpp new file mode 100644 index 0000000..440c395 --- /dev/null +++ b/firmware/esp32/include/mqtt.hpp @@ -0,0 +1,6 @@ +#ifndef MQTT_HPP +#define MQTT_HPP + +void mqttTask(void *pvParameters); + +#endif diff --git a/firmware/esp32/include/wifi-credentials.h b/firmware/esp32/include/wifi-credentials.h index 271369b..b93536c 100644 --- a/firmware/esp32/include/wifi-credentials.h +++ b/firmware/esp32/include/wifi-credentials.h @@ -1,6 +1,8 @@ #ifndef WIFI_CREDENTIALS_H #define WIFI_CREDENTIALS_H +// TODO: make this a config.h + #define SSID "your_wifi_ssid" #define PASSWORD "your_wifi_password" #define AUTH_MODE WIFI_AUTH_WPA2_PSK diff --git a/firmware/esp32/main/CMakeLists.txt b/firmware/esp32/main/CMakeLists.txt index a9ed769..29932c5 100644 --- a/firmware/esp32/main/CMakeLists.txt +++ b/firmware/esp32/main/CMakeLists.txt @@ -9,4 +9,4 @@ idf_component_register(SRCS "./main.cpp" esp_system freertos log - mqtt_client) + mqtt) diff --git a/firmware/esp32/main/idf_component.yml b/firmware/esp32/main/idf_component.yml new file mode 100644 index 0000000..5334d28 --- /dev/null +++ b/firmware/esp32/main/idf_component.yml @@ -0,0 +1,2 @@ +dependencies: + espressif/mqtt: "*" diff --git a/firmware/esp32/main/main.cpp b/firmware/esp32/main/main.cpp index 2f70b9e..a12f469 100644 --- a/firmware/esp32/main/main.cpp +++ b/firmware/esp32/main/main.cpp @@ -6,6 +6,7 @@ #include "esp_pm.h" #include "esp_task_wdt.h" #include "wifi.hpp" +#include "mqtt.hpp" #define WATCHDOG_KEEPALIVE_MS 8000 diff --git a/firmware/esp32/main/mqtt.cpp b/firmware/esp32/main/mqtt.cpp index 0ab817b..9f84b21 100644 --- a/firmware/esp32/main/mqtt.cpp +++ b/firmware/esp32/main/mqtt.cpp @@ -5,7 +5,7 @@ #include "esp_log.h" #include "mqtt_client.h" #include "main.hpp" -#include "i2c.hpp" +//#include "i2c.hpp" #define MQTT_TASK_TIMEOUT_MS 3000 @@ -24,16 +24,18 @@ static void mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_ esp_mqtt_event_handle_t event = (esp_mqtt_event_handle_t)event_data; switch (event->event_id) { - case MQTT_EVENT_CONNECTED: + case MQTT_EVENT_CONNECTED: { xEventGroupSetBits(connectivity_event_group, MQTT_CONNECTED_BIT); mqtt_subscribe(); ESP_LOGV(TAG, "Connected to broker"); break; - case MQTT_EVENT_DISCONNECTED: + } + case MQTT_EVENT_DISCONNECTED: { xEventGroupClearBits(connectivity_event_group, MQTT_CONNECTED_BIT); ESP_LOGW(TAG, "Disconnected from broker"); break; - case MQTT_EVENT_DATA: + } + case MQTT_EVENT_DATA: { ESP_LOGD(TAG, "Listening to broker"); ESP_LOGD(TAG, "Topic: %.*s\n", event->topic_len, event->topic); ESP_LOGD(TAG, "Data: %.*s\n", event->data_len, event->data); @@ -45,23 +47,22 @@ static void mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_ if (i2c_task_handle != NULL) xTaskNotifyGive(i2c_task_handle); break; - default: + } + default: { break; + } } } static void mqtt_init(void) { // TODO; implement Trust only or Mutual TLS in the future (and secure boot + flash encryption) - const esp_mqtt_client_config_t mqtt_cfg = { - .broker = { - //TODO: make this a definition in config.hpp - .address.uri = "mqtt://yourmqttserver", - .address.port = 1883 - }, - }; + // TODO: add to config.h + esp_mqtt_client_config_t mqtt_cfg = {}; + mqtt_cfg.broker.address.uri = "mqtt://yourmqttserver"; + mqtt_cfg.broker.address.port = 1883; mqtt_client = esp_mqtt_client_init(&mqtt_cfg); - esp_mqtt_client_register_event(mqtt_client, ESP_EVENT_ANY_ID, mqtt_event_handler, NULL); + esp_mqtt_client_register_event(mqtt_client, (esp_mqtt_event_id_t)ESP_EVENT_ANY_ID, mqtt_event_handler, NULL); esp_mqtt_client_start(mqtt_client); } @@ -81,7 +82,7 @@ void mqttTask(void *pvParameters) { ESP_LOGV(TAG, "Connection established"); if (ulTaskNotifyTake(pdTRUE, pdMS_TO_TICKS(MQTT_TASK_TIMEOUT_MS))) { - i2c_do(global_rx_buffer); + //i2c_do(global_rx_buffer); PLACEHOLDER FUNC! } ESP_ERROR_CHECK(esp_task_wdt_reset());