fixup: Integrate NotifyDriverReset handling for ios1

Signed-off-by: Sven Sager <s.sager@kunbus.com>
This commit is contained in:
Sven Sager
2026-02-06 19:19:42 +01:00
parent 794089a5b5
commit 2b22c103c8
2 changed files with 12 additions and 2 deletions

View File

@@ -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())
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")

View File

@@ -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: