From e39a688fe0437dda425c5c1fb724c3c6a3116e1f Mon Sep 17 00:00:00 2001 From: fvanroie Date: Sun, 22 Nov 2020 17:00:00 +0100 Subject: [PATCH] Remove literal strings --- src/hasp_attribute.cpp | 10 ++++++++-- src/hasp_dispatch.cpp | 13 ++++++++----- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/hasp_attribute.cpp b/src/hasp_attribute.cpp index a39650ec..19ea6f05 100644 --- a/src/hasp_attribute.cpp +++ b/src/hasp_attribute.cpp @@ -123,10 +123,16 @@ static lv_color_t haspPayloadToColor(const char * payload) } /* HEX format #rrggbb or #rrggbbaa */ + char pattern[4]; + snprintf_P(pattern, sizeof(pattern), PSTR(" 2x")); // % cannot be escaped, so we build our own pattern + pattern[0]='%'; + char buffer[13]; + snprintf_P(buffer, sizeof(buffer), PSTR("%s%s%s%s"), pattern, pattern, pattern, pattern); int r, g, b, a; - if(*payload == '#' && sscanf(payload + 1, "%2x%2x%2x%2x", &r, &g, &b, &a) == 4) { + + if(*payload == '#' && sscanf(payload + 1, buffer, &r, &g, &b, &a) == 4) { return haspLogColor(LV_COLOR_MAKE(r, g, b)); - } else if(*payload == '#' && sscanf(payload + 1, "%2x%2x%2x", &r, &g, &b) == 3) { + } else if(*payload == '#' && sscanf(payload + 1, buffer, &r, &g, &b) == 3) { return haspLogColor(LV_COLOR_MAKE(r, g, b)); } diff --git a/src/hasp_dispatch.cpp b/src/hasp_dispatch.cpp index 1c7e3df4..b48b87fc 100644 --- a/src/hasp_dispatch.cpp +++ b/src/hasp_dispatch.cpp @@ -216,7 +216,8 @@ void dispatchTextLine(const char * cmnd) dispatchTopicPayload(strTopic.c_str(), cmnd + pos + 1); // topic is before '=', payload is after '=' position } else { - dispatchTopicPayload(cmnd, ""); + char buf[1] = {0}; + dispatchTopicPayload(cmnd, buf); } } } @@ -253,7 +254,7 @@ void dispatchReboot(bool saveConfig) Log.verbose(TAG_MSGR, F("-------------------------------------")); Log.notice(TAG_MSGR, F("HALT: Properly Rebooting the MCU now!")); Serial.flush(); - halRestart(); + halRestartMcu(); } void dispatch_button(uint8_t id, const char * event) @@ -360,9 +361,11 @@ void IRAM_ATTR dispatch_send_obj_attribute_str(uint8_t pageid, uint8_t btnid, co void dispatch_send_object_event(uint8_t pageid, uint8_t objid, uint8_t eventid) { if(objid < 100) { - char eventname[16]; - dispatch_get_event_name(eventid, eventname, sizeof(eventname)); - dispatch_send_obj_attribute_str(pageid, objid, "event", eventname); /* Literal String */ + char topic[8]; + char payload[8]; + snprintf_P(topic, sizeof(topic), PSTR("event")); + dispatch_get_event_name(eventid, payload, sizeof(payload)); + dispatch_send_obj_attribute_str(pageid, objid, topic, payload); } else { uint8_t groupid = (objid - 100) / 10; dispatch_send_group_event(groupid, eventid, true);