From ce50a87047c43fd193f9575b5decad5a00c039cb Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Mon, 25 Aug 2025 18:15:22 -0700 Subject: [PATCH] get_conns --- pyproject.toml | 2 +- system/ui/lib/wifi_manager.py | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 7103163458..aebfb455b5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -101,7 +101,7 @@ dev = [ "av", "azure-identity", "azure-storage-blob", - "dbus-next", + "dbus-next", # TODO: remove this "dictdiffer", "matplotlib", "opencv-python-headless", diff --git a/system/ui/lib/wifi_manager.py b/system/ui/lib/wifi_manager.py index 954192b6f2..79634353e7 100644 --- a/system/ui/lib/wifi_manager.py +++ b/system/ui/lib/wifi_manager.py @@ -1,3 +1,4 @@ +import sys import atexit import dbus import threading @@ -146,6 +147,8 @@ class WifiManager: self._lock = threading.Lock() + self._tmp_init() + self._scan_thread = threading.Thread(target=self._network_scanner, daemon=True) self._scan_thread.start() @@ -154,6 +157,21 @@ class WifiManager: atexit.register(self.stop) + sys.exit() + + def _tmp_init(self): + t = time.monotonic() + a = self._get_connections() + print(time.monotonic() - t) + + time.sleep(1) + + t = time.monotonic() + b = self._get_connections_jeepney() + print(time.monotonic() - t) + + print(a == b) + def set_callbacks(self, need_auth: Callable[[str], None], activated: Callable[[], None] | None, forgotten: Callable[[str], None], @@ -274,6 +292,10 @@ class WifiManager: settings_iface = dbus.Interface(self._main_bus.get_object(NM, NM_SETTINGS_PATH), NM_SETTINGS_IFACE) return settings_iface.ListConnections() + def _get_connections_jeepney(self) -> list[str]: + settings_addr = DBusAddress(NM_SETTINGS_PATH, bus_name=NM, interface=NM_SETTINGS_IFACE) + return self._conn_main.send_and_get_reply(new_method_call(settings_addr, 'ListConnections')).body[0] + def _connection_by_ssid(self, ssid: str, known_connections: list[dbus.ObjectPath] | None = None) -> dbus.ObjectPath | None: for conn_path in known_connections or self._get_connections(): try: