From 338c9c1e0c232143ab112b60e791f4850e336987 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Tue, 25 Oct 2022 11:53:22 +0200 Subject: [PATCH 1/4] Remove Captive Portal and SoftAP Mode --- src/graphics/Screen.cpp | 40 +--------- src/main.cpp | 10 +-- src/mesh/http/ContentHandler.cpp | 20 ++--- src/mesh/http/WebServer.cpp | 4 - src/mesh/http/WiFiAPClient.cpp | 125 +++++++------------------------ src/mesh/http/WiFiAPClient.h | 7 +- 6 files changed, 41 insertions(+), 165 deletions(-) diff --git a/src/graphics/Screen.cpp b/src/graphics/Screen.cpp index 0f6c96f0..4ddbe10d 100644 --- a/src/graphics/Screen.cpp +++ b/src/graphics/Screen.cpp @@ -1390,7 +1390,6 @@ void DebugInfo::drawFrameWiFi(OLEDDisplay *display, OLEDDisplayUiState *state, i { #if HAS_WIFI const char *wifiName = config.network.wifi_ssid; - const char *wifiPsw = config.network.wifi_psk; displayedNodeNum = 0; // Not currently showing a node pane @@ -1399,11 +1398,7 @@ void DebugInfo::drawFrameWiFi(OLEDDisplay *display, OLEDDisplayUiState *state, i // The coordinates define the left starting point of the text display->setTextAlignment(TEXT_ALIGN_LEFT); - if (isSoftAPForced()) { - display->drawString(x, y, String("WiFi: Software AP (Admin)")); - } else if (config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT || config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT_HIDDEN) { - display->drawString(x, y, String("WiFi: Software AP")); - } else if (WiFi.status() != WL_CONNECTED) { + if (WiFi.status() != WL_CONNECTED) { display->drawString(x, y, String("WiFi: Not Connected")); } else { display->drawString(x, y, String("WiFi: Connected")); @@ -1424,25 +1419,14 @@ void DebugInfo::drawFrameWiFi(OLEDDisplay *display, OLEDDisplayUiState *state, i - WL_NO_SHIELD: assigned when no WiFi shield is present; */ - if (WiFi.status() == WL_CONNECTED || isSoftAPForced() || config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT || config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT_HIDDEN) { - if (config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT || config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT_HIDDEN || isSoftAPForced()) { - display->drawString(x, y + FONT_HEIGHT_SMALL * 1, "IP: " + String(WiFi.softAPIP().toString().c_str())); - - // Number of connections to the AP. Default max for the esp32 is 4 - display->drawString(x + SCREEN_WIDTH - display->getStringWidth("(" + String(WiFi.softAPgetStationNum()) + "/4)"), - y + FONT_HEIGHT_SMALL * 1, "(" + String(WiFi.softAPgetStationNum()) + "/4)"); - } else { - display->drawString(x, y + FONT_HEIGHT_SMALL * 1, "IP: " + String(WiFi.localIP().toString().c_str())); - } - + if (WiFi.status() == WL_CONNECTED) { + display->drawString(x, y + FONT_HEIGHT_SMALL * 1, "IP: " + String(WiFi.localIP().toString().c_str())); } else if (WiFi.status() == WL_NO_SSID_AVAIL) { display->drawString(x, y + FONT_HEIGHT_SMALL * 1, "SSID Not Found"); } else if (WiFi.status() == WL_CONNECTION_LOST) { display->drawString(x, y + FONT_HEIGHT_SMALL * 1, "Connection Lost"); } else if (WiFi.status() == WL_CONNECT_FAILED) { display->drawString(x, y + FONT_HEIGHT_SMALL * 1, "Connection Failed"); - //} else if (WiFi.status() == WL_DISCONNECTED) { - // display->drawString(x, y + FONT_HEIGHT_SMALL * 1, "Disconnected"); } else if (WiFi.status() == WL_IDLE_STATUS) { display->drawString(x, y + FONT_HEIGHT_SMALL * 1, "Idle ... Reconnecting"); } else { @@ -1509,24 +1493,8 @@ void DebugInfo::drawFrameWiFi(OLEDDisplay *display, OLEDDisplayUiState *state, i } } - if (isSoftAPForced()) { - if ((millis() / 10000) % 2) { - display->drawString(x, y + FONT_HEIGHT_SMALL * 2, "SSID: meshtasticAdmin"); - } else { - display->drawString(x, y + FONT_HEIGHT_SMALL * 2, "PWD: 12345678"); - } + display->drawString(x, y + FONT_HEIGHT_SMALL * 2, "SSID: " + String(wifiName)); - } else { - if (config.network.wifi_mode== Config_NetworkConfig_WiFiMode_ACCESS_POINT || config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT_HIDDEN) { - if ((millis() / 10000) % 2) { - display->drawString(x, y + FONT_HEIGHT_SMALL * 2, "SSID: " + String(wifiName)); - } else { - display->drawString(x, y + FONT_HEIGHT_SMALL * 2, "PWD: " + String(wifiPsw)); - } - } else { - display->drawString(x, y + FONT_HEIGHT_SMALL * 2, "SSID: " + String(wifiName)); - } - } display->drawString(x, y + FONT_HEIGHT_SMALL * 3, "http://meshtastic.local"); /* Display a heartbeat pixel that blinks every time the frame is redrawn */ diff --git a/src/main.cpp b/src/main.cpp index d40a1bdf..69c880e7 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -191,8 +191,6 @@ void setup() digitalWrite(RESET_OLED, 1); #endif - bool forceSoftAP = 0; - #ifdef BUTTON_PIN #ifdef ARCH_ESP32 @@ -205,12 +203,6 @@ void setup() delay(10); #endif - // BUTTON_PIN is pulled high by a 12k resistor. - if (!digitalRead(BUTTON_PIN)) { - forceSoftAP = 1; - DEBUG_MSG("Setting forceSoftAP = 1\n"); - } - #endif #endif @@ -444,7 +436,7 @@ void setup() #endif // Initialize Wifi - initWifi(forceSoftAP); + initWifi(); #ifdef ARCH_ESP32 // Start web server thread. diff --git a/src/mesh/http/ContentHandler.cpp b/src/mesh/http/ContentHandler.cpp index 50e82f58..ddc67e16 100644 --- a/src/mesh/http/ContentHandler.cpp +++ b/src/mesh/http/ContentHandler.cpp @@ -75,8 +75,8 @@ void registerHandlers(HTTPServer *insecureServer, HTTPSServer *secureServer) ResourceNode *nodeAPIv1ToRadio = new ResourceNode("/api/v1/toradio", "PUT", &handleAPIv1ToRadio); ResourceNode *nodeAPIv1FromRadio = new ResourceNode("/api/v1/fromradio", "GET", &handleAPIv1FromRadio); - ResourceNode *nodeHotspotApple = new ResourceNode("/hotspot-detect.html", "GET", &handleHotspot); - ResourceNode *nodeHotspotAndroid = new ResourceNode("/generate_204", "GET", &handleHotspot); +// ResourceNode *nodeHotspotApple = new ResourceNode("/hotspot-detect.html", "GET", &handleHotspot); +// ResourceNode *nodeHotspotAndroid = new ResourceNode("/generate_204", "GET", &handleHotspot); ResourceNode *nodeAdmin = new ResourceNode("/admin", "GET", &handleAdmin); // ResourceNode *nodeAdminSettings = new ResourceNode("/admin/settings", "GET", &handleAdminSettings); @@ -100,8 +100,8 @@ void registerHandlers(HTTPServer *insecureServer, HTTPSServer *secureServer) secureServer->registerNode(nodeAPIv1ToRadioOptions); secureServer->registerNode(nodeAPIv1ToRadio); secureServer->registerNode(nodeAPIv1FromRadio); - secureServer->registerNode(nodeHotspotApple); - secureServer->registerNode(nodeHotspotAndroid); + // secureServer->registerNode(nodeHotspotApple); + // secureServer->registerNode(nodeHotspotAndroid); secureServer->registerNode(nodeRestart); secureServer->registerNode(nodeFormUpload); secureServer->registerNode(nodeJsonScanNetworks); @@ -121,8 +121,8 @@ void registerHandlers(HTTPServer *insecureServer, HTTPSServer *secureServer) insecureServer->registerNode(nodeAPIv1ToRadioOptions); insecureServer->registerNode(nodeAPIv1ToRadio); insecureServer->registerNode(nodeAPIv1FromRadio); - insecureServer->registerNode(nodeHotspotApple); - insecureServer->registerNode(nodeHotspotAndroid); + // insecureServer->registerNode(nodeHotspotApple); + // insecureServer->registerNode(nodeHotspotAndroid); insecureServer->registerNode(nodeRestart); insecureServer->registerNode(nodeFormUpload); insecureServer->registerNode(nodeJsonScanNetworks); @@ -620,12 +620,8 @@ void handleReport(HTTPRequest *req, HTTPResponse *res) }; // data->wifi - String ipStr; - if (config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT || config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT_HIDDEN || isSoftAPForced()) { - ipStr = String(WiFi.softAPIP().toString()); - } else { - ipStr = String(WiFi.localIP().toString()); - } + String ipStr = String(WiFi.localIP().toString()); + Json jsonObjWifi = Json::object{{"rssi", String(WiFi.RSSI())}, {"ip", ipStr.c_str()}}; // data->memory diff --git a/src/mesh/http/WebServer.cpp b/src/mesh/http/WebServer.cpp index 48e084ed..c1844b0c 100644 --- a/src/mesh/http/WebServer.cpp +++ b/src/mesh/http/WebServer.cpp @@ -55,10 +55,6 @@ static void handleWebResponse() if (isWifiAvailable()) { if (isWebServerReady) { - // We're going to handle the DNS responder here so it - // will be ignored by the NRF boards. - handleDNSResponse(); - if (secureServer) secureServer->loop(); insecureServer->loop(); diff --git a/src/mesh/http/WiFiAPClient.cpp b/src/mesh/http/WiFiAPClient.cpp index 4a4ac05a..a031414e 100644 --- a/src/mesh/http/WiFiAPClient.cpp +++ b/src/mesh/http/WiFiAPClient.cpp @@ -8,7 +8,6 @@ #include "mesh/wifi/WiFiServerAPI.h" #include "mqtt/MQTT.h" #include "target_specific.h" -#include #include #include #include @@ -22,9 +21,6 @@ using namespace concurrency; static void WiFiEvent(WiFiEvent_t event); -// DNS Server for the Captive Portal -DNSServer dnsServer; - // NTP WiFiUDP ntpUDP; @@ -37,8 +33,6 @@ uint8_t wifiDisconnectReason = 0; // Stores our hostname char ourHost[16]; -bool forcedSoftAP = 0; - bool APStartupComplete = 0; static bool needReconnect = true; // If we create our reconnector, run it once at the beginning @@ -88,16 +82,10 @@ static int32_t reconnectWiFi() static Periodic *wifiReconnect; -bool isSoftAPForced() -{ - return forcedSoftAP; -} - bool isWifiAvailable() { - if (config.network.wifi_enabled && ((config.network.wifi_ssid[0]) || forcedSoftAP)) { - + if (config.network.wifi_enabled && (config.network.wifi_ssid[0])) { return true; } else { return false; @@ -161,100 +149,48 @@ static void onNetworkConnected() } // Startup WiFi -bool initWifi(bool forceSoftAP) +bool initWifi() { - forcedSoftAP = forceSoftAP; + if (config.network.wifi_enabled && config.network.wifi_ssid[0]) { - if (config.network.wifi_enabled && ((config.network.wifi_ssid[0]) || forceSoftAP)) { - // if ((radioConfig.has_preferences && config.wifi.ssid[0]) || forceSoftAP) { const char *wifiName = config.network.wifi_ssid; const char *wifiPsw = config.network.wifi_psk; - if (forceSoftAP) { - DEBUG_MSG("WiFi ... Forced AP Mode\n"); - } else if (config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT) { - DEBUG_MSG("WiFi ... AP Mode\n"); - } else if (config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT_HIDDEN) { - DEBUG_MSG("WiFi ... Hidden AP Mode\n"); - } else if (config.network.wifi_mode == Config_NetworkConfig_WiFiMode_CLIENT) { - DEBUG_MSG("WiFi ... Client Mode\n"); - } else { - DEBUG_MSG("WiFi ... WiFi Disabled\n"); - } - createSSLCert(); if (!*wifiPsw) // Treat empty password as no password wifiPsw = NULL; - if (*wifiName || forceSoftAP) { - if (config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT || config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT_HIDDEN || forceSoftAP) { + if (*wifiName) { + uint8_t dmac[6]; + getMacAddr(dmac); + sprintf(ourHost, "Meshtastic-%02x%02x", dmac[4], dmac[5]); - IPAddress apIP(192, 168, 42, 1); - WiFi.onEvent(WiFiEvent); - WiFi.mode(WIFI_AP); + WiFi.mode(WIFI_MODE_STA); + WiFi.setHostname(ourHost); + WiFi.onEvent(WiFiEvent); - if (forcedSoftAP) { - const char *softAPssid = "meshtasticAdmin"; - const char *softAPpasswd = "12345678"; - int ok = WiFi.softAP(softAPssid, softAPpasswd); - DEBUG_MSG("Starting (Forced) WIFI AP: ssid=%s, ok=%d\n", softAPssid, ok); + // This is needed to improve performance. + esp_wifi_set_ps(WIFI_PS_NONE); // Disable radio power saving - } else { + WiFi.onEvent( + [](WiFiEvent_t event, WiFiEventInfo_t info) { + Serial.print("\nWiFi lost connection. Reason: "); + Serial.println(info.wifi_sta_disconnected.reason); - // If AP is configured to be hidden hidden - if (config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT_HIDDEN) { + /* + If we are disconnected from the AP for some reason, + save the error code. - // The configurations on softAP are from the espresif library - int ok = WiFi.softAP(wifiName, wifiPsw, 1, 1, 4); - DEBUG_MSG("Starting hidden 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); - } + For a reference to the codes: + https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/wifi.html#wi-fi-reason-code + */ + wifiDisconnectReason = info.wifi_sta_disconnected.reason; + }, + WiFiEvent_t::ARDUINO_EVENT_WIFI_STA_DISCONNECTED); - WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0)); - DEBUG_MSG("MY IP AP ADDRESS: %s\n", WiFi.softAPIP().toString().c_str()); - - // This is needed to improve performance. - esp_wifi_set_ps(WIFI_PS_NONE); // Disable radio power saving - - dnsServer.start(53, "*", apIP); - - } else { - uint8_t dmac[6]; - getMacAddr(dmac); - sprintf(ourHost, "Meshtastic-%02x%02x", dmac[4], dmac[5]); - - WiFi.mode(WIFI_MODE_STA); - WiFi.setHostname(ourHost); - WiFi.onEvent(WiFiEvent); - - // This is needed to improve performance. - esp_wifi_set_ps(WIFI_PS_NONE); // Disable radio power saving - - WiFi.onEvent( - [](WiFiEvent_t event, WiFiEventInfo_t info) { - Serial.print("\nWiFi lost connection. Reason: "); - Serial.println(info.wifi_sta_disconnected.reason); - - /* - If we are disconnected from the AP for some reason, - save the error code. - - For a reference to the codes: - https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/wifi.html#wi-fi-reason-code - */ - wifiDisconnectReason = info.wifi_sta_disconnected.reason; - }, - WiFiEvent_t::ARDUINO_EVENT_WIFI_STA_DISCONNECTED); - - DEBUG_MSG("JOINING WIFI soon: ssid=%s\n", wifiName); - wifiReconnect = new Periodic("WifiConnect", reconnectWiFi); - } + DEBUG_MSG("JOINING WIFI soon: ssid=%s\n", wifiName); + wifiReconnect = new Periodic("WifiConnect", reconnectWiFi); } return true; } else { @@ -356,13 +292,6 @@ static void WiFiEvent(WiFiEvent_t event) } } -void handleDNSResponse() -{ - if (config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT || config.network.wifi_mode == Config_NetworkConfig_WiFiMode_ACCESS_POINT_HIDDEN || isSoftAPForced()) { - dnsServer.processNextRequest(); - } -} - uint8_t getWifiDisconnectReason() { return wifiDisconnectReason; diff --git a/src/mesh/http/WiFiAPClient.h b/src/mesh/http/WiFiAPClient.h index 2c6bc912..9729c24b 100644 --- a/src/mesh/http/WiFiAPClient.h +++ b/src/mesh/http/WiFiAPClient.h @@ -5,19 +5,14 @@ #include #ifdef ARCH_ESP32 -#include #include #endif /// @return true if wifi is now in use -bool initWifi(bool forceSoftAP); +bool initWifi(); void deinitWifi(); bool isWifiAvailable(); -void handleDNSResponse(); - -bool isSoftAPForced(); - uint8_t getWifiDisconnectReason(); From 602e65d8986a389afb7ce85229b7769936c8fc14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Tue, 25 Oct 2022 12:42:08 +0200 Subject: [PATCH 2/4] fix non-ESP32 builds --- src/wifi-stubs.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/wifi-stubs.cpp b/src/wifi-stubs.cpp index faf58b62..f17e7dda 100644 --- a/src/wifi-stubs.cpp +++ b/src/wifi-stubs.cpp @@ -1,11 +1,8 @@ -//#include "mesh/wifi/WebServer.h" #include "configuration.h" #ifndef ARCH_ESP32 -//#include "mesh/wifi/WiFiAPClient.h" - -bool initWifi(bool forceSoftAP) { +bool initWifi() { return false; } From 0c3ec9254d8d2648a1404e3b0a06cc66ce1c98dd Mon Sep 17 00:00:00 2001 From: caveman99 Date: Wed, 26 Oct 2022 15:56:26 +0000 Subject: [PATCH 3/4] [create-pull-request] automated change --- protobufs | 2 +- src/mesh/generated/config.pb.h | 11 ++++------- src/mesh/generated/localonly.pb.h | 2 +- src/mesh/generated/mesh.pb.c | 3 --- src/mesh/generated/mesh.pb.h | 30 +++--------------------------- 5 files changed, 9 insertions(+), 39 deletions(-) diff --git a/protobufs b/protobufs index 863a1d79..579a36af 160000 --- a/protobufs +++ b/protobufs @@ -1 +1 @@ -Subproject commit 863a1d7997ae54471cbeea9baeb877924cc850cf +Subproject commit 579a36afded1edca9b0ba94f278ad1f637d56bf5 diff --git a/src/mesh/generated/config.pb.h b/src/mesh/generated/config.pb.h index e98aff60..c83d97d5 100644 --- a/src/mesh/generated/config.pb.h +++ b/src/mesh/generated/config.pb.h @@ -157,7 +157,6 @@ typedef struct _Config_PowerConfig { typedef struct _Config_NetworkConfig { bool wifi_enabled; - Config_NetworkConfig_WiFiMode wifi_mode; char wifi_ssid[33]; char wifi_psk[64]; char ntp_server[33]; @@ -228,7 +227,7 @@ extern "C" { #define Config_DeviceConfig_init_default {_Config_DeviceConfig_Role_MIN, 0, 0} #define Config_PositionConfig_init_default {0, 0, 0, 0, 0, 0, 0} #define Config_PowerConfig_init_default {0, 0, 0, 0, 0, 0, 0, 0} -#define Config_NetworkConfig_init_default {0, _Config_NetworkConfig_WiFiMode_MIN, "", "", "", 0, _Config_NetworkConfig_EthMode_MIN, false, Config_NetworkConfig_NetworkConfig_init_default} +#define Config_NetworkConfig_init_default {0, "", "", "", 0, _Config_NetworkConfig_EthMode_MIN, false, Config_NetworkConfig_NetworkConfig_init_default} #define Config_NetworkConfig_NetworkConfig_init_default {0, 0, 0, 0} #define Config_DisplayConfig_init_default {0, _Config_DisplayConfig_GpsCoordinateFormat_MIN, 0, 0, 0, _Config_DisplayConfig_DisplayUnits_MIN} #define Config_LoRaConfig_init_default {0, _Config_LoRaConfig_ModemPreset_MIN, 0, 0, 0, 0, _Config_LoRaConfig_RegionCode_MIN, 0, 0, 0, 0, 0, {0, 0, 0}} @@ -237,7 +236,7 @@ extern "C" { #define Config_DeviceConfig_init_zero {_Config_DeviceConfig_Role_MIN, 0, 0} #define Config_PositionConfig_init_zero {0, 0, 0, 0, 0, 0, 0} #define Config_PowerConfig_init_zero {0, 0, 0, 0, 0, 0, 0, 0} -#define Config_NetworkConfig_init_zero {0, _Config_NetworkConfig_WiFiMode_MIN, "", "", "", 0, _Config_NetworkConfig_EthMode_MIN, false, Config_NetworkConfig_NetworkConfig_init_zero} +#define Config_NetworkConfig_init_zero {0, "", "", "", 0, _Config_NetworkConfig_EthMode_MIN, false, Config_NetworkConfig_NetworkConfig_init_zero} #define Config_NetworkConfig_NetworkConfig_init_zero {0, 0, 0, 0} #define Config_DisplayConfig_init_zero {0, _Config_DisplayConfig_GpsCoordinateFormat_MIN, 0, 0, 0, _Config_DisplayConfig_DisplayUnits_MIN} #define Config_LoRaConfig_init_zero {0, _Config_LoRaConfig_ModemPreset_MIN, 0, 0, 0, 0, _Config_LoRaConfig_RegionCode_MIN, 0, 0, 0, 0, 0, {0, 0, 0}} @@ -288,7 +287,6 @@ extern "C" { #define Config_PowerConfig_ls_secs_tag 7 #define Config_PowerConfig_min_wake_secs_tag 8 #define Config_NetworkConfig_wifi_enabled_tag 1 -#define Config_NetworkConfig_wifi_mode_tag 2 #define Config_NetworkConfig_wifi_ssid_tag 3 #define Config_NetworkConfig_wifi_psk_tag 4 #define Config_NetworkConfig_ntp_server_tag 5 @@ -354,7 +352,6 @@ X(a, STATIC, SINGULAR, UINT32, min_wake_secs, 8) #define Config_NetworkConfig_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, BOOL, wifi_enabled, 1) \ -X(a, STATIC, SINGULAR, UENUM, wifi_mode, 2) \ X(a, STATIC, SINGULAR, STRING, wifi_ssid, 3) \ X(a, STATIC, SINGULAR, STRING, wifi_psk, 4) \ X(a, STATIC, SINGULAR, STRING, ntp_server, 5) \ @@ -433,10 +430,10 @@ extern const pb_msgdesc_t Config_BluetoothConfig_msg; #define Config_DisplayConfig_size 20 #define Config_LoRaConfig_size 68 #define Config_NetworkConfig_NetworkConfig_size 20 -#define Config_NetworkConfig_size 163 +#define Config_NetworkConfig_size 161 #define Config_PositionConfig_size 30 #define Config_PowerConfig_size 43 -#define Config_size 166 +#define Config_size 164 #ifdef __cplusplus } /* extern "C" */ diff --git a/src/mesh/generated/localonly.pb.h b/src/mesh/generated/localonly.pb.h index 8e4199d4..b691ee40 100644 --- a/src/mesh/generated/localonly.pb.h +++ b/src/mesh/generated/localonly.pb.h @@ -144,7 +144,7 @@ extern const pb_msgdesc_t LocalModuleConfig_msg; #define LocalModuleConfig_fields &LocalModuleConfig_msg /* Maximum encoded size of messages (where known) */ -#define LocalConfig_size 361 +#define LocalConfig_size 359 #define LocalModuleConfig_size 270 #ifdef __cplusplus diff --git a/src/mesh/generated/mesh.pb.c b/src/mesh/generated/mesh.pb.c index 2d46c960..f98316a5 100644 --- a/src/mesh/generated/mesh.pb.c +++ b/src/mesh/generated/mesh.pb.c @@ -42,9 +42,6 @@ PB_BIND(FromRadio, FromRadio, 2) PB_BIND(ToRadio, ToRadio, 2) -PB_BIND(ToRadio_PeerInfo, ToRadio_PeerInfo, AUTO) - - PB_BIND(Compressed, Compressed, AUTO) diff --git a/src/mesh/generated/mesh.pb.h b/src/mesh/generated/mesh.pb.h index d4407a2f..3f2a8839 100644 --- a/src/mesh/generated/mesh.pb.h +++ b/src/mesh/generated/mesh.pb.h @@ -243,8 +243,11 @@ typedef enum _LogRecord_Level { /* Struct definitions */ typedef PB_BYTES_ARRAY_T(237) Compressed_data_t; +/* Compressed message payload */ typedef struct _Compressed { + /* PortNum to determine the how to handle the compressed payload. */ PortNum portnum; + /* Compressed data. */ Compressed_data_t data; } Compressed; @@ -425,14 +428,6 @@ typedef struct _RouteDiscovery { uint32_t route[8]; } RouteDiscovery; -/* Compressed message payload */ -typedef struct _ToRadio_PeerInfo { - /* PortNum to determine the how to handle the compressed payload. */ - uint32_t app_version; - /* Compressed data. */ - bool mqtt_gateway; -} ToRadio_PeerInfo; - /* Broadcast when a newly powered mesh node wants to find a node num it can use Sent from the phone over bluetooth to set the user id for the owner of this node. Also sent from nodes to each other when a new node signs on (so all clients can have this info) @@ -665,9 +660,6 @@ typedef struct _ToRadio { union { /* Send this packet on the mesh */ MeshPacket packet; - /* Information about the peer, sent after the phone sneds want_config_id. - Old clients do not send this, which is fine. */ - ToRadio_PeerInfo peer_info; /* Phone wants radio to send full node db to the phone, This is typically the first packet sent to the radio when the phone gets a bluetooth connection. The radio will respond by sending back a @@ -740,7 +732,6 @@ extern "C" { #define LogRecord_init_default {"", 0, "", _LogRecord_Level_MIN} #define FromRadio_init_default {0, 0, {MeshPacket_init_default}} #define ToRadio_init_default {0, {MeshPacket_init_default}} -#define ToRadio_PeerInfo_init_default {0, 0} #define Compressed_init_default {_PortNum_MIN, {0, {0}}} #define Position_init_zero {0, 0, 0, 0, _Position_LocSource_MIN, _Position_AltSource_MIN, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} #define User_init_zero {"", "", "", {0}, _HardwareModel_MIN, 0} @@ -754,7 +745,6 @@ extern "C" { #define LogRecord_init_zero {"", 0, "", _LogRecord_Level_MIN} #define FromRadio_init_zero {0, 0, {MeshPacket_init_zero}} #define ToRadio_init_zero {0, {MeshPacket_init_zero}} -#define ToRadio_PeerInfo_init_zero {0, 0} #define Compressed_init_zero {_PortNum_MIN, {0, {0}}} /* Field tags (for use in manual encoding/decoding) */ @@ -811,8 +801,6 @@ extern "C" { #define Position_next_update_tag 21 #define Position_seq_number_tag 22 #define RouteDiscovery_route_tag 1 -#define ToRadio_PeerInfo_app_version_tag 1 -#define ToRadio_PeerInfo_mqtt_gateway_tag 2 #define User_id_tag 1 #define User_long_name_tag 2 #define User_short_name_tag 3 @@ -859,7 +847,6 @@ extern "C" { #define FromRadio_moduleConfig_tag 9 #define FromRadio_channel_tag 10 #define ToRadio_packet_tag 1 -#define ToRadio_peer_info_tag 2 #define ToRadio_want_config_id_tag 3 #define ToRadio_disconnect_tag 4 @@ -1019,19 +1006,11 @@ X(a, STATIC, ONEOF, MESSAGE, (payload_variant,channel,channel), 10) #define ToRadio_FIELDLIST(X, a) \ X(a, STATIC, ONEOF, MESSAGE, (payload_variant,packet,packet), 1) \ -X(a, STATIC, ONEOF, MESSAGE, (payload_variant,peer_info,peer_info), 2) \ X(a, STATIC, ONEOF, UINT32, (payload_variant,want_config_id,want_config_id), 3) \ X(a, STATIC, ONEOF, BOOL, (payload_variant,disconnect,disconnect), 4) #define ToRadio_CALLBACK NULL #define ToRadio_DEFAULT NULL #define ToRadio_payload_variant_packet_MSGTYPE MeshPacket -#define ToRadio_payload_variant_peer_info_MSGTYPE ToRadio_PeerInfo - -#define ToRadio_PeerInfo_FIELDLIST(X, a) \ -X(a, STATIC, SINGULAR, UINT32, app_version, 1) \ -X(a, STATIC, SINGULAR, BOOL, mqtt_gateway, 2) -#define ToRadio_PeerInfo_CALLBACK NULL -#define ToRadio_PeerInfo_DEFAULT NULL #define Compressed_FIELDLIST(X, a) \ X(a, STATIC, SINGULAR, UENUM, portnum, 1) \ @@ -1051,7 +1030,6 @@ extern const pb_msgdesc_t MyNodeInfo_msg; extern const pb_msgdesc_t LogRecord_msg; extern const pb_msgdesc_t FromRadio_msg; extern const pb_msgdesc_t ToRadio_msg; -extern const pb_msgdesc_t ToRadio_PeerInfo_msg; extern const pb_msgdesc_t Compressed_msg; /* Defines for backwards compatibility with code written before nanopb-0.4.0 */ @@ -1067,7 +1045,6 @@ extern const pb_msgdesc_t Compressed_msg; #define LogRecord_fields &LogRecord_msg #define FromRadio_fields &FromRadio_msg #define ToRadio_fields &ToRadio_msg -#define ToRadio_PeerInfo_fields &ToRadio_PeerInfo_msg #define Compressed_fields &Compressed_msg /* Maximum encoded size of messages (where known) */ @@ -1081,7 +1058,6 @@ extern const pb_msgdesc_t Compressed_msg; #define Position_size 137 #define RouteDiscovery_size 40 #define Routing_size 42 -#define ToRadio_PeerInfo_size 8 #define ToRadio_size 324 #define User_size 77 #define Waypoint_size 156 From 04225826f6ba93843e2c54835b3daa7a014ff260 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Wed, 26 Oct 2022 18:12:31 +0200 Subject: [PATCH 4/4] Bump ConfigDB Version. this forces a factory reset on upgrade. --- src/mesh/NodeDB.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mesh/NodeDB.h b/src/mesh/NodeDB.h index 6b974456..dcd51819 100644 --- a/src/mesh/NodeDB.h +++ b/src/mesh/NodeDB.h @@ -18,7 +18,7 @@ DeviceState versions used to be defined in the .proto file but really only this #define SEGMENT_DEVICESTATE 4 #define SEGMENT_CHANNELS 8 -#define DEVICESTATE_CUR_VER 19 +#define DEVICESTATE_CUR_VER 20 #define DEVICESTATE_MIN_VER DEVICESTATE_CUR_VER extern DeviceState devicestate;