snowgum

t77data.sh

Apr 11th, 2021 (edited)
152
83 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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.  
  14. OX=$(echo $OX | tr 'a-z' 'A-Z')
  15. O=$($ROOTER/common/processat.sh "$OX")
  16. O=$(echo $O)
  17.  
  18. REGXca="BAND:[0-9]\{1,3\} BW:[0-9.]\+MHZ EARFCN:[0-9]\+ PCI:[0-9]\+ RSRP:[^R]\+RSRQ:[^R]\+RSSI:[^S]\+SNR[^D]\+"
  19.  
  20. RSRP=""
  21. RSRQ=""
  22. CHANNEL="-"
  23. ECIO="-"
  24. RSCP="-"
  25. ECIO1=" "
  26. RSCP1=" "
  27. MODE="-"
  28. MODTYPE="-"
  29. NETMODE="-"
  30. LBAND="-"
  31. PCI="-"
  32. SINR="-"
  33.  
  34. CSQ=$(echo $OX | grep -o "+CSQ: [0-9]\{1,2\}" | grep -o "[0-9]\{1,2\}")
  35. if [ "$CSQ" = "99" ]; then
  36.     CSQ=""
  37. fi
  38. if [ -n "$CSQ" ]; then
  39.     CSQ_PER=$(($CSQ * 100/31))"%"
  40.     CSQ_RSSI=$((2 * CSQ - 113))" dBm"
  41. else
  42.     CSQ="-"
  43.     CSQ_PER="-"
  44.     CSQ_RSSI="-"
  45. fi
  46.  
  47. TEMP=$(echo $OX | grep -o "TSENS_TZ_SENSOR[0-9]:[0-9]\{1,3\}")
  48. if [ -n "$TEMP" ]; then
  49.     TEMP=${TEMP:17:3}
  50. fi
  51. if [ -z "$TEMP" ]; then
  52.     TEMP=$(echo $OX | grep -o "XO_THERM_BUF:[0-9]\{1,3\}")
  53.     if [ -n "$TEMP" ]; then
  54.         TEMP=${TEMP:13:3}
  55.     fi
  56. fi
  57. if [ -z "$TEMP" ]; then
  58.     TEMP=$(echo $OX | grep -o "TSENS: [0-9]\{1,3\}C")
  59. fi
  60. if [ -n "$TEMP" ]; then
  61.     TEMP=$(echo $TEMP | grep -o "[0-9]\{1,3\}")$(printf "\xc2\xb0")"C"
  62. else
  63.     TEMP="-"
  64. fi
  65. TECH=$(echo $O" " | grep -o "+COPS: .,.,[^,]\+,[027]")
  66. TECH="${TECH: -1}"
  67.  
  68. if [ -n "$TECH" ]; then
  69.     RSSI=$(echo $O | grep -o " RSSI: [^D]\+D" | grep -o "[-0-9\.]\+")
  70.     if [ -n "$RSSI" ]; then
  71.         CSQ_RSSI=$(echo $RSSI)" dBm"
  72.     fi
  73.     case $TECH in
  74.         "7")
  75.             MODE="LTE"
  76.             ECIO=$(echo $O | grep -o " RSRQ: [^D]\+D" | grep -o "[-0-9\.]\+")
  77.             SINR=$(echo $OX | grep -o "RS-S[I]*NR: [^D]\+D")
  78.             SINR=${SINR:8}
  79.             SINR=$(echo "$SINR" | grep -o "[-0-9.]\{1,3\}")" dB"
  80.             LBAND="B"$(echo $O | grep -o " BAND: [0-9]\+" | grep -o "[0-9]\+")
  81.             DEBUGv1=$(echo $O | grep -o "EARFCN(DL/UL):")
  82.             DEBUGv2=$(echo $O | grep -o "LTE ENGINEERING")
  83.             if [ -n "$DEBUGv1" ]; then
  84.                 RSCP=$(echo $O | grep -o "[^G] RSRP: [^D]\+D" | grep -o "[-0-9\.]\+")
  85.                 CHANNEL=$(echo $O | grep -o " EARFCN(DL/UL): [0-9]\+" | grep -o "[0-9]\+")
  86.                 BWD=$(echo $O | grep -o " BW: [0-9\.]\+ MHZ" | grep -o "[0-9\.]\+")
  87.                 if [ "$BWD" != "1.4" ]; then
  88.                     BWD=${BWD/.*}
  89.                 fi
  90.                 LBAND=$LBAND" (Bandwidth $BWD MHz)"
  91.                 PCI=$(echo $OX | grep -o " ENB ID(PCI): [^(]\+([0-9]\{1,3\})" | grep -o "([0-9]\+)" | grep -o "[0-9]\+")
  92.             fi
  93.             if [ -n "$DEBUGv2" ]; then
  94.                 RSCP=$(echo $O | grep -o "RSRP: [^D]\+D" | grep -o "[-0-9\.]\+")
  95.                 CHANNEL=$(echo $O | grep -o " DL CHANNEL: [0-9]\+" | grep -o "[0-9]\+")
  96.                 PCI=$(echo $OX | grep -o " PCI: [0-9]\{1,3\}" | grep -o "[0-9]\+")
  97.             fi
  98.             SCC=$(echo $OX | grep -o " SCELL[1-9]:")
  99.             if [ -n "$SCC" ]; then
  100.                 SCCn=$(echo $SCC | grep -o [0-9])
  101.                 for SCCx in $(echo "$SCCn"); do
  102.                     SCCv=$(echo $OX | grep -o "SCELL$SCCx: $REGXca" | tr ' ' ',')
  103.                     if [ -n "$SCCv" ]; then
  104.                         SLBV=B$(echo $SCCv | cut -d, -f2 | grep -o "[0-9]\{1,3\}")
  105.                         SBWV=$(echo $SCCv | cut -d, -f3 | grep -o "[0-9][^M]\+")
  106.                         if [ "$SBWV" != "1.4" ]; then
  107.                             SBWV=${SBWV%.*}
  108.                         fi
  109.                         LBAND=$LBAND"<br />"$SLBV" (CA, Bandwidth "$SBWV" MHz)"
  110.                         CHANNEL=$CHANNEL", "$(echo $SCCv | cut -d, -f4 | grep -o "[0-9]\+")
  111.                         PCI=$PCI", "$(echo $SCCv | cut -d, -f5 | grep -o "[0-9]\+")
  112.                         RSCP=$RSCP" dBm, "$(echo $SCCv | cut -d, -f6 | grep -o "[-0-9.]\+")
  113.                         ECIO=$ECIO" dB, "$(echo $SCCv | cut -d, -f7 | grep -o "[-0-9.]\+")
  114.                         CSQ_RSSI=$CSQ_RSSI", "$(echo $SCCv | cut -d, -f8 | grep -o "[-0-9.]\+")" dBm"
  115.                         SINR=$SINR", "$(echo $SCCv | cut -d, -f9 | grep -o "[-0-9.]\+")" dB"
  116.                     fi
  117.                 done
  118.             else
  119.                 SCC=$(echo $O | grep -o " SCC[1-9][^M]\+MHZ")
  120.                 if [ -n "$SCC" ]; then
  121.                     printf '%s\n' "$SCC" | while read SCCX; do
  122.                         SCCX=$(echo $SCCX | tr " " ",")
  123.                         SLBV=$(echo $SCCX | cut -d, -f5 | grep -o "B[0-9]\{1,3\}")
  124.                         SBWV=$(echo $SCCX | cut -d, -f9)
  125.                         if [ "$SBWV" != "1.4" ]; then
  126.                             SBWV=${SBWV/.*}
  127.                         fi
  128.                         LBAND=$LBAND"<br />"$SLBV" (CA, Bandwidth "$SBWV" MHz)"
  129.                         echo "$LBAND" > /tmp/lbandvar$CURRMODEM
  130.                     done
  131.                     if [ -e /tmp/lbandvar$CURRMODEM ]; then
  132.                         read LBAND < /tmp/lbandvar$CURRMODEM
  133.                         rm /tmp/lbandvar$CURRMODEM
  134.                     fi
  135.                 fi
  136.             fi
  137.             ;;
  138.         "2")
  139.             MODE="WCDMA"
  140.             DEBUGv1=$(echo $O | grep -o "RAT:WCDMA")
  141.             if [ -n "$DEBUGv1" ]; then
  142.                 RSCP=$(echo $O | grep -o "RSCP:[^)]\+" | grep -o "[-0-9\.]\+DBM," | grep -o "[^DBM,]\+")
  143.                 ECIO=$(echo $O | grep -o " ECIO:[^D]\+D" | grep -o "[-0-9\.]\+")
  144.                 ECIO=$(echo $ECIO)
  145.                 CHANNEL=$(echo $O | grep -o " CHANNEL (DL): [0-9]\+" | grep -o "[0-9]\+")
  146.                 LBAND="B"$(echo $O | grep -o " BAND: [0-9]\+" | grep -o "[0-9]\+")
  147.                 BW=$(echo $O | grep -o " BW: [0-9\.]\+ MHZ" | grep -o "[0-9\.]\+")
  148.                 BW=$(printf "%.0f" $BW )
  149.                 LBAND=$LBAND" (Bandwidth $BW MHz)"
  150.                 PCI=$(echo $OX | grep -o "PSC:.\?[0-9]\{1,3\}" | grep -o "[0-9]\+")
  151.             else
  152.                 QCSQ=$(echo $O | grep -o "\$QCSQ: -[0-9]\{2,3\},[-0-9]\{1,3\},[-0-9]\{1,3\},")
  153.                 if [ -n "$QCSQ" ]; then
  154.                     RSCP=$(echo $QCSQ | cut -d, -f1 | grep -o "[-0-9]*")
  155.                     ECIO=$(echo $QCSQ | cut -d, -f2)
  156.                 fi
  157.             fi
  158.             ;;
  159.         *)
  160.             MODE="GSM"
  161.             ;;
  162.     esac
  163. fi
  164.  
  165. SCFG=$(echo $OX | grep -o "\^SYSCONFIG: [0-9]\{1,2\}" | grep -o "[0-9]\{1,2\}")
  166. if [ -n "$SCFG" ]; then
  167.     case $SCFG in
  168.     "13" )
  169.         NETMODE="3" ;;
  170.     "14" )
  171.         NETMODE="5" ;;
  172.     "17" )
  173.         NETMODE="7" ;;
  174.     * )
  175.         NETMODE="1" ;;
  176.     esac
  177. fi
  178.  
  179. MODTYPE="8"
  180.  
  181. {
  182.     echo 'CSQ="'"$CSQ"'"'
  183.     echo 'CSQ_PER="'"$CSQ_PER"'"'
  184.     echo 'CSQ_RSSI="'"$CSQ_RSSI"'"'
  185.     echo 'ECIO="'"$ECIO"'"'
  186.     echo 'RSCP="'"$RSCP"'"'
  187.     echo 'ECIO1="'"$ECIO1"'"'
  188.     echo 'RSCP1="'"$RSCP1"'"'
  189.     echo 'MODE="'"$MODE"'"'
  190.     echo 'MODTYPE="'"$MODTYPE"'"'
  191.     echo 'NETMODE="'"$NETMODE"'"'
  192.     echo 'CHANNEL="'"$CHANNEL"'"'
  193.     echo 'LBAND="'"$LBAND"'"'
  194.     echo 'PCI="'"$PCI"'"'
  195.     echo 'TEMP="'"$TEMP"'"'
  196.     echo 'SINR="'"$SINR"'"'
  197. } > /tmp/signal$CURRMODEM.file
  198.  
  199. CONNECT=$(uci get modem.modem$CURRMODEM.connected)
  200. if [ $CONNECT -eq 0 ]; then
  201.     exit 0
  202. fi
  203.  
  204. if [ "$CSQ" = "-" ]; then
  205.     log "$OX"
  206. fi
  207.  
  208. WWANX=$(uci get modem.modem$CURRMODEM.interface)
  209. OPER=$(cat /sys/class/net/$WWANX/operstate 2>/dev/null)
  210.  
  211. if [ ! $OPER ]; then
  212.     exit 0
  213. fi
  214. if echo $OPER | grep -q "unknown"; then
  215.     exit 0
  216. fi
  217.  
  218. if echo $OPER | grep -q "down"; then
  219.     echo "1" > "/tmp/connstat"$CURRMODEM
  220. fi
  221.  
RAW Paste Data