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 */
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));
}

View File

@ -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);