You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
2.4 KiB
Plaintext

# MikroTik R11e-LTE, R11e-LTE6 modem (plat.ver."OpenWrt-18.06.7" router: MikroTik RBM33")
# NEED REWRITE FUNCTION for atinout compatible!!!
function modem_data() {
TECH=$(echo "$O" | awk -F[,] '/^\+COPS/ {print $4}')
EEMGSTATE=-1
case "$TECH" in
0*|1*) # GSM, GSM Compact
MODE="GSM"
EEMGSTATE=0
;;
2*) # UTRAN
MODE="UMTS"
EEMGSTATE=0
;;
3*) # GSM w/EGPRS
MODE="EDGE"
EEMGSTATE=0
;;
4*|5*) # UTRAN w/HSDPA, UTRAN w/HSUPA
MODE="HSDPA"
EEMGSTATE=1
;;
6*) # UTRAN w/HSDPA and HSUPA
MODE="HSUPA"
EEMGSTATE=1
;;
7*) # E-UTRAN
MODE="LTE"
EEMGSTATE=2
;;
8*) # UTRAN HSPA+
MODE="HSPA"
EEMGSTATE=2
;;
*)
MODE="--"
;;
esac
DEVx="$(echo "$O" | awk -F [:,] '/CGMI:|GMM:/{gsub("\"|\r","",$0);print substr($2,2);}')"
DEVICE=$(echo $DEVx)
IMEI=$(echo echo "$O" | awk -F [:,] '/\+CGSN:/{gsub(" ","", $2); print $2}')
CSQ_RSSI=$(echo "$O" | awk -F[':,'] '/^\+CESQ:/ {print $2}')
ECIO=$(echo "$O" | awk -F[':,'] '/^\+CESQ:/ {print $5}')
# If less than 11 -> error
if [ "x$CSQ_RSSI" != "x" ]; then
CSQ_RSSI=$(echo $CSQ_RSSI | awk '{if((110 - $1) > 11) print 110 - $1; else print "";}')
fi
if [ "x$ECIO" != "x" ]; then
ECIO=$(echo $ECIO | awk '($1 < 255) {print 25 - $1 * 0.5}')
fi
# LTE Engineering Mode
if [ $EEMGSTATE -eq 2 ]; then
EEMGINFO=$(echo "$O" | awk -F[':'] '/^\+EEMLTESVC:/ {print $2}')
if [ "x$EEMGINFO" != "x" ]; then
BW=$(echo $EEMGINFO | awk -F[','] '{print $8}')
BWDL=$(echo $EEMGINFO | awk -F[','] '{print $9}')
RSRP=$(echo $EEMGINFO | awk -F[','] '{print $11}')
RSRQ=$(echo $EEMGINFO | awk -F[','] '{print $12}')
SINR=$(echo $EEMGINFO | awk -F[','] '{print $13}')
COPS_MCC=$(echo $EEMGINFO | awk -F[','] '{print $1}')
COPS_MNC=$(echo $EEMGINFO | awk -F[','] '{print $3}')
EARFCN=$(echo $EEMGINFO | awk -F[','] '{print $6}')
fi
# UMTS Engineering Mode
elif [ $EEMGSTATE -eq 1 ]; then
COPS_NUM=$(echo "$O" | awk -F[":"] '/^\+EEMUMTSSV:/ {print $2}')
if [ "x$EEMGINFO" != "x" ]; then
COPS_MCC=$(echo $EEMGINFO | awk -F[','] '{print $11}')
COPS_MNC=$(echo $EEMGINFO | awk -F[','] '{print $12}')
SINR=$ECIO
fi
# GSM Engineering Mode
elif [ $EEMGSTATE -eq 0 ]; then
COPS_NUM=$(echo "$O" | awk -F[":"] '/^\+EEMGINFOSVC:/ {print $2}')
if [ "x$EEMGINFO" != "x" ]; then
COPS_MCC=$(echo $EEMGINFO | awk -F[','] '{print $1}')
COPS_MNC=$(echo $EEMGINFO | awk -F[','] '{print $2}')
fi
fi
}