diff --git a/tools/esp8266/app.cpp b/tools/esp8266/app.cpp index 938a3e5a..2cc048d4 100644 --- a/tools/esp8266/app.cpp +++ b/tools/esp8266/app.cpp @@ -353,8 +353,11 @@ void app::processPayload(bool retransmit) { else { mPayload[iv->id].complete = true; iv->ts = mPayload[iv->id].ts; - uint8_t payload[128] = {0}; + uint8_t payload[128]; uint8_t offs = 0; + + memset(payload, 0, 128); + for(uint8_t i = 0; i < (mPayload[iv->id].maxPackId); i ++) { memcpy(&payload[offs], mPayload[iv->id].data[i], (mPayload[iv->id].len[i])); offs += (mPayload[iv->id].len[i]); @@ -903,17 +906,15 @@ void app::saveValues(void) { mEep->write(ADDR_CFG, (uint8_t*)&mConfig, CFG_LEN); Inverter<> *iv; for(uint8_t i = 0; i < MAX_NUM_INVERTERS; i ++) { - iv = mSys->getInverterByPos(i); - if(NULL != iv) { - mEep->write(ADDR_INV_ADDR + (i * 8), iv->serial.u64); - mEep->write(ADDR_INV_PWR_LIM + i * 2, iv->powerLimit[0]); - mEep->write(ADDR_INV_PWR_LIM_CON + i * 2, iv->powerLimit[1]); - mEep->write(ADDR_INV_NAME + (i * MAX_NAME_LENGTH), iv->name, MAX_NAME_LENGTH); - // max channel power / name - for(uint8_t j = 0; j < 4; j++) { - mEep->write(ADDR_INV_CH_PWR + (i * 2 * 4) + (j*2), iv->chMaxPwr[j]); - mEep->write(ADDR_INV_CH_NAME + (i * 4 * MAX_NAME_LENGTH) + j * MAX_NAME_LENGTH, iv->chName[j], MAX_NAME_LENGTH); - } + iv = mSys->getInverterByPos(i, false); + mEep->write(ADDR_INV_ADDR + (i * 8), iv->serial.u64); + mEep->write(ADDR_INV_PWR_LIM + i * 2, iv->powerLimit[0]); + mEep->write(ADDR_INV_PWR_LIM_CON + i * 2, iv->powerLimit[1]); + mEep->write(ADDR_INV_NAME + (i * MAX_NAME_LENGTH), iv->name, MAX_NAME_LENGTH); + // max channel power / name + for(uint8_t j = 0; j < 4; j++) { + mEep->write(ADDR_INV_CH_PWR + (i * 2 * 4) + (j*2), iv->chMaxPwr[j]); + mEep->write(ADDR_INV_CH_NAME + (i * 4 * MAX_NAME_LENGTH) + j * MAX_NAME_LENGTH, iv->chName[j], MAX_NAME_LENGTH); } } diff --git a/tools/esp8266/app.h b/tools/esp8266/app.h index 0e09701a..3f3686ab 100644 --- a/tools/esp8266/app.h +++ b/tools/esp8266/app.h @@ -80,9 +80,10 @@ class app { } uint64_t Serial2u64(const char *val) { - char tmp[3] = {0}; + char tmp[3]; uint64_t ret = 0ULL; uint64_t u64; + memset(tmp, 0, 3); for(uint8_t i = 0; i < 6; i++) { tmp[0] = val[i*2]; tmp[1] = val[i*2 + 1]; @@ -95,7 +96,7 @@ class app { } String getDateTimeStr(time_t t) { - char str[20] = {0}; + char str[20]; if(0 == t) sprintf(str, "n/a"); else @@ -113,9 +114,11 @@ class app { void eraseSettings(bool all = false) { //DPRINTLN(DBG_VERBOSE, F("main.h:eraseSettings")); - uint8_t buf[64] = {0}; + uint8_t buf[64]; uint16_t addr = (all) ? ADDR_START : ADDR_START_SETTINGS; uint16_t end; + + memset(buf, 0xff, 64); do { end = addr + 64; if(end > (ADDR_SETTINGS_CRC + 2))