From 5b5e5e9010e2a52762d88ecf4598ea9c599a5fa1 Mon Sep 17 00:00:00 2001 From: Andrey Klimov Date: Thu, 14 Feb 2019 17:34:31 +0300 Subject: [PATCH] Progmem issues fixed (Mega) --- lighthub/main.cpp | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/lighthub/main.cpp b/lighthub/main.cpp index 6d8e8c1..3f5f28f 100644 --- a/lighthub/main.cpp +++ b/lighthub/main.cpp @@ -312,7 +312,7 @@ lan_status lanLoop() { if (lanStatus > 0) switch (Ethernet.maintain()) { case NO_LINK: - debugSerial<child; while (items && item) if (item->type == aJson_Array && aJson.getArraySize(item)>0) { - - strncat_P(buf,item->name,sizeof(buf)); + strncat(buf,item->name,sizeof(buf)); strncat(buf,",",sizeof(buf)); switch ( aJson.getArrayItem(item, I_TYPE)->valueint) { case CH_THERMO: - strncat_P(datatype,float_P,sizeof(datatype)); + strncpy_P(datatype,float_P,sizeof(datatype)); + format[0]="\0"; break; case CH_RELAY: @@ -417,22 +414,26 @@ void onMQTTConnect(){ } //switch strncpy_P(topic, outprefix, sizeof(topic)); - strncat_P(topic,item->name,sizeof(topic)); + strncat(topic,item->name,sizeof(topic)); strncat(topic,"/",sizeof(topic)); strncat_P(topic,datatype_P,sizeof(topic)); mqttClient.publish(topic,datatype,true); + if (strlen(format)) + { strncpy_P(topic, outprefix, sizeof(topic)); - strncat_P(topic,item->name,sizeof(topic)); + strncat(topic,item->name,sizeof(topic)); strncat(topic,"/",sizeof(topic)); strncat_P(topic,format_P,sizeof(topic)); mqttClient.publish(topic,format,true); + } item = item->next; } //if strncpy_P(topic, outprefix, sizeof(topic)); strncat_P(topic, nodes_P, sizeof(topic)); mqttClient.publish(topic,buf,true); } +#endif } void ip_ready_config_loaded_connecting_to_broker() { @@ -1039,7 +1040,7 @@ lan_status loadConfigFromHttp(int arg_cnt, char **args) #ifndef FLASH_64KB snprintf(URI, sizeof(URI), "/%s_config.json",QUOTE(DEVICE_NAME)); #else - strncpy_P(URI, "/", sizeof(URI)); + strncpy(URI, "/", sizeof(URI)); strncat(URI, QUOTE(DEVICE_NAME), sizeof(URI)); strncat(URI, "_config.json", sizeof(URI)); #endif