From 11b36705f6e2c7392d28f31e225723470e902d42 Mon Sep 17 00:00:00 2001 From: Eric Duminil <eric.duminil@gmail.com> Date: Sat, 12 Feb 2022 13:58:26 +0100 Subject: [PATCH] WiFi callbacks --- ampel-firmware/ampel-firmware.ino | 64 +++++++++++++++---------------- ampel-firmware/web_config.cpp | 1 + 2 files changed, 32 insertions(+), 33 deletions(-) diff --git a/ampel-firmware/ampel-firmware.ino b/ampel-firmware/ampel-firmware.ino index 1c8e405..b72d7f1 100644 --- a/ampel-firmware/ampel-firmware.ino +++ b/ampel-firmware/ampel-firmware.ino @@ -56,11 +56,37 @@ * and define your credentials and parameters in 'config.h'. */ -void failedConnection() { - Serial.println("Seriously. What???"); - led_effects::showKITTWheel(color::red); +//void failedConnection() { +// Serial.println("Seriously. What???"); +// led_effects::showKITTWheel(color::red); +//} +// +void wifiConnected() { + led_effects::showKITTWheel(color::green); + Serial.println(); + Serial.print(F("WiFi - Connected! IP address: ")); + IPAddress address = WiFi.localIP(); + snprintf(wifi::local_ip, sizeof(wifi::local_ip), "%d.%d.%d.%d", address[0], address[1], address[2], address[3]); + Serial.println(wifi::local_ip); + + ntp::initialize(); + + if (config::mqtt_active()) { + mqtt::initialize(ampel.sensorId); + } + + //TODO: If http enabled + Serial.print(F("You can access this sensor via http://")); + Serial.print(ampel.sensorId); + Serial.print(F(".local (might be unstable) or http://")); + Serial.println(WiFi.localIP()); } +void wifiFailed() { + Serial.print(F("WiFi - Could not connect to ")); + Serial.println(config::current_ssid()); //TODO: Rename + led_effects::showKITTWheel(color::red); +} /***************************************************************** * Setup * *****************************************************************/ @@ -72,35 +98,9 @@ void setup() { web_config::initialize(); - if (config::wifi_active) { - web_config::setWifiConnectionCallback([]() { - //TODO: Move somewhere else - led_effects::showKITTWheel(color::green); - Serial.println(); - Serial.print(F("WiFi - Connected! IP address: ")); - IPAddress address = WiFi.localIP(); - snprintf(wifi::local_ip, sizeof(wifi::local_ip), "%d.%d.%d.%d", address[0], address[1], address[2], address[3]); - Serial.println(wifi::local_ip); - - ntp::initialize(); - - if (config::mqtt_active()) { - mqtt::initialize(ampel.sensorId); - } - - Serial.print(F("You can access this sensor via http://")); - Serial.print(ampel.sensorId); - Serial.print(F(".local (might be unstable) or http://")); - Serial.println(WiFi.localIP()); - }); + web_config::setWifiConnectionCallback(wifiConnected); - web_config::setWifiFailCallback(failedConnection); - -// web_config::setWifiConnectionFailedCallback([]() { -// led_effects::showKITTWheel(color::red); -// Serial.println(F("Connection to WiFi failed")); -// }); - } + web_config::setWifiFailCallback(wifiFailed); pinMode(0, INPUT); // Flash button (used for forced calibration) @@ -124,8 +124,6 @@ void setup() { wifi::defineCommands(); # if (AMPEL_HTTP==1) web_server::definePages(); - //TODO: Rename. Not just web_server - // web_server::initialize(); # endif } diff --git a/ampel-firmware/web_config.cpp b/ampel-firmware/web_config.cpp index 70f733d..43d767e 100644 --- a/ampel-firmware/web_config.cpp +++ b/ampel-firmware/web_config.cpp @@ -50,6 +50,7 @@ namespace web_config { "[s]").build(); //TODO: Distribute to corresponding classes, possibly with callbacks? + //TODO: Chainedparameters? /** * CO2 sensor */ -- GitLab