diff options
author | Devaev Maxim <[email protected]> | 2020-09-10 12:33:26 +0300 |
---|---|---|
committer | Devaev Maxim <[email protected]> | 2020-09-10 12:33:26 +0300 |
commit | 1d98f5ed046a5333aadc2abbef11dbb371f905f3 (patch) | |
tree | 39ee585f19dab2ab4ddb64aadf06618eef8d58a0 /kvmd/plugins | |
parent | 23ad91060670a980bff2ebf5ea6356ebedd89411 (diff) |
experimental edge mode
Diffstat (limited to 'kvmd/plugins')
-rw-r--r-- | kvmd/plugins/atx/gpio.py | 5 | ||||
-rw-r--r-- | kvmd/plugins/ugpio/gpio.py | 7 |
2 files changed, 10 insertions, 2 deletions
diff --git a/kvmd/plugins/atx/gpio.py b/kvmd/plugins/atx/gpio.py index df65e88e..8401d2c0 100644 --- a/kvmd/plugins/atx/gpio.py +++ b/kvmd/plugins/atx/gpio.py @@ -57,6 +57,7 @@ class Plugin(BaseAtx): # pylint: disable=too-many-instance-attributes click_delay: float, long_click_delay: float, + edge_detection: bool, state_poll: float, ) -> None: @@ -76,6 +77,7 @@ class Plugin(BaseAtx): # pylint: disable=too-many-instance-attributes self.__reader = gpio.BatchReader( pins=set([self.__power_led_pin, self.__hdd_led_pin]), + edge_detection=edge_detection, interval=state_poll, notifier=self.__notifier, ) @@ -93,7 +95,8 @@ class Plugin(BaseAtx): # pylint: disable=too-many-instance-attributes "click_delay": Option(0.1, type=valid_float_f01), "long_click_delay": Option(5.5, type=valid_float_f01), - "state_poll": Option(0.1, type=valid_float_f01), + "edge_detection": Option(False, type=valid_bool), + "state_poll": Option(0.1, type=valid_float_f01), } async def get_state(self) -> Dict: diff --git a/kvmd/plugins/ugpio/gpio.py b/kvmd/plugins/ugpio/gpio.py index 90426e13..d9056d59 100644 --- a/kvmd/plugins/ugpio/gpio.py +++ b/kvmd/plugins/ugpio/gpio.py @@ -29,6 +29,7 @@ from ... import gpio from ...yamlconf import Option +from ...validators.basic import valid_bool from ...validators.basic import valid_float_f01 from . import BaseUserGpioDriver @@ -41,11 +42,13 @@ class Plugin(BaseUserGpioDriver): instance_name: str, notifier: aiotools.AioNotifier, + edge_detection: bool, state_poll: float, ) -> None: super().__init__(instance_name, notifier) + self.__edge_detection = edge_detection self.__state_poll = state_poll self.__input_pins: Set[int] = set() @@ -56,7 +59,8 @@ class Plugin(BaseUserGpioDriver): @classmethod def get_plugin_options(cls) -> Dict: return { - "state_poll": Option(0.1, type=valid_float_f01), + "edge_detection": Option(False, type=valid_bool), + "state_poll": Option(0.1, type=valid_float_f01), } def register_input(self, pin: int) -> None: @@ -75,6 +79,7 @@ class Plugin(BaseUserGpioDriver): for (pin, initial) in self.__output_pins.items() ], ]), + edge_detection=self.__edge_detection, interval=self.__state_poll, notifier=self._notifier, ) |