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
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
|
|
}
|