feat: Add support for configurable procimg path

Introduced a new `--procimg` argument to specify the process image path.
Updated `MiddlewareDaemon` to dynamically reset D-Bus when `procimg`
changes and pass the configured path to bus providers.

Signed-off-by: Sven Sager <s.sager@kunbus.com>
This commit is contained in:
Sven Sager
2026-03-17 08:37:24 +01:00
parent 9e5a9e0141
commit fbfda04d7c
2 changed files with 17 additions and 2 deletions

View File

@@ -46,6 +46,9 @@ class MiddlewareDaemon:
log.debug("enter MiddlewareDaemon._configure") log.debug("enter MiddlewareDaemon._configure")
pi.reload_conf() pi.reload_conf()
if pi.pargs.procimg != self.wd_reset.procimg:
self.dbus_stop()
log.debug("leave MiddlewareDaemon._configure") log.debug("leave MiddlewareDaemon._configure")
@staticmethod @staticmethod
@@ -65,9 +68,15 @@ class MiddlewareDaemon:
dbus_running = self.bus_provider and self.bus_provider.is_alive() dbus_running = self.bus_provider and self.bus_provider.is_alive()
if not dbus_running: if not dbus_running:
if self.bus_provider_selected is BusProvider.middleware: if self.bus_provider_selected is BusProvider.middleware:
self.bus_provider = BusProviderMiddleware1(self._get_bus_address()) self.bus_provider = BusProviderMiddleware1(
dbus_address=self._get_bus_address(),
picontrol_device=pi.pargs.procimg,
)
elif self.bus_provider_selected is BusProvider.ios: elif self.bus_provider_selected is BusProvider.ios:
self.bus_provider = BusProviderIos1(self._get_bus_address()) self.bus_provider = BusProviderIos1(
dbus_address=self._get_bus_address(),
picontrol_device=pi.pargs.procimg,
)
else: else:
raise ValueError("Unknown bus provider") raise ValueError("Unknown bus provider")
self.bus_provider.start() self.bus_provider.start()

View File

@@ -27,6 +27,12 @@ pi.parser.add_argument(
default="/etc/{0}/{0}.conf".format(pi.programname), default="/etc/{0}/{0}.conf".format(pi.programname),
help="application configuration file", help="application configuration file",
) )
pi.parser.add_argument(
"--procimg",
dest="procimg",
default="/dev/piControl0",
help="Path to process image",
)
pi.parser.add_argument( pi.parser.add_argument(
"bus_provider", "bus_provider",
default="middleware", default="middleware",