diff --git a/release/src-rt-6.x.4708/router/httpd/wwan.c b/release/src-rt-6.x.4708/router/httpd/wwan.c index 33d1b95c49..ad7d81a386 100644 --- a/release/src-rt-6.x.4708/router/httpd/wwan.c +++ b/release/src-rt-6.x.4708/router/httpd/wwan.c @@ -9,14 +9,14 @@ void wo_wwansignal(char *url) { - char wancmd[24]; + char wancmd[32]; int desired_wan = atoi(webcgi_safeget("mwan_num", "1")); - if (desired_wan == 1) { + if (desired_wan == 1) snprintf(wancmd, sizeof(wancmd), "wwansignal wan -stdout"); - } else { + else snprintf(wancmd, sizeof(wancmd), "wwansignal wan%d -stdout", desired_wan); - } + web_puts("\nwwanstatus = '"); web_pipecmd(wancmd, WOF_JAVASCRIPT); web_puts("';"); @@ -24,35 +24,38 @@ void wo_wwansignal(char *url) static char* getModemDiagPort(const char *wannum) { - char tmp[16]; + char tmp[32]; snprintf(tmp, sizeof(tmp), "%s_proto", wannum); if (nvram_match(tmp, "ppp3g")) { - snprintf(tmp, sizeof(tmp), "%s_modem_sdev", wannum); + snprintf(tmp, sizeof(tmp), "%s_modem_dev", wannum); return nvram_safe_get(tmp); - } else if (nvram_match(tmp, "lte")) { + } + else if (nvram_match(tmp, "lte")) { snprintf(tmp, sizeof(tmp), "%s_modem_type", wannum); - if (nvram_match(tmp, "non-hilink") || nvram_match(tmp, "huawei-non-hilink")) { + if (nvram_match(tmp, "non-hilink") || nvram_match(tmp, "huawei-non-hilink") || nvram_match(tmp, "hw-ether")) { snprintf(tmp, sizeof(tmp), "%s_modem_dev", wannum); return nvram_safe_get(tmp); - } else { /* QMI or HiLink */ + } + else { /* QMI or HiLink */ web_puts("\nwwansms_error = 'WWAN is not supported!'"); return NULL; } - } else { - web_puts("\nwwansms_error = 'WAN is not WWAN!'"); + } + else { + web_puts("\nwwansms_error = 'WAN is not WWAN!'"); /* TODO: SMS support for QMI */ return NULL; } } void wo_wwansms(char *url) { - char smscmd[62]; - char wannum[5]; + char smscmd[64]; + char wannum[8]; char *wwan_devId = NULL; int desired_wan = atoi(webcgi_safeget("mwan_num", "1")); - snprintf(wannum, sizeof(wannum), "wan%c", desired_wan == 1 ? '\0' : (char)desired_wan + 48); + snprintf(wannum, sizeof(wannum), "wan%c", (desired_wan == 1 ? '\0' : (char)desired_wan + 48)); wwan_devId = getModemDiagPort(wannum); @@ -84,9 +87,8 @@ void wo_wwansms_delete(char *url) return; } desired_wan = atoi(desired_wan_str); - snprintf(wannum, sizeof(wannum), "wan%c", desired_wan == 1 ? '\0' : (char)desired_wan + 48); + snprintf(wannum, sizeof(wannum), "wan%c", (desired_wan == 1 ? '\0' : (char)desired_wan + 48)); smsToRemove = atoi(smsToRemove_str); - printf("Request to delte %d from wan %s", smsToRemove, wannum); wwan_devId = getModemDiagPort(wannum); if (wwan_devId != NULL) { diff --git a/release/src-rt-6.x.4708/router/others/wwansignal b/release/src-rt-6.x.4708/router/others/wwansignal index 578d0989fe..8abf48bd28 100755 --- a/release/src-rt-6.x.4708/router/others/wwansignal +++ b/release/src-rt-6.x.4708/router/others/wwansignal @@ -4,8 +4,7 @@ # Copyright (C) 2015 shibby # # - changes/fixes -# - add support for rndis protocol -# Copyright (C) 2018 - 2019 by pedro +# Copyright (C) 2018 - 2021 by pedro # @@ -20,9 +19,9 @@ LOGS="logger -t wwansignal[$PID]" HILINK_IP=$(nvram get "$PREFIX"_hilink_ip) if ! [ -z "$HILINK_IP" ] && [ "$HILINK_IP" != "0.0.0.0" ]; then - MODE=lte - MTYPE=hilink - WANIP=$HILINK_IP + MODE=lte + MTYPE=hilink + WANIP=$HILINK_IP fi [ -z "$PREFIX" ] && { @@ -38,7 +37,7 @@ fi signal3g() { local CSQ RSSI i local DIAGSFILE="/tmp/switch3g_$PREFIX.diags" - local SDEVNR=$(nvram get "$PREFIX"_modem_sdev) + local SDEVNR=$(nvram get "$PREFIX"_modem_dev) [ -z "$SDEVNR" ] && { DEVALL=$(cat "$DIAGSFILE") @@ -54,7 +53,7 @@ signal3g() { break } done - nvram set "$PREFIX"_modem_sdev="$i" + nvram set "$PREFIX"_modem_dev="$i" CSQ=$(echo "$CSQ" | grep "CSQ:" | cut -d " " -f2 | cut -d "," -f1) RSSI=$((-113+CSQ*2)) @@ -65,7 +64,7 @@ signal4g() { local HCSQ SPEED VALUE CERSSI LOCINFO MCC RSSI RSRP LAC CID SINR ECIO RSRQ CQI1 CQI2 BAND BBAND="" i local DIAGSFILE="/tmp/switch4g_$PREFIX.diags" - if [ "$MTYPE" == "non-hilink" -o "$MTYPE" == "huawei-non-hilink" ]; then + if [ "$MTYPE" == "non-hilink" -o "$MTYPE" == "huawei-non-hilink" -o "$MTYPE" == "hw-ether" ]; then DEVALL="$DEVNR $(cat "$DIAGSFILE" | sed "s~"$DEVNR"~~")" for i in $DEVALL; do # find working interface @@ -82,7 +81,7 @@ signal4g() { SPEED=$(echo "$HCSQ" | cut -d "," -f1 | cut -d '"' -f2) case "$SPEED" in - "LTE") + "LTE") VALUE=$(echo "$HCSQ" | cut -d "," -f2) RSSI=$(awk "BEGIN {print -120+$VALUE}") VALUE=$(echo $HCSQ | cut -d "," -f3) @@ -142,7 +141,7 @@ signal4g() { [ -n "$HFREQINFO" ] && $LOGS "MODEM Carrier: $BBAND, Downlink FQ $DOWNFREQ MHz, Uplink FQ $UPFREQ MHz, Downlink BW $DOWNWIDTH MHz, Uplink BW $UPWIDTH MHz" [ -n "$LOCINFO" ] && $LOGS "MODEM BTS: MCCMNC $MCCMNC, LAC $LAC ($(printf "%d" $LAC)), CID $CID ($(printf "%d" $CID)), Cell ID $CELL ($(printf "%d" $CELL))" ;; - "WCDMA") + "WCDMA") VALUE=$(echo "$HCSQ" | cut -d "," -f2) RSSI=$(awk "BEGIN {print -120+$VALUE}") VALUE=$(echo "$HCSQ" | cut -d "," -f3) @@ -161,13 +160,13 @@ signal4g() { $LOGS "MODEM Signal Strength: RSSI $RSSI dBm, RSSP $RSRP dBm, ECIO $ECIO dB" [ -n "$LOCINFO" ] && $LOGS "MODEM BTS: MCCMNC $MCCMNC, LAC $LAC ($(printf "%d" $LAC)), CID $CID ($(printf "%d" $CID)), Cell ID $CELL ($(printf "%d" $CELL))" ;; - "GSM") + "GSM") VALUE=$(echo "$HCSQ" | cut -d "," -f2) RSSI=$(awk "BEGIN {print -120+$VALUE}") $LOGS "MODEM Current Mode: $SPEED" $LOGS "MODEM Signal Strength: RSSI $RSSI dBm" ;; - *) + *) $LOGS "MODEM Current Mode: unknown" $LOGS "MODEM Signal Strength: no data" ;; @@ -180,7 +179,7 @@ signal4g() { MCCMNC=$(echo "$MCC" | cut -d "," -f2 | cut -d ":" -f2)$(printf "%02d" $(echo "$MCC" | cut -d "," -f3 | cut -d ":" -f2)) case "$SPEED" in - "lte") + "lte") RSSI=$(echo "$SIGNAL" | cut -d "," -f2 | cut -d ":" -f2) RSRQ=$(echo "$SIGNAL" | cut -d "," -f3 | cut -d ":" -f2) RSRP=$(echo "$SIGNAL" | cut -d "," -f4 | cut -d ":" -f2) @@ -189,20 +188,20 @@ signal4g() { $LOGS "MODEM Signal Strength: RSSI $RSSI dBm, RSRP $RSRP dBm, RSRQ $RSRQ dB, SINR $SINR dB" $LOGS "MODEM BTS: MCCMNC $MCCMNC" ;; - "wcdma" | "umts") + "wcdma" | "umts") RSSI=$(echo "$SIGNAL" | cut -d "," -f2 | cut -d ":" -f2) ECIO=$(echo "$SIGNAL" | cut -d ":" -f4 | cut -d "}" -f1) $LOGS "MODEM Current Mode: $(echo $SPEED | tr '[a-z]' '[A-Z]')" $LOGS "MODEM Signal Strength: RSSI $RSSI dBm, ECIO $ECIO dB" $LOGS "MODEM BTS: MCCMNC $MCCMNC" ;; - "gsm") + "gsm") RSSI=$(echo "$SIGNAL" | cut -d ":" -f3 | cut -d "}" -f1) $LOGS "MODEM Current Mode: GSM" $LOGS "MODEM Signal Strength: RSSI $RSSI dBm" $LOGS "MODEM BTS: MCCMNC $MCCMNC" ;; - *) + *) $LOGS "MODEM Current Mode: unknown" $LOGS "MODEM Signal Strength: no data" ;; @@ -246,7 +245,7 @@ signal4g() { } case "$SPEED" in - "03") + "03") RSRP=$(echo "$SIGNAL" | grep "" | cut -d '>' -f2 | cut -d 'd' -f1) RSRQ=$(echo "$SIGNAL" | grep "" | cut -d '>' -f2 | cut -d 'd' -f1) PCI=$(echo "$SIGNAL" | grep "" | cut -d '>' -f2 | cut -d '<' -f1) @@ -273,7 +272,7 @@ signal4g() { [ -n "$CELL" ] && $LOGS "MODEM BTS: MCCMNC $MCCMNC, LAC 0x$(printf "%X" $LAC) ($LAC), PCI 0x$(printf "%X" $PCI) ($PCI), Cell ID 0x$(printf "%X" $CELL) ($CELL)" $LOGS "MODEM Band(s): $BBAND" ;; - "02") + "02") ECIO=$(echo "$SIGNAL" | grep "" | cut -d '>' -f2 | cut -d 'd' -f1) RSCP=$(echo "$SIGNAL" | grep "" | cut -d '>' -f2 | cut -d 'd' -f1) @@ -281,12 +280,12 @@ signal4g() { [ -n "$RSSI" ] && $LOGS "MODEM Signal Strength: RSSI $RSSI dBm, RSCP $RSCP dBm, ECIO $ECIO dB" [ -n "$CELL" ] && $LOGS "MODEM BTS: MCCMNC $MCCMNC, Cell ID 0x$(printf "%X" $CELL) ($CELL)" ;; - "01") + "01") $LOGS "MODEM Current Mode: GSM" $LOGS "MODEM Signal Strength: RSSI $RSSI dBm" [ -n "$CELL" ] && $LOGS "MODEM BTS: MCCMNC $MCCMNC, Cell ID 0x$(printf "%X" $CELL) ($CELL)" ;; - *) + *) $LOGS "MODEM Current Mode: unknown" $LOGS "MODEM Signal Strength: no data" ;; @@ -296,7 +295,7 @@ signal4g() { } checkPid() { - local PRIORITY="$1" PIDNO + local PIDNO [ -f $PIDFILE ] && { PIDNO=$(cat $PIDFILE) @@ -305,21 +304,6 @@ checkPid() { [ $? -eq 0 ] && { $LOGS "MODEM - another process in action - exiting" exit 0 - } || { - [ "$PRIORITY" -eq 0 ] && return - # Process not found assume not running - echo $PID > $PIDFILE - [ $? -ne 0 ] && { - $LOGS "MODEM - could not create PID file" - exit 0 - } - } - } || { - [ "$PRIORITY" -eq 0 ] && return - echo $PID > $PIDFILE - [ $? -ne 0 ] && { - $LOGS "MODEM - could not create PID file" - exit 0 } } } @@ -362,12 +346,12 @@ uqmiCall() { if [ "$MODE" == "ppp3g" ]; then $LOGS "MODEM Type: 3G" PIDFILE="/var/run/switch3g_$PREFIX.pid" - checkPid 0 + checkPid signal3g elif [ "$MODE" == "lte" ]; then $LOGS "MODEM Type: "$MTYPE PIDFILE="/var/run/switch4g_$PREFIX.pid" - checkPid 0 + checkPid signal4g else $LOGS "Warning, $PREFIX not in 3G/LTE mode. Aborting ..." diff --git a/release/src-rt-6.x.4708/router/www/wwan-sms.asp b/release/src-rt-6.x.4708/router/www/wwan-sms.asp index 16bfa444f1..96a1bb7ca9 100644 --- a/release/src-rt-6.x.4708/router/www/wwan-sms.asp +++ b/release/src-rt-6.x.4708/router/www/wwan-sms.asp @@ -24,7 +24,7 @@ var sms_remover = null; var wwansms = ''; -var wannum_selection = 1; +var wannum_selection = cookie.get('wwansms_selection') || 1; var wwansms_error; var ref = new TomatoRefresh('wwansms.cgi', 'mwan_num='+wannum_selection, 15, 'wwan_sms_refresh'); @@ -109,9 +109,6 @@ function verifyFields(focused, quiet) { } function init() { - if ((wannum_selection = cookie.get('wwansms_selection')) == null) - wannum_selection = 1; - E('sec-title').innerHTML = 'WWAN SMS list for modem '+wannum_selection; ref.initPage(250, 15); diff --git a/release/src-rt-6.x.4708/router/www/wwan_parser.js b/release/src-rt-6.x.4708/router/www/wwan_parser.js index f1ee04e231..868b799069 100644 --- a/release/src-rt-6.x.4708/router/www/wwan_parser.js +++ b/release/src-rt-6.x.4708/router/www/wwan_parser.js @@ -17,7 +17,7 @@ function createWWANTableItem(value, unit, bar) { } function getAltText(bar) { - var altTextMap = { "bar6.gif":"6/6", "bar5.gif":"5/6", "bar4.gif":"4/6", "bar3.gif":"3/6", "bar2.gif":"2/6", "bar1.gif":"1/6" }; + var altTextMap = { 'bar6.gif':'6/6', 'bar5.gif':'5/6', 'bar4.gif':'4/6', 'bar3.gif':'3/6', 'bar2.gif':'2/6', 'bar1.gif':'1/6' }; return altTextMap[bar]; } @@ -28,6 +28,7 @@ function createWWANStatusSection(wannum, wwanstatus) { code += ''+nvram[wanNumStr+'_modem_type']+''; code += 'Current Mode'; code += ''+wwan_getCurrentMode(wwanstatus)+''; + var valMap = []; wwan_getSignalStrengthMap(wwanstatus, valMap); if (valMap['RSSI']) { @@ -116,19 +117,19 @@ function createWWANStatusSection(wannum, wwanstatus) { var connType = nvram[wanNumStr+'_proto']; if (connType == 'ppp3g' || modemType == 'non-hilink' || modemType == 'huawei-non-hilink' || modemType == 'hw-ether') { code += ''; - code += 'Click to view SMS'; + code += 'Click to view SMS'; } code += ''; return code; } function showSMSForWWAN(wwannum) { - cookie.set("wwansms_selection", wwannum); + cookie.set('wwansms_selection', wwannum); document.location.href = 'wwan-sms.asp'; } function wwan_getSignalStrengthMap(buffer, returnMap) { - var itemsToFind = ['RSSI', 'RSRP', 'RSRQ', 'RSSP', 'RSCP', 'SINR', 'CQI1', 'CQI2', 'ECIO']; + var index, itemsToFind = ['RSSI', 'RSRP', 'RSRQ', 'RSSP', 'RSCP', 'SINR', 'CQI1', 'CQI2', 'ECIO']; for (index = 0; index < itemsToFind.length; ++index) { var element = itemsToFind[index]; returnMap[element] = extractStringItem(element, buffer); @@ -136,7 +137,7 @@ function wwan_getSignalStrengthMap(buffer, returnMap) { } function wwan_getLocationMap(buffer, returnMap) { - var itemsToFind = ['LAC', 'CID', 'PCI', 'Cell ID']; + var index, itemsToFind = ['LAC', 'CID', 'PCI', 'Cell ID']; for (index = 0; index < itemsToFind.length; ++index) { var element = itemsToFind[index]; returnMap[element] = extractLocationItem(element, buffer); @@ -149,8 +150,9 @@ function wwan_getLocationMap(buffer, returnMap) { } function extractStringItem(tag, buffer) { - var regExtract = new RegExp(tag+" (.*?)(?:(\\s|\\,|$))", "gm"); + var regExtract = new RegExp(tag+' (.*?)(?:(\\s|\\,|$))', 'gm'); var matchedArrs = regExtract.exec(buffer); + if (matchedArrs) return matchedArrs[1]; @@ -158,7 +160,7 @@ function extractStringItem(tag, buffer) { } function extractMCCMNC(buffer) { - var regExtract = new RegExp("MCCMNC (\\d*)(?:\\,?)", "gm"); + var regExtract = new RegExp('MCCMNC (\\d*)(?:\\,?)', 'gm'); var matchedArrs = regExtract.exec(buffer); if (matchedArrs) { var returnMap = []; @@ -171,7 +173,7 @@ function extractMCCMNC(buffer) { } function extractLocationItem(tag, buffer) { - var regExtract = new RegExp(tag+" ((.*?))\\((.*?)\\)", "gm"); + var regExtract = new RegExp(tag+' ((.*?))\\((.*?)\\)', 'gm'); var matchedArrs = regExtract.exec(buffer); if (matchedArrs) { var returnMap = []; @@ -183,7 +185,7 @@ function extractLocationItem(tag, buffer) { } function wwan_getCarrierMap(buffer) { - var regExtract = new RegExp("MODEM Carrier: (.[0-9]) \\((.*) MHz\\)\\, Downlink FQ (.*) MHz, Uplink FQ (.*) MHz, Downlink BW (.*) MHz, Uplink BW (.*) MHz", "gm"); + var regExtract = new RegExp('MODEM Carrier: (.[0-9]) \\((.*) MHz\\)\\, Downlink FQ (.*) MHz, Uplink FQ (.*) MHz, Downlink BW (.*) MHz, Uplink BW (.*) MHz', 'gm'); var matchedArrs = regExtract.exec(buffer); if (matchedArrs) { var returnMap = []; @@ -199,64 +201,67 @@ function wwan_getCarrierMap(buffer) { } function wwan_getRSSIBar(value) { - if (value > -51) - return "bar6.gif"; - else if (value <= -51 && value >= -73) - return "bar5.gif"; + if (value.substr(0, 5) == '>=') + value = parseInt(value.substr(5)); /* special case for hilink modems */ + + if (value > -50) + return 'bar6.gif'; + else if (value <= -50 && value >= -73) + return 'bar5.gif'; else if (value <= -75 && value >= -85) - return "bar4.gif"; + return 'bar4.gif'; else if (value <= -87 && value >= -93) - return "bar3.gif"; + return 'bar3.gif'; else - return "bar2.gif"; + return 'bar2.gif'; } function wwan_getRSRPBar(value) { if (value > -79) - return "bar6.gif"; + return 'bar6.gif'; else if (value <= -80 && value >= -90) - return "bar5.gif"; + return 'bar5.gif'; else if (value <= -91 && value >= -100) - return "bar4.gif"; + return 'bar4.gif'; else - return "bar2.gif"; + return 'bar2.gif'; } function wwan_getRSRQBar(value) { if (value >= -9) - return "bar6.gif"; + return 'bar6.gif'; else if (value <= -10 && value >= -15) - return "bar5.gif"; + return 'bar5.gif'; else if (value <= -16 && value >= -20) - return "bar4.gif"; + return 'bar4.gif'; else - return "bar2.gif"; + return 'bar2.gif'; } function wwan_getSINRBar(value) { if (value >= 21) - return "bar6.gif"; + return 'bar6.gif'; else if (value <= 20 && value >= 13) - return "bar5.gif"; + return 'bar5.gif'; else if (value <= 12 && value >= 0) - return "bar4.gif"; + return 'bar4.gif'; else - return "bar2.gif"; + return 'bar2.gif'; } function wwan_getRSCPBar(value) { if (value > -65) - return "bar6.gif"; + return 'bar6.gif'; else if (value <= -65 && value > -75) - return "bar5.gif"; + return 'bar5.gif'; else if (value <= -75 && value > -85) - return "bar4.gif"; + return 'bar4.gif'; else if (value <= -85 && value > -95) - return "bar3.gif"; + return 'bar3.gif'; else if (value <= -95 && value > -105) - return "bar2.gif"; + return 'bar2.gif'; else - return "bar1.gif"; + return 'bar1.gif'; } function wwan_getCQIBar(value) {