mirror of
https://github.com/lumapu/ahoy.git
synced 2025-05-16 18:36:10 +02:00
* fix empty inverters save on a brandnew ESP
* replaced several {0} by memset * erase now erases the flash with 0xff (identical to a brandnew ESP)
This commit is contained in:
parent
3a51f3545c
commit
fec8758de7
2 changed files with 19 additions and 15 deletions
|
@ -353,8 +353,11 @@ void app::processPayload(bool retransmit) {
|
||||||
else {
|
else {
|
||||||
mPayload[iv->id].complete = true;
|
mPayload[iv->id].complete = true;
|
||||||
iv->ts = mPayload[iv->id].ts;
|
iv->ts = mPayload[iv->id].ts;
|
||||||
uint8_t payload[128] = {0};
|
uint8_t payload[128];
|
||||||
uint8_t offs = 0;
|
uint8_t offs = 0;
|
||||||
|
|
||||||
|
memset(payload, 0, 128);
|
||||||
|
|
||||||
for(uint8_t i = 0; i < (mPayload[iv->id].maxPackId); i ++) {
|
for(uint8_t i = 0; i < (mPayload[iv->id].maxPackId); i ++) {
|
||||||
memcpy(&payload[offs], mPayload[iv->id].data[i], (mPayload[iv->id].len[i]));
|
memcpy(&payload[offs], mPayload[iv->id].data[i], (mPayload[iv->id].len[i]));
|
||||||
offs += (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);
|
mEep->write(ADDR_CFG, (uint8_t*)&mConfig, CFG_LEN);
|
||||||
Inverter<> *iv;
|
Inverter<> *iv;
|
||||||
for(uint8_t i = 0; i < MAX_NUM_INVERTERS; i ++) {
|
for(uint8_t i = 0; i < MAX_NUM_INVERTERS; i ++) {
|
||||||
iv = mSys->getInverterByPos(i);
|
iv = mSys->getInverterByPos(i, false);
|
||||||
if(NULL != iv) {
|
mEep->write(ADDR_INV_ADDR + (i * 8), iv->serial.u64);
|
||||||
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 + i * 2, iv->powerLimit[0]);
|
mEep->write(ADDR_INV_PWR_LIM_CON + i * 2, iv->powerLimit[1]);
|
||||||
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);
|
||||||
mEep->write(ADDR_INV_NAME + (i * MAX_NAME_LENGTH), iv->name, MAX_NAME_LENGTH);
|
// max channel power / name
|
||||||
// max channel power / name
|
for(uint8_t j = 0; j < 4; j++) {
|
||||||
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_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);
|
||||||
mEep->write(ADDR_INV_CH_NAME + (i * 4 * MAX_NAME_LENGTH) + j * MAX_NAME_LENGTH, iv->chName[j], MAX_NAME_LENGTH);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -80,9 +80,10 @@ class app {
|
||||||
}
|
}
|
||||||
|
|
||||||
uint64_t Serial2u64(const char *val) {
|
uint64_t Serial2u64(const char *val) {
|
||||||
char tmp[3] = {0};
|
char tmp[3];
|
||||||
uint64_t ret = 0ULL;
|
uint64_t ret = 0ULL;
|
||||||
uint64_t u64;
|
uint64_t u64;
|
||||||
|
memset(tmp, 0, 3);
|
||||||
for(uint8_t i = 0; i < 6; i++) {
|
for(uint8_t i = 0; i < 6; i++) {
|
||||||
tmp[0] = val[i*2];
|
tmp[0] = val[i*2];
|
||||||
tmp[1] = val[i*2 + 1];
|
tmp[1] = val[i*2 + 1];
|
||||||
|
@ -95,7 +96,7 @@ class app {
|
||||||
}
|
}
|
||||||
|
|
||||||
String getDateTimeStr(time_t t) {
|
String getDateTimeStr(time_t t) {
|
||||||
char str[20] = {0};
|
char str[20];
|
||||||
if(0 == t)
|
if(0 == t)
|
||||||
sprintf(str, "n/a");
|
sprintf(str, "n/a");
|
||||||
else
|
else
|
||||||
|
@ -113,9 +114,11 @@ class app {
|
||||||
|
|
||||||
void eraseSettings(bool all = false) {
|
void eraseSettings(bool all = false) {
|
||||||
//DPRINTLN(DBG_VERBOSE, F("main.h:eraseSettings"));
|
//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 addr = (all) ? ADDR_START : ADDR_START_SETTINGS;
|
||||||
uint16_t end;
|
uint16_t end;
|
||||||
|
|
||||||
|
memset(buf, 0xff, 64);
|
||||||
do {
|
do {
|
||||||
end = addr + 64;
|
end = addr + 64;
|
||||||
if(end > (ADDR_SETTINGS_CRC + 2))
|
if(end > (ADDR_SETTINGS_CRC + 2))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue