update install, add led script
This commit is contained in:
Executable
+45
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# green: gpiochip3 line 13 / LED1_GREEN (0 = on, 1 = off, active-low)
|
||||
# red: gpiochip3 line 14 / LED2_RED (0 = on, 1 = off, active-low)
|
||||
#
|
||||
# gpioset v2 holds the line until the process exits, so each LED is driven
|
||||
# by a background process. We kill and replace it to change state.
|
||||
|
||||
CHIP=/dev/gpiochip3
|
||||
GREEN_PIN=13
|
||||
RED_PIN=14
|
||||
|
||||
green_pid=""
|
||||
red_pid=""
|
||||
|
||||
set_led() {
|
||||
local pin=$1 val=$2 pid_var=$3
|
||||
kill "${!pid_var}" 2>/dev/null || true
|
||||
gpioset --chip "$CHIP" "${pin}=${val}" &
|
||||
printf -v "$pid_var" '%s' "$!"
|
||||
}
|
||||
|
||||
cleanup() {
|
||||
kill "$green_pid" "$red_pid" 2>/dev/null || true
|
||||
}
|
||||
trap 'cleanup; exit 0' INT TERM
|
||||
trap cleanup EXIT
|
||||
|
||||
# release any lines left held by a previous run of this script
|
||||
pkill -f "gpioset.*$CHIP" 2>/dev/null || true
|
||||
|
||||
green_state=0 # start ON
|
||||
|
||||
while true; do
|
||||
green_state=$(( 1 - green_state ))
|
||||
set_led "$GREEN_PIN" "$green_state" green_pid
|
||||
|
||||
if ping -q -c 1 -W 1 8.8.8.8 >/dev/null 2>&1; then
|
||||
set_led "$RED_PIN" 1 red_pid
|
||||
else
|
||||
set_led "$RED_PIN" 0 red_pid
|
||||
fi
|
||||
|
||||
sleep 2
|
||||
done
|
||||
Reference in New Issue
Block a user