From dc16a663ecf2f3f44c9859c9ed0d8d946c9230e9 Mon Sep 17 00:00:00 2001 From: Andrey Klimov Date: Sun, 31 Mar 2019 11:18:45 +0300 Subject: [PATCH] More control and relability --- lighthub/abstractin.cpp | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/lighthub/abstractin.cpp b/lighthub/abstractin.cpp index ba43754..928c3b7 100644 --- a/lighthub/abstractin.cpp +++ b/lighthub/abstractin.cpp @@ -11,22 +11,33 @@ int abstractIn::publish(int value, char* subtopic) { char valstr[16]; printUlongValueToStr(valstr, value); - publish(valstr,subtopic); + return publish(valstr,subtopic); }; int abstractIn::publish(float value, char* subtopic) { char valstr[16]; printFloatValueToStr(value, valstr); - publish(valstr,subtopic); + return publish(valstr,subtopic); }; int abstractIn::publish(char * value, char* subtopic) { char addrstr[MQTT_TOPIC_LENGTH]; + if (in) + { aJsonObject *emit = aJson.getObjectItem(in->inputObj, "emit"); - strncpy(addrstr,emit->valuestring,sizeof(addrstr)); - if (!strchr(addrstr,'/')) setTopic(addrstr,sizeof(addrstr),T_OUT,emit->valuestring); - strncat(addrstr,subtopic,sizeof(addrstr)); - if (mqttClient.connected()) mqttClient.publish(addrstr, value, true); + if (emit) + { + strncpy(addrstr,emit->valuestring,sizeof(addrstr)); + if (!strchr(addrstr,'/')) setTopic(addrstr,sizeof(addrstr),T_OUT,emit->valuestring); + strncat(addrstr,subtopic,sizeof(addrstr)); + if (mqttClient.connected()) + { + mqttClient.publish(addrstr, value, true); + return 1; + } + } + } +return 0; };