From e0c5e4d441f828557b7846c5920d21fdab536e8c Mon Sep 17 00:00:00 2001 From: LucyHosking <105994501+LucyHosking@users.noreply.github.com> Date: Sat, 21 May 2022 20:10:36 -0700 Subject: [PATCH 1/3] Implemented hidden SSID https://github.com/meshtastic/Meshtastic-device/issues/1308 --- src/mesh/http/WiFiAPClient.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/mesh/http/WiFiAPClient.cpp b/src/mesh/http/WiFiAPClient.cpp index 9df72ae1..b1d74964 100644 --- a/src/mesh/http/WiFiAPClient.cpp +++ b/src/mesh/http/WiFiAPClient.cpp @@ -216,6 +216,17 @@ bool initWifi(bool forceSoftAP) DEBUG_MSG("Starting (Forced) WIFI AP: ssid=%s, ok=%d\n", softAPssid, ok); } else { + + // If AP is configured to be hidden hidden + if (config.payloadVariant.wifi.ap_hidden) { + + // The configurations on softAP are from the espresif library + int ok = WiFi.softAP(wifiName, wifiPsw, 1, 1, 4); + DEBUG_MSG("Starting hiddem WIFI AP: ssid=%s, ok=%d\n", wifiName, ok); + } else { + int ok = WiFi.softAP(wifiName, wifiPsw); + DEBUG_MSG("Starting WIFI AP: ssid=%s, ok=%d\n", wifiName, ok); + } int ok = WiFi.softAP(wifiName, wifiPsw); DEBUG_MSG("Starting WIFI AP: ssid=%s, ok=%d\n", wifiName, ok); } From 800a4200efd71c19b8df2348fc1a4719b0274d59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Sun, 22 May 2022 13:54:24 +0200 Subject: [PATCH 2/3] make sure all segments are enabled and saved --- src/mesh/NodeDB.cpp | 28 ++++++++++++++++++++++++++-- src/modules/AdminModule.cpp | 13 +++++++++++++ 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/src/mesh/NodeDB.cpp b/src/mesh/NodeDB.cpp index d804aa8e..47b9d0bc 100644 --- a/src/mesh/NodeDB.cpp +++ b/src/mesh/NodeDB.cpp @@ -146,6 +146,13 @@ bool NodeDB::resetRadioConfig() void NodeDB::installDefaultConfig() { memset(&config, 0, sizeof(LocalConfig)); + config.has_device = true; + config.has_display = true; + config.has_lora = true; + config.has_position = true; + config.has_power = true; + config.has_wifi = true; + config.lora.region = Config_LoRaConfig_RegionCode_Unset; config.lora.modem_preset = Config_LoRaConfig_ModemPreset_LongFast; resetRadioConfig(); @@ -158,6 +165,13 @@ void NodeDB::installDefaultConfig() void NodeDB::installDefaultModuleConfig() { memset(&moduleConfig, 0, sizeof(ModuleConfig)); + moduleConfig.has_canned_message = true; + moduleConfig.has_external_notification = true; + moduleConfig.has_mqtt = true; + moduleConfig.has_range_test = true; + moduleConfig.has_serial = true; + moduleConfig.has_store_forward = true; + moduleConfig.has_telemetry = true; } // void NodeDB::installDefaultRadioConfig() @@ -341,7 +355,7 @@ void NodeDB::loadFromDisk() installDefaultConfig(); // Our in RAM copy might now be corrupt } - if (!loadProto(moduleConfigfile, ModuleConfig_size, sizeof(ModuleConfig), ModuleConfig_fields, &moduleConfig)) { + if (!loadProto(moduleConfigfile, LocalModuleConfig_size, sizeof(LocalModuleConfig), LocalModuleConfig_fields, &moduleConfig)) { installDefaultModuleConfig(); // Our in RAM copy might now be corrupt } @@ -402,6 +416,7 @@ void NodeDB::saveToDisk() FSCom.mkdir("/prefs"); #endif saveProto(preffile, DeviceState_size, sizeof(devicestate), DeviceState_fields, &devicestate); + // save all config segments config.has_device = true; config.has_display = true; @@ -410,7 +425,16 @@ void NodeDB::saveToDisk() config.has_power = true; config.has_wifi = true; saveProto(configfile, LocalConfig_size, sizeof(LocalConfig), LocalConfig_fields, &config); - saveProto(moduleConfigfile, Module_Config_size, sizeof(ModuleConfig), ModuleConfig_fields, &moduleConfig); + + moduleConfig.has_canned_message = true; + moduleConfig.has_external_notification = true; + moduleConfig.has_mqtt = true; + moduleConfig.has_range_test = true; + moduleConfig.has_serial = true; + moduleConfig.has_store_forward = true; + moduleConfig.has_telemetry = true; + saveProto(moduleConfigfile, LocalModuleConfig_size, sizeof(LocalModuleConfig), LocalModuleConfig_fields, &moduleConfig); + saveChannelsToDisk(); } else { diff --git a/src/modules/AdminModule.cpp b/src/modules/AdminModule.cpp index decce029..9f6f55fe 100644 --- a/src/modules/AdminModule.cpp +++ b/src/modules/AdminModule.cpp @@ -176,26 +176,32 @@ void AdminModule::handleSetConfig(const Config &c) switch (c.which_payloadVariant) { case Config_device_tag: DEBUG_MSG("Setting config: Device\n"); + config.has_device = true; config.device = c.payloadVariant.device; break; case Config_position_tag: DEBUG_MSG("Setting config: Position\n"); + config.has_position = true; config.position = c.payloadVariant.position; break; case Config_power_tag: DEBUG_MSG("Setting config: Power\n"); + config.has_power = true; config.power = c.payloadVariant.power; break; case Config_wifi_tag: DEBUG_MSG("Setting config: WiFi\n"); + config.has_wifi = true; config.wifi = c.payloadVariant.wifi; break; case Config_display_tag: DEBUG_MSG("Setting config: Display\n"); + config.has_display = true; config.display = c.payloadVariant.display; break; case Config_lora_tag: DEBUG_MSG("Setting config: LoRa\n"); + config.has_lora = true; config.lora = c.payloadVariant.lora; break; } @@ -208,30 +214,37 @@ void AdminModule::handleSetModuleConfig(const ModuleConfig &c) switch (c.which_payloadVariant) { case ModuleConfig_mqtt_tag: DEBUG_MSG("Setting module config: MQTT\n"); + moduleConfig.has_mqtt = true; moduleConfig.mqtt = c.payloadVariant.mqtt; break; case ModuleConfig_serial_tag: DEBUG_MSG("Setting module config: Serial\n"); + moduleConfig.has_serial = true; moduleConfig.serial = c.payloadVariant.serial; break; case ModuleConfig_external_notification_tag: DEBUG_MSG("Setting module config: External Notification\n"); + moduleConfig.has_external_notification = true; moduleConfig.external_notification = c.payloadVariant.external_notification; break; case ModuleConfig_store_forward_tag: DEBUG_MSG("Setting module config: Store & Forward\n"); + moduleConfig.has_store_forward = true; moduleConfig.store_forward = c.payloadVariant.store_forward; break; case ModuleConfig_range_test_tag: DEBUG_MSG("Setting module config: Range Test\n"); + moduleConfig.has_range_test = true; moduleConfig.range_test = c.payloadVariant.range_test; break; case ModuleConfig_telemetry_tag: DEBUG_MSG("Setting module config: Telemetry\n"); + moduleConfig.has_telemetry = true; moduleConfig.telemetry = c.payloadVariant.telemetry; break; case ModuleConfig_canned_message_tag: DEBUG_MSG("Setting module config: Canned Message\n"); + moduleConfig.has_canned_message = true; moduleConfig.canned_message = c.payloadVariant.canned_message; break; } From dca6c27c9d80712168dd4072e5b36e2bb46c0ddc Mon Sep 17 00:00:00 2001 From: Jm Casler Date: Mon, 23 May 2022 22:08:33 -0700 Subject: [PATCH 3/3] Update from config.payloadVariant to config.wifi --- src/mesh/http/WiFiAPClient.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mesh/http/WiFiAPClient.cpp b/src/mesh/http/WiFiAPClient.cpp index 99c25c68..85f8d2a9 100644 --- a/src/mesh/http/WiFiAPClient.cpp +++ b/src/mesh/http/WiFiAPClient.cpp @@ -218,7 +218,7 @@ bool initWifi(bool forceSoftAP) } else { // If AP is configured to be hidden hidden - if (config.payloadVariant.wifi.ap_hidden) { + if (config.wifi.ap_hidden) { // The configurations on softAP are from the espresif library int ok = WiFi.softAP(wifiName, wifiPsw, 1, 1, 4);