Fixed race conditions in current time determination

This commit is contained in:
ftc
2025-12-24 12:21:47 +03:00
parent 30504aedec
commit 71b4ab6fc1
+7 -2
View File
@@ -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();
}