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