From 5cea05e0be9b4df0f422f56b7a3929cdce0ec71a Mon Sep 17 00:00:00 2001 From: Fisch Date: Fri, 13 Nov 2020 16:12:19 +0100 Subject: [PATCH] fix raingauge first flip amount --- src/main.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index b6861d0..f097a33 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -210,7 +210,7 @@ struct sensordata sensordata dataRaingauge; unsigned long raingauge_lasttimereset=0; uint16_t raingauge_pulsecounter=0; //counted pulses since last reset - + bool raingauge_idleflag=true; #define RAINGAUGE_DEBOUNCETIME 1000 unsigned long raingauge_lastpulse_fordebounce=0; @@ -1011,11 +1011,16 @@ void loop_raingauge() bool _changed=false; if (millis() >= (d.lastreadtime+d.readdelay)) { + if (millis()-raingauge_lasttimereset > d.senddelaymax) { + raingauge_idleflag=true; //raingauge didn't flip for a long time + } if (raingauge_pulsecounter>0){ //if rg flipped - if (millis()-raingauge_lasttimereset > d.senddelaymax) { //last flip is before reset time + if (raingauge_idleflag) { //last flip is before reset time value_raingauge=raingauge_pulsecounter*RAINGAUGE_FLIPAMOUNT; //set to fixed amount if flip was exactly at that time + raingauge_idleflag=false; }else{ value_raingauge=3600000/(millis()-raingauge_lasttimereset)/raingauge_pulsecounter*RAINGAUGE_FLIPAMOUNT; + raingauge_idleflag=false; } _changed=true; }