Remove literal strings

This commit is contained in:
fvanroie 2020-11-22 17:00:00 +01:00
parent 8e150fca3a
commit e39a688fe0
2 changed files with 16 additions and 7 deletions

View File

@ -123,10 +123,16 @@ static lv_color_t haspPayloadToColor(const char * payload)
} }
/* HEX format #rrggbb or #rrggbbaa */ /* 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; 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)); 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)); return haspLogColor(LV_COLOR_MAKE(r, g, b));
} }

View File

@ -216,7 +216,8 @@ void dispatchTextLine(const char * cmnd)
dispatchTopicPayload(strTopic.c_str(), dispatchTopicPayload(strTopic.c_str(),
cmnd + pos + 1); // topic is before '=', payload is after '=' position cmnd + pos + 1); // topic is before '=', payload is after '=' position
} else { } else {
dispatchTopicPayload(cmnd, ""); char buf[1] = {0};
dispatchTopicPayload(cmnd, buf);
} }
} }
} }
@ -253,7 +254,7 @@ void dispatchReboot(bool saveConfig)
Log.verbose(TAG_MSGR, F("-------------------------------------")); Log.verbose(TAG_MSGR, F("-------------------------------------"));
Log.notice(TAG_MSGR, F("HALT: Properly Rebooting the MCU now!")); Log.notice(TAG_MSGR, F("HALT: Properly Rebooting the MCU now!"));
Serial.flush(); Serial.flush();
halRestart(); halRestartMcu();
} }
void dispatch_button(uint8_t id, const char * event) 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) void dispatch_send_object_event(uint8_t pageid, uint8_t objid, uint8_t eventid)
{ {
if(objid < 100) { if(objid < 100) {
char eventname[16]; char topic[8];
dispatch_get_event_name(eventid, eventname, sizeof(eventname)); char payload[8];
dispatch_send_obj_attribute_str(pageid, objid, "event", eventname); /* Literal String */ 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 { } else {
uint8_t groupid = (objid - 100) / 10; uint8_t groupid = (objid - 100) / 10;
dispatch_send_group_event(groupid, eventid, true); dispatch_send_group_event(groupid, eventid, true);