From a1d4a36379c4253606ef5b56ff115376c73e34d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Wed, 31 May 2023 18:37:13 +0200 Subject: [PATCH] Fix more warnings seen with "--warnings more" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Álvaro Fernández Rojas --- ConfigFile.cpp | 1 - ConfigSettings.cpp | 12 +++--------- MQTT.cpp | 8 ++++---- Network.cpp | 8 ++------ SSDP.cpp | 6 ++++-- Sockets.cpp | 3 ++- Somfy.cpp | 25 ++++++++++++++----------- Somfy.h | 27 +++++++++++++++++++++++++-- Utils.cpp | 1 - Utils.h | 8 ++++---- Web.cpp | 5 +---- 11 files changed, 59 insertions(+), 45 deletions(-) diff --git a/ConfigFile.cpp b/ConfigFile.cpp index 3ee691f..32c9726 100644 --- a/ConfigFile.cpp +++ b/ConfigFile.cpp @@ -372,7 +372,6 @@ bool ShadeConfigFile::getAppVersion(appver_t &ver) { char app[15]; if(!LittleFS.exists("/appversion")) return false; File f = LittleFS.open("/appversion", "r"); - size_t fsize = f.size(); memset(app, 0x00, sizeof(app)); f.read((uint8_t *)app, sizeof(app) - 1); f.close(); diff --git a/ConfigSettings.cpp b/ConfigSettings.cpp index 06a473d..38dcb1b 100644 --- a/ConfigSettings.cpp +++ b/ConfigSettings.cpp @@ -19,7 +19,7 @@ bool BaseSettings::loadFile(const char *filename) { data += c; } DynamicJsonDocument doc(filesize); - DeserializationError err = deserializeJson(doc, data); + deserializeJson(doc, data); JsonObject obj = doc.as(); this->fromJSON(obj); file.close(); @@ -81,7 +81,7 @@ bool ConfigSettings::load() { pref.end(); if(this->connType == conn_types::unset) { // We are doing this to convert the data from previous versions. - this->connType == conn_types::wifi; + this->connType = conn_types::wifi; pref.begin("WIFI"); pref.getString("hostname", this->hostname, sizeof(this->hostname)); this->ssdpBroadcast = pref.getBool("ssdpBroadcast", true); @@ -113,7 +113,7 @@ bool ConfigSettings::fromJSON(JsonObject &obj) { return true; } void ConfigSettings::print() { - Serial.printf("Connection Type: %d\n", this->connType); + Serial.printf("Connection Type: %u\n", (unsigned int) this->connType); this->NTP.print(); if(this->connType == conn_types::wifi || this->connType == conn_types::unset) this->WIFI.print(); if(this->connType == conn_types::ethernet || this->connType == conn_types::ethernetpref) this->Ethernet.print(); @@ -290,11 +290,6 @@ void WifiSettings::printNetworks() { Serial.print(n); Serial.println(" Networks..."); String network; - uint8_t encType; - int32_t RSSI; - uint8_t* BSSID; - int32_t channel; - bool isHidden; for(int i = 0; i < n; i++) { if(WiFi.SSID(i).compareTo(this->ssid) == 0) Serial.print("*"); else Serial.print(" "); @@ -307,7 +302,6 @@ void WifiSettings::printNetworks() { Serial.print(WiFi.channel(i)); Serial.print(" MAC:"); Serial.print(WiFi.BSSIDstr(i)); - if(isHidden) Serial.print(" [hidden]"); Serial.println(); } } diff --git a/MQTT.cpp b/MQTT.cpp index be2ca4c..4c80c38 100644 --- a/MQTT.cpp +++ b/MQTT.cpp @@ -102,7 +102,7 @@ bool MQTTClass::connect() { if(settings.MQTT.enabled) { if(this->lastConnect + 10000 > millis()) return false; uint64_t mac = ESP.getEfuseMac(); - snprintf(this->clientId, sizeof(this->clientId), "client-%08lx%08lx", (uint32_t)((mac >> 32) & 0xFFFFFFFF), (uint32_t)(mac & 0xFFFFFFFF)); + snprintf(this->clientId, sizeof(this->clientId), "client-%08x%08x", (uint32_t)((mac >> 32) & 0xFFFFFFFF), (uint32_t)(mac & 0xFFFFFFFF)); if(strlen(settings.MQTT.protocol) > 0 && strlen(settings.MQTT.hostname) > 0) { mqttClient.setServer(settings.MQTT.hostname, settings.MQTT.port); if(mqttClient.connect(this->clientId, settings.MQTT.username, settings.MQTT.password)) { @@ -138,7 +138,7 @@ bool MQTTClass::disconnect() { } bool MQTTClass::unsubscribe(const char *topic) { if(mqttClient.connected()) { - char top[64]; + char top[128]; if(strlen(settings.MQTT.rootTopic) > 0) snprintf(top, sizeof(top), "%s/%s", settings.MQTT.rootTopic, topic); else @@ -149,7 +149,7 @@ bool MQTTClass::unsubscribe(const char *topic) { } bool MQTTClass::subscribe(const char *topic) { if(mqttClient.connected()) { - char top[64]; + char top[128]; if(strlen(settings.MQTT.rootTopic) > 0) snprintf(top, sizeof(top), "%s/%s", settings.MQTT.rootTopic, topic); else @@ -162,7 +162,7 @@ bool MQTTClass::subscribe(const char *topic) { } bool MQTTClass::publish(const char *topic, const char *payload) { if(mqttClient.connected()) { - char top[64]; + char top[128]; if(strlen(settings.MQTT.rootTopic) > 0) snprintf(top, sizeof(top), "%s/%s", settings.MQTT.rootTopic, topic); else diff --git a/Network.cpp b/Network.cpp index f5a3bb4..851c0af 100644 --- a/Network.cpp +++ b/Network.cpp @@ -291,6 +291,8 @@ bool Network::connectWiFi() { Serial.print(settings.WIFI.ssid); Serial.print(" could not be found"); return false; + default: + break; } delay(500); if(connectAttempts == 1) Serial.print("*"); @@ -342,11 +344,6 @@ int Network::getStrengthBySSID(const char *ssid) { Serial.print(n); Serial.println(" Networks..."); String network; - uint8_t encType; - int32_t RSSI; - uint8_t* BSSID; - int32_t channel; - bool isHidden; for(int i = 0; i < n; i++) { //WiFi.getNetworkInfo(i, network, encType, RSSI, BSSID, channel, isHidden); if(network.compareTo(this->ssid) == 0) Serial.print("*"); @@ -360,7 +357,6 @@ int Network::getStrengthBySSID(const char *ssid) { Serial.print(WiFi.channel(i)); Serial.print(" MAC:"); Serial.print(WiFi.BSSIDstr(i).c_str()); - if(isHidden) Serial.print(" [hidden]"); Serial.println(); } } diff --git a/SSDP.cpp b/SSDP.cpp index dc6ee3b..4e882b6 100644 --- a/SSDP.cpp +++ b/SSDP.cpp @@ -305,6 +305,8 @@ void SSDPClass::_parsePacket(ssdp_packet_t *pkt, AsyncUDPPacket &p) { case AGENT: strcpy(pkt->agent, buffer); break; + default: + break; } keys = KEY; pos = 0; @@ -683,7 +685,7 @@ void SSDPClass::_sendQueuedResponses() { } } void SSDPClass::_printPacket(ssdp_packet_t *pkt) { - Serial.printf("Rec: %d\n", pkt->recvd); + Serial.printf("Rec: %lu\n", pkt->recvd); switch(pkt->method) { case NONE: Serial.println("Method: NONE"); @@ -734,7 +736,7 @@ void SSDPClass::_processRequest(AsyncUDPPacket &p) { this->_sendResponse(p.remoteIP(), p.remotePort(), dev, pkt.st, false); } else { - UPNPDeviceType *dev; + UPNPDeviceType *dev = nullptr; bool useUUID = false; if(this->_startsWith("uuid:", pkt.st)) { dev = this->findDeviceByUUID(pkt.st); diff --git a/Sockets.cpp b/Sockets.cpp index 0d899ac..3afe66b 100644 --- a/Sockets.cpp +++ b/Sockets.cpp @@ -176,6 +176,7 @@ void SocketEmitter::wsEvent(uint8_t num, WStype_t type, uint8_t *payload, size_t case WStype_PING: //Serial.printf("Ping from %u\n", num); break; - + default: + break; } } diff --git a/Somfy.cpp b/Somfy.cpp index 210d7b3..6341876 100644 --- a/Somfy.cpp +++ b/Somfy.cpp @@ -291,6 +291,8 @@ void somfy_frame_t::encodeFrame(byte *frame) { case somfy_commands::Flag: frame[0] = 142; break; + default: + break; } } else { @@ -310,6 +312,8 @@ void somfy_frame_t::encodeFrame(byte *frame) { frame[8] = 0; frame[9] = 25; break; + default: + break; } } byte checksum = 0; @@ -1039,6 +1043,8 @@ void SomfyShade::processWaitingFrame() { Serial.println(" repeats"); } break; + default: + break; } } } @@ -1060,7 +1066,6 @@ void SomfyShade::processFrame(somfy_frame_t &frame, bool internal) { if(!hasRemote) return; this->lastFrame.copy(frame); int8_t dir = 0; - int8_t tiltDir = 0; this->moveStart = this->tiltStart = millis(); this->startPos = this->currentPos; this->startTiltPos = this->currentTiltPos; @@ -1336,7 +1341,6 @@ void SomfyShade::sendTiltCommand(somfy_commands cmd) { } } void SomfyShade::moveToTiltTarget(float target) { - int8_t newDir = 0; somfy_commands cmd = somfy_commands::My; if(target < this->currentTiltPos) cmd = somfy_commands::Up; @@ -1361,7 +1365,6 @@ void SomfyShade::moveToTiltTarget(float target) { this->settingTiltPos = true; } void SomfyShade::moveToTarget(float pos, float tilt) { - int8_t newDir = 0; somfy_commands cmd = somfy_commands::My; if(pos < this->currentPos) cmd = somfy_commands::Up; @@ -1552,7 +1555,6 @@ void SomfyShadeController::publish() { mqtt.publish("shades", arr); } uint8_t SomfyShadeController::getNextShadeId() { - uint8_t nextId = 0; // There is no shortcut for this since the deletion of // a shade in the middle makes all of this very difficult. for(uint8_t i = 1; i < SOMFY_MAX_SHADES - 1; i++) { @@ -1792,7 +1794,7 @@ bool SomfyShadeController::toJSON(JsonArray &arr) { } void SomfyShadeController::loop() { this->transceiver.loop(); - for(uint8_t i; i < SOMFY_MAX_SHADES; i++) { + for(uint8_t i = 0; i < SOMFY_MAX_SHADES; i++) { if(this->shades[i].getShadeId() != 255) this->shades[i].checkMovement(); } // Only commit the file once per second. @@ -1824,7 +1826,6 @@ static const uint32_t tempo_if_gap = 30415; // Gap between frames static int16_t bitMin = SYMBOL * TOLERANCE_MIN; -static uint16_t timing_index = 0; static somfy_rx_t somfy_rx; static somfy_rx_queue_t rx_queue; @@ -1834,7 +1835,7 @@ bool somfy_tx_queue_t::pop(somfy_tx_t *tx) { if(this->index[i] < MAX_TX_BUFFER) { uint8_t ndx = this->index[i]; memcpy(tx, &this->items[ndx], sizeof(somfy_tx_t)); - memset(&this->items[ndx], 0x00, sizeof(somfy_tx_t)); + this->items[ndx].clear(); this->length--; this->index[i] = 255; return true; @@ -1847,7 +1848,8 @@ bool somfy_tx_queue_t::push(uint32_t await, somfy_commands cmd, uint8_t repeats) uint8_t ndx = this->index[MAX_TX_BUFFER - 1]; this->index[MAX_TX_BUFFER - 1] = 255; this->length = MAX_TX_BUFFER - 1; - if(ndx < MAX_TX_BUFFER) memset(&this->items[ndx], 0x00, sizeof(somfy_tx_t)); + if(ndx < MAX_TX_BUFFER) + this->items[ndx].clear(); } // Place the command in the first empty slot. Empty slots are those // with a millis of 0. We will shift the indexes right so that this @@ -1870,7 +1872,8 @@ bool somfy_tx_queue_t::push(uint32_t await, somfy_commands cmd, uint8_t repeats) } void somfy_rx_queue_t::init() { Serial.println("Initializing RX Queue"); - memset(&this->items[0], 0x00, sizeof(somfy_rx_t) * MAX_RX_BUFFER); + for (uint8_t i = 0; i < MAX_RX_BUFFER; i++) + this->items[i].clear(); memset(&this->index[0], 0xFF, MAX_RX_BUFFER); this->length = 0; } @@ -1882,7 +1885,7 @@ bool somfy_rx_queue_t::pop(somfy_rx_t *rx) { if(this->index[i] < MAX_RX_BUFFER) { uint8_t ndx = this->index[i]; memcpy(rx, &this->items[this->index[i]], sizeof(somfy_rx_t)); - memset(&this->items[ndx], 0x00, sizeof(somfy_rx_t)); + this->items[ndx].clear(); this->length--; this->index[i] = 255; return true; @@ -2124,7 +2127,7 @@ void Transceiver::emitFrame(somfy_frame_t *frame, somfy_rx_t *rx) { evt.appendMessage(buf); snprintf(buf, sizeof(buf), "\"rcode\":%d,", frame->rollingCode); evt.appendMessage(buf); - snprintf(buf, sizeof(buf), "\"command\":\"%s\",", translateSomfyCommand(frame->cmd)); + snprintf(buf, sizeof(buf), "\"command\":\"%s\",", translateSomfyCommand(frame->cmd).c_str()); evt.appendMessage(buf); snprintf(buf, sizeof(buf), "\"rssi\":%d,", frame->rssi); evt.appendMessage(buf); diff --git a/Somfy.h b/Somfy.h index 8a15527..d9ba5fc 100644 --- a/Somfy.h +++ b/Somfy.h @@ -59,6 +59,17 @@ typedef enum { } t_status; struct somfy_rx_t { + void clear() { + this->status = t_status::waiting_synchro; + this->bit_length = 56; + this->cpt_synchro_hw = 0; + this->cpt_bits = 0; + this->previous_bit = 0; + this->waiting_half_symbol = false; + memset(this->payload, 0, sizeof(this->payload)); + memset(this->pulses, 0, sizeof(this->pulses)); + this->pulseCount = 0; + } t_status status; uint8_t bit_length = 56; uint8_t cpt_synchro_hw = 0; @@ -81,13 +92,25 @@ struct somfy_rx_queue_t { bool pop(somfy_rx_t *rx); }; struct somfy_tx_t { + void clear() { + this->await = 0; + this->cmd = somfy_commands::Unknown0; + this->repeats = 0; + } uint32_t await = 0; somfy_commands cmd; uint8_t repeats; }; struct somfy_tx_queue_t { - somfy_tx_queue_t() { memset(this->index, 255, MAX_TX_BUFFER); memset(&this->items[0], 0x00, sizeof(somfy_tx_queue_t) * MAX_TX_BUFFER); } - void clear() { memset(&this->index[0], 255, MAX_TX_BUFFER); memset(&this->items[0], 0x00, sizeof(somfy_tx_queue_t) * MAX_TX_BUFFER); } + somfy_tx_queue_t() { + this->clear(); + } + void clear() { + for (uint8_t i = 0; i < MAX_TX_BUFFER; i++) { + this->index[i] = 255; + this->items[i].clear(); + } + } uint8_t length = 0; uint8_t index[MAX_TX_BUFFER]; somfy_tx_t items[MAX_TX_BUFFER]; diff --git a/Utils.cpp b/Utils.cpp index bad471e..50c1e93 100644 --- a/Utils.cpp +++ b/Utils.cpp @@ -25,7 +25,6 @@ char * Timestamp::formatISO(struct tm *dt, int tz) { int tzHrs = floor(tz/100); int tzMin = tz - (tzHrs * 100); int ms = millis() % 1000; - char isoTime[32]; snprintf(this->_timeBuffer, sizeof(this->_timeBuffer), "%04d-%02d-%02dT%02d:%02d:%02d.%03d%s%02d%02d", dt->tm_year + 1900, dt->tm_mon + 1, dt->tm_mday, dt->tm_hour, dt->tm_min, dt->tm_sec, ms, tzHrs < 0 ? "-" : "+", abs(tzHrs), abs(tzMin)); return this->_timeBuffer; diff --git a/Utils.h b/Utils.h index b2fa96f..6571964 100644 --- a/Utils.h +++ b/Utils.h @@ -4,7 +4,7 @@ #define DEBUG_SOMFY Serial -static void SETCHARPROP(char *prop, const char *value, size_t size) {strncpy(prop, value, size); prop[size - 1] = '\0';} +[[maybe_unused]] static void SETCHARPROP(char *prop, const char *value, size_t size) {strncpy(prop, value, size); prop[size - 1] = '\0';} namespace util { // Createa a custom to_string function. C++ can be annoying // with all the trailing 0s on number formats. @@ -36,13 +36,13 @@ static void _rtrim(char *str) { int e = strlen(str) - 1; while(e >= 0 && (str[e] == ' ' || str[e] == '\n' || str[e] == '\r' || str[e] == '\t' || str[e] == '"')) {str[e] = '\0'; e--;} } -static void _trim(char *str) { _ltrim(str); _rtrim(str); } +[[maybe_unused]] static void _trim(char *str) { _ltrim(str); _rtrim(str); } struct rebootDelay_t { bool reboot = false; int rebootTime = 0; bool closed = false; }; -static bool toBoolean(const char *str, bool def) { +[[maybe_unused]] static bool toBoolean(const char *str, bool def) { if(!str) return def; if(strlen(str) == 0) return def; else if(str[0] == 't' || str[0] == 'T' || str[0] == '1') return true; @@ -51,7 +51,7 @@ static bool toBoolean(const char *str, bool def) { } class Timestamp { - char _timeBuffer[44]; + char _timeBuffer[128]; public: time_t getUTC(); time_t getUTC(time_t epoch); diff --git a/Web.cpp b/Web.cpp index d79fbcb..8e5b78f 100644 --- a/Web.cpp +++ b/Web.cpp @@ -250,7 +250,6 @@ void Web::begin() { server.on("/", []() { webServer.sendCacheHeaders(604800); webServer.sendCORSHeaders(); - int statusCode = 200; // Load the index html page from the data directory. Serial.println("Loading file index.html"); File file = LittleFS.open("/index.html", "r"); @@ -481,7 +480,7 @@ void Web::begin() { }); server.on("/addShade", []() { HTTPMethod method = server.method(); - SomfyShade* shade; + SomfyShade* shade = nullptr; if (method == HTTP_POST || method == HTTP_PUT) { Serial.println("Adding a shade"); DynamicJsonDocument doc(512); @@ -1320,7 +1319,6 @@ void Web::begin() { }); server.on("/setgeneral", []() { webServer.sendCORSHeaders(); - int statusCode = 200; DynamicJsonDocument doc(256); DeserializationError err = deserializeJson(doc, server.arg("plain")); if (err) { @@ -1399,7 +1397,6 @@ void Web::begin() { }); server.on("/connectwifi", []() { webServer.sendCORSHeaders(); - int statusCode = 200; Serial.println("Settings WIFI connection..."); DynamicJsonDocument doc(512); DeserializationError err = deserializeJson(doc, server.arg("plain"));