From 32574e0815f7b38c7a9611eae0a8cfaaf6a4dd46 Mon Sep 17 00:00:00 2001 From: Sven Sager Date: Mon, 26 May 2025 09:56:16 +0200 Subject: [PATCH] refactor: DBus interface includes bus instance Updated `InterfaceRevpiConfig` to require a bus parameter, ensuring proper initialization. Introduced a constructor in `DbusInterface` to store the bus instance. Signed-off-by: Sven Sager --- src/revpi_middleware/dbus_middleware1/bus_provider.py | 4 ++-- src/revpi_middleware/dbus_middleware1/dbus_helper.py | 7 ++++++- .../dbus_middleware1/process_image/interface_picontrol.py | 4 +++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/revpi_middleware/dbus_middleware1/bus_provider.py b/src/revpi_middleware/dbus_middleware1/bus_provider.py index dd504f1..200d2f3 100644 --- a/src/revpi_middleware/dbus_middleware1/bus_provider.py +++ b/src/revpi_middleware/dbus_middleware1/bus_provider.py @@ -41,8 +41,8 @@ class BusProvider(Thread): # ("Subdir2", Example()), # ("Subdir2/Whatever", Example()) lst_interfaces = [ - InterfacePiControl(self.picontrol_device, self.config_rsc), - InterfaceRevpiConfig(), + InterfacePiControl(self._bus, self.picontrol_device, self.config_rsc), + InterfaceRevpiConfig(self._bus), ] try: diff --git a/src/revpi_middleware/dbus_middleware1/dbus_helper.py b/src/revpi_middleware/dbus_middleware1/dbus_helper.py index 62dd766..a09b14f 100644 --- a/src/revpi_middleware/dbus_middleware1/dbus_helper.py +++ b/src/revpi_middleware/dbus_middleware1/dbus_helper.py @@ -2,8 +2,10 @@ # SPDX-FileCopyrightText: 2025 KUNBUS GmbH # SPDX-License-Identifier: GPL-2.0-or-later """Helper for dbus.""" - from logging import getLogger +from typing import Union + +from pydbus import SessionBus, SystemBus log = getLogger(__name__) @@ -13,6 +15,9 @@ REVPI_DBUS_BASE_PATH = "/com/revolutionpi/middleware1" class DbusInterface: + def __init__(self, bus: Union[SessionBus, SystemBus]): + self.bus = bus + def cleanup(self): """ Represents a method responsible for performing cleanup operations. This method is executed to properly 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 0e8ccb0..8c00918 100644 --- a/src/revpi_middleware/dbus_middleware1/process_image/interface_picontrol.py +++ b/src/revpi_middleware/dbus_middleware1/process_image/interface_picontrol.py @@ -26,7 +26,9 @@ class InterfacePiControl(DbusInterface): NotifyDriverReset = signal() - def __init__(self, picontrol_device: str, config_rsc: str): + def __init__(self, bus, picontrol_device: str, config_rsc: str): + super().__init__(bus) + self.picontrol_device = picontrol_device self.config_rsc = config_rsc