optimise wifi disconnect check

This commit is contained in:
Nicu Hodos 2021-12-07 11:36:24 +01:00
parent 900cf664b4
commit 24dee5c4ec
2 changed files with 9 additions and 8 deletions

View File

@ -51,6 +51,7 @@ namespace Ir {
{
case 0x9F:
avrOn = false;
tCheckWifi.enable();
break;
case 0xC4:
case 0xD0:

View File

@ -1,11 +1,15 @@
#include <Arduino.h>
void onWifiConnected();
void checkWifiCallback();
#define _TASK_STATUS_REQUEST
#include <TaskScheduler.h>
Scheduler ts;
StatusRequest hourChanged;
StatusRequest dayChanged;
StatusRequest wifiConnected;
Task tCheckWifi(5000, TASK_FOREVER, checkWifiCallback, &ts);
#include "display.h"
#include "wifi.h"
@ -16,12 +20,8 @@ StatusRequest wifiConnected;
#define STAY_CONNECTED_AFTER_BOOT 5*60
void wifiConnectedCallback();
void checkWifiCallback();
Task tCheckWifi(5000, TASK_FOREVER, checkWifiCallback, &ts);
Task tWifiReconnect(Wifi::reconnect, &ts);
Task tWifiConnected(wifiConnectedCallback, &ts);
Task tWifiConnected(onWifiConnected, &ts);
void setup() {
Serial.begin(9600);
@ -45,19 +45,19 @@ void loop() {
ts.execute();
}
void wifiConnectedCallback() {
void onWifiConnected() {
Wifi::printStatus();
if (time_t newTime = Ntp::updateTime()) {
Serial.println(asctime(localtime(&newTime)));
Ntp::lastConnectedTime = newTime;
}
Ota::tLoop.enable();
tCheckWifi.enable();
if (!Ir::avrOn) tCheckWifi.enable();
Mqtt::client.connect();
}
void checkWifiCallback() {
if ((difftime(now(), Ntp::lastConnectedTime) > STAY_CONNECTED_AFTER_BOOT) && !Ir::avrOn) {
if (difftime(now(), Ntp::lastConnectedTime) > STAY_CONNECTED_AFTER_BOOT) {
Wifi::disconnect();
Ota::tLoop.disable();
tCheckWifi.disable();