dontsovcmc / waterius

Передача показаний воды по Wi-Fi. Watermeter Wi-Fi transmitter.
https://waterius.ru
GNU Lesser General Public License v3.0
555 stars 108 forks source link

42949670 в значениях #269

Closed dontsovcmc closed 8 months ago

dontsovcmc commented 1 year ago
SCR-20230320-ni6

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

Проверить: Что будет при смене батареек когда всё ок?

dontsovcmc commented 8 months ago

В версиях 0.11.3 улучшили работу с памятью у attiny и возможно ошибка пропадёт.

В 1.0.0 надо добавить эту защиту, т.к. цена ошибки высока.

dontsovcmc commented 8 months ago

сделано в 1.0.0