fix raingauge first flip amount
This commit is contained in:
parent
a53fd957af
commit
5cea05e0be
|
@ -210,7 +210,7 @@ struct sensordata
|
||||||
sensordata dataRaingauge;
|
sensordata dataRaingauge;
|
||||||
unsigned long raingauge_lasttimereset=0;
|
unsigned long raingauge_lasttimereset=0;
|
||||||
uint16_t raingauge_pulsecounter=0; //counted pulses since last reset
|
uint16_t raingauge_pulsecounter=0; //counted pulses since last reset
|
||||||
|
bool raingauge_idleflag=true;
|
||||||
|
|
||||||
#define RAINGAUGE_DEBOUNCETIME 1000
|
#define RAINGAUGE_DEBOUNCETIME 1000
|
||||||
unsigned long raingauge_lastpulse_fordebounce=0;
|
unsigned long raingauge_lastpulse_fordebounce=0;
|
||||||
|
@ -1011,11 +1011,16 @@ void loop_raingauge()
|
||||||
bool _changed=false;
|
bool _changed=false;
|
||||||
if (millis() >= (d.lastreadtime+d.readdelay)) {
|
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 (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
|
value_raingauge=raingauge_pulsecounter*RAINGAUGE_FLIPAMOUNT; //set to fixed amount if flip was exactly at that time
|
||||||
|
raingauge_idleflag=false;
|
||||||
}else{
|
}else{
|
||||||
value_raingauge=3600000/(millis()-raingauge_lasttimereset)/raingauge_pulsecounter*RAINGAUGE_FLIPAMOUNT;
|
value_raingauge=3600000/(millis()-raingauge_lasttimereset)/raingauge_pulsecounter*RAINGAUGE_FLIPAMOUNT;
|
||||||
|
raingauge_idleflag=false;
|
||||||
}
|
}
|
||||||
_changed=true;
|
_changed=true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue