From 9cbbfc12bc0c067a7c4b12c6ac9d7afa714be8d2 Mon Sep 17 00:00:00 2001 From: Ben Nicholson Date: Wed, 19 Nov 2025 21:41:22 +1100 Subject: [PATCH] Now works in a service on boot. --- README.md | 12 +++++++++++- ras_pi_RRCS_BusyLight.py | 18 ++++++++++++------ rrcs-trigger | 2 ++ rrcs-trigger.service | 18 ++++++++++++++++++ 4 files changed, 43 insertions(+), 7 deletions(-) mode change 100644 => 100755 ras_pi_RRCS_BusyLight.py create mode 100755 rrcs-trigger create mode 100755 rrcs-trigger.service diff --git a/README.md b/README.md index c4c0488..53d37cc 100644 --- a/README.md +++ b/README.md @@ -7,4 +7,14 @@ - Raspian/Debian - Python 3 - Python 3 Requets - - Python 3 RPi.GPIO \ No newline at end of file + - Python 3 RPi.GPIO + +## Install instructions + + - Downloand script into /usr/local/bin/ + - Download rrcs-trigger file and place into /usr/local/bin/ + - Download rrcs-trigger.service and place it into /etc/systemd/system/ + - Run the follwoing commands to enable the service on boot. ```sudo systemctl enable rrcs-trigger.service``` and ```sudo systemctl start rrcs-trigger.service``` + - RUn the following command to see how its booting up. ```watch systemctl status rrcs-triggers.service``` + +- Modify the script to have your RRCS Server IP address and port. \ No newline at end of file diff --git a/ras_pi_RRCS_BusyLight.py b/ras_pi_RRCS_BusyLight.py old mode 100644 new mode 100755 index 0617111..64b4615 --- a/ras_pi_RRCS_BusyLight.py +++ b/ras_pi_RRCS_BusyLight.py @@ -4,15 +4,17 @@ os.environ['RPI_LGPIO_REVISION'] = "800012" import time import requests import RPi.GPIO as GPIO +import socket + RED = "\033[91m" GREEN = "\033[92m" RESET = "\033[0m" -BenBusyRRCSdataRising = ''' +PressVirtKey1OnBench = ''' - PressKeyEx + PressKeyEx C0000000001 64 @@ -28,7 +30,7 @@ BenBusyRRCSdataRising = ''' ''' -BenBusyRRCSdataFalling = ''' +ReleasePressVirtKey1OnBench = ''' PressKeyEx @@ -49,15 +51,19 @@ BenBusyRRCSdataFalling = ''' 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) + r = requests.post('http://10.75.120.229:8193',headers={'content-type': 'text/xml'},data=PressVirtKey1OnBench) time.sleep(0.05) print(f"{GREEN}Button released{RESET}") - r = requests.post('http://10.75.120.229:8193',headers={'content-type': 'text/xml'},data=BenBusyRRCSdataFalling) + r = requests.post('http://10.75.120.229:8193',headers={'content-type': 'text/xml'},data=ReleasePressVirtKey1OnBench) GPIO.setwarnings(False) GPIO.setmode(GPIO.BOARD) GPIO.setup(12, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) GPIO.add_event_detect(12, GPIO.RISING, callback=button_callback, bouncetime=200) -input("Press enter to quit\n\n") +print("RRCS-Trigger ready for input") +[sockA, sockB] = socket.socketpair() +junk = sockA.recv(1) # will never return since sockA will never receive any data + +print("This should never get printed") GPIO.cleanup() \ No newline at end of file diff --git a/rrcs-trigger b/rrcs-trigger new file mode 100755 index 0000000..edffc4c --- /dev/null +++ b/rrcs-trigger @@ -0,0 +1,2 @@ +#!/bin/bash +exec /usr/bin/python3 /usr/local/bin/ras_pi_RRCS_BusyLight.py \ No newline at end of file diff --git a/rrcs-trigger.service b/rrcs-trigger.service new file mode 100755 index 0000000..9af86a0 --- /dev/null +++ b/rrcs-trigger.service @@ -0,0 +1,18 @@ +[Unit] +Description=Runs the ras_pi_RRCS_BusyLight.py script at boot +After=network.target +#StartLimitIntervalSec=5 + +[Service] +Type=simple +Restart=always +RestartSec=5 +User=root +ExecStart=/usr/local/bin/rrcs-trigger /usr/local/bin/ras_pi_RRCS_BusyLight.py +WorkingDirectory=/tmp +StandardOutput=journal +StandardError=journal +Environment=PYTHONUNBUFFERED=1 + +[Install] +WantedBy=multi-user.target \ No newline at end of file