diff --git a/src/configuration.h b/src/configuration.h index 63d1dbfc..e70f1fda 100644 --- a/src/configuration.h +++ b/src/configuration.h @@ -397,16 +397,3 @@ along with this program. If not, see . #define GPS_POWER_CTRL_CH 3 #define LORA_POWER_CTRL_CH 2 - -// ----------------------------------------------------------------------------- -// WiFi Configuration -// ----------------------------------------------------------------------------- -// -// Set WiFi credentials using the API (Does this work?) -// meshtastic --setpref WiFi_SSID_NAME yournetwork -// meshtastic --setpref WiFi_SSID_PASSWORD yourpassword -// -// WiFi_Mode -// 0 = Disabled -// 1 = Enabled -#define WiFi_MODE 1 diff --git a/src/graphics/Screen.cpp b/src/graphics/Screen.cpp index e14e4078..29637934 100644 --- a/src/graphics/Screen.cpp +++ b/src/graphics/Screen.cpp @@ -33,6 +33,7 @@ along with this program. If not, see . #include "mesh-pb-constants.h" #include "utils.h" #include +#include "meshwifi/meshwifi.h" using namespace meshtastic; /** @todo remove */ @@ -746,10 +747,10 @@ void Screen::setFrames() // call a method on debugInfoScreen object (for more details) normalFrames[numframes++] = &Screen::drawDebugInfoSettingsTrampoline; -#if WiFi_MODE - // call a method on debugInfoScreen object (for more details) - normalFrames[numframes++] = &Screen::drawDebugInfoWiFiTrampoline; -#endif + if (isWifiAvailable()) { + // call a method on debugInfoScreen object (for more details) + normalFrames[numframes++] = &Screen::drawDebugInfoWiFiTrampoline; + } ui.setFrames(normalFrames, numframes); ui.enableAllIndicators(); diff --git a/src/main.cpp b/src/main.cpp index 81038030..cc0c9a0c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -327,10 +327,8 @@ void setup() } #endif -#if WiFi_MODE // Initialize Wifi initWifi(); -#endif if (!rIf) recordCriticalError(ErrNoRadio); @@ -423,10 +421,8 @@ void loop() // feel slow msecstosleep = 10; -#if WiFi_MODE // TODO: This should go into a thread handled by FreeRTOS. handleWebResponse(); -#endif delay(msecstosleep); } diff --git a/src/meshwifi/meshhttp.cpp b/src/meshwifi/meshhttp.cpp index b70b8fc2..f52cade5 100644 --- a/src/meshwifi/meshhttp.cpp +++ b/src/meshwifi/meshhttp.cpp @@ -3,8 +3,8 @@ #include "configuration.h" #include "main.h" #include "NodeDB.h" -#include "meshwifi.h" -#include "meshhttp.h" +#include "meshwifi/meshwifi.h" +#include "meshwifi/meshhttp.h" WebServer webserver(80); @@ -14,6 +14,10 @@ String sender = ""; void handleWebResponse() { + if (isWifiAvailable() == 0) { + return; + } + webserver.handleClient(); } diff --git a/src/meshwifi/meshwifi.cpp b/src/meshwifi/meshwifi.cpp index 19a52bf5..72d6e09f 100644 --- a/src/meshwifi/meshwifi.cpp +++ b/src/meshwifi/meshwifi.cpp @@ -5,14 +5,34 @@ #include "NodeDB.h" #include "meshwifi/meshhttp.h" +bool isWifiAvailable() +{ + const char *wifiName = radioConfig.preferences.wifi_ssid; + const char *wifiPsw = radioConfig.preferences.wifi_password; + + if (*wifiName && *wifiPsw) { + return 1; + } else { + return 0; + } +} + +// Disable WiFi void deinitWifi() { WiFi.mode(WIFI_MODE_NULL); DEBUG_MSG("WiFi Turned Off\n"); } + +// Startup WiFi void initWifi() { + + if (isWifiAvailable() == 0) { + return; + } + //strcpy(radioConfig.preferences.wifi_ssid, WiFi_SSID_NAME); //strcpy(radioConfig.preferences.wifi_password, WiFi_SSID_PASSWORD); if (radioConfig.has_preferences) { diff --git a/src/meshwifi/meshwifi.h b/src/meshwifi/meshwifi.h index a20a114a..2413a2a2 100644 --- a/src/meshwifi/meshwifi.h +++ b/src/meshwifi/meshwifi.h @@ -12,3 +12,4 @@ void deinitWifi(); void WiFiEvent(WiFiEvent_t event); +bool isWifiAvailable(); \ No newline at end of file