diff options
Diffstat (limited to 'kvmd/plugins/msd/relay/gpio.py')
-rw-r--r-- | kvmd/plugins/msd/relay/gpio.py | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/kvmd/plugins/msd/relay/gpio.py b/kvmd/plugins/msd/relay/gpio.py deleted file mode 100644 index cec31f1a..00000000 --- a/kvmd/plugins/msd/relay/gpio.py +++ /dev/null @@ -1,79 +0,0 @@ -# ========================================================================== # -# # -# KVMD - The main PiKVM daemon. # -# # -# Copyright (C) 2018-2022 Maxim Devaev <[email protected]> # -# # -# This program is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# This program is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with this program. If not, see <https://www.gnu.org/licenses/>. # -# # -# ========================================================================== # - - -import gpiod - -from .... import aiogp - - -# ===== -class Gpio: # pylint: disable=too-many-instance-attributes - def __init__( - self, - device_path: str, - target_pin: int, - reset_pin: int, - reset_inverted: bool, - reset_delay: float, - ) -> None: - - self.__device_path = device_path - self.__target_pin = target_pin - self.__reset_pin = reset_pin - self.__reset_inverted = reset_inverted - self.__reset_delay = reset_delay - - self.__chip: (gpiod.Chip | None) = None - self.__target_line: (gpiod.Line | None) = None - self.__reset_line: (gpiod.Line | None) = None - - def open(self) -> None: - assert self.__chip is None - assert self.__target_line is None - assert self.__reset_line is None - - self.__chip = gpiod.Chip(self.__device_path) - - self.__target_line = self.__chip.get_line(self.__target_pin) - self.__target_line.request("kvmd::msd::target", gpiod.LINE_REQ_DIR_OUT, default_vals=[0]) - - self.__reset_line = self.__chip.get_line(self.__reset_pin) - self.__reset_line.request("kvmd::msd::reset", gpiod.LINE_REQ_DIR_OUT, default_vals=[int(self.__reset_inverted)]) - - def close(self) -> None: - if self.__chip: - try: - self.__chip.close() - except Exception: - pass - - def switch_to_local(self) -> None: - assert self.__target_line - self.__target_line.set_value(0) - - def switch_to_server(self) -> None: - assert self.__target_line - self.__target_line.set_value(1) - - async def reset(self) -> None: - assert self.__reset_line - await aiogp.pulse(self.__reset_line, self.__reset_delay, 0, self.__reset_inverted) |