From 469a97dcea984ec05ac1ae85bf29ecc105e580e2 Mon Sep 17 00:00:00 2001 From: James Crosby Date: Tue, 12 Aug 2025 11:43:40 +0100 Subject: [PATCH 1/3] Improve OS X current-wifi determination Do not call ipconfig getsummary unnecessarily if networksetup succeeded: In some cases networksetup has returned the correct SSID, but ipconfig will return a value. If the ssid value is still redacted, then throwing an error prevents mysterious timeout failures, and exposes the real cause. --- .../open_gopro/network/wifi/adapters/wireless.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/demos/python/sdk_wireless_camera_control/open_gopro/network/wifi/adapters/wireless.py b/demos/python/sdk_wireless_camera_control/open_gopro/network/wifi/adapters/wireless.py index 5195d29a..227886b4 100644 --- a/demos/python/sdk_wireless_camera_control/open_gopro/network/wifi/adapters/wireless.py +++ b/demos/python/sdk_wireless_camera_control/open_gopro/network/wifi/adapters/wireless.py @@ -794,9 +794,12 @@ def current(self) -> tuple[str | None, SsidState]: ssid = output.replace("Current Wi-Fi Network: ", "").strip() except Exception as e: pass - # For current MacOs versions or if above failed - if match := re.search(r"\n\s+SSID : ([\x20-\x7E]{1,32})", cmd(f"ipconfig getsummary {self.interface}")): - ssid = match.group(1) + if ssid is None: + # For current MacOs versions or if above failed + if match := re.search(r"\n\s+SSID : ([\x20-\x7E]{1,32})", cmd(f"ipconfig getsummary {self.interface}")): + ssid = match.group(1) + if ssid == '': + raise RuntimeError('current Wi-Fi network is redacted') return (ssid, SsidState.CONNECTED) if ssid else (None, SsidState.DISCONNECTED) From f880eb4398fe72961e00714b2eafa0f263bab50f Mon Sep 17 00:00:00 2001 From: James Crosby Date: Tue, 12 Aug 2025 17:33:04 +0100 Subject: [PATCH 2/3] lint --- .../open_gopro/network/wifi/adapters/wireless.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/demos/python/sdk_wireless_camera_control/open_gopro/network/wifi/adapters/wireless.py b/demos/python/sdk_wireless_camera_control/open_gopro/network/wifi/adapters/wireless.py index 227886b4..97f391fd 100644 --- a/demos/python/sdk_wireless_camera_control/open_gopro/network/wifi/adapters/wireless.py +++ b/demos/python/sdk_wireless_camera_control/open_gopro/network/wifi/adapters/wireless.py @@ -798,8 +798,8 @@ def current(self) -> tuple[str | None, SsidState]: # For current MacOs versions or if above failed if match := re.search(r"\n\s+SSID : ([\x20-\x7E]{1,32})", cmd(f"ipconfig getsummary {self.interface}")): ssid = match.group(1) - if ssid == '': - raise RuntimeError('current Wi-Fi network is redacted') + if ssid == "": + raise RuntimeError("current Wi-Fi network is redacted") return (ssid, SsidState.CONNECTED) if ssid else (None, SsidState.DISCONNECTED) From 8b9facc22c8006df8e4253792927a00903382fc5 Mon Sep 17 00:00:00 2001 From: James Crosby Date: Thu, 14 Aug 2025 14:34:40 +0100 Subject: [PATCH 3/3] add missing raises: spec to docstring --- .../open_gopro/network/wifi/adapters/wireless.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/demos/python/sdk_wireless_camera_control/open_gopro/network/wifi/adapters/wireless.py b/demos/python/sdk_wireless_camera_control/open_gopro/network/wifi/adapters/wireless.py index 97f391fd..cf9e7589 100644 --- a/demos/python/sdk_wireless_camera_control/open_gopro/network/wifi/adapters/wireless.py +++ b/demos/python/sdk_wireless_camera_control/open_gopro/network/wifi/adapters/wireless.py @@ -782,6 +782,9 @@ async def disconnect(self) -> bool: def current(self) -> tuple[str | None, SsidState]: """Get the currently connected SSID if there is one. + Raises: + RuntimeError: the current Wi-Fi network is redacted + Returns: tuple[str | None, SsidState]: (SSID or None if not connected, SSID state) """