Aktualizacja skryptów v2.3 - dodane poprawki dla sieci LTE
Zawartość skryptu /bin/hilink dla zainteresowanych
#!/bin/sh
CLF='/mnt/btsearch.clf'
# odczyt danych z modemu HILINK bez trybu modemu
wget -t 25 -O /tmp/E3372-status http://192.168.8.1/api/monitoring/status > /dev/null 2>&1
wget -t 25 -O /tmp/E3372-plmn http://192.168.8.1/api/net/current-plmn > /dev/null 2>&1
wget -t 25 -O /tmp/E3372-signal-para http://192.168.8.1/api/net/signal-para > /dev/null 2>&1
wget -t 25 -O /tmp/E3372-signal http://192.168.8.1/api/device/signal > /dev/null 2>&1
wget -t 25 -O /tmp/E3372-trafic http://192.168.8.1/api/monitoring/traffic-statistics > /dev/null 2>&1
wget -t 25 -O /tmp/E3372-token http://192.168.8.1/api/webserver/token > /dev/null 2>&1
token=`cat /tmp/E3372-token | grep token | cut -d '<' -f 2 | cut -d '>' -f 2`
wget -t 25 -O /tmp/E3372-information "http://192.168.8.1/api/device/information" --header "__RequestVerificationToken: $token" > /dev/null 2>&1
wget -t 25 -O /tmp/E3372-dhcp http://192.168.8.1/api/dhcp/settings > /dev/null 2>&1
# szukanie danych w pliku z danymi typu HTML
Status_Polaczenia=`cat /tmp/E3372-status | grep ConnectionStatus | cut -d '<' -f 2 | cut -d '>' -f 2`
RoamingStatus=`cat /tmp/E3372-status | grep RoamingStatus | cut -d '<' -f 2 | cut -d '>' -f 2`
RSSI=`cat /tmp/E3372-signal | grep rssi | cut -d '<' -f 2 | cut -d '>' -f 2`
RSCP=`cat /tmp/E3372-signal | grep rscp | cut -d '<' -f 2 | cut -d '>' -f 2`
RSRP=`cat /tmp/E3372-signal | grep rsrp | cut -d '<' -f 2 | cut -d '>' -f 2`
RSRQ=`cat /tmp/E3372-signal | grep rsrq | cut -d '<' -f 2 | cut -d '>' -f 2 | cut -d 'd' -f 1`
ECIO=`cat /tmp/E3372-signal-para | grep Ecio | cut -d '<' -f 2 | cut -d '>' -f 2`
SC=`cat /tmp/E3372-signal | grep '<sc' | cut -d '<' -f 2 | cut -d '>' -f 2`
LAC=`cat /tmp/E3372-signal-para | grep Lac | cut -d '<' -f 2 | cut -d '>' -f 2`
LCID=`cat /tmp/E3372-signal-para | grep CellID | cut -d '<' -f 2 | cut -d '>' -f 2`
CID=`cat /tmp/E3372-signal-para | grep CellID | cut -d '<' -f 2 | cut -d '>' -f 2 | cut -c 5-8`
Typ_Sieci=`cat /tmp/E3372-status | grep CurrentNetworkTypeEx | cut -d '<' -f 2 | cut -d '>' -f 2`
Adres_IP=`cat /tmp/E3372-status | grep WanIPAddress | cut -d '<' -f 2 | cut -d '>' -f 2`
DNS_Primary=`cat /tmp/E3372-status | grep PrimaryDns | cut -d '<' -f 2 | cut -d '>' -f 2`
DNS_Secendary=`cat /tmp/E3372-status | grep SecondaryDns | cut -d '<' -f 2 | cut -d '>' -f 2`
Nazwa_Sieci=`cat /tmp/E3372-plmn | grep FullName | cut -d '<' -f 2 | cut -d '>' -f 2`
ID_Sieci=`cat /tmp/E3372-plmn | grep Numeric | cut -d '<' -f 2 | cut -d '>' -f 2`
Rat=`cat /tmp/E3372-plmn | grep Rat | cut -d '<' -f 2 | cut -d '>' -f 2`
Czas_Polaczenia=`cat /tmp/E3372-trafic | grep CurrentConnectTime | cut -d '<' -f 2 | cut -d '>' -f 2`
Czas_Calkowity=`cat /tmp/E3372-trafic | grep TotalConnectTime | cut -d '<' -f 2 | cut -d '>' -f 2`
CurrentDownload=`cat /tmp/E3372-trafic | grep 'CurrentDownload>' | cut -d '<' -f 2 | cut -d '>' -f 2`
CurrentUpload=`cat /tmp/E3372-trafic | grep 'CurrentUpload>' | cut -d '<' -f 2 | cut -d '>' -f 2`
CurrentDownloadRate=`cat /tmp/E3372-trafic | grep CurrentDownloadRate | cut -d '<' -f 2 | cut -d '>' -f 2`
CurrentUploadRate=`cat /tmp/E3372-trafic | grep CurrentUploadRate | cut -d '<' -f 2 | cut -d '>' -f 2`
TotalUpload=`cat /tmp/E3372-trafic | grep TotalUpload | cut -d '<' -f 2 | cut -d '>' -f 2`
TotalDownload=`cat /tmp/E3372-trafic | grep TotalDownload | cut -d '<' -f 2 | cut -d '>' -f 2`
DhcpIPAddress=`cat /tmp/E3372-dhcp | grep DhcpIPAddress | cut -d '<' -f 2 | cut -d '>' -f 2`
DhcpLanNetmask=`cat /tmp/E3372-dhcp | grep DhcpLanNetmask | cut -d '<' -f 2 | cut -d '>' -f 2`
# szukanie danych o modemie
DeviceName=`cat /tmp/E3372-information | grep DeviceName | cut -d '<' -f 2 | cut -d '>' -f 2`
Classify=`cat /tmp/E3372-information | grep Classify | cut -d '<' -f 2 | cut -d '>' -f 2`
ProductFamily=`cat /tmp/E3372-information | grep ProductFamily | cut -d '<' -f 2 | cut -d '>' -f 2`
SerialNumber=`cat /tmp/E3372-information | grep SerialNumber | cut -d '<' -f 2 | cut -d '>' -f 2`
Imei=`cat /tmp/E3372-information | grep Imei | cut -d '<' -f 2 | cut -d '>' -f 2`
Imsi=`cat /tmp/E3372-information | grep Imsi | cut -d '<' -f 2 | cut -d '>' -f 2`
Iccid=`cat /tmp/E3372-information | grep Iccid | cut -d '<' -f 2 | cut -d '>' -f 2`
HardwareVersion=`cat /tmp/E3372-information | grep HardwareVersion | cut -d '<' -f 2 | cut -d '>' -f 2`
SoftwareVersion=`cat /tmp/E3372-information | grep SoftwareVersion | cut -d '<' -f 2 | cut -d '>' -f 2`
WebUIVersion=`cat /tmp/E3372-information | grep WebUIVersion | cut -d '<' -f 2 | cut -d '>' -f 2`
MacAddress1=`cat /tmp/E3372-information | grep MacAddress1 | cut -d '<' -f 2 | cut -d '>' -f 2`
supportmode=`cat /tmp/E3372-information | grep supportmode | cut -d '<' -f 2 | cut -d '>' -f 2`
workmode=`cat /tmp/E3372-information | grep workmode | cut -d '<' -f 2 | cut -d '>' -f 2`
DATE=`date "+%F %H:%M:%S"`
CSQ=$((ECIO+29))
# Sprawdzenie CSQ dla 4G/LTE
if [ $CSQ -lt 0 ]
then CSQ=$((RSRQ+29))
fi
# Sprawdzanie stanu polaczanienia
if [ $Status_Polaczenia = 900 ]
then
Polaczenie="Laczenie"
elif [ $Status_Polaczenia = 901 ]
then
Polaczenie="Polaczony"
elif [ $Status_Polaczenia = 902 ]
then
Polaczenie="Rozlaczony"
elif [ $Status_Polaczenia = 903 ]
then
Polaczenie="Rozlaczanie"
elif [ $Status_Polaczenia = 25 -o 26 ]
then
Polaczenie="BLAD LACZENIA"
else
Polaczenie="Brak danych"
fi
# Sprawdzanie typu sieci
if [ $Typ_Sieci = 0 ]
then Siec="brak uslugi"
elif [ $Typ_Sieci = 1 ]
then Siec="GSM"
elif [ $Typ_Sieci = 2 ]
then Siec="GPRS"
elif [ $Typ_Sieci = 3 ]
then Siec="EDGE"
elif [ $Typ_Sieci = 4 ]
then Siec="WCDMA"
elif [ $Typ_Sieci = 5 ]
then Siec="HSDPA"
elif [ $Typ_Sieci = 6 ]
then Siec="HSUPA"
elif [ $Typ_Sieci = 7 ]
then Siec="HSPA"
elif [ $Typ_Sieci = 8 ]
then Siec="TDSCDMA"
elif [ $Typ_Sieci = 9 ]
then Siec="HSPA+"
elif [ $Typ_Sieci = 10 ]
then Siec="EVDO rev. 0"
elif [ $Typ_Sieci = 11 ]
then Siec="EVDO rev. A"
elif [ $Typ_Sieci = 12 ]
then Siec="EVDO rev. B"
elif [ $Typ_Sieci = 13 ]
then Siec="1xRTT"
elif [ $Typ_Sieci = 14 ]
then Siec="UMB"
elif [ $Typ_Sieci = 15 ]
then Siec="1xEVDV"
elif [ $Typ_Sieci = 16 ]
then Siec="3xRTT"
elif [ $Typ_Sieci = 17 ]
then Siec="HSPA+64QAM"
elif [ $Typ_Sieci = 18 ]
then Siec="HSPA+MIMO"
elif [ $Typ_Sieci = 19 ]
then Siec="LTE"
elif [ $Typ_Sieci = 21 ]
then Siec="IS95A"
elif [ $Typ_Sieci = 22 ]
then Siec="IS95B"
elif [ $Typ_Sieci = 23 ]
then Siec="CDMA1x"
elif [ $Typ_Sieci = 24 ]
then Siec="EVDO rev. 0"
elif [ $Typ_Sieci = 25 ]
then Siec="EVDO rev. A"
elif [ $Typ_Sieci = 26 ]
then Siec="EVDO rev. B"
elif [ $Typ_Sieci = 27 ]
then Siec="Hybrydowa CDMA1x"
elif [ $Typ_Sieci = 28 ]
then Siec="Hybrydowa EVDO rev. 0"
elif [ $Typ_Sieci = 29 ]
then Siec="Hybrydowa EVDO rev. A"
elif [ $Typ_Sieci = 30 ]
then Siec="Hybrydowa EVDO rev. B"
elif [ $Typ_Sieci = 31 ]
then Siec="EHRPD rev. 0"
elif [ $Typ_Sieci = 32 ]
then Siec="EHRPD rev. A"
elif [ $Typ_Sieci = 33 ]
then Siec="EHRPD rev. B"
elif [ $Typ_Sieci = 34 ]
then Siec="Hybrydowa EHRPD rev. 0"
elif [ $Typ_Sieci = 35 ]
then Siec="Hybrydowa EHRPD rev. A"
elif [ $Typ_Sieci = 36 ]
then Siec="Hybrydowa EHRPD rev. B"
elif [ $Typ_Sieci = 41 ]
then Siec="WCDMA (UMTS)"
elif [ $Typ_Sieci = 42 ]
then Siec="HSDPA"
elif [ $Typ_Sieci = 43 ]
then Siec="HSUPA"
elif [ $Typ_Sieci = 44 ]
then Siec="HSPA"
elif [ $Typ_Sieci = 45 ]
then Siec="HSPA+"
elif [ $Typ_Sieci = 46 ]
then Siec="DC-HSPA+"
elif [ $Typ_Sieci = 61 ]
then Siec="TD SCDMA"
elif [ $Typ_Sieci = 62 ]
then Siec="TD HSDPA"
elif [ $Typ_Sieci = 63 ]
then Siec="TD HSUPA"
elif [ $Typ_Sieci = 64 ]
then Siec="TD HSPA"
elif [ $Typ_Sieci = 65 ]
then Siec="TD HSPA+"
elif [ $Typ_Sieci = 81 ]
then Siec="802.16E"
elif [ $Typ_Sieci = 101 ]
then Siec="LTE"
else Siec="BRAK DANYCH"
fi
# sprawdzenie 'Rat' sieci
if [ $Rat = 0 ]
then
RatSiec="2G"
elif [ $Rat = 2 ]
then
RatSiec="3G"
elif [ $Rat = 5 ]
then
RatSiec="3G+"
elif [ $Rat = 7 ]
then
RatSiec="4G"
else
RatSiec="BRAK DANYCH"
fi
# sprawdzanie nazwy sieci
# if [ $Nazwa_Sieci = "PLAY" ]
# then
# Nazwa_Sieci="PLUS ROAMING"
# else
# Nazwa_Sieci=$Nazwa_Sieci
# fi
# Liczenie czasu polaczenia
if [ $Czas_Polaczenia -ge 3600 ]
then
Czas_PH=$((Czas_Polaczenia/3600));
Czas_PM=$(((Czas_Polaczenia-$Czas_PH*3600)/60));
Czas_PS=$((Czas_Polaczenia-($Czas_PH*3600)-(Czas_PM*60)))
elif [ $Czas_Polaczenia -ge 600 ]
then
Czas_PH="00"
Czas_PM=$((Czas_Polaczenia/60));
Czas_PS=$((Czas_Polaczenia-$Czas_PM*60));
elif [ $Czas_Polaczenia -ge 60 ]
then
Czas_PH="00"
Czas_PM=$((Czas_Polaczenia/60))
Czas_PS=$((Czas_Polaczenia-$Czas_PM*60))
else
Czas_PH="00"
Czas_PM=$((Czas_Polaczenia/60))
Czas_PS=$((Czas_Polaczenia-$Czas_PM*60))
fi
# porzadkowanie formatu czasu godzin, minut, sekund
if [ $Czas_PS -lt 1 ]
then
Czas_PS="00"
elif [ $Czas_PS -lt 10 ]
then
Czas_PS="0"$Czas_PS
fi
if [ $Czas_PM -lt 1 ]
then
Czas_PM="00"
elif [ $Czas_PM -lt 10 ]
then
Czas_PM="0"$Czas_PM
fi
if [ $Czas_PH -lt 1 ]
then
Czas_PH="00"
elif [ $Czas_PH -lt 10 ]
then
Czas_PH="0"$Czas_PH
fi
# Liczenie czasu calkowitego polaczenia
if [ $Czas_Calkowity -ge 3600 ]
then
Czas_CH=$((Czas_Calkowity/3600))
Czas_CM=$(((Czas_Calkowity-$Czas_CH*3600)/60))
Czas_CS=$((Czas_Calkowity-($Czas_CH*3600)-(Czas_CM*60)))
elif [ $Czas_Calkowity -ge 600 ]
then
Czas_CH="00"
Czas_CM=$((Czas_Calkowity/60))
Czas_CS=$((Czas_Calkowity-$Czas_CM*60))
elif [ $Czas_Calkowity -ge 60 ]
then
Czas_CH="00"
Czas_CM=$((Czas_Calkowity/60))
Czas_CS=$((Czas_Calkowity-$Czas_CM*60))
else
Czas_PH="00"
Czas_PM=$((Czas_Polaczenia/60))
Czas_PS=$((Czas_Polaczenia-$Czas_PM*60))
fi
# porzadkowanie formatu czasu godzin, minut, sekund
if [ $Czas_CS -lt 1 ]
then
Czas_CS="00"
elif [ $Czas_CS -lt 10 ]
then
Czas_CS="0"$Czas_CS
fi
if [ $Czas_CM -lt 1 ]
then
Czas_CM="00"
elif [ $Czas_CM -lt 10 ]
then
Czas_CM="0"$Czas_CM
fi
if [ $Czas_CH -lt 1 ]
then
Czas_CH=" 00"
elif [ $Czas_CH -lt 10 ]
then
Czas_CH=" 0"$Czas_CH
elif [ $Czas_CH -lt 100 ]
then
Czas_CH=$Czas_CH
fi
# konwersja hex na dec
LACd=$((0x$LAC))
LCIDd=$((0x$LCID))
CIDd=$((0x$CID))
CSQp=$(($CSQ*100/31))
# BTS Info
if [ -e "$CLF" ]; then
PAT="$ID_Sieci;$CIDd;$LACd;"
BTSINFOPOS="$(cat "$CLF" | awk -F";" '/'$PAT'/ {printf $5","$6" - "$8}')"
fi
# przygotowanie wysietlenia danych o polaczeniu GSM
(echo "===========================================")
(echo " $DATE")
(echo "-------------------------------------------")
(echo " MODEM HUAWEI $DeviceName $Classify $ProductFamily ")
(echo "-------------------------------------------")
(echo "SN : $SerialNumber")
(echo "IMEI : $Imei")
(echo "IMSI : $Imsi")
(echo "ICCID : $Iccid")
(echo "Wersja Hardware : $HardwareVersion")
(echo "Wersja Software : $SoftwareVersion")
(echo "Wersja WebUI : $WebUIVersion")
(echo "Mac Address : $MacAddress1")
(echo "Obslugiwane sieci : $supportmode")
(echo "Aktualna siec : $workmode")
(echo "-------------------------------------------")
(echo "Stan lacza z BTS : $Polaczenie")
(echo "Nazwa sieci : $Nazwa_Sieci")
(echo "ID sieci : $ID_Sieci")
(echo "Siec operatora : $RatSiec")
(echo "Roaming : $RoamingStatus")
(echo "Sila sygnalu RSSI : $RSSI")
(echo "Sila sygnalu RSRP : $RSRP")
(echo "Sila sygnalu RSRQ : $RSRQ dB")
(echo "Sila sygnalu RSCP : $RSCP")
(echo "Ec/Io : $ECIO dBm")
(echo "CSQ : $CSQ ($CSQp %)")
(echo "SC : $SC")
(echo "LAC : $LACd")
(echo "LCID (CID) : $LCIDd ($CIDd)")
(echo "Czas polaczenia : $Czas_PH:$Czas_PM:$Czas_PS")
(echo "Czas calkowity : $Czas_CH:$Czas_CM:$Czas_CS")
(echo "Typ sieci : $Siec")
(echo "Adres IP LAN : $DhcpIPAddress")
(echo "Maska LAN : $DhcpLanNetmask")
(echo "Adres IP WAN : $Adres_IP")
(echo "DNS podstawowy : $DNS_Primary")
(echo "DNS rezerwowy : $DNS_Secendary")
(echo "Pobrano w sesji : $(($CurrentDownload/1048576)) MB")
(echo "Wyslano w sesji : $(($CurrentUpload/1048576)) MB")
(echo "Total pobrano : $(($TotalDownload/1048576)) MB")
(echo "Total wyslano : $(($TotalUpload/1048576)) MB")
(echo "Predkosc Download : $(($CurrentDownloadRate/1000)) kbit/s")
(echo "Predkosc Upload : $(($CurrentUploadRate/1000)) kbit/s")
(echo "-------------------------------------------")
(echo "BTS pozycja GPS : $BTSINFOPOS")
(echo "===========================================")
# ostania korekta 31.03.2015
# Koniec skryptu
#
Zawartość skryptu /usr/share/3ginfo/cgi-bin/hilink.sh dla zainteresowanych
#!/bin/sh
CLF='/mnt/btsearch.clf'
# odczyt danych z modemu HILINK bez trybu modemu
wget -t 25 -O /tmp/E3372-status http://192.168.8.1/api/monitoring/status > /dev/null 2>&1
wget -t 25 -O /tmp/E3372-plmn http://192.168.8.1/api/net/current-plmn > /dev/null 2>&1
wget -t 25 -O /tmp/E3372-signal-para http://192.168.8.1/api/net/signal-para > /dev/null 2>&1
wget -t 25 -O /tmp/E3372-signal http://192.168.8.1/api/device/signal > /dev/null 2>&1
wget -t 25 -O /tmp/E3372-trafic http://192.168.8.1/api/monitoring/traffic-statistics > /dev/null 2>&1
wget -t 25 -O /tmp/E3372-token http://192.168.8.1/api/webserver/token > /dev/null 2>&1
token=`cat /tmp/E3372-token | grep token | cut -d '<' -f 2 | cut -d '>' -f 2`
wget -t 25 -O /tmp/E3372-information "http://192.168.8.1/api/device/information" --header "__RequestVerificationToken: $token" > /dev/null 2>&1
wget -t 25 -O /tmp/E3372-dhcp http://192.168.8.1/api/dhcp/settings > /dev/null 2>&1
# szukanie danych w pliku z danymi typu HTML
Status_Polaczenia=`cat /tmp/E3372-status | grep ConnectionStatus | cut -d '<' -f 2 | cut -d '>' -f 2`
RoamingStatus=`cat /tmp/E3372-status | grep RoamingStatus | cut -d '<' -f 2 | cut -d '>' -f 2`
RSSI=`cat /tmp/E3372-signal | grep rssi | cut -d '<' -f 2 | cut -d '>' -f 2`
RSCP=`cat /tmp/E3372-signal | grep rscp | cut -d '<' -f 2 | cut -d '>' -f 2`
RSRP=`cat /tmp/E3372-signal | grep rsrp | cut -d '<' -f 2 | cut -d '>' -f 2`
RSRQ=`cat /tmp/E3372-signal | grep rsrq | cut -d '<' -f 2 | cut -d '>' -f 2 | cut -d 'd' -f 1`
ECIO=`cat /tmp/E3372-signal-para | grep Ecio | cut -d '<' -f 2 | cut -d '>' -f 2`
SC=`cat /tmp/E3372-signal | grep '<sc' | cut -d '<' -f 2 | cut -d '>' -f 2`
LAC=`cat /tmp/E3372-signal-para | grep Lac | cut -d '<' -f 2 | cut -d '>' -f 2`
LCID=`cat /tmp/E3372-signal-para | grep CellID | cut -d '<' -f 2 | cut -d '>' -f 2`
CID=`cat /tmp/E3372-signal-para | grep CellID | cut -d '<' -f 2 | cut -d '>' -f 2 | cut -c 5-8`
Typ_Sieci=`cat /tmp/E3372-status | grep CurrentNetworkTypeEx | cut -d '<' -f 2 | cut -d '>' -f 2`
Adres_IP=`cat /tmp/E3372-status | grep WanIPAddress | cut -d '<' -f 2 | cut -d '>' -f 2`
DNS_Primary=`cat /tmp/E3372-status | grep PrimaryDns | cut -d '<' -f 2 | cut -d '>' -f 2`
DNS_Secendary=`cat /tmp/E3372-status | grep SecondaryDns | cut -d '<' -f 2 | cut -d '>' -f 2`
Nazwa_Sieci=`cat /tmp/E3372-plmn | grep FullName | cut -d '<' -f 2 | cut -d '>' -f 2`
ID_Sieci=`cat /tmp/E3372-plmn | grep Numeric | cut -d '<' -f 2 | cut -d '>' -f 2`
Rat=`cat /tmp/E3372-plmn | grep Rat | cut -d '<' -f 2 | cut -d '>' -f 2`
Czas_Polaczenia=`cat /tmp/E3372-trafic | grep CurrentConnectTime | cut -d '<' -f 2 | cut -d '>' -f 2`
Czas_Calkowity=`cat /tmp/E3372-trafic | grep TotalConnectTime | cut -d '<' -f 2 | cut -d '>' -f 2`
CurrentDownload=`cat /tmp/E3372-trafic | grep 'CurrentDownload>' | cut -d '<' -f 2 | cut -d '>' -f 2`
CurrentUpload=`cat /tmp/E3372-trafic | grep 'CurrentUpload>' | cut -d '<' -f 2 | cut -d '>' -f 2`
CurrentDownloadRate=`cat /tmp/E3372-trafic | grep CurrentDownloadRate | cut -d '<' -f 2 | cut -d '>' -f 2`
CurrentUploadRate=`cat /tmp/E3372-trafic | grep CurrentUploadRate | cut -d '<' -f 2 | cut -d '>' -f 2`
TotalUpload=`cat /tmp/E3372-trafic | grep TotalUpload | cut -d '<' -f 2 | cut -d '>' -f 2`
TotalDownload=`cat /tmp/E3372-trafic | grep TotalDownload | cut -d '<' -f 2 | cut -d '>' -f 2`
DhcpIPAddress=`cat /tmp/E3372-dhcp | grep DhcpIPAddress | cut -d '<' -f 2 | cut -d '>' -f 2`
DhcpLanNetmask=`cat /tmp/E3372-dhcp | grep DhcpLanNetmask | cut -d '<' -f 2 | cut -d '>' -f 2`
# szukanie danych o modemie
DeviceName=`cat /tmp/E3372-information | grep DeviceName | cut -d '<' -f 2 | cut -d '>' -f 2`
Classify=`cat /tmp/E3372-information | grep Classify | cut -d '<' -f 2 | cut -d '>' -f 2`
ProductFamily=`cat /tmp/E3372-information | grep ProductFamily | cut -d '<' -f 2 | cut -d '>' -f 2`
SerialNumber=`cat /tmp/E3372-information | grep SerialNumber | cut -d '<' -f 2 | cut -d '>' -f 2`
Imei=`cat /tmp/E3372-information | grep Imei | cut -d '<' -f 2 | cut -d '>' -f 2`
Imsi=`cat /tmp/E3372-information | grep Imsi | cut -d '<' -f 2 | cut -d '>' -f 2`
Iccid=`cat /tmp/E3372-information | grep Iccid | cut -d '<' -f 2 | cut -d '>' -f 2`
HardwareVersion=`cat /tmp/E3372-information | grep HardwareVersion | cut -d '<' -f 2 | cut -d '>' -f 2`
SoftwareVersion=`cat /tmp/E3372-information | grep SoftwareVersion | cut -d '<' -f 2 | cut -d '>' -f 2`
WebUIVersion=`cat /tmp/E3372-information | grep WebUIVersion | cut -d '<' -f 2 | cut -d '>' -f 2`
MacAddress1=`cat /tmp/E3372-information | grep MacAddress1 | cut -d '<' -f 2 | cut -d '>' -f 2`
supportmode=`cat /tmp/E3372-information | grep supportmode | cut -d '<' -f 2 | cut -d '>' -f 2`
workmode=`cat /tmp/E3372-information | grep workmode | cut -d '<' -f 2 | cut -d '>' -f 2`
DATE=`date "+%F %H:%M:%S"`
CSQ=$((ECIO+29))
# Sprawdzenie CSQ dla 4G/LTE
if [ $CSQ -lt 0 ]
then CSQ=$((RSRQ+29))
fi
# Sprawdzanie stanu polaczanienia
if [ $Status_Polaczenia = 900 ]
then
Polaczenie="Laczenie"
elif [ $Status_Polaczenia = 901 ]
then
Polaczenie="Polaczony"
elif [ $Status_Polaczenia = 902 ]
then
Polaczenie="Rozlaczony"
elif [ $Status_Polaczenia = 903 ]
then
Polaczenie="Rozlaczanie"
elif [ $Status_Polaczenia = 25 -o 26 ]
then
Polaczenie="BLAD LACZENIA"
else
Polaczenie="Brak danych"
fi
# Sprawdzanie typu sieci
if [ $Typ_Sieci = 0 ]
then Siec="brak uslugi"
elif [ $Typ_Sieci = 1 ]
then Siec="GSM"
elif [ $Typ_Sieci = 2 ]
then Siec="GPRS"
elif [ $Typ_Sieci = 3 ]
then Siec="EDGE"
elif [ $Typ_Sieci = 4 ]
then Siec="WCDMA"
elif [ $Typ_Sieci = 5 ]
then Siec="HSDPA"
elif [ $Typ_Sieci = 6 ]
then Siec="HSUPA"
elif [ $Typ_Sieci = 7 ]
then Siec="HSPA"
elif [ $Typ_Sieci = 8 ]
then Siec="TDSCDMA"
elif [ $Typ_Sieci = 9 ]
then Siec="HSPA+"
elif [ $Typ_Sieci = 10 ]
then Siec="EVDO rev. 0"
elif [ $Typ_Sieci = 11 ]
then Siec="EVDO rev. A"
elif [ $Typ_Sieci = 12 ]
then Siec="EVDO rev. B"
elif [ $Typ_Sieci = 13 ]
then Siec="1xRTT"
elif [ $Typ_Sieci = 14 ]
then Siec="UMB"
elif [ $Typ_Sieci = 15 ]
then Siec="1xEVDV"
elif [ $Typ_Sieci = 16 ]
then Siec="3xRTT"
elif [ $Typ_Sieci = 17 ]
then Siec="HSPA+64QAM"
elif [ $Typ_Sieci = 18 ]
then Siec="HSPA+MIMO"
elif [ $Typ_Sieci = 19 ]
then Siec="LTE"
elif [ $Typ_Sieci = 21 ]
then Siec="IS95A"
elif [ $Typ_Sieci = 22 ]
then Siec="IS95B"
elif [ $Typ_Sieci = 23 ]
then Siec="CDMA1x"
elif [ $Typ_Sieci = 24 ]
then Siec="EVDO rev. 0"
elif [ $Typ_Sieci = 25 ]
then Siec="EVDO rev. A"
elif [ $Typ_Sieci = 26 ]
then Siec="EVDO rev. B"
elif [ $Typ_Sieci = 27 ]
then Siec="Hybrydowa CDMA1x"
elif [ $Typ_Sieci = 28 ]
then Siec="Hybrydowa EVDO rev. 0"
elif [ $Typ_Sieci = 29 ]
then Siec="Hybrydowa EVDO rev. A"
elif [ $Typ_Sieci = 30 ]
then Siec="Hybrydowa EVDO rev. B"
elif [ $Typ_Sieci = 31 ]
then Siec="EHRPD rev. 0"
elif [ $Typ_Sieci = 32 ]
then Siec="EHRPD rev. A"
elif [ $Typ_Sieci = 33 ]
then Siec="EHRPD rev. B"
elif [ $Typ_Sieci = 34 ]
then Siec="Hybrydowa EHRPD rev. 0"
elif [ $Typ_Sieci = 35 ]
then Siec="Hybrydowa EHRPD rev. A"
elif [ $Typ_Sieci = 36 ]
then Siec="Hybrydowa EHRPD rev. B"
elif [ $Typ_Sieci = 41 ]
then Siec="WCDMA (UMTS)"
elif [ $Typ_Sieci = 42 ]
then Siec="HSDPA"
elif [ $Typ_Sieci = 43 ]
then Siec="HSUPA"
elif [ $Typ_Sieci = 44 ]
then Siec="HSPA"
elif [ $Typ_Sieci = 45 ]
then Siec="HSPA+"
elif [ $Typ_Sieci = 46 ]
then Siec="DC-HSPA+"
elif [ $Typ_Sieci = 61 ]
then Siec="TD SCDMA"
elif [ $Typ_Sieci = 62 ]
then Siec="TD HSDPA"
elif [ $Typ_Sieci = 63 ]
then Siec="TD HSUPA"
elif [ $Typ_Sieci = 64 ]
then Siec="TD HSPA"
elif [ $Typ_Sieci = 65 ]
then Siec="TD HSPA+"
elif [ $Typ_Sieci = 81 ]
then Siec="802.16E"
elif [ $Typ_Sieci = 101 ]
then Siec="LTE"
else Siec="BRAK DANYCH"
fi
# sprawdzenie 'Rat' sieci
if [ $Rat = 0 ]
then
RatSiec="2G"
elif [ $Rat = 2 ]
then
RatSiec="3G"
elif [ $Rat = 5 ]
then
RatSiec="3G+"
elif [ $Rat = 7 ]
then
RatSiec="4G"
else
RatSiec="BRAK DANYCH"
fi
# sprawdzanie nazwy sieci
# if [ $Nazwa_Sieci = "PLAY" ]
# then
# Nazwa_Sieci="PLUS ROAMING"
# else
# Nazwa_Sieci=$Nazwa_Sieci
# fi
# Liczenie czasu polaczenia
if [ $Czas_Polaczenia -ge 3600 ]
then
Czas_PH=$((Czas_Polaczenia/3600));
Czas_PM=$(((Czas_Polaczenia-$Czas_PH*3600)/60));
Czas_PS=$((Czas_Polaczenia-($Czas_PH*3600)-(Czas_PM*60)))
elif [ $Czas_Polaczenia -ge 600 ]
then
Czas_PH="00"
Czas_PM=$((Czas_Polaczenia/60));
Czas_PS=$((Czas_Polaczenia-$Czas_PM*60));
elif [ $Czas_Polaczenia -ge 60 ]
then
Czas_PH="00"
Czas_PM=$((Czas_Polaczenia/60))
Czas_PS=$((Czas_Polaczenia-$Czas_PM*60))
else
Czas_PH="00"
Czas_PM=$((Czas_Polaczenia/60))
Czas_PS=$((Czas_Polaczenia-$Czas_PM*60))
fi
# porzadkowanie formatu czasu godzin, minut, sekund
if [ $Czas_PS -lt 1 ]
then
Czas_PS="00"
elif [ $Czas_PS -lt 10 ]
then
Czas_PS="0"$Czas_PS
fi
if [ $Czas_PM -lt 1 ]
then
Czas_PM="00"
elif [ $Czas_PM -lt 10 ]
then
Czas_PM="0"$Czas_PM
fi
if [ $Czas_PH -lt 1 ]
then
Czas_PH="00"
elif [ $Czas_PH -lt 10 ]
then
Czas_PH="0"$Czas_PH
fi
# Liczenie czasu calkowitego polaczenia
if [ $Czas_Calkowity -ge 3600 ]
then
Czas_CH=$((Czas_Calkowity/3600))
Czas_CM=$(((Czas_Calkowity-$Czas_CH*3600)/60))
Czas_CS=$((Czas_Calkowity-($Czas_CH*3600)-(Czas_CM*60)))
elif [ $Czas_Calkowity -ge 600 ]
then
Czas_CH="00"
Czas_CM=$((Czas_Calkowity/60))
Czas_CS=$((Czas_Calkowity-$Czas_CM*60))
elif [ $Czas_Calkowity -ge 60 ]
then
Czas_CH="00"
Czas_CM=$((Czas_Calkowity/60))
Czas_CS=$((Czas_Calkowity-$Czas_CM*60))
else
Czas_PH="00"
Czas_PM=$((Czas_Polaczenia/60))
Czas_PS=$((Czas_Polaczenia-$Czas_PM*60))
fi
# porzadkowanie formatu czasu godzin, minut, sekund
if [ $Czas_CS -lt 1 ]
then
Czas_CS="00"
elif [ $Czas_CS -lt 10 ]
then
Czas_CS="0"$Czas_CS
fi
if [ $Czas_CM -lt 1 ]
then
Czas_CM="00"
elif [ $Czas_CM -lt 10 ]
then
Czas_CM="0"$Czas_CM
fi
if [ $Czas_CH -lt 1 ]
then
Czas_CH=" 00"
elif [ $Czas_CH -lt 10 ]
then
Czas_CH=" 0"$Czas_CH
elif [ $Czas_CH -lt 100 ]
then
Czas_CH=$Czas_CH
fi
# konwersja hex na dec
LACd=$((0x$LAC))
LCIDd=$((0x$LCID))
CIDd=$((0x$CID))
CSQp=$(($CSQ*100/31))
# BTS Info
if [ -e "$CLF" ]; then
PAT="$ID_Sieci;$CIDd;$LACd;"
BTSINFOPOS="$(cat "$CLF" | awk -F";" '/'$PAT'/ {printf $5","$6" - "$8}')"
fi
# przygotowanie wysietlenia danych o polaczeniu GSM
echo -e "Content-type: text/html\n\n"
(echo "================================================================<br>")
(echo " $DATE <br>")
(echo "-------------------------------------------<br>")
(echo " MODEM HUAWEI $DeviceName $Classify $ProductFamily <br>")
(echo "-------------------------------------------<br>")
(echo "SN : $SerialNumber <br>")
(echo "IMEI : $Imei <br>")
(echo "IMSI : $Imsi <br>")
(echo "ICCID : $Iccid <br>")
(echo "Wersja Hardware : $HardwareVersion <br>")
(echo "Wersja Software : $SoftwareVersion <br>")
(echo "Wersja WebUI : $WebUIVersion <br>")
(echo "Mac Address : $MacAddress1 <br>")
(echo "Obslugiwane sieci : $supportmode <br>")
(echo "Aktualna siec : $workmode <br>")
(echo "-------------------------------------------<br>")
(echo "Stan lacza z BTS : $Polaczenie <br>")
(echo "Nazwa sieci : $Nazwa_Sieci <br>")
(echo "ID sieci : $ID_Sieci <br>")
(echo "Siec operatora : $RatSiec <br>")
(echo "Roaming : $RoamingStatus <br>")
(echo "Sila sygnalu RSSI : $RSSI <br>")
(echo "Sila sygnalu RSRP : $RSRP <br>")
(echo "Sila sygnalu RSRQ : $RSRQ dB <br>")
(echo "Sila sygnalu RSCP : $RSCP <br>")
(echo "Ec/Io : $ECIO dBm <br>")
(echo "CSQ : $CSQ ($CSQp %) <br>")
(echo "SC : $SC <br>")
(echo "LAC : $LACd <br>")
(echo "LCID (CID) : $LCIDd ($CIDd) <br>")
(echo "Czas polaczenia : $Czas_PH:$Czas_PM:$Czas_PS <br>")
(echo "Czas calkowity : $Czas_CH:$Czas_CM:$Czas_CS <br>")
(echo "Typ sieci : $Siec <br>")
(echo "Adres IP LAN : $DhcpIPAddress <br>")
(echo "Maska LAN : $DhcpLanNetmask <br>")
(echo "Adres IP WAN : $Adres_IP <br>")
(echo "DNS podstawowy : $DNS_Primary <br>")
(echo "DNS rezerwowy : $DNS_Secendary <br>")
(echo "Pobrano w sesji : $(($CurrentDownload/1048576)) MB <br>")
(echo "Wyslano w sesji : $(($CurrentUpload/1048576)) MB <br>")
(echo "Total pobrano : $(($TotalDownload/1048576)) MB <br>")
(echo "Total wyslano : $(($TotalUpload/1048576)) MB <br>")
(echo "Predkosc Download : $(($CurrentDownloadRate/1000)) kbit/s <br>")
(echo "Predkosc Upload : $(($CurrentUploadRate/1000)) kbit/s <br>")
(echo "-------------------------------------------<br>")
(echo "BTS pozycja GPS : $BTSINFOPOS <br>")
(echo "================================================================<br>")
# ostania korekta 31.03.2015
# Koniec skryptu
#
zawartość /usr/share/3ginfo/hilink.html
<html>
<style type="text/css">
body {font-family: Verdana, Arial, Helvetica, sans-serif, Courier;}
.c {margin:auto;text-align:center;clear:both;}
.l {width:49%;clear:both;float:left;text-align:right;}
.r {width:49%;float:right;text-align:left;}
</style>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Siła sygnału</title>
<script language="javascript" type="text/javascript">
<!--
var secs=0;
var delay = 1000;
startTimer();
function startTimer()
{
if (secs==0)
{
secs=3;
refreshData();
}
else
{
self.status = secs;
secs = secs - 1;
}
self.setTimeout("startTimer()", delay);
}
function refreshData()
{
var req;
try {req = new XMLHttpRequest();} catch (e) {
try {req = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) {
try {req = new ActiveXObject("Microsoft.XMLHTTP");} catch (e) {
alert("CoĹ› stara ta przelÄ…darka...");
return false;
}
}
}
req.open("GET", "/cgi-bin/signal.sh");
req.onreadystatechange = function() {
if (req.readyState == 4) {
var line=req.responseText;
var arr=(line.split(/,/));
if(arr.length>3)
{
var p = (arr[2]*100/31).toFixed();
document.getElementById('csq').innerHTML=p+'%';
document.getElementById('precent').style.width=p+"%";
var color = "red";
if (p > 29) {color="orange"; }
if (p > 45) {color="yellow"; }
if (p > 61) {color="green"; }
document.getElementById('precent').style.backgroundColor=color;
}
}
}
req.send(null);
}
//-->
</script>
<script language="javascript" type="text/javascript">
<!--
function readhilink()
{
var hilink;
try {hilink = new XMLHttpRequest();} catch (e) {
try {hilink = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) {
try {hilink = new ActiveXObject("Microsoft.XMLHTTP");} catch (e) {
alert("Co�^� stara ta przel�^�darka...");
return false;
}
}
}
hilink.open("GET", "/cgi-bin/hilink.sh",true);
hilink.onreadystatechange = function()
{
if (hilink.readyState == 4 && hilink.status==200)
{
var hlout = hilink.responseText;
document.getElementById("hilinkout").innerHTML=hlout;
}
}
hilink.send(null);
}
//-->
</script>
</head>
<body>
<table style='width:100%;height:100%;'>
<tr><td colspan=3 style='height:1px;'> </td></tr>
<tr>
<td> </td>
<td style='width:700px; height:1px;'>
<div class="c"><h1><font color="black">Modem HUAWEI E3372 HiLink LTE</color></h1></div>
<span class="l">Siła sygnału CSQ:</span><span id="csq" class="r"></span>
<div style="float:left; margin:1%; width:98%; height:20px; border:1px solid #000000; background-color:transparent;">
<div id="precent" style="float:left; background-color:black; border-right:1px solid #000000; height:100%; width:0%"> </div>
</div>
<font size="2"><div id="hilinkout"></div></font>
<center><button type="button" onclick="readhilink()">Odczytaj dane modemu</button></center>
</td>
<td> </td>
</tr>
<tr><td colspan=3> </td></tr>
</table>
</body>
</html>
zawartość /usr/share/3ginfo/cgi-bin/signal.sh
#!/bin/sh
# dczyt danych o sile sygnalu z modemu E3372 w trybie HILINK
wget -t 25 -O /tmp/E3372-signal http://192.168.8.1/api/device/signal > /dev/null 2>&1
wget -t 25 -O /tmp/E3372-signal-para http://192.168.8.1/api/net/signal-para > /dev/null 2>&1
# szukanie danych w pliku z danymi typu HTML
# RSSI=`cat /tmp/E3372-signal-para | grep Rscp | cut -d '<' -f 2 | cut -d '>' -f 2`
RSSI=`cat /tmp/E3372-signal | grep rssi | cut -d '<' -f 2 | cut -d '>' -f 2 | cut -d 'd' -f 1`
RSCP=`cat /tmp/E3372-signal | grep rscp | cut -d '<' -f 2 | cut -d '>' -f 2 | cut -d 'd' -f 1`
RSRQ=`cat /tmp/E3372-signal | grep rsrq | cut -d '<' -f 2 | cut -d '>' -f 2 | cut -d 'd' -f 1`
ECIO=`cat /tmp/E3372-signal-para | grep Ecio | cut -d '<' -f 2 | cut -d '>' -f 2`
# CSQ=$(((ECIO+32)*10/11))
CSQ=$((ECIO+29))
# Sprawdzenie CSQ dla 4G/LTE
if [ $CSQ -lt 0 ]
then CSQ=$((RSRQ+29))
fi
RSSI=$((RSSI*-100/121))
RSCQ="Signal,Quality:,$CSQ,$RSSI"
#
# przygotowanie danych dla przegladarki
#
echo -e "Content-type: text/html\n\n"
echo $RSCQ | sed -e 's/ /,/g'
#
# wczesniej musi byc zainstalowany pakiet 3GINFO
# skrypt miesci sie w katalogu /usr/share/3ginfo/cgi-bin
# podmenic kod na ten w skrypcie signal.sh
#
# odczyt sily sygnalu przez przegladarke http://192.168.8.1:81/signal.html
# przy zalozeniu ze router ma adres 192.169.8.1 - wymog przy modemie HILINK
#
# wersja z dnia 31.03.2015r
Pozdr,
Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Zyxel T56 EX5601-T1 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.85)
Xiaomi AX3600 (OpenWrt EDMA-NSS SNAPSHOT, kernel 6.18.38)
OpenWRT NSS and EDMA-NSS builds for Xiaomi AX3600 (IPQ8071A) by @Payti