Advertisement
snowgum

t77data.sh

May 14th, 2024 (edited)
804
0
2 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 9.39 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. ROOTER=/usr/lib/rooter
  4.  
  5. log() {
  6.     logger -t "T77 Data" "$@"
  7. }
  8.  
  9. CURRMODEM=$1
  10. COMMPORT=$2
  11.  
  12. OX=$($ROOTER/gcom/gcom-locked "$COMMPORT" "t77info.gcom" "$CURRMODEM")
  13. OX=$(echo $OX | tr 'a-z' 'A-Z')
  14. OXC=$(echo $OX | tr -d " ")
  15.  
  16. PCELL_LTE="RAT:[LTE+NR]\{3,6\}MCC:.\+PCELL:LTE_BAND:[0-9]\+[^C]\+WIDTH:[.0-9]\{1,6\}MHZCHANNEL:[0-9]\+PCI:[0-9]\{1,3\}LTE_RSRP:.\{2,8\}DBM,RSRQ:.\{2,8\}DB.\{12,20\},LTE_SNR:.\{3,7\}DB"
  17. SCELL_LTE="SCELL:LTE_BAND:[0-9]\+LTE_BAND_WIDTH:[.0-9]\{1,6\}MHZCHANNEL:[0-9]\+PCI:[0-9]\{1,3\}LTE_RSRP:.\{2,8\}DBM,RSRQ:.\{2,8\}DB.\{12,20\},LTE_SNR:[^S]\{2,7\}"
  18. PCELL_NSA="NR_BAND:N[0-9]\{1,3\}NR_BAND_WIDTH:[.0-9]\{3,5\}MHZNR_CHANNEL:[0-9]\{6\}NR_PCI:[0-9]\{1,3\}NR_RSRP:.\{2,8\}DBM.\{15,60\}NR_RSRQ:.\{2,8\}NR_SNR:.\{3,7\}DB"
  19.  
  20. O=$($ROOTER/common/processat.sh "$OX")
  21. O=$(echo $O)
  22.  
  23. REGXca="BAND:[0-9]\{1,3\} BW:[0-9.]\+MHZ EARFCN:[0-9]\+ PCI:[0-9]\+ RSRP:[^R]\+RSRQ:[^R]\+RSSI:[^S]\+SNR[^D]\+"
  24. REGXrxd="RX_DIVERSITY:[^(]\+([^)]\+"
  25.  
  26. RSRP=""
  27. RSRQ=""
  28. CHANNEL="-"
  29. ECIO="-"
  30. RSCP="-"
  31. ECIO1=" "
  32. RSCP1=" "
  33. MODE="-"
  34. MODTYPE="-"
  35. NETMODE="-"
  36. LBAND="-"
  37. PCI="-"
  38. SINR="-"
  39.  
  40. CSQ=$(echo $OX | grep -o "+CSQ: [0-9]\{1,2\}" | grep -o "[0-9]\{1,2\}")
  41. if [ "$CSQ" = "99" ]; then
  42.     CSQ=""
  43. fi
  44. if [ -n "$CSQ" ]; then
  45.     CSQ_PER=$(($CSQ * 100/31))"%"
  46.     CSQ_RSSI=$((2 * CSQ - 113))" dBm"
  47. else
  48.     CSQ="-"
  49.     CSQ_PER="-"
  50.     CSQ_RSSI="-"
  51. fi
  52.  
  53. TEMP=$(echo $OX | grep -o "TSENS_TZ_SENSOR[0-9]:[0-9]\{1,3\}")
  54. if [ -n "$TEMP" ]; then
  55.     TEMP=${TEMP:17:3}
  56. fi
  57. if [ -z "$TEMP" ]; then
  58.     TEMP=$(echo $OX | grep -o "XO_THERM_BUF:[0-9]\{1,3\}")
  59.     if [ -n "$TEMP" ]; then
  60.         TEMP=${TEMP:13:3}
  61.     fi
  62. fi
  63. if [ -z "$TEMP" ]; then
  64.     TEMP=$(echo $OX | grep -o "TSENS: [0-9]\{1,3\}C")
  65. fi
  66. if [ -n "$TEMP" ]; then
  67.     TEMP=$(echo $TEMP | grep -o "[0-9]\{1,3\}")$(printf "\xc2\xb0")"C"
  68. else
  69.     TEMP="-"
  70. fi
  71. TECH=$(echo $O" " | grep -o "+COPS: .,.,[^,]\+,[027]")
  72. TECH="${TECH: -1}"
  73.  
  74. PLTE=$(echo $OXC | grep -o "$PCELL_LTE")
  75. SLTE=$(echo $OXC | grep -o "$SCELL_LTE")
  76. PNR=$(echo $OXC | grep -o "$PCELL_NSA")
  77. if [ -n "$PLTE" ]; then
  78.     MODE="LTE"
  79.     LBAND="B"$(echo $PLTE | cut -d: -f11 | grep -o "[0-9]\{1,3\}")
  80.     BW=$(echo $PLTE | cut -d: -f12 | grep -o "[.0-9]\{3,5\}")
  81.     if [ ${BW: -2} == ".0" ]; then
  82.         BW=$(printf "%.0f" $BW)
  83.     fi
  84.     LBAND=$LBAND" (Bandwidth $BW MHz)"
  85.     CHANNEL=$(echo $PLTE | cut -d: -f13 | grep -o "[0-9]\{1,7\}")
  86.     PCI=$(echo $PLTE | cut -d: -f14 | grep -o "[0-9]\{1,3\}")
  87.     RSCP=$(printf "%.0f" $(echo $PLTE | cut -d: -f15 | grep -o "[-.0-9]\{2,7\}"))
  88.     ECIO=$(printf "%.0f" $(echo $PLTE | cut -d: -f16 | grep -o "[-.0-9]\{2,6\}"))
  89.     SINR=$(printf "%.0f" $(echo $PLTE | cut -d: -f18 | grep -o "[-.0-9]\{3,6\}"))
  90.     if [ -n "$PNR" ]; then
  91.         MODE="LTE+NR (NR5G-NSA)"
  92.         BAND="n"$(echo $PNR | cut -d: -f2 | grep -o "[0-9]\{1,3\}")
  93.         BW=$(printf "%.0f" $(echo $PNR | cut -d: -f3 | grep -o "[.0-9]\{3,5\}"))
  94.         LBAND=$LBAND"<br />"$BAND" (Bandwidth $BW MHz)"
  95.         CHANNEL=$CHANNEL","$(echo $PNR | cut -d: -f4 | grep -o "[0-9]\{1,7\}")
  96.         PCI=$PCI","$(echo $PNR | cut -d: -f5 | grep -o "[0-9]\{1,3\}")
  97.         RSCP=$RSCP","$(printf "%.0f" $(echo $PNR | cut -d: -f6 | grep -o "[-.0-9]\{2,7\}"))
  98.         ECIO=$ECIO","$(printf "%.0f" $(echo $PNR | cut -d: -f8 | grep -o "[-.0-9]\{2,6\}"))
  99.         SINR=$SINR","$(printf "%.0f" $(echo $PNR | cut -d: -f9 | grep -o "[-.0-9]\{3,6\}"))
  100.     fi
  101.     for SLTEV in $(echo "$SLTE"); do
  102.         BAND="B"$(echo $SLTEV | cut -d: -f3 | grep -o "[0-9]\{1,3\}")
  103.         BW=$(echo $SLTEV | cut -d: -f4 | grep -o "[.0-9]\{3,5\}")
  104.         if [ ${BW: -2} == ".0" ]; then
  105.             BW=$(printf "%.0f" $BW)
  106.         fi
  107.         LBAND=$LBAND"<br />CA "$BAND" (Bandwidth $BW MHz)"
  108.         CHANNEL=$CHANNEL","$(echo $SLTEV | cut -d: -f5 | grep -o "[0-9]\{1,7\}")
  109.         PCI=$PCI","$(echo $SLTEV | cut -d: -f6 | grep -o "[0-9]\{1,3\}")
  110.         RSCP=$RSCP","$(printf "%.0f" $(echo $SLTEV | cut -d: -f7 | grep -o "[-.0-9]\{2,7\}"))
  111.         ECIO=$ECIO","$(printf "%.0f" $(echo $SLTEV | cut -d: -f8 | grep -o "[-.0-9]\{2,6\}"))
  112.         SNR=$(echo $SLTEV | cut -d: -f10 | grep -o "[-.0-9]\{3,6\}")
  113.         if [ -n "$SNR" ]; then
  114.             SINR=$SINR","$(printf "%.0f" $SNR)
  115.         else
  116.             SINR=$SINR",-"
  117.         fi
  118.     done
  119. fi
  120. if [ -z "$PLTE" ] && [ -n "$TECH" ]; then
  121.     RSSI=$(echo $O | grep -o " RSSI: [^D]\+D" | grep -o "[-0-9\.]\+")
  122.     if [ -n "$RSSI" ]; then
  123.         CSQ_RSSI=$(echo $RSSI)" dBm"
  124.     fi
  125.     case $TECH in
  126.         "7")
  127.             MODE="LTE"
  128.             ECIO=$(echo $O | grep -o " RSRQ: [^D]\+D" | grep -o "[-0-9\.]\+")
  129.             SINR=$(echo $OX | grep -o "RS-S[I]*NR: [^D]\+D")
  130.             SINR=${SINR:8}
  131.             SINR=$(echo "$SINR" | grep -o "[-0-9.]\{1,3\}")
  132.             LBAND="B"$(echo $O | grep -o " BAND: [0-9]\+" | grep -o "[0-9]\+")
  133.             DEBUGv1=$(echo $O | grep -o "EARFCN(DL/UL):")
  134.             DEBUGv2=$(echo $O | grep -o "LTE ENGINEERING")
  135.             if [ -n "$DEBUGv1" ]; then
  136.                 RSCP=$(echo $O | grep -o "[^G] RSRP: [^D]\+D" | grep -o "[-0-9\.]\+")
  137.                 RSRPlist=$(echo $OX | grep -o "$REGXrxd" | grep -o "\-[.0-9]\{4,5\}" | tr "\n" ",")
  138.                 if [ -n "$RSRPlist" ]; then
  139.                     RSCP=$(echo $RSRPlist | cut -d, -f1)
  140.                     MIMO=$(echo $OX | grep -o "$REGXrxd" | cut -d" " -f2)
  141.                     if [ "$MIMO" == "3" ]; then
  142.                         RSCP="(2xMIMO) $RSCP"
  143.                     fi
  144.                     for IDX in 2 3 4; do
  145.                         RSCPval=$(echo $RSRPlist | cut -d, -f$IDX)
  146.                         if [ -n "$RSCPval" -a "$RSCPval" != "-256.0" ]; then
  147.                             RSCP="$RSCP dBm, $RSCPval"
  148.                         fi
  149.                     done
  150.                 fi
  151.                 CHANNEL=$(echo $O | grep -o " EARFCN(DL/UL): [0-9]\+" | grep -o "[0-9]\+")
  152.                 BWD=$(echo $O | grep -o " BW: [0-9\.]\+ MHZ" | grep -o "[0-9\.]\+")
  153.                 if [ "$BWD" != "1.4" ]; then
  154.                     BWD=${BWD/.*}
  155.                 fi
  156.                 LBAND=$LBAND" (Bandwidth $BWD MHz)"
  157.                 PCI=$(echo $OX | grep -o " ENB ID(PCI): [^(]\+([0-9]\{1,3\})" | grep -o "([0-9]\+)" | grep -o "[0-9]\+")
  158.             fi
  159.             if [ -n "$DEBUGv2" ]; then
  160.                 RSCP=$(echo $O | grep -o "RSRP: [^D]\+D" | grep -o "[-0-9\.]\+")
  161.                 CHANNEL=$(echo $O | grep -o " DL CHANNEL: [0-9]\+" | grep -o "[0-9]\+")
  162.                 PCI=$(echo $OX | grep -o " PCI: [0-9]\{1,3\}" | grep -o "[0-9]\+")
  163.             fi
  164.             SCC=$(echo $OX | grep -o " SCELL[1-9]:")
  165.             if [ -n "$SCC" ]; then
  166.                 SCCn=$(echo $SCC | grep -o [0-9])
  167.                 for SCCx in $(echo "$SCCn"); do
  168.                     SCCv=$(echo $OX | grep -o "SCELL$SCCx: $REGXca" | tr ' ' ',')
  169.                     if [ -n "$SCCv" ]; then
  170.                         SLBV=B$(echo $SCCv | cut -d, -f2 | grep -o "[0-9]\{1,3\}")
  171.                         SBWV=$(echo $SCCv | cut -d, -f3 | grep -o "[0-9][^M]\+")
  172.                         if [ "$SBWV" != "1.4" ]; then
  173.                             SBWV=${SBWV%.*}
  174.                         fi
  175.                         LBAND=$LBAND"<br />"$SLBV" (CA, Bandwidth "$SBWV" MHz)"
  176.                         CHANNEL=$CHANNEL", "$(echo $SCCv | cut -d, -f4 | grep -o "[0-9]\+")
  177.                         PCI=$PCI", "$(echo $SCCv | cut -d, -f5 | grep -o "[0-9]\+")
  178.                         RSCP=$RSCP" dBm, "$(echo $SCCv | cut -d, -f6 | grep -o "[-0-9.]\+")
  179.                         ECIO=$ECIO" dB, "$(echo $SCCv | cut -d, -f7 | grep -o "[-0-9.]\+")
  180.                         CSQ_RSSI=$CSQ_RSSI", "$(echo $SCCv | cut -d, -f8 | grep -o "[-0-9.]\+")" dBm"
  181.                     SINR=$SINR", "$(echo $SCCv | cut -d, -f9 | grep -o "[-0-9.]\+")
  182.                     fi
  183.                 done
  184.             else
  185.                 SCC=$(echo $O | grep -o " SCC[1-9][^M]\+MHZ")
  186.                 if [ -n "$SCC" ]; then
  187.                     printf '%s\n' "$SCC" | while read SCCX; do
  188.                         SCCX=$(echo $SCCX | tr " " ",")
  189.                         SLBV=$(echo $SCCX | cut -d, -f5 | grep -o "B[0-9]\{1,3\}")
  190.                         SBWV=$(echo $SCCX | cut -d, -f9)
  191.                         if [ "$SBWV" != "1.4" ]; then
  192.                             SBWV=${SBWV/.*}
  193.                         fi
  194.                         LBAND=$LBAND"<br />"$SLBV" (CA, Bandwidth "$SBWV" MHz)"
  195.                         echo "$LBAND" > /tmp/lbandvar$CURRMODEM
  196.                     done
  197.                     if [ -e /tmp/lbandvar$CURRMODEM ]; then
  198.                         read LBAND < /tmp/lbandvar$CURRMODEM
  199.                         rm /tmp/lbandvar$CURRMODEM
  200.                     fi
  201.                 fi
  202.             fi
  203.             ;;
  204.         "2")
  205.             MODE="WCDMA"
  206.             DEBUGv1=$(echo $O | grep -o "RAT:WCDMA")
  207.             if [ -n "$DEBUGv1" ]; then
  208.                 RSCP=$(echo $O | grep -o "RSCP:[^)]\+" | grep -o "[-0-9\.]\+DBM," | grep -o "[^DBM,]\+")
  209.                 ECIO=$(echo $O | grep -o " ECIO:[^D]\+D" | grep -o "[-0-9\.]\+")
  210.                 ECIO=$(echo $ECIO)
  211.                 CHANNEL=$(echo $O | grep -o " CHANNEL (DL): [0-9]\+" | grep -o "[0-9]\+")
  212.                 LBAND="B"$(echo $O | grep -o " BAND: [0-9]\+" | grep -o "[0-9]\+")
  213.                 BW=$(echo $O | grep -o " BW: [0-9\.]\+ MHZ" | grep -o "[0-9\.]\+")
  214.                 BW=$(printf "%.0f" $BW )
  215.                 LBAND=$LBAND" (Bandwidth $BW MHz)"
  216.                 PCI=$(echo $OX | grep -o "PSC:.\?[0-9]\{1,3\}" | grep -o "[0-9]\+")
  217.             else
  218.                 QCSQ=$(echo $O | grep -o "\$QCSQ: -[0-9]\{2,3\},[-0-9]\{1,3\},[-0-9]\{1,3\},")
  219.                 if [ -n "$QCSQ" ]; then
  220.                     RSCP=$(echo $QCSQ | cut -d, -f1 | grep -o "[-0-9]*")
  221.                     ECIO=$(echo $QCSQ | cut -d, -f2)
  222.                 fi
  223.             fi
  224.             ;;
  225.         *)
  226.             MODE="GSM"
  227.             ;;
  228.     esac
  229. fi
  230. SCFG=$(echo $OX | grep -o "\^SYSCONFIG: [0-9]\{1,2\}" | grep -o "[0-9]\{1,2\}")
  231. if [ -n "$SCFG" ]; then
  232.     case $SCFG in
  233.     "13" )
  234.         NETMODE="3" ;;
  235.     "14" )
  236.         NETMODE="5" ;;
  237.     "17" )
  238.         NETMODE="7" ;;
  239.     * )
  240.         NETMODE="1" ;;
  241.     esac
  242. fi
  243. MODTYPE="8"
  244.  
  245. {
  246.     echo 'CSQ="'"$CSQ"'"'
  247.     echo 'CSQ_PER="'"$CSQ_PER"'"'
  248.     echo 'CSQ_RSSI="'"$CSQ_RSSI"'"'
  249.     echo 'ECIO="'"$ECIO"'"'
  250.     echo 'RSCP="'"$RSCP"'"'
  251.     echo 'ECIO1="'"$ECIO1"'"'
  252.     echo 'RSCP1="'"$RSCP1"'"'
  253.     echo 'MODE="'"$MODE"'"'
  254.     echo 'MODTYPE="'"$MODTYPE"'"'
  255.     echo 'NETMODE="'"$NETMODE"'"'
  256.     echo 'CHANNEL="'"$CHANNEL"'"'
  257.     echo 'LBAND="'"$LBAND"'"'
  258.     echo 'PCI="'"$PCI"'"'
  259.     echo 'TEMP="'"$TEMP"'"'
  260.     echo 'SINR="'"$SINR dB"'"'
  261. } > /tmp/signal$CURRMODEM.file
  262. CONNECT=$(uci -q get modem.modem$CURRMODEM.connected)
  263. if [ "$CONNECT" == 0 ]; then
  264.     exit 0
  265. fi
  266.  
  267. if [ "$CSQ" = "-" ]; then
  268.     log "$OX"
  269. fi
  270.  
  271. WWANX=$(uci -q get modem.modem$CURRMODEM.interface)
  272. OPER=$(cat /sys/class/net/$WWANX/operstate 2>/dev/null)
  273. rm -f "/tmp/connstat"$CURRMODEM
  274.  
  275. if [ ! $OPER ]; then
  276.     exit 0
  277. fi
  278. if echo $OPER | grep -q "unknown"; then
  279.     exit 0
  280. fi
  281.  
  282. if echo $OPER | grep -q "down"; then
  283.     echo "1" > "/tmp/connstat"$CURRMODEM
  284. fi
  285.  
  286.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement