From 02faa2ea492e56d2c66a40638070f3d93db91013 Mon Sep 17 00:00:00 2001 From: Stephan Hadinger Date: Sat, 23 May 2020 10:05:57 +0200 Subject: [PATCH] Fix style and compilation error when no compression --- tasmota/support.ino | 2 +- tasmota/xdrv_10_rules.ino | 2 +- tasmota/xdrv_21_wemo.ino | 32 ++++++++++++++++++++++++-------- 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/tasmota/support.ino b/tasmota/support.ino index f43a40569..cecb5ffb2 100644 --- a/tasmota/support.ino +++ b/tasmota/support.ino @@ -1943,7 +1943,7 @@ String escapeJSONString(const char *str) { Unishox compressor; -String decompress(const char * compressed, size_t uncompressed_size) { +String Decompress(const char * compressed, size_t uncompressed_size) { String content(""); uncompressed_size += 2; // take a security margin diff --git a/tasmota/xdrv_10_rules.ino b/tasmota/xdrv_10_rules.ino index 7dcc90498..912a32ae5 100644 --- a/tasmota/xdrv_10_rules.ino +++ b/tasmota/xdrv_10_rules.ino @@ -263,7 +263,7 @@ void GetRule_decompress(String &rule, const char *rule_head) { size_t buf_len = 1 + *rule_head * 8; // the first byte contains size of buffer for uncompressed rule / 8, buf_len may overshoot by 7 rule_head++; // advance to the actual compressed buffer - rule = decompress(rule_head, buf_len); + rule = Decompress(rule_head, buf_len); } #endif // USE_RULES_COMPRESSION diff --git a/tasmota/xdrv_21_wemo.ino b/tasmota/xdrv_21_wemo.ino index 20236df6e..86022b084 100644 --- a/tasmota/xdrv_21_wemo.ino +++ b/tasmota/xdrv_21_wemo.ino @@ -89,7 +89,7 @@ void WemoRespondToMSearch(int echo_type) //SetBinaryStateBinaryStateBinaryStateinGetBinaryStateBinaryStateBinaryStateoutBinaryStatebool0levelstring0\r\n\r\n //Successfully compressed from 779 to 249 bytes (-68%) -const size_t WEMO_EVENTSERVICE_XML_size = 779; +const size_t WEMO_EVENTSERVICE_XML_SIZE = 779; const char WEMO_EVENTSERVICE_XML[] PROGMEM = "\x3D\x3C\x18\xC1\x11\xB0\x68\x5D\xE3\xE1\xEC\x17\xFE\x3C\xC8\x73\x08\xD3\x78\xF3" "\xF3\xF9\x9E\x86\xCE\xB3\x90\xEB\x67\xB0\xFC\x3D\x0A\xC3\xAD\xCE\x20\xB7\xD4\x08" "\x72\x0F\xC3\xD3\xAC\x6B\x3F\x0B\xCE\x88\x76\xF5\xFC\xC8\xBD\x57\x4C\xF4\x3B\x3A" @@ -106,7 +106,7 @@ const char WEMO_EVENTSERVICE_XML[] PROGMEM = "\x3D\x3C\x18\xC1\x11\xB0\x68\x5D\x //10GetMetaInfoGetMetaInfoMetaInfoinMetaInfostring0\r\n\r\n //Successfully compressed from 479 to 253 bytes (-47.2%) -const size_t WEMO_METASERVICE_XML_size = 479; +const size_t WEMO_METASERVICE_XML_SIZE = 479; const char WEMO_METASERVICE_XML[] PROGMEM = "\x3D\x3C\x18\xC1\x11\xB0\x68\x5D\xE3\xE1\xEC\x17\xFE\x3C\xC8\x73\x08\xD3\x78\xF3" "\xF3\xF9\x9E\x86\xCE\xB3\x90\xEB\x67\xB0\xFC\x3D\x0B\xC3\x18\x64\x66\xFF\xED\xCE" "\x3F\x0F\x41\xB6\x6B\xCF\x9F\x87\x21\xE8\x76\x10\x20\xC5\x3D\x06\xEF\x67\xCF\xC3" @@ -123,7 +123,7 @@ const char WEMO_METASERVICE_XML[] PROGMEM = "\x3D\x3C\x18\xC1\x11\xB0\x68\x5D\xE //%d\r\n //Successfully compressed from 282 to 161 bytes (-42.9%) -const size_t WEMO_RESPONSE_STATE_SOAP_size = 282; +const size_t WEMO_RESPONSE_STATE_SOAP_SIZE = 282; const char WEMO_RESPONSE_STATE_SOAP[] PROGMEM = "\x3D\x3C\x79\x93\xE3\x36\x16\x0C\x68\xD8\x34\x2E\xF1\xE7\xE3\xE1\xEC\x15\x54\x30" "\xF3\x3B\x0E\xCF\x06\x29\x8D\xBF\x1D\x0D\x83\x42\xF6\x58\xC3\xA6\x7C\x78\xEC\xF6" "\x58\xC3\xB1\x82\x16\x1C\x76\x1E\xC5\xE3\xCD\xF0\x78\x26\xF0\xF1\x7A\x8C\x82\x60" @@ -136,7 +136,7 @@ const char WEMO_RESPONSE_STATE_SOAP[] PROGMEM = "\x3D\x3C\x79\x93\xE3\x36\x16\x0 //urn:Belkin:device:controllee:1{x1Belkin International Inc.Socket3.1415uuid:{x2{x30urn:Belkin:service:basicevent:1urn:Belkin:serviceId:basicevent1/upnp/control/basicevent1/upnp/event/basicevent1/eventservice.xmlurn:Belkin:service:metainfo:1urn:Belkin:serviceId:metainfo1/upnp/control/metainfo1/upnp/event/metainfo1/metainfoservice.xml\r\n //Successfully compressed from 923 to 392 bytes (-57.5%) -const size_t WEMO_SETUP_XML_size = 923; +const size_t WEMO_SETUP_XML_SIZE = 923; const char WEMO_SETUP_XML[] PROGMEM = "\x3D\x0E\xD1\xB0\x68\x48\xCD\xFF\xDB\x9C\x7C\x3D\x87\x21\xD1\x9E\xC3\xB4\x7E\x1E" "\x85\xFC\xCA\x46\xC1\xA1\x77\x8F\x87\xB0\x5F\xF8\xF3\x21\xCC\x23\x4D\xE3\xCC\x46" "\x67\xA1\xB3\xAC\xE4\x3A\xD9\xEC\x3F\x0F\x42\x04\x19\x20\x87\x10\xA8\xC8\x63\x3F" @@ -293,7 +293,11 @@ void HandleUpnpEvent(void) } } - snprintf_P(event, sizeof(event), decompress(WEMO_RESPONSE_STATE_SOAP, WEMO_RESPONSE_STATE_SOAP_size).c_str(), state, bitRead(power, devices_present -1), state); +#if defined(USE_RULES_COMPRESSION) || defined(USE_SCRIPT_COMPRESSION) + snprintf_P(event, sizeof(event), Decompress(WEMO_RESPONSE_STATE_SOAP, WEMO_RESPONSE_STATE_SOAP_SIZE).c_str(), state, bitRead(power, devices_present -1), state); +#else + snprintf_P(event, sizeof(event), WEMO_RESPONSE_STATE_SOAP, state, bitRead(power, devices_present -1), state); +#endif WSSend(200, CT_XML, event); } @@ -301,21 +305,33 @@ void HandleUpnpService(void) { AddLog_P(LOG_LEVEL_DEBUG, S_LOG_HTTP, PSTR(D_WEMO_EVENT_SERVICE)); - WSSend(200, CT_PLAIN, decompress(WEMO_EVENTSERVICE_XML, WEMO_EVENTSERVICE_XML_size)); +#if defined(USE_RULES_COMPRESSION) || defined(USE_SCRIPT_COMPRESSION) + WSSend(200, CT_PLAIN, Decompress(WEMO_EVENTSERVICE_XML, WEMO_EVENTSERVICE_XML_SIZE)); +#else + WSSend(200, CT_PLAIN, FPSTR(WEMO_EVENTSERVICE_XML)); +#endif } void HandleUpnpMetaService(void) { AddLog_P(LOG_LEVEL_DEBUG, S_LOG_HTTP, PSTR(D_WEMO_META_SERVICE)); - WSSend(200, CT_PLAIN, decompress(WEMO_METASERVICE_XML, WEMO_METASERVICE_XML_size)); +#if defined(USE_RULES_COMPRESSION) || defined(USE_SCRIPT_COMPRESSION) + WSSend(200, CT_PLAIN, Decompress(WEMO_METASERVICE_XML, WEMO_METASERVICE_XML_SIZE)); +#else + WSSend(200, CT_PLAIN, FPSTR(WEMO_METASERVICE_XML)); +#endif } void HandleUpnpSetupWemo(void) { AddLog_P(LOG_LEVEL_DEBUG, S_LOG_HTTP, PSTR(D_WEMO_SETUP)); - String setup_xml = decompress(WEMO_SETUP_XML, WEMO_SETUP_XML_size); +#if defined(USE_RULES_COMPRESSION) || defined(USE_SCRIPT_COMPRESSION) + String setup_xml = Decompress(WEMO_SETUP_XML, WEMO_SETUP_XML_SIZE); +#else + String setup_xml = FPSTR(WEMO_SETUP_XML); +#endif setup_xml.replace("{x1", SettingsText(SET_FRIENDLYNAME1)); setup_xml.replace("{x2", WemoUuid()); setup_xml.replace("{x3", WemoSerialnumber());