diff --git a/include/MqttHandleInverter.h b/include/MqttHandleInverter.h index ea3a6e38..563df804 100644 --- a/include/MqttHandleInverter.h +++ b/include/MqttHandleInverter.h @@ -64,7 +64,7 @@ private: { "reset_rf_stats", Topic::ResetRfStats }, }; - void onMqttMessage(Topic t, const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, const size_t len, const size_t index, const size_t total); + void onMqttMessage(Topic t, const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, const size_t len); }; extern MqttHandleInverterClass MqttHandleInverter; diff --git a/include/MqttSettings.h b/include/MqttSettings.h index f3185535..67983333 100644 --- a/include/MqttSettings.h +++ b/include/MqttSettings.h @@ -16,7 +16,7 @@ public: void publish(const String& subtopic, const String& payload); void publishGeneric(const String& topic, const String& payload, const bool retain, const uint8_t qos = 0); - void subscribe(const String& topic, const uint8_t qos, const espMqttClientTypes::OnMessageCallback& cb); + void subscribe(const String& topic, const uint8_t qos, const OnMessageCallback& cb); void unsubscribe(const String& topic); String getPrefix() const; diff --git a/lib/MqttSubscribeParser/MqttSubscribeParser.cpp b/lib/MqttSubscribeParser/MqttSubscribeParser.cpp index c0cc3bb7..20a5ef62 100644 --- a/lib/MqttSubscribeParser/MqttSubscribeParser.cpp +++ b/lib/MqttSubscribeParser/MqttSubscribeParser.cpp @@ -1,10 +1,10 @@ // SPDX-License-Identifier: GPL-2.0-or-later /* - * Copyright (C) 2022 Thomas Basler and others + * Copyright (C) 2022-2025 Thomas Basler and others */ #include "MqttSubscribeParser.h" -void MqttSubscribeParser::register_callback(const std::string& topic, uint8_t qos, const espMqttClientTypes::OnMessageCallback& cb) +void MqttSubscribeParser::register_callback(const std::string& topic, uint8_t qos, const OnMessageCallback& cb) { cb_filter_t cbf; cbf.topic = topic; @@ -24,13 +24,13 @@ void MqttSubscribeParser::unregister_callback(const std::string& topic) } } -void MqttSubscribeParser::handle_message(const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, size_t len, size_t index, size_t total) +void MqttSubscribeParser::handle_message(const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, size_t len) { bool result = false; for (const auto& cb : _callbacks) { if (mosquitto_topic_matches_sub(cb.topic.c_str(), topic, &result) == MOSQ_ERR_SUCCESS) { if (result) { - cb.cb(properties, topic, payload, len, index, total); + cb.cb(properties, topic, payload, len); } } } diff --git a/lib/MqttSubscribeParser/MqttSubscribeParser.h b/lib/MqttSubscribeParser/MqttSubscribeParser.h index 68589fdb..353475bb 100644 --- a/lib/MqttSubscribeParser/MqttSubscribeParser.h +++ b/lib/MqttSubscribeParser/MqttSubscribeParser.h @@ -6,17 +6,19 @@ #include #include +typedef std::function OnMessageCallback; + struct cb_filter_t { std::string topic; uint8_t qos; - espMqttClientTypes::OnMessageCallback cb; + OnMessageCallback cb; }; class MqttSubscribeParser { public: - void register_callback(const std::string& topic, uint8_t qos, const espMqttClientTypes::OnMessageCallback& cb); + void register_callback(const std::string& topic, uint8_t qos, const OnMessageCallback& cb); void unregister_callback(const std::string& topic); - void handle_message(const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, size_t len, size_t index, size_t total); + void handle_message(const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, size_t len); std::vector get_callbacks(); private: @@ -28,4 +30,4 @@ private: MOSQ_ERR_SUCCESS = 0, MOSQ_ERR_INVAL = 3, }; -}; \ No newline at end of file +}; diff --git a/src/MqttHandleInverter.cpp b/src/MqttHandleInverter.cpp index 70a7222d..40fccf87 100644 --- a/src/MqttHandleInverter.cpp +++ b/src/MqttHandleInverter.cpp @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later /* - * Copyright (C) 2022-2024 Thomas Basler and others + * Copyright (C) 2022-2025 Thomas Basler and others */ #include "MqttHandleInverter.h" #include "MessageOutput.h" @@ -148,7 +148,7 @@ String MqttHandleInverterClass::getTopic(std::shared_ptr inv, return inv->serialString() + "/" + chanNum + "/" + chanName; } -void MqttHandleInverterClass::onMqttMessage(Topic t, const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, const size_t len, const size_t index, const size_t total) +void MqttHandleInverterClass::onMqttMessage(Topic t, const espMqttClientTypes::MessageProperties& properties, const char* topic, const uint8_t* payload, const size_t len) { const CONFIG_T& config = Configuration.get(); @@ -252,8 +252,7 @@ void MqttHandleInverterClass::subscribeTopics() MqttSettings.subscribe(fullTopic.c_str(), 0, std::bind(&MqttHandleInverterClass::onMqttMessage, this, t, std::placeholders::_1, std::placeholders::_2, - std::placeholders::_3, std::placeholders::_4, - std::placeholders::_5, std::placeholders::_6)); + std::placeholders::_3, std::placeholders::_4)); }; for (auto const& s : _subscriptions) { diff --git a/src/MqttSettings.cpp b/src/MqttSettings.cpp index 39e76e22..1362425c 100644 --- a/src/MqttSettings.cpp +++ b/src/MqttSettings.cpp @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later /* - * Copyright (C) 2022 Thomas Basler and others + * Copyright (C) 2022-2025 Thomas Basler and others */ #include "MqttSettings.h" #include "Configuration.h" @@ -40,7 +40,7 @@ void MqttSettingsClass::onMqttConnect(const bool sessionPresent) } } -void MqttSettingsClass::subscribe(const String& topic, const uint8_t qos, const espMqttClientTypes::OnMessageCallback& cb) +void MqttSettingsClass::subscribe(const String& topic, const uint8_t qos, const OnMessageCallback& cb) { _mqttSubscribeParser.register_callback(topic.c_str(), qos, cb); std::lock_guard lock(_clientLock); @@ -93,7 +93,7 @@ void MqttSettingsClass::onMqttMessage(const espMqttClientTypes::MessagePropertie { MessageOutput.printf("Received MQTT message on topic: %s\r\n", topic); - _mqttSubscribeParser.handle_message(properties, topic, payload, len, index, total); + _mqttSubscribeParser.handle_message(properties, topic, payload, len); } void MqttSettingsClass::performConnect()