From aefbdc43bcf9002e930630e58254a27e164080c1 Mon Sep 17 00:00:00 2001 From: Marcel Peterkau Date: Fri, 14 Jan 2022 21:28:50 +0100 Subject: [PATCH] Added Build-Define for WiFi-Client --- Software/ChainLube/platformio.ini | 1 + Software/ChainLube/src/main.cpp | 88 +++++++++++++++++++------------ 2 files changed, 56 insertions(+), 33 deletions(-) diff --git a/Software/ChainLube/platformio.ini b/Software/ChainLube/platformio.ini index 9d69163..d765d61 100644 --- a/Software/ChainLube/platformio.ini +++ b/Software/ChainLube/platformio.ini @@ -26,6 +26,7 @@ upload_speed = 921600 build_flags = !python git_rev_macro.py + -DWIFI_NOCLIENT -DWIFI_SSID=${wifi_cred.wifi_ssid} -DWIFI_PASSWORD=${wifi_cred.wifi_password} -DADMIN_PASSWORD=${wifi_cred.admin_password} diff --git a/Software/ChainLube/src/main.cpp b/Software/ChainLube/src/main.cpp index d10b86a..992f4c3 100644 --- a/Software/ChainLube/src/main.cpp +++ b/Software/ChainLube/src/main.cpp @@ -2,7 +2,6 @@ #include #include #include -#include #include #include #include @@ -16,11 +15,17 @@ #include "config.h" #include "globals.h" +#ifdef WIFI_CLIENT +#include + const char *ssid = QUOTE(WIFI_SSID); const char *password = QUOTE(WIFI_PASSWORD); - const uint32_t connectTimeoutMs = 5000; +ESP8266WiFiMulti wifiMulti; + +#endif + #ifdef DEBUG const bool debug_flag = true; #else @@ -36,7 +41,6 @@ volatile uint32_t wheel_pulse = 0; U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(-1); RemoteDebug Debug; -ESP8266WiFiMulti wifiMulti; CRGB leds[1]; // Function-Prototypes @@ -44,7 +48,6 @@ String IpAddress2String(const IPAddress &ipAddress); void processCmdRemoteDebug(); void RemotDebug_printSystemInfo(); void RemoteDebug_printWifiInfo(); -void wifiMaintainConnectionTicker_callback(); void updateWebUITicker_callback(); void IRAM_ATTR trigger_ISR(); void LED_Process(uint8_t override = false, CRGB setColor = CRGB::White); @@ -52,7 +55,10 @@ void Display_Process(); void Button_Process(); void startWiFiAP(); +#ifdef WIFI_CLIENT +void wifiMaintainConnectionTicker_callback(); Ticker WiFiMaintainConnectionTicker(wifiMaintainConnectionTicker_callback, 1000, 0, MILLIS); +#endif Ticker UpdateWebUITicker(updateWebUITicker_callback, 5000, 0, MILLIS); void setup() @@ -61,9 +67,17 @@ void setup() snprintf(DeviceName, 32, HOST_NAME, ESP.getChipId()); - WiFi.mode(WIFI_OFF); WiFi.persistent(false); +#ifdef WIFI_CLIENT + WiFi.mode(WIFI_STA); + WiFi.setHostname(DeviceName); + wifiMulti.addAP(QUOTE(WIFI_SSID), QUOTE(WIFI_PASSWORD)); + WiFiMaintainConnectionTicker.start(); +#else + WiFi.mode(WIFI_OFF); +#endif + Serial.begin(115200); Serial.setDebugOutput(true); @@ -83,12 +97,6 @@ void setup() attachInterrupt(digitalPinToInterrupt(GPIO_TRIGGER), trigger_ISR, FALLING); - WiFi.mode(WIFI_STA); - WiFi.setHostname(DeviceName); - wifiMulti.addAP(QUOTE(WIFI_SSID), QUOTE(WIFI_PASSWORD)); - - WiFiMaintainConnectionTicker.start(); - if (MDNS.begin(DeviceName)) MDNS.addService("telnet", "tcp", 23); @@ -145,8 +153,6 @@ void setup() void loop() { RunLubeApp(&wheel_pulse); - - WiFiMaintainConnectionTicker.update(); UpdateWebUITicker.update(); Display_Process(); @@ -155,6 +161,9 @@ void loop() ArduinoOTA.handle(); Debug.handle(); +#ifdef WIFI_CLIENT + WiFiMaintainConnectionTicker.update(); +#endif yield(); } @@ -201,6 +210,7 @@ void RemoteDebug_printWifiInfo() { } +#ifdef WIFI_CLIENT void wifiMaintainConnectionTicker_callback() { static uint32_t WiFiFailCount = 0; @@ -218,11 +228,12 @@ void wifiMaintainConnectionTicker_callback() } else { - Serial.println("WiFi not connected! - Start AP"); + debugV("WiFi not connected! - Start AP"); startWiFiAP(); } } } +#endif void updateWebUITicker_callback() { @@ -264,7 +275,7 @@ void LED_Process(uint8_t override, CRGB SetColor) if (LED_Status != LED_Override) { LED_ResumeOverrideStatus = LED_Status; - debugA("Override LED_Status"); + debugV("Override LED_Status"); } LED_Status = LED_Override; LED_override_color = SetColor; @@ -275,7 +286,7 @@ void LED_Process(uint8_t override, CRGB SetColor) if (LED_Status == LED_Override) { LED_Status = LED_ResumeOverrideStatus; - debugA("Resume LED_Status"); + debugV("Resume LED_Status"); } } @@ -285,25 +296,25 @@ void LED_Process(uint8_t override, CRGB SetColor) { case sysStat_Startup: LED_Status = LED_Startup; - debugA("sysStat: Startup"); + debugV("sysStat: Startup"); break; case sysStat_Normal: timestamp = timer + 3500; LED_Status = LED_Confirm_Normal; - debugA("sysStat: Normal"); + debugV("sysStat: Normal"); break; case sysStat_Rain: timestamp = timer + 3500; LED_Status = LED_Confirm_Rain; - debugA("sysStat: Rain"); + debugV("sysStat: Rain"); break; case sysStat_Purge: LED_Status = LED_Purge; - debugA("sysStat: Purge"); + debugV("sysStat: Purge"); break; case sysStat_Error: LED_Status = LED_Error; - debugA("sysStat: Error"); + debugV("sysStat: Error"); break; case sysStat_NOP: default: @@ -332,7 +343,7 @@ void LED_Process(uint8_t override, CRGB SetColor) { LED_Status = LED_Normal; FastLED.setBrightness(64); - debugA("LED_Status: Confirm -> Normal"); + debugV("LED_Status: Confirm -> Normal"); } break; @@ -347,7 +358,7 @@ void LED_Process(uint8_t override, CRGB SetColor) { LED_Status = LED_Rain; FastLED.setBrightness(64); - debugA("LED_Status: Confirm -> Rain"); + debugV("LED_Status: Confirm -> Rain"); } break; @@ -446,13 +457,13 @@ void Button_Process() { case BTN_TOGGLEWIFI: startWiFiAP(); - debugA("Starting WiFi AP"); + debugV("Starting WiFi AP"); break; case BTN_STARTPURGE: globals.systemStatus = sysStat_Purge; globals.purgePulses = LubeConfig.BleedingPulses; - debugA("Starting Purge"); + debugV("Starting Purge"); break; case BTN_TOGGLEMODE: @@ -470,12 +481,12 @@ void Button_Process() default: break; } - debugA("Toggling Mode"); + debugV("Toggling Mode"); break; case BTN_NOTHING: default: - debugA("Nothing or invalid"); + debugV("Nothing or invalid"); break; } LED_Process(2); @@ -487,10 +498,21 @@ void Button_Process() void startWiFiAP() { - WiFi.mode(WIFI_OFF); - WiFi.mode(WIFI_AP); - WiFi.softAPConfig(IPAddress(WIFI_AP_IP_GW), IPAddress(WIFI_AP_IP_GW), IPAddress(255, 255, 255, 0)); - WiFi.softAP(DeviceName, QUOTE(WIFI_AP_PASSWORD)); - WiFiMaintainConnectionTicker.stop(); - Serial.println("WiFi AP started, stopped Maintain-Timer"); + if (WiFi.getMode() != WIFI_OFF) + { + WiFi.mode(WIFI_OFF); + debugV("WiFi turned off"); + } + else + { + WiFi.mode(WIFI_AP); + WiFi.softAPConfig(IPAddress(WIFI_AP_IP_GW), IPAddress(WIFI_AP_IP_GW), IPAddress(255, 255, 255, 0)); + WiFi.softAP(DeviceName, QUOTE(WIFI_AP_PASSWORD)); +#ifdef WIFI_CLIENT + WiFiMaintainConnectionTicker.stop(); + debugV("WiFi AP started, stopped Maintain-Timer"); +#else + debugV("WiFi AP started"); +#endif + } } \ No newline at end of file