Closed dontsovcmc closed 8 months ago
https://github.com/dontsovcmc/waterius/blob/master/ESP8266/src/setup_ap.cpp#L395
вот запоминаем имульсы и выше запомнили показания счетчиков.
соответственно https://github.com/dontsovcmc/waterius/blob/8a181bc89c559b2e5db59df7c46e2edb2680a45a/ESP8266/src/config.cpp#L248
вот тут получаем
cdata.delta0 = (data.impulses0 - sett.impulses0_previous) * sett.factor0;
cdata.delta0 = (0 - 2000) * sett.factor0;
получаем гигантское значение.
Проблема: нужно перенастраивать ватериус в случае такой ерунды.
Решение: я думаю нужно сделать защиту от "data.impulses0 < sett.impulses0_previous" и если это так, То impulses0 = impulses0_previous
Проверить: Что будет при смене батареек когда всё ок?
В версиях 0.11.3 улучшили работу с памятью у attiny и возможно ошибка пропадёт.
В 1.0.0 надо добавить эту защиту, т.к. цена ошибки высока.
сделано в 1.0.0
https://github.com/dontsovcmc/waterius/blob/master/ESP8266/src/setup_ap.cpp#L395
вот запоминаем имульсы и выше запомнили показания счетчиков.
соответственно https://github.com/dontsovcmc/waterius/blob/8a181bc89c559b2e5db59df7c46e2edb2680a45a/ESP8266/src/config.cpp#L248
вот тут получаем
cdata.delta0 = (data.impulses0 - sett.impulses0_previous) * sett.factor0;
cdata.delta0 = (0 - 2000) * sett.factor0;
получаем гигантское значение.
Проблема: нужно перенастраивать ватериус в случае такой ерунды.
Решение: я думаю нужно сделать защиту от "data.impulses0 < sett.impulses0_previous" и если это так, То impulses0 = impulses0_previous
Проверить: Что будет при смене батареек когда всё ок?