From cd226eebc0057ecb0ffb9c5d03eacd8d65b6d606 Mon Sep 17 00:00:00 2001 From: Olli Graf Date: Sat, 21 Jun 2025 11:54:48 +0200 Subject: [PATCH] manuelle Steuerung mit whiptail. --- raspi-bash/manuell.sh | 64 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100755 raspi-bash/manuell.sh diff --git a/raspi-bash/manuell.sh b/raspi-bash/manuell.sh new file mode 100755 index 0000000..29ce401 --- /dev/null +++ b/raspi-bash/manuell.sh @@ -0,0 +1,64 @@ +#! /usr/bin/bash + +pin_rot=17 # z.B. Pin 11 (BCM 17) +pin_gelb=27 # z.B. Pin 13 (BCM 27) +pin_gruen=22 # z.B. Pin 15 (BCM 22) + +state_rot=0 +state_gelb=0 +state_gruen=0 + +gpiochip="gpiochip0" + +function resetPins() { + echo "Ampel aus" + gpioset "${gpiochip}" ${pin_rot}=0 ${pin_gelb}=0 ${pin_gruen}=0 +} + +function setPins() { + echo "rot=${state_rot} gelb=${state_gelb} grün=${state_gruen}" + gpioset "${gpiochip}" ${pin_rot}=${state_rot} ${pin_gelb}=${state_gelb} ${pin_gruen}=${state_gruen} +} + +while true +do + AUSWAHL=($(whiptail --title "Ampelsteuerung" --checklist "manuelle Steuerung" 25 75 3 \ + "RED" "Rot " ${state_rot} \ + "YELLOW" "Gelb " ${state_gelb} \ + "GREEN" "Grün " ${state_gruen} 3>&1 1>&2 2>&3)) + + RETURNCODE=$? + + if [ ${RETURNCODE} -ne 0 ]; then + echo "Abgebrochen – Programm wird beendet." + resetPins + break + fi + echo "AUSWAHL=${AUSWAHL[@]}" + + state_rot=0 + state_gelb=0 + state_gruen=0 + for farbe in "${AUSWAHL[@]}"; do + farbe_clean=$(echo "$farbe" | tr -d '"') + echo "aktuelle farbe=${farbe}" + + case ${farbe_clean} in + "RED") + echo "setze State rot" + state_rot=1 + ;; + "YELLOW") + echo "setze State gelb" + state_gelb=1 + ;; + "GREEN") + echo "setze State grün" + state_gruen=1 + ;; + esac + done + setPins +done + +