diff --git a/kvmd/kvmd/atx.py b/kvmd/kvmd/atx.py index ff596a87..a3d07fc4 100644 --- a/kvmd/kvmd/atx.py +++ b/kvmd/kvmd/atx.py @@ -21,8 +21,8 @@ class Atx: long_click_delay: float, ) -> None: - self.__power_led = self.__set_output_pin(power_led) - self.__hdd_led = self.__set_output_pin(hdd_led) + self.__power_led = self.__set_input_pin(power_led) + self.__hdd_led = self.__set_input_pin(hdd_led) self.__power_switch = self.__set_output_pin(power_switch) self.__reset_switch = self.__set_output_pin(reset_switch) @@ -31,6 +31,10 @@ class Atx: self.__lock = asyncio.Lock() + def __set_input_pin(self, pin: int) -> int: + GPIO.setup(pin, GPIO.IN) + return pin + def __set_output_pin(self, pin: int) -> int: GPIO.setup(pin, GPIO.OUT) GPIO.output(pin, False) diff --git a/kvmd/kvmd/extra/cleanup/__init__.py b/kvmd/kvmd/extra/cleanup/__init__.py new file mode 100644 index 00000000..d8ae866c --- /dev/null +++ b/kvmd/kvmd/extra/cleanup/__init__.py @@ -0,0 +1,23 @@ +import logging + +from RPi import GPIO + +from ...application import init + + +# ===== +_logger = logging.getLogger(__name__) + + +def main() -> None: + config = init() + _logger.info("Cleaning up ...") + GPIO.setmode(GPIO.BCM) + for (key, pin) in [ + *config["atx"]["switches"]["pinout"].items(), + *config["video"]["pinout"].items(), + ]: + _logger.info("Writing value=0 to pin=%d (%s)", pin, key) + GPIO.output(pin, False) + GPIO.cleanup() + _logger.info("Done!") diff --git a/kvmd/kvmd/extra/cleanup/__main__.py b/kvmd/kvmd/extra/cleanup/__main__.py new file mode 100644 index 00000000..031df43e --- /dev/null +++ b/kvmd/kvmd/extra/cleanup/__main__.py @@ -0,0 +1,2 @@ +from . import main +main() diff --git a/kvmd/kvmd/extra/wscli.py b/kvmd/kvmd/extra/wscli/__init__.py similarity index 97% rename from kvmd/kvmd/extra/wscli.py rename to kvmd/kvmd/extra/wscli/__init__.py index f4b261a7..3812871d 100644 --- a/kvmd/kvmd/extra/wscli.py +++ b/kvmd/kvmd/extra/wscli/__init__.py @@ -47,7 +47,3 @@ def main() -> None: loop.add_signal_handler(signal.SIGINT, loop.stop) loop.create_task(_run_client(loop, options.url)) loop.run_forever() - - -if __name__ == "__main__": - main() diff --git a/kvmd/kvmd/extra/wscli/__main__.py b/kvmd/kvmd/extra/wscli/__main__.py new file mode 100644 index 00000000..031df43e --- /dev/null +++ b/kvmd/kvmd/extra/wscli/__main__.py @@ -0,0 +1,2 @@ +from . import main +main()