changed at scripts to use atcmd instead

This commit is contained in:
Russel Yasol
2024-07-14 13:01:42 +08:00
parent dfce6c2b4f
commit 0e3497b8f4
3 changed files with 55 additions and 14 deletions

View File

@@ -16,20 +16,11 @@ 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
# Capture the response and remove ANSI color codes using awk
runcmd=$(atcmd11 "$x" | awk '{ gsub(/\x1B\[[0-9;]*[mG]/, "") }1')
fi
echo "Content-type: text/plain"
echo $x
echo ""
echo $runcmd
echo "$runcmd"

View File

@@ -0,0 +1,26 @@
#!/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
# Capture the response and remove ANSI color codes using awk
runcmd=$(atcmd "$x" | awk '{ gsub(/\x1B\[[0-9;]*[mG]/, "") }1')
fi
echo "Content-type: text/plain"
echo $x
echo ""
echo "$runcmd"

View File

@@ -104,7 +104,7 @@
placeholder="ATI"
aria-describedby="atCommandInput"
x-model="atcmd"
@keydown.enter="sendATCommand()"
@keydown.enter="sendUserATCommand()"
/>
<div id="atCommandInputHelper" class="form-text">
Seperate multiple commands with comma (,).
@@ -116,7 +116,7 @@
<button
class="btn btn-primary me-md-2"
type="button"
@click="sendATCommand()"
@click="sendUserATCommand()"
:disabled="isLoading"
>
Submit
@@ -443,6 +443,30 @@
});
},
sendUserATCommand() {
this.isLoading = true;
const encodedATCmd = encodeURIComponent(this.atcmd);
const url = `/cgi-bin/user_atcommand?atcmd=${encodedATCmd}`;
fetch(url)
.then((res) => {
if (!res.ok) {
throw new Error(`HTTP error! status: ${res.status}`);
}
return res.text();
})
.then((data) => {
this.atCommandResponse = data;
this.isLoading = false;
this.isClean = false;
})
.catch((error) => {
console.error("Error: ", error);
this.showError = true;
this.isLoading = false;
});
},
clearResponses() {
this.atCommandResponse = "";
this.isClean = true;