mirror of
https://github.com/sixfab/Sixfab_PPP_Installer
synced 2024-11-22 02:54:53 +00:00
reconnect.sh files revision
This commit is contained in:
parent
763eca71b3
commit
72d1e615d8
@ -1,21 +1,89 @@
|
||||
#!/bin/sh
|
||||
# /usr/src/reconnect
|
||||
# for Base HAT
|
||||
#!/bin/env bash
|
||||
|
||||
gpio -g mode 26 out #HAT_POWER_OFF
|
||||
gpio -g mode 19 out #W_DISABLE
|
||||
# Pinout for base hat
|
||||
POWER_OFF=26
|
||||
W_DISABLE=19
|
||||
|
||||
gpio -g write 26 0
|
||||
gpio -g write 19 0
|
||||
# General variables
|
||||
INTERVAL=60
|
||||
DOUBLE_CHECK_WAIT=10
|
||||
PING_TIMEOUT=9
|
||||
|
||||
while true; do
|
||||
function debug()
|
||||
{
|
||||
echo $(date "+%Y/%m/%d - %H:%M:%S :") "$1"
|
||||
}
|
||||
|
||||
ping -q -I ppp0 -c 1 8.8.8.8 -s 0 >/dev/null
|
||||
function check_network()
|
||||
{
|
||||
# Check the network is ready
|
||||
debug "Checking the network is ready..."
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Connection down, reconnecting..."
|
||||
sudo pon
|
||||
for i in {1..600}; do
|
||||
NETWORK_OK=0
|
||||
|
||||
debug "SIM Status:"
|
||||
atcom AT+CPIN? OK ERROR 10 | grep "CPIN: READY"
|
||||
SIM_READY=$?
|
||||
|
||||
debug "Network Registeration Status:"
|
||||
# For super SIM
|
||||
atcom AT+CREG? OK ERROR 10 | grep "CREG: 0,5"
|
||||
NETWORK_REG=$?
|
||||
# For native SIM
|
||||
atcom AT+CREG? OK ERROR 10 | grep "CREG: 0,1"
|
||||
NETWORK_REG_2=$?
|
||||
# Combined network registeration status
|
||||
NETWORK_REG=$((NETWORK_REG+NETWORK_REG_2))
|
||||
|
||||
if [[ $SIM_READY -eq 0 ]] && [[ $NETWORK_REG -le 1 ]]; then
|
||||
debug "Network is ready."
|
||||
NETWORK_OK=1
|
||||
return 0
|
||||
break
|
||||
else
|
||||
printf "?"
|
||||
fi
|
||||
sleep 2
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
# Control pins
|
||||
gpio -g mode $POWER_OFF out #HAT_POWER_OFF
|
||||
gpio -g mode $W_DISABLE out #W_DISABLE
|
||||
|
||||
gpio -g write $POWER_OFF 0
|
||||
gpio -g write $W_DISABLE 0
|
||||
|
||||
if check_network -eq 0; then
|
||||
debug "PPP chatscript is starting...";
|
||||
sudo pon;
|
||||
else
|
||||
debug "Network registeration is failed!";
|
||||
fi
|
||||
|
||||
sleep 10
|
||||
while true; do
|
||||
# Checking cellular internet connection
|
||||
ping -q -c 1 -s 0 -w $PING_TIMEOUT -I ppp0 8.8.8.8 > /dev/null 2>&1
|
||||
PINGG=$?
|
||||
|
||||
if [[ $PINGG -eq 0 ]]; then
|
||||
printf "."
|
||||
else
|
||||
printf "/"
|
||||
sleep $DOUBLE_CHECK_WAIT
|
||||
# Checking cellular internet connection
|
||||
ping -q -c 1 -s 0 -w $PING_TIMEOUT -I ppp0 8.8.8.8 > /dev/null 2>&1
|
||||
PINGG=$?
|
||||
|
||||
if [[ $PINGG -eq 0 ]]; then
|
||||
printf "+"
|
||||
else
|
||||
debug "Connection is down, reconnecting..."
|
||||
if check_network -eq 0; then sleep 0.1; else debug "Network registeration is failed!"; fi
|
||||
sudo pon
|
||||
fi
|
||||
fi
|
||||
sleep $INTERVAL
|
||||
done
|
||||
|
@ -1,13 +1,77 @@
|
||||
#!/bin/sh
|
||||
#!/bin/env bash
|
||||
|
||||
while true; do
|
||||
INTERVAL=60
|
||||
DOUBLE_CHECK_WAIT=10
|
||||
PING_TIMEOUT=9
|
||||
|
||||
ping -q -I ppp0 -c 1 8.8.8.8 -s 0 >/dev/null
|
||||
function debug()
|
||||
{
|
||||
echo $(date "+%Y/%m/%d - %H:%M:%S :") "$1"
|
||||
}
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Connection down, reconnecting..."
|
||||
sudo pon
|
||||
function check_network()
|
||||
{
|
||||
# Check the network is ready
|
||||
debug "Checking the network is ready..."
|
||||
|
||||
for i in {1..600}; do
|
||||
NETWORK_OK=0
|
||||
|
||||
debug "SIM Status:"
|
||||
atcom AT+CPIN? OK ERROR 10 | grep "CPIN: READY"
|
||||
SIM_READY=$?
|
||||
|
||||
debug "Network Registeration Status:"
|
||||
# For super SIM
|
||||
atcom AT+CREG? OK ERROR 10 | grep "CREG: 0,5"
|
||||
NETWORK_REG=$?
|
||||
# For native SIM
|
||||
atcom AT+CREG? OK ERROR 10 | grep "CREG: 0,1"
|
||||
NETWORK_REG_2=$?
|
||||
# Combined network registeration status
|
||||
NETWORK_REG=$((NETWORK_REG+NETWORK_REG_2))
|
||||
|
||||
if [[ $SIM_READY -eq 0 ]] && [[ $NETWORK_REG -le 1 ]]; then
|
||||
debug "Network is ready."
|
||||
NETWORK_OK=1
|
||||
return 0
|
||||
break
|
||||
else
|
||||
printf "?"
|
||||
fi
|
||||
sleep 2
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
if check_network -eq 0; then
|
||||
debug "PPP chatscript is starting...";
|
||||
sudo pon;
|
||||
else
|
||||
debug "Network registeration is failed!";
|
||||
fi
|
||||
|
||||
sleep 10
|
||||
while true; do
|
||||
# Checking cellular internet connection
|
||||
ping -q -c 1 -s 0 -w $PING_TIMEOUT -I ppp0 8.8.8.8 > /dev/null 2>&1
|
||||
PINGG=$?
|
||||
|
||||
if [[ $PINGG -eq 0 ]]; then
|
||||
printf "."
|
||||
else
|
||||
printf "/"
|
||||
sleep $DOUBLE_CHECK_WAIT
|
||||
# Checking cellular internet connection
|
||||
ping -q -c 1 -s 0 -w $PING_TIMEOUT -I ppp0 8.8.8.8 > /dev/null 2>&1
|
||||
PINGG=$?
|
||||
|
||||
if [[ $PINGG -eq 0 ]]; then
|
||||
printf "+"
|
||||
else
|
||||
debug "Connection is down, reconnecting..."
|
||||
if check_network -eq 0; then sleep 0.1; else debug "Network registeration is failed!"; fi
|
||||
sudo pon
|
||||
fi
|
||||
fi
|
||||
sleep $INTERVAL
|
||||
done
|
||||
|
@ -1,31 +1,129 @@
|
||||
#!/bin/sh
|
||||
#!/bin/env bash
|
||||
|
||||
gpio -g mode 23 in #status
|
||||
gpio -g mode 24 out #powerkey
|
||||
gpio -g mode 17 out #enable
|
||||
# Pinout for cellulariot hat
|
||||
STATUS=23
|
||||
POWERKEY=24
|
||||
ENABLE=17
|
||||
|
||||
gpio -g write 17 1
|
||||
sleep 1
|
||||
gpio -g write 17 0
|
||||
# General variables
|
||||
INTERVAL=60
|
||||
DOUBLE_CHECK_WAIT=10
|
||||
PING_TIMEOUT=9
|
||||
|
||||
while true; do
|
||||
# Configure pins
|
||||
gpio -g mode $STATUS in
|
||||
gpio -g mode $POWERKEY out
|
||||
gpio -g mode $ENABLE out
|
||||
|
||||
if [ $(gpio -g read 23) = "1" ]; then
|
||||
echo "Power up"
|
||||
function debug()
|
||||
{
|
||||
echo $(date "+%Y/%m/%d - %H:%M:%S :") "$1"
|
||||
}
|
||||
|
||||
#gpio -g write 24 0
|
||||
gpio -g write 24 1
|
||||
function check_network()
|
||||
{
|
||||
# Check the network is ready
|
||||
debug "Checking the network is ready..."
|
||||
|
||||
for i in {1..600}; do
|
||||
NETWORK_OK=0
|
||||
|
||||
debug "SIM Status:"
|
||||
atcom AT+CPIN? OK ERROR 10 | grep "CPIN: READY"
|
||||
SIM_READY=$?
|
||||
|
||||
debug "Network Registeration Status:"
|
||||
# For super SIM
|
||||
atcom AT+CREG? OK ERROR 10 | grep "CREG: 0,5"
|
||||
NETWORK_REG=$?
|
||||
# For native SIM
|
||||
atcom AT+CREG? OK ERROR 10 | grep "CREG: 0,1"
|
||||
NETWORK_REG_2=$?
|
||||
# Combined network registeration status
|
||||
NETWORK_REG=$((NETWORK_REG+NETWORK_REG_2))
|
||||
|
||||
if [[ $SIM_READY -eq 0 ]] && [[ $NETWORK_REG -le 1 ]]; then
|
||||
debug "Network is ready."
|
||||
NETWORK_OK=1
|
||||
return 0
|
||||
break
|
||||
else
|
||||
printf "?"
|
||||
fi
|
||||
sleep 2
|
||||
gpio -g write 24 0
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
function power_up_module()
|
||||
{
|
||||
for i in {1..20}; do
|
||||
if [[ $(gpio -g read $STATUS) -eq 1 ]]; then
|
||||
debug "Module is powering up..."
|
||||
|
||||
gpio -g write $POWERKEY 1
|
||||
sleep 2
|
||||
gpio -g write $POWERKEY 0
|
||||
sleep 2
|
||||
|
||||
if [[ $(gpio -g read $STATUS) -eq 0 ]]; then
|
||||
debug "Module is powered up."
|
||||
return 0
|
||||
break
|
||||
else
|
||||
debug "Module couldn't be powered up!"
|
||||
sleep 2
|
||||
else
|
||||
ping -q -I ppp0 -c 1 8.8.8.8 -s 0 >/dev/null
|
||||
debug "Module is just powered up."
|
||||
return 0
|
||||
break
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Connection down, reconnecting..."
|
||||
function restart_power()
|
||||
{
|
||||
debug "Power of the module is restarting..."
|
||||
# Restart power
|
||||
gpio -g write $ENABLE 1 # power is disabled
|
||||
sleep 2
|
||||
gpio -g write $ENABLE 0 # power is enabled
|
||||
}
|
||||
|
||||
restart_power # Restart power
|
||||
|
||||
# Modem power up
|
||||
if power_up_module -eq 0 ; then sleep 0.1; else debug "Module couldn't be powered up! Check the hardware setup!"; fi
|
||||
|
||||
if check_network -eq 0; then
|
||||
debug "PPP chatscript is starting...";
|
||||
sudo pon;
|
||||
else
|
||||
debug "Network registeration is failed!";
|
||||
fi
|
||||
|
||||
while true; do
|
||||
# Checking cellular internet connection
|
||||
ping -q -c 1 -s 0 -w $PING_TIMEOUT -I ppp0 8.8.8.8 > /dev/null 2>&1
|
||||
PINGG=$?
|
||||
|
||||
if [[ $PINGG -eq 0 ]]; then
|
||||
printf "."
|
||||
else
|
||||
printf "/"
|
||||
sleep $DOUBLE_CHECK_WAIT
|
||||
# Checking cellular internet connection
|
||||
ping -q -c 1 -s 0 -w $PING_TIMEOUT -I ppp0 8.8.8.8 > /dev/null 2>&1
|
||||
PINGG=$?
|
||||
|
||||
if [[ $PINGG -eq 0 ]]; then
|
||||
printf "+"
|
||||
else
|
||||
debug "Connection is down, reconnecting..."
|
||||
if check_network -eq 0; then sleep 0.1; else debug "Network registeration is failed!"; fi
|
||||
sudo pon
|
||||
fi
|
||||
fi
|
||||
|
||||
sleep 10
|
||||
sleep $INTERVAL
|
||||
done
|
||||
|
@ -1,31 +1,130 @@
|
||||
#!/bin/sh
|
||||
#!/bin/env bash
|
||||
|
||||
gpio -g mode 20 in
|
||||
gpio -g mode 11 out
|
||||
gpio -g mode 26 out
|
||||
# Pinout for cellulariot app shield
|
||||
STATUS=20
|
||||
POWERKEY=11
|
||||
DISABLE=26
|
||||
|
||||
gpio -g write 26 0
|
||||
sleep 1
|
||||
gpio -g write 26 1
|
||||
# General variables
|
||||
INTERVAL=60
|
||||
DOUBLE_CHECK_WAIT=10
|
||||
PING_TIMEOUT=9
|
||||
|
||||
while true; do
|
||||
# Configure pins
|
||||
gpio -g mode $STATUS in
|
||||
gpio -g mode $POWERKEY out
|
||||
gpio -g mode $DISABLE out
|
||||
|
||||
if [ $(gpio -g read 20) = "1" ]; then
|
||||
echo "Power up"
|
||||
function debug()
|
||||
{
|
||||
echo $(date "+%Y/%m/%d - %H:%M:%S :") "$1"
|
||||
}
|
||||
|
||||
gpio -g write 11 0
|
||||
gpio -g write 11 1
|
||||
function check_network()
|
||||
{
|
||||
# Check the network is ready
|
||||
debug "Checking the network is ready..."
|
||||
|
||||
for i in {1..600}; do
|
||||
NETWORK_OK=0
|
||||
|
||||
debug "SIM Status:"
|
||||
atcom AT+CPIN? OK ERROR 10 | grep "CPIN: READY"
|
||||
SIM_READY=$?
|
||||
|
||||
debug "Network Registeration Status:"
|
||||
# For super SIM
|
||||
atcom AT+CREG? OK ERROR 10 | grep "CREG: 0,5"
|
||||
NETWORK_REG=$?
|
||||
# For native SIM
|
||||
atcom AT+CREG? OK ERROR 10 | grep "CREG: 0,1"
|
||||
NETWORK_REG_2=$?
|
||||
# Combined network registeration status
|
||||
NETWORK_REG=$((NETWORK_REG+NETWORK_REG_2))
|
||||
|
||||
if [[ $SIM_READY -eq 0 ]] && [[ $NETWORK_REG -le 1 ]]; then
|
||||
debug "Network is ready."
|
||||
NETWORK_OK=1
|
||||
return 0
|
||||
break
|
||||
else
|
||||
printf "?"
|
||||
fi
|
||||
sleep 2
|
||||
gpio -g write 11 0
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
function power_up_module()
|
||||
{
|
||||
for i in {1..20}; do
|
||||
if [[ $(gpio -g read $STATUS) -eq 1 ]]; then
|
||||
debug "Module is powering up..."
|
||||
|
||||
gpio -g write $POWERKEY 0
|
||||
gpio -g write $POWERKEY 1
|
||||
sleep 2
|
||||
gpio -g write $POWERKEY 0
|
||||
sleep 2
|
||||
|
||||
if [[ $(gpio -g read $STATUS) -eq 0 ]]; then
|
||||
debug "Module is powered up."
|
||||
return 0
|
||||
break
|
||||
else
|
||||
debug "Module couldn't be powered up!"
|
||||
sleep 2
|
||||
else
|
||||
ping -q -I ppp0 -c 1 8.8.8.8 -s 0 >/dev/null
|
||||
debug "Module is just powered up."
|
||||
return 0
|
||||
break
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Connection down, reconnecting..."
|
||||
function restart_power()
|
||||
{
|
||||
debug "Power of the module is restarting..."
|
||||
# Restart power
|
||||
gpio -g write $DISABLE 0 # power is disabled
|
||||
sleep 2
|
||||
gpio -g write $DISABLE 1 # power is enabled
|
||||
}
|
||||
|
||||
restart_power # Restart power
|
||||
|
||||
# Modem power up
|
||||
if power_up_module -eq 0 ; then sleep 0.1; else debug "Module couldn't be powered up! Check the hardware setup!"; fi
|
||||
|
||||
if check_network -eq 0; then
|
||||
debug "PPP chatscript is starting...";
|
||||
sudo pon;
|
||||
else
|
||||
debug "Network registeration is failed!";
|
||||
fi
|
||||
|
||||
while true; do
|
||||
# Checking cellular internet connection
|
||||
ping -q -c 1 -s 0 -w $PING_TIMEOUT -I ppp0 8.8.8.8 > /dev/null 2>&1
|
||||
PINGG=$?
|
||||
|
||||
if [[ $PINGG -eq 0 ]]; then
|
||||
printf "."
|
||||
else
|
||||
printf "/"
|
||||
sleep $DOUBLE_CHECK_WAIT
|
||||
# Checking cellular internet connection
|
||||
ping -q -c 1 -s 0 -w $PING_TIMEOUT -I ppp0 8.8.8.8 > /dev/null 2>&1
|
||||
PINGG=$?
|
||||
|
||||
if [[ $PINGG -eq 0 ]]; then
|
||||
printf "+"
|
||||
else
|
||||
debug "Connection is down, reconnecting..."
|
||||
if check_network -eq 0; then sleep 0.1; else debug "Network registeration is failed!"; fi
|
||||
sudo pon
|
||||
fi
|
||||
fi
|
||||
|
||||
sleep 10
|
||||
sleep $INTERVAL
|
||||
done
|
||||
|
@ -1,26 +1,119 @@
|
||||
#!/bin/sh
|
||||
#!/bin/env bash
|
||||
|
||||
gpio -g mode 19 in
|
||||
gpio -g mode 26 out
|
||||
# Pinout for cellulariot hat
|
||||
STATUS=19
|
||||
POWERKEY=26
|
||||
|
||||
while true; do
|
||||
# General variables
|
||||
INTERVAL=60
|
||||
DOUBLE_CHECK_WAIT=10
|
||||
PING_TIMEOUT=9
|
||||
|
||||
if [ $(gpio -g read 19) = "0" ]; then
|
||||
echo "Power up"
|
||||
# Configure pins
|
||||
gpio -g mode $STATUS in
|
||||
gpio -g mode $POWERKEY out
|
||||
gpio -g mode $ENABLE out
|
||||
|
||||
gpio -g write 26 0
|
||||
gpio -g write 26 1
|
||||
function debug()
|
||||
{
|
||||
echo $(date "+%Y/%m/%d - %H:%M:%S :") "$1"
|
||||
}
|
||||
|
||||
function check_network()
|
||||
{
|
||||
# Check the network is ready
|
||||
debug "Checking the network is ready..."
|
||||
|
||||
for i in {1..600}; do
|
||||
NETWORK_OK=0
|
||||
|
||||
debug "SIM Status:"
|
||||
atcom AT+CPIN? OK ERROR 10 | grep "CPIN: READY"
|
||||
SIM_READY=$?
|
||||
|
||||
debug "Network Registeration Status:"
|
||||
# For super SIM
|
||||
atcom AT+CREG? OK ERROR 10 | grep "CREG: 0,5"
|
||||
NETWORK_REG=$?
|
||||
# For native SIM
|
||||
atcom AT+CREG? OK ERROR 10 | grep "CREG: 0,1"
|
||||
NETWORK_REG_2=$?
|
||||
# Combined network registeration status
|
||||
NETWORK_REG=$((NETWORK_REG+NETWORK_REG_2))
|
||||
|
||||
if [[ $SIM_READY -eq 0 ]] && [[ $NETWORK_REG -le 1 ]]; then
|
||||
debug "Network is ready."
|
||||
NETWORK_OK=1
|
||||
return 0
|
||||
break
|
||||
else
|
||||
printf "?"
|
||||
fi
|
||||
sleep 2
|
||||
gpio -g write 26 0
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
function power_up_module()
|
||||
{
|
||||
for i in {1..20}; do
|
||||
if [[ $(gpio -g read $STATUS) -eq 1 ]]; then
|
||||
debug "Module is powering up..."
|
||||
|
||||
gpio -g write $POWERKEY 0
|
||||
gpio -g write $POWERKEY 1
|
||||
sleep 2
|
||||
gpio -g write $POWERKEY 0
|
||||
sleep 2
|
||||
|
||||
if [[ $(gpio -g read $STATUS) -eq 0 ]]; then
|
||||
debug "Module is powered up."
|
||||
return 0
|
||||
break
|
||||
else
|
||||
debug "Module couldn't be powered up!"
|
||||
sleep 2
|
||||
else
|
||||
ping -q -I ppp0 -c 1 8.8.8.8 -s 0 >/dev/null
|
||||
debug "Module is just powered up."
|
||||
return 0
|
||||
break
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Connection down, reconnecting..."
|
||||
|
||||
# Modem power up
|
||||
if power_up_module -eq 0 ; then sleep 0.1; else debug "Module couldn't be powered up! Check the hardware setup!"; fi
|
||||
|
||||
if check_network -eq 0; then
|
||||
debug "PPP chatscript is starting...";
|
||||
sudo pon;
|
||||
else
|
||||
debug "Network registeration is failed!";
|
||||
fi
|
||||
|
||||
while true; do
|
||||
# Checking cellular internet connection
|
||||
ping -q -c 1 -s 0 -w $PING_TIMEOUT -I ppp0 8.8.8.8 > /dev/null 2>&1
|
||||
PINGG=$?
|
||||
|
||||
if [[ $PINGG -eq 0 ]]; then
|
||||
printf "."
|
||||
else
|
||||
printf "/"
|
||||
sleep $DOUBLE_CHECK_WAIT
|
||||
# Checking cellular internet connection
|
||||
ping -q -c 1 -s 0 -w $PING_TIMEOUT -I ppp0 8.8.8.8 > /dev/null 2>&1
|
||||
PINGG=$?
|
||||
|
||||
if [[ $PINGG -eq 0 ]]; then
|
||||
printf "+"
|
||||
else
|
||||
debug "Connection is down, reconnecting..."
|
||||
if check_network -eq 0; then sleep 0.1; else debug "Network registeration is failed!"; fi
|
||||
sudo pon
|
||||
fi
|
||||
fi
|
||||
|
||||
sleep 10
|
||||
sleep $INTERVAL
|
||||
done
|
||||
|
77
ppp_installer/reconnect_test.sh
Normal file
77
ppp_installer/reconnect_test.sh
Normal file
@ -0,0 +1,77 @@
|
||||
#!/bin/env bash
|
||||
|
||||
INTERVAL=60
|
||||
DOUBLE_CHECK_WAIT=10
|
||||
PING_TIMEOUT=9
|
||||
|
||||
function debug()
|
||||
{
|
||||
echo $(date "+%Y/%m/%d - %H:%M:%S :") "$1"
|
||||
}
|
||||
|
||||
function check_network()
|
||||
{
|
||||
# Check the network is ready
|
||||
debug "Checking the network is ready..."
|
||||
|
||||
for i in {1..600}; do
|
||||
NETWORK_OK=0
|
||||
|
||||
debug "SIM Status:"
|
||||
atcom AT+CPIN? OK ERROR 10 | grep "CPIN: READY"
|
||||
SIM_READY=$?
|
||||
|
||||
debug "Network Registeration Status:"
|
||||
# For super SIM
|
||||
atcom AT+CREG? OK ERROR 10 | grep "CREG: 0,5"
|
||||
NETWORK_REG=$?
|
||||
# For native SIM
|
||||
atcom AT+CREG? OK ERROR 10 | grep "CREG: 0,1"
|
||||
NETWORK_REG_2=$?
|
||||
# Combined network registeration status
|
||||
NETWORK_REG=$((NETWORK_REG+NETWORK_REG_2))
|
||||
|
||||
if [[ $SIM_READY -eq 0 ]] && [[ $NETWORK_REG -le 1 ]]; then
|
||||
debug "Network is ready."
|
||||
NETWORK_OK=1
|
||||
return 0
|
||||
break
|
||||
else
|
||||
printf "?"
|
||||
fi
|
||||
sleep 2
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
if check_network -eq 0; then
|
||||
debug "PPP chatscript is starting...";
|
||||
sudo pon;
|
||||
else
|
||||
debug "Network registeration is failed!";
|
||||
fi
|
||||
|
||||
while true; do
|
||||
# Checking cellular internet connection
|
||||
ping -q -c 1 -s 0 -w $PING_TIMEOUT -I ppp0 8.8.8.8 > /dev/null 2>&1
|
||||
PINGG=$?
|
||||
|
||||
if [[ $PINGG -eq 0 ]]; then
|
||||
printf "."
|
||||
else
|
||||
printf "/"
|
||||
sleep $DOUBLE_CHECK_WAIT
|
||||
# Checking cellular internet connection
|
||||
ping -q -c 1 -s 0 -w $PING_TIMEOUT -I ppp0 8.8.8.8 > /dev/null 2>&1
|
||||
PINGG=$?
|
||||
|
||||
if [[ $PINGG -eq 0 ]]; then
|
||||
printf "+"
|
||||
else
|
||||
debug "Connection is down, reconnecting..."
|
||||
if check_network -eq 0; then sleep 0.1; else debug "Network registeration is failed!"; fi
|
||||
sudo pon
|
||||
fi
|
||||
fi
|
||||
sleep $INTERVAL
|
||||
done
|
@ -1,30 +1,131 @@
|
||||
#!/bin/sh
|
||||
#!/bin/env bash
|
||||
|
||||
gpio -g mode 23 in #status
|
||||
gpio -g mode 24 out #powerkey
|
||||
gpio -g mode 17 out #disable
|
||||
# enabling the power of the HAT
|
||||
gpio -g write 17 1
|
||||
sleep 1
|
||||
gpio -g write 17 0
|
||||
# Pinout for cellulariot app shield
|
||||
STATUS=23
|
||||
POWERKEY=24
|
||||
DISABLE=17
|
||||
|
||||
while true; do
|
||||
# General variables
|
||||
INTERVAL=60
|
||||
DOUBLE_CHECK_WAIT=10
|
||||
PING_TIMEOUT=9
|
||||
|
||||
if [ $(gpio -g read 23) = "0" ]; then
|
||||
echo "Power up"
|
||||
# Configure pins
|
||||
gpio -g mode $STATUS in
|
||||
gpio -g mode $POWERKEY out
|
||||
gpio -g mode $DISABLE out
|
||||
|
||||
gpio -g write 24 1
|
||||
function debug()
|
||||
{
|
||||
echo $(date "+%Y/%m/%d - %H:%M:%S :") "$1"
|
||||
}
|
||||
|
||||
function check_network()
|
||||
{
|
||||
# Check the network is ready
|
||||
debug "Checking the network is ready..."
|
||||
|
||||
for i in {1..600}; do
|
||||
NETWORK_OK=0
|
||||
|
||||
debug "SIM Status:"
|
||||
atcom AT+CPIN? OK ERROR 10 | grep "CPIN: READY"
|
||||
SIM_READY=$?
|
||||
|
||||
debug "Network Registeration Status:"
|
||||
# For super SIM
|
||||
atcom AT+CREG? OK ERROR 10 | grep "CREG: 0,5"
|
||||
NETWORK_REG=$?
|
||||
# For native SIM
|
||||
atcom AT+CREG? OK ERROR 10 | grep "CREG: 0,1"
|
||||
NETWORK_REG_2=$?
|
||||
# Combined network registeration status
|
||||
NETWORK_REG=$((NETWORK_REG+NETWORK_REG_2))
|
||||
|
||||
if [[ $SIM_READY -eq 0 ]] && [[ $NETWORK_REG -le 1 ]]; then
|
||||
debug "Network is ready."
|
||||
NETWORK_OK=1
|
||||
return 0
|
||||
break
|
||||
else
|
||||
printf "?"
|
||||
fi
|
||||
sleep 2
|
||||
gpio -g write 24 0
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
function power_up_module()
|
||||
{
|
||||
for i in {1..20}; do
|
||||
if [[ $(gpio -g read $STATUS) -eq 1 ]]; then
|
||||
debug "Module is powering up..."
|
||||
|
||||
gpio -g write $POWERKEY 0
|
||||
gpio -g write $POWERKEY 1
|
||||
sleep 2
|
||||
gpio -g write $POWERKEY 0
|
||||
sleep 2
|
||||
|
||||
if [[ $(gpio -g read $STATUS) -eq 0 ]]; then
|
||||
debug "Module is powered up."
|
||||
return 0
|
||||
break
|
||||
else
|
||||
debug "Module couldn't be powered up!"
|
||||
sleep 2
|
||||
else
|
||||
ping -q -I ppp0 -c 1 8.8.8.8 -s 0 >/dev/null
|
||||
debug "Module is just powered up."
|
||||
return 0
|
||||
break
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Connection down, reconnecting..."
|
||||
function restart_power()
|
||||
{
|
||||
debug "Power of the module is restarting..."
|
||||
# Restart power
|
||||
gpio -g write $DISABLE 0 # power is disabled
|
||||
sleep 2
|
||||
gpio -g write $DISABLE 1 # power is enabled
|
||||
}
|
||||
|
||||
restart_power # Restart power
|
||||
|
||||
# Modem power up
|
||||
if power_up_module -eq 0 ; then sleep 0.1; else debug "Module couldn't be powered up! Check the hardware setup!"; fi
|
||||
|
||||
if check_network -eq 0; then
|
||||
debug "PPP chatscript is starting...";
|
||||
sudo pon;
|
||||
else
|
||||
debug "Network registeration is failed!";
|
||||
fi
|
||||
|
||||
while true; do
|
||||
# Checking cellular internet connection
|
||||
ping -q -c 1 -s 0 -w $PING_TIMEOUT -I ppp0 8.8.8.8 > /dev/null 2>&1
|
||||
PINGG=$?
|
||||
|
||||
if [[ $PINGG -eq 0 ]]; then
|
||||
printf "."
|
||||
else
|
||||
printf "/"
|
||||
sleep $DOUBLE_CHECK_WAIT
|
||||
# Checking cellular internet connection
|
||||
ping -q -c 1 -s 0 -w $PING_TIMEOUT -I ppp0 8.8.8.8 > /dev/null 2>&1
|
||||
PINGG=$?
|
||||
|
||||
if [[ $PINGG -eq 0 ]]; then
|
||||
printf "+"
|
||||
else
|
||||
debug "Connection is down, reconnecting..."
|
||||
if check_network -eq 0; then sleep 0.1; else debug "Network registeration is failed!"; fi
|
||||
sudo pon
|
||||
fi
|
||||
fi
|
||||
|
||||
sleep 10
|
||||
sleep $INTERVAL
|
||||
done
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user