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() {}