From 5b4e3a780efd6c420c6018c238739fe239f44acf Mon Sep 17 00:00:00 2001 From: Ben Nicholson Date: Fri, 14 Nov 2025 18:55:50 +1100 Subject: [PATCH] Update ras_pi_RRCS_BusyLight.py --- ras_pi_RRCS_BusyLight.py | 103 ++++++++++++++++++++++----------------- 1 file changed, 57 insertions(+), 46 deletions(-) diff --git a/ras_pi_RRCS_BusyLight.py b/ras_pi_RRCS_BusyLight.py index 6395bb8..99227a6 100644 --- a/ras_pi_RRCS_BusyLight.py +++ b/ras_pi_RRCS_BusyLight.py @@ -1,63 +1,74 @@ #!/usr/bin/python3 import os -os.environ['RPI_LGPIO_REVISION'] = "800012" +os.environ['RPI_LGPIO_REVISION'] = "800012" + import requests -import RPi.GPIO as GPIO # Import Raspberry Pi GPIO library +import RPi.GPIO as GPIO + +RED = "\033[91m" +GREEN = "\033[92m" +RESET = "\033[0m" + BenBusyRRCSdataRising = ''' - PressKeyEx - - C0000000001 - 64 - 46 - 0 - 2 - 0 - 1 - 1 - 1 - 1 - + PressKeyEx + + C0000000001 + 64 + 46 + 0 + 2 + 0 + 1 + 1 + 1 + 1 + ''' BenBusyRRCSdataFalling = ''' - PressKeyEx - - C0000000002 - 64 - 46 - 0 - 2 - 0 - 1 - 1 - 0 - 1 - + PressKeyEx + + C0000000002 + 64 + 46 + 0 + 2 + 0 + 1 + 1 + 0 + 1 + ''' -def button_callbackRising(channel): - print("Button was pushed!") - r = requests.post('http://10.75.120.229:8193', headers = {'content-type': 'text/xml'}, data = BenBusyRRCSdataRising) - print (r.text) +def button_callback(channel): + if GPIO.input(channel): + print(f"{RED}Button pressed{RESET}") + r = requests.post( + 'http://10.75.120.229:8193', + headers={'content-type': 'text/xml'}, + data=BenBusyRRCSdataRising + ) + else: + print(f"{GREEN}Button released{RESET}") + r = requests.post( + 'http://10.75.120.229:8193', + headers={'content-type': 'text/xml'}, + data=BenBusyRRCSdataFalling + ) + print(r.text) -def button_callbackFalling(channel): - print("Button was Released!") - r = requests.post('http://10.75.120.229:8193', headers = {'content-type': 'text/xml'}, data = BenBusyRRCSdataFalling) - print (r.text) +GPIO.setwarnings(False) +GPIO.setmode(GPIO.BOARD) +GPIO.setup(12, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) -GPIO.setwarnings(False) # Ignore warning for now -GPIO.setmode(GPIO.BOARD) # Use physical pin numbering -GPIO.setup(12, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) # Set pin 10 to be an input pin and set initial value to be pulle> +# One event detector, both edges: +GPIO.add_event_detect(12, GPIO.BOTH, callback=button_callback, bouncetime=200) -GPIO.add_event_detect(12,GPIO.RISING,callback=button_callbackRising) # Setup event on pin 10 rising edge - -GPIO.add_event_detect(12,GPIO.FALLING,callback=button_callbackFalling) - -message = input("Press enter to quit\n\n") # Run until someone presses enter - -GPIO.cleanup() # Clean up +input("Press enter to quit\n\n") +GPIO.cleanup() \ No newline at end of file