dontsovcmc/waterius

42949670 в значениях

dontsovcmc opened this issue · 2 comments

SCR-20230320-ni6

https://github.com/dontsovcmc/waterius/blob/master/ESP8266/src/setup_ap.cpp#L395

вот запоминаем имульсы и выше запомнили показания счетчиков.

соответственно

cdata.delta0 = (data.impulses0 - sett.impulses0_previous) * sett.factor0;

вот тут получаем

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