"""
uv-belichter-software - the MANUAL program (started from the main menu)
Copyright (C) 2024  Benjamin Burkhardt

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/>.
"""

def run(config):
    config.LCD.clear()
    set_value = config.PIN_OUT_RELAIS.value()
    config.LCD.putstr(f"---- MANUAL ----    State: {set_value}    ")
    while True:
        if set_value != config.PIN_IN_SWITCH.value():
            config.PIN_OUT_RELAIS.value(config.PIN_IN_SWITCH.value())
            set_value = config.PIN_OUT_RELAIS.value()
            config.LCD.putstr(f"---- MANUAL ----    State: {set_value}    ")
        if config.PIN_IN_BTN_1.value() == 1 or config.PIN_IN_BTN_2.value() == 1:
            return True  # exit on press of these buttons; True to disable the Quitting message from lcdMenu

if __name__ == "__main__":
    from utils import Config, log
    config = Config()
    btn_mapping = {"ok_btn": config.PIN_IN_BTN_1, "next_btn": config.PIN_IN_BTN_2}  # the btn mapping for all lcdMenus
    run(Config(), btn_mapping, log)