From 82afcbedc0b29df7ffba5ae500fffdeacafe1afe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Tue, 6 Jun 2023 16:40:33 +0200 Subject: [PATCH] treewide: fix warnings --- ConfigFile.cpp | 1 - SSDP.cpp | 2 +- Somfy.cpp | 29 ++++++++++++++++------------- Somfy.h | 27 +++++++++++++++++++++++++-- Web.cpp | 2 +- 5 files changed, 43 insertions(+), 18 deletions(-) diff --git a/ConfigFile.cpp b/ConfigFile.cpp index 197e1c0..f2567cf 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/SSDP.cpp b/SSDP.cpp index 4e882b6..d4a42ca 100644 --- a/SSDP.cpp +++ b/SSDP.cpp @@ -133,7 +133,7 @@ void UPNPDeviceType::setChipId(uint32_t chipId) { (uint16_t)((chipId >> 8) & 0xff), (uint16_t)chipId & 0xff); } -SSDPClass::SSDPClass():sendQueue{NULL} {} +SSDPClass::SSDPClass():sendQueue{false, INADDR_NONE, 0, nullptr, false, 0, ""} {} SSDPClass::~SSDPClass() { end(); } bool SSDPClass::begin() { for(int i = 0; i < SSDP_QUEUE_SIZE; i++) { diff --git a/Somfy.cpp b/Somfy.cpp index 0a1f36b..7475976 100644 --- a/Somfy.cpp +++ b/Somfy.cpp @@ -298,6 +298,8 @@ void somfy_frame_t::encodeFrame(byte *frame) { case somfy_commands::Flag: frame[0] = 142; break; + default: + break; } } else { @@ -317,6 +319,8 @@ void somfy_frame_t::encodeFrame(byte *frame) { frame[8] = 0; frame[9] = 25; break; + default: + break; } } byte checksum = 0; @@ -1114,6 +1118,8 @@ void SomfyShade::processWaitingFrame() { Serial.println(" repeats"); } break; + default: + break; } } } @@ -1136,7 +1142,6 @@ void SomfyShade::processFrame(somfy_frame_t &frame, bool internal) { const uint64_t curTime = millis(); this->lastFrame.copy(frame); int8_t dir = 0; - int8_t tiltDir = 0; this->moveStart = this->tiltStart = curTime; this->startPos = this->currentPos; this->startTiltPos = this->currentTiltPos; @@ -1514,7 +1519,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; @@ -1539,7 +1543,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; @@ -1732,7 +1735,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++) { @@ -1972,7 +1974,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. @@ -2004,17 +2006,16 @@ 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; bool somfy_tx_queue_t::pop(somfy_tx_t *tx) { // Read the oldest index. - for(uint8_t i = MAX_TX_BUFFER - 1; i >= 0; i--) { + for(int8_t i = MAX_TX_BUFFER - 1; i >= 0; i--) { 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; @@ -2027,7 +2028,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 @@ -2050,7 +2052,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; } @@ -2058,11 +2061,11 @@ void somfy_rx_queue_t::init() { bool somfy_rx_queue_t::pop(somfy_rx_t *rx) { // Read off the data from the oldest index. //Serial.println("Popping RX Queue"); - for(uint8_t i = MAX_RX_BUFFER - 1; i >= 0; i--) { + for(int8_t i = MAX_RX_BUFFER - 1; i >= 0; i--) { 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; @@ -2304,7 +2307,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 1fa1ece..7d17e8d 100644 --- a/Somfy.h +++ b/Somfy.h @@ -69,6 +69,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; @@ -91,13 +102,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/Web.cpp b/Web.cpp index 6837cbf..9dd15ba 100644 --- a/Web.cpp +++ b/Web.cpp @@ -229,7 +229,7 @@ void Web::begin() { Serial.print("Received:"); Serial.println(apiServer.arg("plain")); // Send the command to the shade. - if(target >= 0 && target <= 100) + if(target <= 100) shade->moveToTiltTarget(target); else shade->sendTiltCommand(command);