Fixed race conditions in current time determination
This commit is contained in:
@@ -30,10 +30,11 @@ int cur_hum = 0;
|
||||
|
||||
|
||||
unsigned long last_poll = 0;
|
||||
unsigned long current = 0;
|
||||
|
||||
Modbus::ResultCode OnModbusRequest(Modbus::FunctionCode fc, const Modbus::RequestData data)
|
||||
{
|
||||
last_poll = millis();
|
||||
last_poll = current;
|
||||
return Modbus::EX_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -70,6 +71,8 @@ void setup()
|
||||
mb.server(15000);
|
||||
mb.addHreg(REGISTER_CURRENT_TEMP, cur_t);
|
||||
mb.addHreg(REGISTER_CURRENT_HUM, cur_hum);
|
||||
|
||||
last_poll = millis();
|
||||
}
|
||||
|
||||
void UpdateDHTData()
|
||||
@@ -86,7 +89,7 @@ unsigned long last_log = 0;
|
||||
|
||||
void loop()
|
||||
{
|
||||
unsigned long current = millis();
|
||||
current = millis();
|
||||
if (current < last_read || current - last_read >= READ_INTERVAL)
|
||||
{
|
||||
UpdateDHTData();
|
||||
@@ -110,6 +113,8 @@ void loop()
|
||||
}
|
||||
if (current < last_poll || current - last_poll > NON_CONNECTED_REBOOT_TIMEOUT)
|
||||
{
|
||||
Serial.println(current);
|
||||
Serial.println(last_poll);
|
||||
Serial.println("Detected absense of polls, consider it as connection failure");
|
||||
ESP.restart();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user