From a4ccb9081f6b09a443f6c079168959d1e4058a72 Mon Sep 17 00:00:00 2001 From: Sven Sager Date: Sat, 19 Apr 2025 08:21:24 +0200 Subject: [PATCH] refactor(dbus): Parameterize `picontrol_device` and `config_rsc` Replaced hardcoded paths with configurable parameters `picontrol_device` and `config_rsc` across multiple classes. This improves flexibility, making the components adaptable to various environments or setups. Updated corresponding initialization and method implementations to use these parameters. --- src/revpi_middleware/dbus_middleware1/bus_provider.py | 11 +++++++++-- .../process_image/interface_picontrol.py | 11 ++++++----- .../process_image/process_image_helper.py | 4 ++-- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/revpi_middleware/dbus_middleware1/bus_provider.py b/src/revpi_middleware/dbus_middleware1/bus_provider.py index 937ad75..c99f887 100644 --- a/src/revpi_middleware/dbus_middleware1/bus_provider.py +++ b/src/revpi_middleware/dbus_middleware1/bus_provider.py @@ -16,19 +16,26 @@ log = getLogger(__name__) class BusProvider(Thread): - def __init__(self): + def __init__( + self, + picontrol_device="/dev/piControl0", + config_rsc="/etc/revpi/config.rsc", + ): log.debug("enter BusProvider.__init__") super().__init__() self._bus = SystemBus() self._loop = GLib.MainLoop() + self.picontrol_device = picontrol_device + self.config_rsc = config_rsc + def run(self): log.debug("enter BusProvider.run") self._bus.publish( REVPI_DBUS_NAME, - InterfacePiControl(), + InterfacePiControl(self.picontrol_device, self.config_rsc), ) self._loop.run() diff --git a/src/revpi_middleware/dbus_middleware1/process_image/interface_picontrol.py b/src/revpi_middleware/dbus_middleware1/process_image/interface_picontrol.py index 3166545..044e8bf 100644 --- a/src/revpi_middleware/dbus_middleware1/process_image/interface_picontrol.py +++ b/src/revpi_middleware/dbus_middleware1/process_image/interface_picontrol.py @@ -27,10 +27,11 @@ class InterfacePiControl: NotifyDriverReset = signal() - def __init__(self): - self.pi_control = "/dev/piControl0" + def __init__(self, picontrol_device: str, config_rsc: str): + self.picontrol_device = picontrol_device + self.config_rsc = config_rsc - self.wd_reset_driver = ResetDriverWatchdog(self.pi_control) + self.wd_reset_driver = ResetDriverWatchdog(self.picontrol_device) self.wd_reset_driver.register_call(self.notify_reset_driver) def notify_reset_driver(self): @@ -40,9 +41,9 @@ class InterfacePiControl: log.debug("enter InterfacePiControl.ResetDriver") try: - fd = os.open(self.pi_control, os.O_WRONLY) + fd = os.open(self.picontrol_device, os.O_WRONLY) except Exception as e: - log.warning(f"could not open ${self.pi_control} to reset driver") + log.warning(f"could not open ${self.picontrol_device} to reset driver") raise e execption = None diff --git a/src/revpi_middleware/dbus_middleware1/process_image/process_image_helper.py b/src/revpi_middleware/dbus_middleware1/process_image/process_image_helper.py index bee8ec7..7f29201 100644 --- a/src/revpi_middleware/dbus_middleware1/process_image/process_image_helper.py +++ b/src/revpi_middleware/dbus_middleware1/process_image/process_image_helper.py @@ -18,9 +18,9 @@ log = getLogger(__name__) class ResetDriverWatchdog(Thread): """Watchdog to catch the reset_driver action.""" - def __init__(self, pi_control_device="/dev/piControl0"): + def __init__(self, picontrol_device: str): super(ResetDriverWatchdog, self).__init__() - self.procimg = pi_control_device + self.procimg = picontrol_device self.daemon = True self._calls = [] self._exit = False