#!/bin/sh VALID_ONOFF_IDS="4 17 18 21 22 23" GPIOPATH=/sys/class/gpio/gpio for QUERY in `echo $QUERY_STRING | tr '&' ' '`; do for VALIDID in $VALID_ONOFF_IDS; do if [ "$QUERY" = "$VALIDID=1" ]; then eval "GPIO_$VALIDID"=1 elif [ "$QUERY" = "$VALIDID=0" ]; then eval "GPIO_$VALIDID=0" elif [ "$QUERY" = "$VALIDID=q" ]; then eval "GPIO_$VALIDID=q" fi done if [ "$QUERY" = "mobile=1" ]; then MOBILE='1' NOFLOAT='1' elif [ "$QUERY" = "nofloat=1" ]; then NOFLOAT='1' fi done print_gpio_state() { GPIOVALUE=$(cat "${GPIOPATH}${1}/value") if [ "$GPIOVALUE" = "0" ]; then echo -n "true" else echo -n "false" fi } gpio_is_on() { GPIOVALUE=$(cat "${GPIOPATH}${1}/value") [ "$GPIOVALUE" = "0" ] } echo "Content-type: text/html" echo "" echo "{" for CHECKID in $VALID_ONOFF_IDS; do VAL="" VAL="$(eval echo \$GPIO_$CHECKID)" [ -z $VAL ] && continue if [ $VAL = 1 -o $VAL = 0 ]; then [ $VAL = 1 ] && VAL=0 || VAL=1 echo "$VAL" > "${GPIOPATH}${CHECKID}/value" fi echo -n "\"$CHECKID\":" print_gpio_state $CHECKID echo "," done echo "\"-1\":false}" # echo "" # echo "
" # echo "