import os
from time import sleep
try:
    import RPi.GPIO as GPIO
except:
    pass

def GPIO_setup(LED1_pin, LED2_pin, Button1_pin, Button2_pin):
    # LED output pins
    GPIO.setmode(GPIO.BOARD)

    GPIO.setup(LED1_pin, GPIO.OUT)  # 1
    GPIO.output(LED1_pin, GPIO.LOW)
    GPIO.setup(LED2_pin, GPIO.OUT)  # 2
    GPIO.output(LED2_pin, GPIO.LOW)

    LED_status = [False, False]

    # switch controlled input
    GPIO.setup(Button1_pin, GPIO.IN)
    GPIO.setup(Button2_pin, GPIO.IN)

    # GPIO.setup(Button1_pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
    # GPIO.setup(Button2_pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

    return LED_status

def main():
    LED1_pin = 11
    LED2_pin = 13
    Button1_pin = 16
    Button2_pin = 18

    LED_status = GPIO_setup(LED1_pin, LED2_pin, Button1_pin, Button2_pin)

    LED_status[0] = True
    GPIO.output(LED1_pin, GPIO.HIGH)

    LED_status[1] = True
    GPIO.output(LED2_pin, GPIO.HIGH)

    while True:
        if GPIO.input(Button1_pin) == GPIO.HIGH:
            GPIO.output(LED1_pin, GPIO.LOW)
            GPIO.output(LED2_pin, GPIO.LOW)

            GPIO.cleanup()
            os.system('python3 /home/pi/code/Rasp_grid/rasp_grid.py')
            sleep(5)


            LED_status = GPIO_setup(LED1_pin, LED2_pin, Button1_pin, Button2_pin)

            LED_status[0] = True
            GPIO.output(LED1_pin, GPIO.HIGH)

            LED_status[1] = True
            GPIO.output(LED2_pin, GPIO.HIGH)

            # quit()
        if GPIO.input(Button2_pin) == GPIO.HIGH:
            for i in range(3):
                for j in range(2):
                    sleep(0.5)
                    if j == 0:
                        GPIO.output(LED1_pin, GPIO.LOW)
                        GPIO.output(LED2_pin, GPIO.LOW)
                    else:
                        GPIO.output(LED1_pin, GPIO.HIGH)
                        GPIO.output(LED2_pin, GPIO.HIGH)

            GPIO.output(LED1_pin, GPIO.LOW)
            GPIO.output(LED2_pin, GPIO.LOW)
            print('shut down')
            quit()


if __name__ == '__main__':
    main()