36 lines
1.0 KiB
Bash
36 lines
1.0 KiB
Bash
#!/bin/bash
|
|
QUERY_STRING=$(echo "${QUERY_STRING}" | sed 's/;//g')
|
|
function urldecode() { : "${*//+/ }"; echo -e "${_//%/\\x}"; }
|
|
|
|
if [ "${QUERY_STRING}" ]; then
|
|
export IFS="&"
|
|
for cmd in ${QUERY_STRING}; do
|
|
if [ "$(echo $cmd | grep '=')" ]; then
|
|
key=$(echo $cmd | awk -F '=' '{print $1}')
|
|
value=$(echo $cmd | awk -F '=' '{print $2}')
|
|
eval $key=$value
|
|
fi
|
|
done
|
|
fi
|
|
|
|
x=$(urldecode "$atcmd")
|
|
MYATCMD=$(printf '%b\n' "${atcmd//%/\\x}")
|
|
if [ -n "${MYATCMD}" ]; then
|
|
# Initialize wait time to 200 ms
|
|
wait_time=200
|
|
while true; do
|
|
runcmd=$(echo -en "$x\r\n" | microcom -t $wait_time /dev/ttyOUT2)
|
|
# Check if "OK" or "ERROR" is present in the response
|
|
if [[ $runcmd =~ "OK" ]] || [[ $runcmd =~ "ERROR" ]]; then
|
|
break # Exit the loop if "OK" or "ERROR" is found
|
|
fi
|
|
# If neither "OK" nor "ERROR" is found, increment wait time by 1 second
|
|
((wait_time++))
|
|
done
|
|
fi
|
|
|
|
echo "Content-type: text/plain"
|
|
echo $x
|
|
echo ""
|
|
echo $runcmd
|