import os
import sys
# Add the parent directory to the module search path
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
# Include the common pin assignment (from parent folder)
from interface_board_pins import GPIO_DIGITAL_INPUTS # map of which GPIO pins are associated with which input terminal (1-8)

import RPi.GPIO as GPIO
import time



# Initialize GPIO
GPIO.setmode(GPIO.BCM)
for pin in GPIO_DIGITAL_INPUTS.values():
    print(f"configuring pin {pin} as input")
    GPIO.setup(pin, GPIO.IN)



# Repeatedly read GPIOs
print("Reading digital inputs:")
try:
    while True:
        print("reading all gpio pins...")
        for label, pin in GPIO_DIGITAL_INPUTS.items():
            print(f"reading pin {pin}")
            state = GPIO.input(pin)
            print(f"Input {label} (GPIO {pin}): {'HIGH' if state else 'LOW'}")
        print("-" * 40)
        time.sleep(0.5)

except KeyboardInterrupt:
    print("Exiting...")

finally:
    GPIO.cleanup()