Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
#!/bin/sh ROOTER=/usr/lib/rooter log() { logger -t "Sierra Data" "$@" } read_lte_ssc() { SLBAND=$(echo $OX | grep -o "LTE "$SSCx" BAND: B[0-9]\+ LTE "$SSCx" BW :") SLBAND=$(echo $SLBAND | grep -o " BAND: B[0-9]\+ ") if [ -n "$SLBAND" ]; then SLBAND=$(echo $SLBAND | grep -o "[0-9]\+") SLBAND=$(printf "
B%d" $SLBAND) BWD=$(echo $OX | grep -o " LTE "$SSCx" BW : [.012345]\+ [ML]") BWD=$(echo $BWD | grep -o " BW : [.012345]\+" | grep -o "[.012345]\+") if [ -n "$BWD" ]; then SLBAND=$SLBAND$(printf " (CA, Bandwidth %s MHz)" $BWD) else SLBAND=$SLBAND$(printf " (CA, Bandwidth unknown)") fi LBAND=$LBAND$SLBAND XTRACHAN=$(echo $OX | grep -o " LTE "$SSCx" CHAN: [0-9]\+") XTRACHAN=$(echo "$XTRACHAN" | grep -o "[0-9]\{2,6\}") if [ -n "$XTRACHAN" ]; then CHANNEL=$(echo "$CHANNEL", "$XTRACHAN") fi fi } read_nr_ssc() { SLBAND=$(echo $OX | grep -o $SSCx" NR5G BAND: N[0-9]\+ "$SSCx" NR5G BW:") SLBAND=$(echo $SLBAND | grep -o " BAND: N[0-9]\+ ") if [ -n "$SLBAND" ]; then SLBAND=$(echo $SLBAND | grep -o "[0-9]\+") SLBAND=$(printf "
n%d" $SLBAND) BWD=$(echo "$OX" | grep -o "$SSCx NR5G BW: [0-9]\{1,3\} MHZ") BWD=$(echo "$BWD" | grep -o "BW: [0-9]\{1,3\}") BWD=$(echo "$BWD" | grep -o "[0-9]\{1,3\}") if [ -n "$BWD" ]; then SLBAND=$SLBAND$(printf " (CA, Bandwidth %s MHz)" $BWD) else SLBAND=$SLBAND$(printf " (CA, Bandwidth unknown)") fi LBAND=$LBAND$SLBAND XTRACHAN=$(echo $OX | grep -o $SSCx" NR5G RX CHAN: [0-9]\{6\}") XTRACHAN=$(echo "$XTRACHAN" | grep -o "[0-9]\{2,6\}") if [ -n "$XTRACHAN" ]; then CHANNEL=$(echo "$CHANNEL", "$XTRACHAN") fi fi } CURRMODEM=$1 COMMPORT=$2 OX=$($ROOTER/gcom/gcom-locked "$COMMPORT" "sierrainfo.gcom" "$CURRMODEM") OX=$(echo $OX | tr 'a-z' 'A-Z') echo "$OX" > /tmp/sierradata CSQ=$(echo $OX | grep -o "+CSQ: [0-9]\{1,2\}" | grep -o "[0-9]\{1,2\}") if [ -z "$CSQ" ] || [ "$CSQ" = "99" ]; then CSQ="-" CSQ_PER="-" CSQ_RSSI="-" else CSQ_PER=$(($CSQ * 100/31))"%" CSQ_RSSI=$((2 * CSQ - 113))" dBm" fi MODTYPE="-" NETMODE="-" LBAND="-" PCI="-" LTEINFO=$(echo $OX | grep -o "!LTEINFO: .\+ INTRAFREQ:" | tr " " ",") LTEINFO=$(echo "$LTEINFO" | grep -o "[0-9]\{1,6\}\,[0-9]\{3\}\,.\+") if [ -n "$LTEINFO" ]; then PCI=$(echo $LTEINFO | cut -d, -f10 | grep -o "[0-9]\{1,3\}") if [ -z "$PCI" ]; then PCI="-" fi fi SINR=$(echo $OX | grep -o "SINR (.B): [-.0-9]\{1,5\}" | tr '\n' ' ' | cut -d' ' -f3) if [ -n "$SINR" ]; then SINR5=$(echo $OX | grep -o "NR5G SINR (.B): [-]*[.0-9]\{1,5\}" | cut -d' ' -f4) if [ -n "$SINR5" ]; then SINR=$SINR" dB, "$SINR5 fi SINR=$SINR" dB" else SINR="-" fi TEMP=$(echo $OX | grep -o "TEMPERATURE: [-.0-9]\+ " | grep -o "[-.0-9]\+" | tr '\n' ' ') if [ -n "$TEMP" ]; then TEMP=$(printf "$(echo $TEMP | cut -d' ' -f2)\xc2\xb0C") else TEMP="unknown" fi RAT=$(echo $OX | grep -o "SYSTEM MODE: [^ ]\{3,10\}" | cut -d' ' -f3) MODE=$RAT case $RAT in "WCDMA") MODE=$(echo $OX | grep -o " \*CNTI: 0,[^ ]\+" | cut -d, -f2) if [ -z "$MODE" ] || [ "$MODE" = "NONE" ]; then MODE=$RAT fi CHANNEL=$(echo $OX | grep -o "WCDMA CHANNEL: [0-9]\{3,5\}" | cut -d' ' -f3) if [ -n "$CHANNEL" ]; then LOCKCHAN=$(echo $OX | grep -o "!UMTSCHAN? ENABLE: 01 CHANNEL: [0-9]\{3,5\}") if [ -n "$LOCKCHAN" ]; then LOCKCHAN=$(echo $LOCKCHAN | grep -o "CHANNEL: [0-9]\+" | grep -o "[0-9]\+") CHANNEL=$CHANNEL" (Soft locked to $LOCKCHAN)" fi else CHANNEL="-" fi ECIO=$(echo $OX | grep -o "EC/IO: [+-]\?[.0-9]\+") ECIO=$(echo "$ECIO") ECIO1=$(echo "$ECIO" | cut -d' ' -f4) ECIO=$(echo "$ECIO" | cut -d' ' -f2) RSCP=$(echo $OX | grep -o "RSCP: -[.0-9]\+") RSCP=$(echo "$RSCP") RSCP1=$(echo "$RSCP" | cut -d' ' -f4) RSCP=$(echo "$RSCP" | cut -d' ' -f2) ;; "LTE") LBAND=$(echo $OX | grep -o "LTE BAND: B[0-9]\+ LTE BW: [.012345]\+ MHZ" | grep -o "[.0-9]\+") LBAND=$(printf "B%d (Bandwidth %s MHz)" $LBAND) CHANNEL=$(echo $OX | grep -o "LTE RX CHAN: [0-9]\{1,6\}" | grep -o "[0-9]\+") SLBAND=$(echo $OX | grep -o " ACTIVE LTE SCELL BAND:[ ]*B[0-9]\+ LTE SCELL BW:[ ]*[.012345]\+ MHZ") if [ -n "$SLBAND" ]; then SLBAND=$(echo $SLBAND | grep -o "[.0-9]\+") SLBAND=$(printf "
B%d (CA, Bandwidth %s MHz)" $SLBAND) LBAND=$LBAND$SLBAND XTRACHAN=$(echo $OX | grep -o " LTE SCELL CHAN:[0-9]\+" | grep -o "[0-9]\{2,6\}") CHANNEL=$CHANNEL", "$XTRACHAN fi SSCLIST=$(echo $OX | grep -o "LTE S[CS]C[0-9] STATE:[ ]\?ACTIVE" | grep -o "[0-9]") for SSCVAL in $(echo "$SSCLIST"); do SSCx="S[CS]C"$SSCVAL read_lte_ssc done if [ -n "$LTEINFO" ]; then RSCP=$(echo $LTEINFO | cut -d, -f12 | grep -o "[-][.0-9]\{2,5\}") ECIO=$(echo $LTEINFO | cut -d, -f11 | grep -o "[-.0-9]\{1,5\}") fi if [ -z "$RSCP" ]; then RSCP=$(echo $OX | grep -o "PCC RXM RSRP: -[0-9]\{2,3\} " | cut -d' ' -f4) fi if [ -n "$RSCP" ]; then RSCP1=$(echo $OX | grep -o "PCC RXD RSRP: -[0-9]\{2,3\} " | cut -d' ' -f4) if [ -z "$RSCP1" ]; then RSCP1=$(echo $OX | grep -o "PCC RXD RSSI: -[0-9]\+ RSRP (DBM): -[0-9]\{2,3\} " | cut -d' ' -f7) fi else RSCP=$(echo $OX | grep -o "RSRP (DBM): -[0-9]\{2,3\} " | tr '\n' ' ' | cut -d' ' -f3) fi if [ -z "$ECIO" ]; then ECIO=$(echo $OX | grep -o "RSRQ (DB): [-.0-9]\{1,5\} " | cut -d' ' -f3) fi ;; "ENDC") MODE="LTE/NR EN-DC" LBAND=$(echo $OX | grep -o "LTE BAND: B[0-9]\+ LTE BW: [.012345]\+ MHZ" | grep -o "[.0-9]\+") LBAND=$(printf "B%d (Bandwidth %s MHz)" $LBAND) CHANNEL=$(echo $OX | grep -o "LTE RX CHAN: [0-9]\{1,6\}" | grep -o "[0-9]\+") NBAND=$(echo $OX | grep -o "NR5G BAND: N[0-9]\+ NR5G BW: [0-9]\+ MHZ") NBAND=$(echo "$NBAND" | cut -d' ' -f3)" "$(echo "$NBAND" | cut -d' ' -f6) if [ "$NBAND" != " " ]; then NBAND=$(echo $NBAND | grep -o "[.0-9]\+") NBAND=$(printf "
n%d (Bandwidth %s MHz)" $NBAND) LBAND=$LBAND$NBAND NCHAN=$(echo $OX | grep -o "NR5G RX CHAN: [0-9]\{6\}" | cut -d' ' -f4) CHANNEL=$CHANNEL", "$NCHAN fi SSCLIST=$(echo $OX | grep -o "LTE S[CS]C[0-9] STATE:[ ]\?ACTIVE" | grep -o "[0-9]") for SSCVAL in $(echo "$SSCLIST"); do SSCx="S[CS]C"$SSCVAL read_lte_ssc done SSCLIST=$(echo $OX | grep -o "SCC[0-9] NR5G BAND: N[0-9]\{1,3\}" | grep -o "SCC[0-9] NR" | grep -o "[0-9]") for SSCVAL in $(echo "$SSCLIST"); do SSCx="SCC"$SSCVAL read_nr_ssc done RSCP=$(echo $OX | grep -o "PCC RXM RSRP: -[0-9]\{2,3\} " | cut -d' ' -f4) RSCP1=$(echo $OX | grep -o "NR5G RSRP (DBM): -[0-9]\{2,3\} " | cut -d' ' -f4) ECIO=$(echo $OX | grep -o "RSRQ (DB): [-.0-9]\{1,5\} " | tr '\n' ' ' | cut -d' ' -f3) ECIO1=$(echo $OX | grep -o "NR5G RSRQ (DB): [-.0-9]\{1,5\} " | cut -d' ' -f4) ;; "NR5G") MODE="NR5G-SA" NBAND=$(echo $OX | grep -o "NR5G BAND: N[0-9]\+ NR5G BW: [0-9]\+ MHZ") NBAND=$(echo "$NBAND" | cut -d' ' -f3)" "$(echo "$NBAND" | cut -d' ' -f6) CHANNEL=$(echo $OX | grep -o "NR5G RX CHAN: [0-9]\{1,6\}" | grep -o "[0-9]\+") RSCP=$(echo $OX | grep -o "PCC RXM RSRP: -[0-9]\{2,3\} " | cut -d' ' -f4) ECIO=$(echo $OX | grep -o "RSRQ (DB): [-.0-9]\{1,5\} " | cut -d' ' -f3) ;; esac SELRAT=$(echo $OX | grep -o "!SELRAT:[^0-9]\+[0-9]\{2\}" | grep -o "[0-9]\{2\}") if [ -n "$SELRAT" ]; then MODTYPE="2" case $SELRAT in "01" ) NETMODE="5" ;; "02" ) NETMODE="3" ;; "06" ) NETMODE="7" ;; * ) NETMODE="1" ;; esac fi CMODE=$(uci -q get modem.modem$CURRMODEM.cmode) if [ "$CMODE" = 0 ]; then NETMODE="10" fi if [ -z "$RSCP1" ]; then RSCP1=" " fi if [ -z "$ECIO1" ]; then ECIO1=" " fi { echo 'CSQ="'"$CSQ"'"' echo 'CSQ_PER="'"$CSQ_PER"'"' echo 'CSQ_RSSI="'"$CSQ_RSSI"'"' echo 'ECIO="'"$ECIO"'"' echo 'RSCP="'"$RSCP"'"' echo 'ECIO1="'"$ECIO1"'"' echo 'RSCP1="'"$RSCP1"'"' echo 'MODE="'"$MODE"'"' echo 'MODTYPE="'"$MODTYPE"'"' echo 'NETMODE="'"$NETMODE"'"' echo 'CHANNEL="'"$CHANNEL"'"' echo 'LBAND="'"$LBAND"'"' echo 'PCI="'"$PCI"'"' echo 'TEMP="'"$TEMP"'"' echo 'SINR="'"$SINR"'"' } > /tmp/signal$CURRMODEM.file CONNECT=$(uci -q get modem.modem$CURRMODEM.connected) if [ "$CONNECT" -eq 0 ]; then exit 0 fi if [ $CSQ = "-" ]; then log "$OX" fi ENB="0" if [ -e /etc/config/failover ]; then ENB=$(uci get failover.enabled.enabled) fi if [ $ENB = "1" ]; then exit 0 fi WWANX=$(uci -q get modem.modem$CURRMODEM.interface) OPER=$(cat /sys/class/net/$WWANX/operstate 2>/dev/null) rm -f "/tmp/connstat"$CURRMODEM if [ ! $OPER ]; then exit 0 fi if echo $OPER | grep -q "unknown"; then exit 0 fi if echo $OPER | grep -q "down"; then echo "1" > "/tmp/connstat"$CURRMODEM fi
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)