From 2b22c103c8240de9ab81679b0019e6eb965ccbeb Mon Sep 17 00:00:00 2001 From: Sven Sager Date: Fri, 6 Feb 2026 19:19:42 +0100 Subject: [PATCH] fixup: Integrate NotifyDriverReset handling for ios1 Signed-off-by: Sven Sager --- src/revpi_middleware/daemon.py | 7 +++++-- src/revpi_middleware/dbus_ios1/bus_provider_ios1.py | 7 +++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/revpi_middleware/daemon.py b/src/revpi_middleware/daemon.py index 9eced95..63e9eb4 100644 --- a/src/revpi_middleware/daemon.py +++ b/src/revpi_middleware/daemon.py @@ -64,8 +64,11 @@ class MiddlewareDaemon: dbus_ios1_running = self.bp_ios1 and self.bp_ios1.is_alive() if not dbus_ios1_running: - self.bp_ios1 = BusProviderIos1(self._get_bus()) - self.bp_ios1.start() + if self.bp_middleware1.published.wait(timeout=10.0): + self.bp_ios1 = BusProviderIos1(self._get_bus_address()) + self.bp_ios1.start() + else: + log.error("dbus middleware1 provider thread is not alive - can not start ios1 bus") log.debug("leave MiddlewareDaemon.dbus_start") diff --git a/src/revpi_middleware/dbus_ios1/bus_provider_ios1.py b/src/revpi_middleware/dbus_ios1/bus_provider_ios1.py index 4098019..f151d57 100644 --- a/src/revpi_middleware/dbus_ios1/bus_provider_ios1.py +++ b/src/revpi_middleware/dbus_ios1/bus_provider_ios1.py @@ -95,6 +95,13 @@ class BusProviderIos1(Thread): except Exception as e: log.error(f"can not publish dbus {REVPI_DBUS_NAME}: {e}") + # Subscribe to NotifyDriverReset on middleware1 dbus + iface_pi_control = bus.get( + "com.revolutionpi.middleware1", + "/com/revolutionpi/middleware1", + )["com.revolutionpi.middleware1.PiControl"] + iface_pi_control.onNotifyDriverReset = self.stop + try: self._loop.run() except Exception as e: