56 lines
1.0 KiB
Bash
Executable File
56 lines
1.0 KiB
Bash
Executable File
#! /bin/bash
|
|
|
|
echo "Content-type: application/json"
|
|
echo ""
|
|
echo ""
|
|
|
|
# Initialize
|
|
PASSWD_FILE="/usr/local/www/cgi-bin/passwd"
|
|
QUERY_STRING=$1
|
|
LOCKFILE="./doorcontrol-main.lock"
|
|
. parse_query_string.sh
|
|
#
|
|
|
|
# Exit if instance already running
|
|
if [ -e "$LOCKFILE" ]; then
|
|
exit 1
|
|
else
|
|
touch "$LOCKFILE"
|
|
fi
|
|
|
|
# Check password
|
|
read apiKey <"${PASSWD_FILE}"
|
|
if [ "${param[apiKey]}" != "${apiKey}" ]; then
|
|
echo '{"message": "Not Authorized!"}'
|
|
rm "$LOCKFILE"
|
|
exit 1
|
|
fi
|
|
|
|
LABEL_FILE=$(grep -l pcf8574a /sys/class/gpio/*/*label)
|
|
BASE_FILE="$(dirname $LABEL_FILE)/base"
|
|
BASE=$(cat $BASE_FILE)
|
|
|
|
for (( i=0; i<=7; i=i+1 )); do
|
|
PIN[$i]=$(($BASE+$i))
|
|
done
|
|
|
|
if [ ! -e "/sys/class/gpio/gpio${PIN[7]}/value" ]; then
|
|
echo "${PIN[7]}" > /sys/class/gpio/export
|
|
fi
|
|
|
|
#echo "Waiting ..."
|
|
sleep ${param[delay]}
|
|
|
|
echo '{"message": "Unlocked"}'
|
|
|
|
#echo "out" > /sys/class/gpio/gpio${PIN[7]}/direction
|
|
|
|
#echo "0" > /sys/class/gpio/gpio${PIN[7]}/value
|
|
#echo "UNLOCKED"
|
|
#sleep 2
|
|
#echo "1" > /sys/class/gpio/gpio${PIN[7]}/value
|
|
|
|
#echo "<p>Unlocked</p>"
|
|
|
|
rm "$LOCKFILE"
|