https://github.com/SQ9MDD/TTGO-T-Beam-LoRa-APRS/issues/19 Allow connecting to WiFi networks without password
This commit is contained in:
parent
b86f643dfb
commit
01ecabd2f8
|
|
@ -16,6 +16,8 @@ extern Preferences preferences;
|
||||||
extern WiFiServer tncServer;
|
extern WiFiServer tncServer;
|
||||||
#endif
|
#endif
|
||||||
// MAX 15 chars for preferenece key!!!
|
// MAX 15 chars for preferenece key!!!
|
||||||
|
static const char *const PREF_WIFI_SSID = "wifi_ssid";
|
||||||
|
static const char *const PREF_WIFI_PASSWORD = "wifi_password";
|
||||||
static const char *const PREF_APRS_CALLSIGN = "aprs_callsign";
|
static const char *const PREF_APRS_CALLSIGN = "aprs_callsign";
|
||||||
static const char *const PREF_APRS_RELAY_PATH = "aprs_relay_path";
|
static const char *const PREF_APRS_RELAY_PATH = "aprs_relay_path";
|
||||||
static const char *const PREF_APRS_RELAY_PATH_INIT = "aprs_relay_init";
|
static const char *const PREF_APRS_RELAY_PATH_INIT = "aprs_relay_init";
|
||||||
|
|
|
||||||
|
|
@ -75,15 +75,15 @@ void handle_ScanWifi() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void handle_SaveWifiCfg() {
|
void handle_SaveWifiCfg() {
|
||||||
if (!server.hasArg("wifi_ssid") || !server.hasArg("wifi_password")){
|
if (!server.hasArg(PREF_WIFI_SSID) || !server.hasArg(PREF_WIFI_PASSWORD)){
|
||||||
server.send(500, "text/plain", "Invalid request");
|
server.send(500, "text/plain", "Invalid request");
|
||||||
}
|
}
|
||||||
if (!server.arg("wifi_ssid").length() || !server.arg("wifi_password").length()){
|
if (!server.arg(PREF_WIFI_SSID).length()){
|
||||||
server.send(403, "text/plain", "Empty SSID or Password");
|
server.send(403, "text/plain", "Empty SSID or Password");
|
||||||
}
|
}
|
||||||
|
|
||||||
preferences.putString("wifi_ssid", server.arg("wifi_ssid"));
|
preferences.putString(PREF_WIFI_SSID, server.arg(PREF_WIFI_SSID));
|
||||||
preferences.putString("wifi_password", server.arg("wifi_password"));
|
preferences.putString(PREF_WIFI_PASSWORD, server.arg(PREF_WIFI_PASSWORD));
|
||||||
|
|
||||||
server.sendHeader("Location", "/");
|
server.sendHeader("Location", "/");
|
||||||
server.send(302,"text/html", "");
|
server.send(302,"text/html", "");
|
||||||
|
|
@ -105,8 +105,8 @@ void handle_Restore() {
|
||||||
|
|
||||||
void handle_Cfg() {
|
void handle_Cfg() {
|
||||||
String jsonData = "{";
|
String jsonData = "{";
|
||||||
jsonData += R"("wifi_ssid":")" + jsonEscape(preferences.getString("wifi_ssid")) + R"(",)";
|
jsonData += R"(PREF_WIFI_SSID:")" + jsonEscape(preferences.getString(PREF_WIFI_SSID)) + R"(",)";
|
||||||
jsonData += R"("wifi_password":")" + jsonEscape((preferences.getString("wifi_password").isEmpty() ? String("") : "*")) + R"(",)";
|
jsonData += R"(PREF_WIFI_PASSWORD:")" + jsonEscape((preferences.getString(PREF_WIFI_PASSWORD).isEmpty() ? String("") : "*")) + R"(",)";
|
||||||
jsonData += jsonLineFromPreferenceString(PREF_APRS_CALLSIGN);
|
jsonData += jsonLineFromPreferenceString(PREF_APRS_CALLSIGN);
|
||||||
jsonData += jsonLineFromPreferenceString(PREF_APRS_RELAY_PATH);
|
jsonData += jsonLineFromPreferenceString(PREF_APRS_RELAY_PATH);
|
||||||
jsonData += jsonLineFromPreferenceString(PREF_APRS_SYMBOL_TABLE);
|
jsonData += jsonLineFromPreferenceString(PREF_APRS_SYMBOL_TABLE);
|
||||||
|
|
@ -177,12 +177,12 @@ void handle_SaveAPRSCfg() {
|
||||||
server.on("/restore", handle_Restore);
|
server.on("/restore", handle_Restore);
|
||||||
server.onNotFound(handle_NotFound);
|
server.onNotFound(handle_NotFound);
|
||||||
|
|
||||||
String wifi_password = preferences.getString("wifi_password");
|
String wifi_password = preferences.getString(PREF_WIFI_PASSWORD);
|
||||||
String wifi_ssid = preferences.getString("wifi_ssid");
|
String wifi_ssid = preferences.getString(PREF_WIFI_SSID);
|
||||||
if (!wifi_password.length() || !wifi_ssid.length()){
|
if (!wifi_ssid.length()){
|
||||||
WiFi.softAP(apSSID.c_str(), apPassword.c_str());
|
WiFi.softAP(apSSID.c_str(), apPassword.c_str());
|
||||||
} else {
|
} else {
|
||||||
WiFi.begin(wifi_ssid.c_str(), wifi_password.c_str());
|
WiFi.begin(wifi_ssid.c_str(), wifi_password.length() ? wifi_password.c_str() : nullptr);
|
||||||
Serial.println("Connecting to " + wifi_ssid);
|
Serial.println("Connecting to " + wifi_ssid);
|
||||||
while (WiFi.status() != WL_CONNECTED) {
|
while (WiFi.status() != WL_CONNECTED) {
|
||||||
Serial.print("Not connected: ");
|
Serial.print("Not connected: ");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue