diff options
Diffstat (limited to 'kvmd/plugins/atx')
-rw-r--r-- | kvmd/plugins/atx/__init__.py | 14 | ||||
-rw-r--r-- | kvmd/plugins/atx/disabled.py | 21 | ||||
-rw-r--r-- | kvmd/plugins/atx/gpio.py | 42 |
3 files changed, 34 insertions, 43 deletions
diff --git a/kvmd/plugins/atx/__init__.py b/kvmd/plugins/atx/__init__.py index bc0c2c41..5de306ea 100644 --- a/kvmd/plugins/atx/__init__.py +++ b/kvmd/plugins/atx/__init__.py @@ -59,27 +59,27 @@ class BaseAtx(BasePlugin): # ===== - async def power_on(self) -> bool: + async def power_on(self, wait: bool) -> bool: raise NotImplementedError - async def power_off(self) -> bool: + async def power_off(self, wait: bool) -> bool: raise NotImplementedError - async def power_off_hard(self) -> bool: + async def power_off_hard(self, wait: bool) -> bool: raise NotImplementedError - async def power_reset_hard(self) -> bool: + async def power_reset_hard(self, wait: bool) -> bool: raise NotImplementedError # ===== - async def click_power(self) -> None: + async def click_power(self, wait: bool) -> None: raise NotImplementedError - async def click_power_long(self) -> None: + async def click_power_long(self, wait: bool) -> None: raise NotImplementedError - async def click_reset(self) -> None: + async def click_reset(self, wait: bool) -> None: raise NotImplementedError diff --git a/kvmd/plugins/atx/disabled.py b/kvmd/plugins/atx/disabled.py index 93cfbb5b..c60e2743 100644 --- a/kvmd/plugins/atx/disabled.py +++ b/kvmd/plugins/atx/disabled.py @@ -54,25 +54,12 @@ class Plugin(BaseAtx): # ===== - async def power_on(self) -> bool: + async def __stub_power(self, wait: bool) -> bool: raise AtxDisabledError() - async def power_off(self) -> bool: - raise AtxDisabledError() - - async def power_off_hard(self) -> bool: - raise AtxDisabledError() - - async def power_reset_hard(self) -> bool: - raise AtxDisabledError() + power_on = power_off = power_off_hard = power_reset_hard = __stub_power - # ===== - - async def click_power(self) -> None: + async def __stub_click(self, wait: bool) -> None: raise AtxDisabledError() - async def click_power_long(self) -> None: - raise AtxDisabledError() - - async def click_reset(self) -> None: - raise AtxDisabledError() + click_power = click_power_long = click_reset = __stub_click diff --git a/kvmd/plugins/atx/gpio.py b/kvmd/plugins/atx/gpio.py index 16f3e23f..9ae16338 100644 --- a/kvmd/plugins/atx/gpio.py +++ b/kvmd/plugins/atx/gpio.py @@ -130,40 +130,40 @@ class Plugin(BaseAtx): # pylint: disable=too-many-instance-attributes # ===== - async def power_on(self) -> bool: + async def power_on(self, wait: bool) -> bool: if not (await self.__get_power()): - await self.click_power() + await self.click_power(wait) return True return False - async def power_off(self) -> bool: + async def power_off(self, wait: bool) -> bool: if (await self.__get_power()): - await self.click_power() + await self.click_power(wait) return True return False - async def power_off_hard(self) -> bool: + async def power_off_hard(self, wait: bool) -> bool: if (await self.__get_power()): - await self.click_power_long() + await self.click_power_long(wait) return True return False - async def power_reset_hard(self) -> bool: + async def power_reset_hard(self, wait: bool) -> bool: if (await self.__get_power()): - await self.click_reset() + await self.click_reset(wait) return True return False # ===== - async def click_power(self) -> None: - await self.__click("power", self.__power_switch_pin, self.__click_delay) + async def click_power(self, wait: bool) -> None: + await self.__click("power", self.__power_switch_pin, self.__click_delay, wait) - async def click_power_long(self) -> None: - await self.__click("power_long", self.__power_switch_pin, self.__long_click_delay) + async def click_power_long(self, wait: bool) -> None: + await self.__click("power_long", self.__power_switch_pin, self.__long_click_delay, wait) - async def click_reset(self) -> None: - await self.__click("reset", self.__reset_switch_pin, self.__click_delay) + async def click_reset(self, wait: bool) -> None: + await self.__click("reset", self.__reset_switch_pin, self.__click_delay, wait) # ===== @@ -171,11 +171,15 @@ class Plugin(BaseAtx): # pylint: disable=too-many-instance-attributes return (await self.get_state())["leds"]["power"] @aiotools.atomic - async def __click(self, name: str, pin: int, delay: float) -> None: - await aiotools.run_region_task( - "Can't perform ATX click or operation was not completed", - self.__region, self.__inner_click, name, pin, delay, - ) + async def __click(self, name: str, pin: int, delay: float, wait: bool) -> None: + if wait: + async with self.__region: + await self.__inner_click(name, pin, delay) + else: + await aiotools.run_region_task( + "Can't perform ATX click or operation was not completed", + self.__region, self.__inner_click, name, pin, delay, + ) @aiotools.atomic async def __inner_click(self, name: str, pin: int, delay: float) -> None: |