69 lines
1.5 KiB
Bash
Executable file
69 lines
1.5 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
# $Id: pwr-switch 122491 2022-06-02 13:30:06Z sluijtma $
|
|
# $URL: https://svn.uvt.nl/its-unix/systems/hastur/usr/local/sbin/pwr-switch $
|
|
|
|
INIT_PIN(){
|
|
# the PWR-SWITCH is connected to GPIO 15 and the presceding ground pin
|
|
# reference page https://pinout.xyz/pinout/
|
|
[ -d /sys/class/gpio/gpio15 ] && echo "Pin already initialised" && exit 0
|
|
echo 15 > /sys/class/gpio/export
|
|
echo out > /sys/class/gpio/gpio15/direction
|
|
}
|
|
|
|
DEINIT_PIN(){
|
|
[ -d /sys/class/gpio/gpio15 ] || echo "Pin not initialised" && exit 0
|
|
echo 15 > /sys/class/gpio/unexport
|
|
}
|
|
|
|
PIN_STATUS(){
|
|
if [ -d /sys/class/gpio/gpio15 ] ; then
|
|
echo "pin status: Pin initialised"
|
|
else
|
|
echo "pin status: Pin not initialised"
|
|
fi
|
|
}
|
|
|
|
SWITCH_ON(){
|
|
# initialise pin before doing anything
|
|
[ -d /sys/class/gpio/gpio15 ] || INIT_PIN
|
|
echo 1 > /sys/class/gpio/gpio15/value
|
|
}
|
|
|
|
SWITCH_OFF(){
|
|
# initialise pin before doing anything
|
|
[ -d /sys/class/gpio/gpio15 ] || INIT_PIN
|
|
echo 0 > /sys/class/gpio/gpio15/value
|
|
}
|
|
|
|
TOGGLE_SWITCH(){
|
|
# initialise pin before doing anything
|
|
[ -d /sys/class/gpio/gpio15 ] || INIT_PIN
|
|
case $(cat /sys/class/gpio/gpio15/value) in
|
|
1) SWITCH_OFF;;
|
|
0) SWITCH_ON;;
|
|
esac
|
|
}
|
|
|
|
USAGE(){
|
|
cat >&2 <<EOF
|
|
Usage: pwr-switch <on|off|init|deinit|help>
|
|
on: send on signal
|
|
off: send off signal
|
|
init: initialise pin
|
|
deinit: deinitialise pin
|
|
status: show pin initialisation state
|
|
toggle: toggle on/off signal
|
|
EOF
|
|
}
|
|
|
|
case $1 in
|
|
on) SWITCH_ON;;
|
|
off) SWITCH_OFF;;
|
|
init) INIT_PIN;;
|
|
deinit) DEINIT_PIN;;
|
|
status) PIN_STATUS;;
|
|
toggle) TOGGLE_SWITCH;;
|
|
*) USAGE;;
|
|
esac
|