From fe9633b661e792a9af1a7e3e403f2b3b48217ca8 Mon Sep 17 00:00:00 2001 From: Thomas Farstrike Date: Tue, 24 Mar 2026 13:35:12 +0100 Subject: [PATCH] About app: add netmask separately --- .../com.micropythonos.about/assets/about.py | 24 +++++++++++-------- .../lib/mpos/net/wifi_service.py | 18 ++++++++++++-- 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/internal_filesystem/builtin/apps/com.micropythonos.about/assets/about.py b/internal_filesystem/builtin/apps/com.micropythonos.about/assets/about.py index 66421d46..e83ea73a 100644 --- a/internal_filesystem/builtin/apps/com.micropythonos.about/assets/about.py +++ b/internal_filesystem/builtin/apps/com.micropythonos.about/assets/about.py @@ -105,16 +105,20 @@ class About(Activity): self.logger.warning(error) self._add_label(screen, error) - # Network info (ESP32 only) - try: - self._add_label(screen, f"{lv.SYMBOL.WIFI} Network Info", is_header=True) - from mpos import WifiService - self._add_label(screen, f"IPv4 Address: {WifiService.get_ipv4_address()}") - self._add_label(screen, f"IPv4 Gateway: {WifiService.get_ipv4_gateway()}") - except Exception as e: - error = f"Could not find network info because: {e}" - self.logger.warning(error) - self._add_label(screen, error) + # Network info + try: + self._add_label(screen, f"{lv.SYMBOL.WIFI} Network Info", is_header=True) + from mpos import WifiService + ipv4_address = WifiService.get_ipv4_address() or "127.0.0.1" + ipv4_netmask = WifiService.get_ipv4_netmask() or "255.255.255.0" + ipv4_gateway = WifiService.get_ipv4_gateway() or "" + self._add_label(screen, f"IPv4 Address: {ipv4_address}") + self._add_label(screen, f"IPv4 Netmask: {ipv4_netmask}") + self._add_label(screen, f"IPv4 Gateway: {ipv4_gateway}") + except Exception as e: + error = f"Could not find network info because: {e}" + self.logger.warning(error) + self._add_label(screen, error) # Freezefs info (production builds only) diff --git a/internal_filesystem/lib/mpos/net/wifi_service.py b/internal_filesystem/lib/mpos/net/wifi_service.py index 89708016..21206e50 100644 --- a/internal_filesystem/lib/mpos/net/wifi_service.py +++ b/internal_filesystem/lib/mpos/net/wifi_service.py @@ -498,7 +498,10 @@ class WifiService: ap = WifiService._get_ap_wlan(net) return ap.ifconfig()[ap_index] wlan = WifiService._get_sta_wlan(net) - return wlan.ipconfig(sta_key) + value = wlan.ipconfig(sta_key) + if isinstance(value, tuple): + return value[0] if value else None + return value except Exception as e: print(f"WifiService: Error retrieving ip4v {label}: {e}") return None @@ -513,13 +516,23 @@ class WifiService: label="address", ) + @staticmethod + def get_ipv4_netmask(network_module=None): + return WifiService._get_ipv4_value( + network_module=network_module, + ap_index=1, + sta_key="addr4", + desktop_value="255.255.255.0", + label="netmask", + ) + @staticmethod def get_ipv4_gateway(network_module=None): return WifiService._get_ipv4_value( network_module=network_module, ap_index=2, sta_key="gw4", - desktop_value="000.123.456.789", + desktop_value="", label="gateway", ) @@ -760,3 +773,4 @@ class WifiService: else: print(f"WifiService: Network '{ssid}' not found in saved networks") return False +