From 3d504b01dd881ba6f7092e2dbf02e9f079f83fb2 Mon Sep 17 00:00:00 2001 From: biver Date: Fri, 25 Nov 2022 22:00:33 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=BF=D1=80=D0=BE=D1=89=D0=B0=D0=B5?= =?UTF-8?q?=D0=BC=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=83=20=D1=81=20=D1=85?= =?UTF-8?q?=D1=83=D0=BA=D0=BE=D0=BC=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20MQTT?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/classes/IoTItem.h | 2 +- src/MqttClient.cpp | 12 ++++-------- src/classes/IoTItem.cpp | 2 +- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/include/classes/IoTItem.h b/include/classes/IoTItem.h index 890173d5..57d42a22 100644 --- a/include/classes/IoTItem.h +++ b/include/classes/IoTItem.h @@ -51,7 +51,7 @@ class IoTItem { // хуки для системных событий virtual void onRegEvent(IoTItem* item); - virtual void onMqttRecive(char* topic, uint8_t* payload, size_t length); + virtual void onMqttRecive(String& topic, String& msg); //методы для графиков virtual void publishValue(); diff --git a/src/MqttClient.cpp b/src/MqttClient.cpp index 77a89e6f..1811ac46 100644 --- a/src/MqttClient.cpp +++ b/src/MqttClient.cpp @@ -117,11 +117,6 @@ void mqttSubscribe() { } void mqttCallback(char* topic, uint8_t* payload, size_t length) { - // распространяем принятое сообщение через хуки - for (std::list::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) { - (*it)->onMqttRecive(topic, payload, length); - } - String topicStr = String(topic); // SerialPrint("i", "=>MQTT", topicStr); String payloadStr; @@ -130,9 +125,10 @@ void mqttCallback(char* topic, uint8_t* payload, size_t length) { payloadStr += (char)payload[i]; } - // SerialPrint("i", "=>MQTT", payloadStr); - - // SerialPrint("i", F("=>MQTT"), "Msg from iotmanager: " + topicStr); + // распространяем принятое сообщение через хуки + for (std::list::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) { + (*it)->onMqttRecive(topicStr, payloadStr); + } if (payloadStr.startsWith("HELLO")) { SerialPrint("i", F("MQTT"), F("Full update")); diff --git a/src/classes/IoTItem.cpp b/src/classes/IoTItem.cpp index 063ae3cb..e8afe357 100644 --- a/src/classes/IoTItem.cpp +++ b/src/classes/IoTItem.cpp @@ -175,7 +175,7 @@ void IoTItem::checkIntFromNet() { void IoTItem::onRegEvent(IoTItem* item) {} -void IoTItem::onMqttRecive(char* topic, uint8_t* payload, size_t length) {} +void IoTItem::onMqttRecive(String& topic, String& msg) {} void IoTItem::publishValue() {}