"""
uv-belichter-software - A simple program that prints out the current sate of the three input devices present on my "UV-Belichter"
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/>.
"""

from utils import Config
from time import sleep

cfg = Config()

def run(endless_loop: bool = True, serial_output: bool = True):
    while endless_loop:
        if cfg.PIN_IN_BTN_1.value() and cfg.PIN_IN_BTN_2.value() and cfg.PIN_IN_SWITCH.value():
            cfg.LCD.move_to(0,0)
            cfg.LCD.putstr("In: Y1 | G1 | S1    Exiting!    ")
            if serial_output:
                print("All configured inputs pressed! Exiting...")
            sleep(0.2)
            break
        cfg.LCD.move_to(0,0)
        cfg.LCD.putstr(f"In: Y{cfg.PIN_IN_BTN_1.value()} | G{cfg.PIN_IN_BTN_2.value()} | S{cfg.PIN_IN_SWITCH.value()}Push all to exit")
        if serial_output:
            print(f"Y_BTN: {cfg.PIN_IN_BTN_1.value()}; G_BTN: {cfg.PIN_IN_BTN_2.value()}; Lever: {cfg.PIN_IN_SWITCH.value()}")
        sleep(0.05)

if __name__ == "__main__":
    run()  # run the program