GUI: fix the display of SMS and signal level (RSSI) in some cases

arm-sdk7
pedro 4 years ago
parent 994c7db1ab
commit 9e0d7aa52d

@ -9,14 +9,14 @@
void wo_wwansignal(char *url) void wo_wwansignal(char *url)
{ {
char wancmd[24]; char wancmd[32];
int desired_wan = atoi(webcgi_safeget("mwan_num", "1")); int desired_wan = atoi(webcgi_safeget("mwan_num", "1"));
if (desired_wan == 1) { if (desired_wan == 1)
snprintf(wancmd, sizeof(wancmd), "wwansignal wan -stdout"); snprintf(wancmd, sizeof(wancmd), "wwansignal wan -stdout");
} else { else
snprintf(wancmd, sizeof(wancmd), "wwansignal wan%d -stdout", desired_wan); snprintf(wancmd, sizeof(wancmd), "wwansignal wan%d -stdout", desired_wan);
}
web_puts("\nwwanstatus = '"); web_puts("\nwwanstatus = '");
web_pipecmd(wancmd, WOF_JAVASCRIPT); web_pipecmd(wancmd, WOF_JAVASCRIPT);
web_puts("';"); web_puts("';");
@ -24,35 +24,38 @@ void wo_wwansignal(char *url)
static char* getModemDiagPort(const char *wannum) static char* getModemDiagPort(const char *wannum)
{ {
char tmp[16]; char tmp[32];
snprintf(tmp, sizeof(tmp), "%s_proto", wannum); snprintf(tmp, sizeof(tmp), "%s_proto", wannum);
if (nvram_match(tmp, "ppp3g")) { 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); 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); 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); snprintf(tmp, sizeof(tmp), "%s_modem_dev", wannum);
return nvram_safe_get(tmp); return nvram_safe_get(tmp);
} else { /* QMI or HiLink */ }
else { /* QMI or HiLink */
web_puts("\nwwansms_error = 'WWAN is not supported!'"); web_puts("\nwwansms_error = 'WWAN is not supported!'");
return NULL; 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; return NULL;
} }
} }
void wo_wwansms(char *url) void wo_wwansms(char *url)
{ {
char smscmd[62]; char smscmd[64];
char wannum[5]; char wannum[8];
char *wwan_devId = NULL; char *wwan_devId = NULL;
int desired_wan = atoi(webcgi_safeget("mwan_num", "1")); 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); wwan_devId = getModemDiagPort(wannum);
@ -84,9 +87,8 @@ void wo_wwansms_delete(char *url)
return; return;
} }
desired_wan = atoi(desired_wan_str); 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); smsToRemove = atoi(smsToRemove_str);
printf("Request to delte %d from wan %s", smsToRemove, wannum);
wwan_devId = getModemDiagPort(wannum); wwan_devId = getModemDiagPort(wannum);
if (wwan_devId != NULL) { if (wwan_devId != NULL) {

@ -4,8 +4,7 @@
# Copyright (C) 2015 shibby # Copyright (C) 2015 shibby
# #
# - changes/fixes # - changes/fixes
# - add support for rndis protocol # Copyright (C) 2018 - 2021 by pedro
# Copyright (C) 2018 - 2019 by pedro
# #
@ -20,9 +19,9 @@ LOGS="logger -t wwansignal[$PID]"
HILINK_IP=$(nvram get "$PREFIX"_hilink_ip) HILINK_IP=$(nvram get "$PREFIX"_hilink_ip)
if ! [ -z "$HILINK_IP" ] && [ "$HILINK_IP" != "0.0.0.0" ]; then if ! [ -z "$HILINK_IP" ] && [ "$HILINK_IP" != "0.0.0.0" ]; then
MODE=lte MODE=lte
MTYPE=hilink MTYPE=hilink
WANIP=$HILINK_IP WANIP=$HILINK_IP
fi fi
[ -z "$PREFIX" ] && { [ -z "$PREFIX" ] && {
@ -38,7 +37,7 @@ fi
signal3g() { signal3g() {
local CSQ RSSI i local CSQ RSSI i
local DIAGSFILE="/tmp/switch3g_$PREFIX.diags" local DIAGSFILE="/tmp/switch3g_$PREFIX.diags"
local SDEVNR=$(nvram get "$PREFIX"_modem_sdev) local SDEVNR=$(nvram get "$PREFIX"_modem_dev)
[ -z "$SDEVNR" ] && { [ -z "$SDEVNR" ] && {
DEVALL=$(cat "$DIAGSFILE") DEVALL=$(cat "$DIAGSFILE")
@ -54,7 +53,7 @@ signal3g() {
break break
} }
done done
nvram set "$PREFIX"_modem_sdev="$i" nvram set "$PREFIX"_modem_dev="$i"
CSQ=$(echo "$CSQ" | grep "CSQ:" | cut -d " " -f2 | cut -d "," -f1) CSQ=$(echo "$CSQ" | grep "CSQ:" | cut -d " " -f2 | cut -d "," -f1)
RSSI=$((-113+CSQ*2)) 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 HCSQ SPEED VALUE CERSSI LOCINFO MCC RSSI RSRP LAC CID SINR ECIO RSRQ CQI1 CQI2 BAND BBAND="" i
local DIAGSFILE="/tmp/switch4g_$PREFIX.diags" 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"~~")" DEVALL="$DEVNR $(cat "$DIAGSFILE" | sed "s~"$DEVNR"~~")"
for i in $DEVALL; do # find working interface for i in $DEVALL; do # find working interface
@ -82,7 +81,7 @@ signal4g() {
SPEED=$(echo "$HCSQ" | cut -d "," -f1 | cut -d '"' -f2) SPEED=$(echo "$HCSQ" | cut -d "," -f1 | cut -d '"' -f2)
case "$SPEED" in case "$SPEED" in
"LTE") "LTE")
VALUE=$(echo "$HCSQ" | cut -d "," -f2) VALUE=$(echo "$HCSQ" | cut -d "," -f2)
RSSI=$(awk "BEGIN {print -120+$VALUE}") RSSI=$(awk "BEGIN {print -120+$VALUE}")
VALUE=$(echo $HCSQ | cut -d "," -f3) 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 "$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))" [ -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) VALUE=$(echo "$HCSQ" | cut -d "," -f2)
RSSI=$(awk "BEGIN {print -120+$VALUE}") RSSI=$(awk "BEGIN {print -120+$VALUE}")
VALUE=$(echo "$HCSQ" | cut -d "," -f3) VALUE=$(echo "$HCSQ" | cut -d "," -f3)
@ -161,13 +160,13 @@ signal4g() {
$LOGS "MODEM Signal Strength: RSSI $RSSI dBm, RSSP $RSRP dBm, ECIO $ECIO dB" $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))" [ -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) VALUE=$(echo "$HCSQ" | cut -d "," -f2)
RSSI=$(awk "BEGIN {print -120+$VALUE}") RSSI=$(awk "BEGIN {print -120+$VALUE}")
$LOGS "MODEM Current Mode: $SPEED" $LOGS "MODEM Current Mode: $SPEED"
$LOGS "MODEM Signal Strength: RSSI $RSSI dBm" $LOGS "MODEM Signal Strength: RSSI $RSSI dBm"
;; ;;
*) *)
$LOGS "MODEM Current Mode: unknown" $LOGS "MODEM Current Mode: unknown"
$LOGS "MODEM Signal Strength: no data" $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)) MCCMNC=$(echo "$MCC" | cut -d "," -f2 | cut -d ":" -f2)$(printf "%02d" $(echo "$MCC" | cut -d "," -f3 | cut -d ":" -f2))
case "$SPEED" in case "$SPEED" in
"lte") "lte")
RSSI=$(echo "$SIGNAL" | cut -d "," -f2 | cut -d ":" -f2) RSSI=$(echo "$SIGNAL" | cut -d "," -f2 | cut -d ":" -f2)
RSRQ=$(echo "$SIGNAL" | cut -d "," -f3 | cut -d ":" -f2) RSRQ=$(echo "$SIGNAL" | cut -d "," -f3 | cut -d ":" -f2)
RSRP=$(echo "$SIGNAL" | cut -d "," -f4 | 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 Signal Strength: RSSI $RSSI dBm, RSRP $RSRP dBm, RSRQ $RSRQ dB, SINR $SINR dB"
$LOGS "MODEM BTS: MCCMNC $MCCMNC" $LOGS "MODEM BTS: MCCMNC $MCCMNC"
;; ;;
"wcdma" | "umts") "wcdma" | "umts")
RSSI=$(echo "$SIGNAL" | cut -d "," -f2 | cut -d ":" -f2) RSSI=$(echo "$SIGNAL" | cut -d "," -f2 | cut -d ":" -f2)
ECIO=$(echo "$SIGNAL" | cut -d ":" -f4 | cut -d "}" -f1) ECIO=$(echo "$SIGNAL" | cut -d ":" -f4 | cut -d "}" -f1)
$LOGS "MODEM Current Mode: $(echo $SPEED | tr '[a-z]' '[A-Z]')" $LOGS "MODEM Current Mode: $(echo $SPEED | tr '[a-z]' '[A-Z]')"
$LOGS "MODEM Signal Strength: RSSI $RSSI dBm, ECIO $ECIO dB" $LOGS "MODEM Signal Strength: RSSI $RSSI dBm, ECIO $ECIO dB"
$LOGS "MODEM BTS: MCCMNC $MCCMNC" $LOGS "MODEM BTS: MCCMNC $MCCMNC"
;; ;;
"gsm") "gsm")
RSSI=$(echo "$SIGNAL" | cut -d ":" -f3 | cut -d "}" -f1) RSSI=$(echo "$SIGNAL" | cut -d ":" -f3 | cut -d "}" -f1)
$LOGS "MODEM Current Mode: GSM" $LOGS "MODEM Current Mode: GSM"
$LOGS "MODEM Signal Strength: RSSI $RSSI dBm" $LOGS "MODEM Signal Strength: RSSI $RSSI dBm"
$LOGS "MODEM BTS: MCCMNC $MCCMNC" $LOGS "MODEM BTS: MCCMNC $MCCMNC"
;; ;;
*) *)
$LOGS "MODEM Current Mode: unknown" $LOGS "MODEM Current Mode: unknown"
$LOGS "MODEM Signal Strength: no data" $LOGS "MODEM Signal Strength: no data"
;; ;;
@ -246,7 +245,7 @@ signal4g() {
} }
case "$SPEED" in case "$SPEED" in
"03") "03")
RSRP=$(echo "$SIGNAL" | grep "<rsrp>" | cut -d '>' -f2 | cut -d 'd' -f1) RSRP=$(echo "$SIGNAL" | grep "<rsrp>" | cut -d '>' -f2 | cut -d 'd' -f1)
RSRQ=$(echo "$SIGNAL" | grep "<rsrq>" | cut -d '>' -f2 | cut -d 'd' -f1) RSRQ=$(echo "$SIGNAL" | grep "<rsrq>" | cut -d '>' -f2 | cut -d 'd' -f1)
PCI=$(echo "$SIGNAL" | grep "<pci>" | cut -d '>' -f2 | cut -d '<' -f1) PCI=$(echo "$SIGNAL" | grep "<pci>" | 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)" [ -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" $LOGS "MODEM Band(s): $BBAND"
;; ;;
"02") "02")
ECIO=$(echo "$SIGNAL" | grep "<ecio>" | cut -d '>' -f2 | cut -d 'd' -f1) ECIO=$(echo "$SIGNAL" | grep "<ecio>" | cut -d '>' -f2 | cut -d 'd' -f1)
RSCP=$(echo "$SIGNAL" | grep "<rscp>" | cut -d '>' -f2 | cut -d 'd' -f1) RSCP=$(echo "$SIGNAL" | grep "<rscp>" | 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 "$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)" [ -n "$CELL" ] && $LOGS "MODEM BTS: MCCMNC $MCCMNC, Cell ID 0x$(printf "%X" $CELL) ($CELL)"
;; ;;
"01") "01")
$LOGS "MODEM Current Mode: GSM" $LOGS "MODEM Current Mode: GSM"
$LOGS "MODEM Signal Strength: RSSI $RSSI dBm" $LOGS "MODEM Signal Strength: RSSI $RSSI dBm"
[ -n "$CELL" ] && $LOGS "MODEM BTS: MCCMNC $MCCMNC, Cell ID 0x$(printf "%X" $CELL) ($CELL)" [ -n "$CELL" ] && $LOGS "MODEM BTS: MCCMNC $MCCMNC, Cell ID 0x$(printf "%X" $CELL) ($CELL)"
;; ;;
*) *)
$LOGS "MODEM Current Mode: unknown" $LOGS "MODEM Current Mode: unknown"
$LOGS "MODEM Signal Strength: no data" $LOGS "MODEM Signal Strength: no data"
;; ;;
@ -296,7 +295,7 @@ signal4g() {
} }
checkPid() { checkPid() {
local PRIORITY="$1" PIDNO local PIDNO
[ -f $PIDFILE ] && { [ -f $PIDFILE ] && {
PIDNO=$(cat $PIDFILE) PIDNO=$(cat $PIDFILE)
@ -305,21 +304,6 @@ checkPid() {
[ $? -eq 0 ] && { [ $? -eq 0 ] && {
$LOGS "MODEM - another process in action - exiting" $LOGS "MODEM - another process in action - exiting"
exit 0 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 if [ "$MODE" == "ppp3g" ]; then
$LOGS "MODEM Type: 3G" $LOGS "MODEM Type: 3G"
PIDFILE="/var/run/switch3g_$PREFIX.pid" PIDFILE="/var/run/switch3g_$PREFIX.pid"
checkPid 0 checkPid
signal3g signal3g
elif [ "$MODE" == "lte" ]; then elif [ "$MODE" == "lte" ]; then
$LOGS "MODEM Type: "$MTYPE $LOGS "MODEM Type: "$MTYPE
PIDFILE="/var/run/switch4g_$PREFIX.pid" PIDFILE="/var/run/switch4g_$PREFIX.pid"
checkPid 0 checkPid
signal4g signal4g
else else
$LOGS "Warning, $PREFIX not in 3G/LTE mode. Aborting ..." $LOGS "Warning, $PREFIX not in 3G/LTE mode. Aborting ..."

@ -24,7 +24,7 @@
var sms_remover = null; var sms_remover = null;
var wwansms = ''; var wwansms = '';
var wannum_selection = 1; var wannum_selection = cookie.get('wwansms_selection') || 1;
var wwansms_error; var wwansms_error;
var ref = new TomatoRefresh('wwansms.cgi', 'mwan_num='+wannum_selection, 15, 'wwan_sms_refresh'); var ref = new TomatoRefresh('wwansms.cgi', 'mwan_num='+wannum_selection, 15, 'wwan_sms_refresh');
@ -109,9 +109,6 @@ function verifyFields(focused, quiet) {
} }
function init() { function init() {
if ((wannum_selection = cookie.get('wwansms_selection')) == null)
wannum_selection = 1;
E('sec-title').innerHTML = 'WWAN SMS list for modem '+wannum_selection; E('sec-title').innerHTML = 'WWAN SMS list for modem '+wannum_selection;
ref.initPage(250, 15); ref.initPage(250, 15);

@ -17,7 +17,7 @@ function createWWANTableItem(value, unit, bar) {
} }
function getAltText(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]; return altTextMap[bar];
} }
@ -28,6 +28,7 @@ function createWWANStatusSection(wannum, wwanstatus) {
code += '<td class="content">'+nvram[wanNumStr+'_modem_type']+'</td></tr>'; code += '<td class="content">'+nvram[wanNumStr+'_modem_type']+'</td></tr>';
code += '<tr><td class="title indent1">Current Mode</td>'; code += '<tr><td class="title indent1">Current Mode</td>';
code += '<td class="content">'+wwan_getCurrentMode(wwanstatus)+'</td></tr>'; code += '<td class="content">'+wwan_getCurrentMode(wwanstatus)+'</td></tr>';
var valMap = []; var valMap = [];
wwan_getSignalStrengthMap(wwanstatus, valMap); wwan_getSignalStrengthMap(wwanstatus, valMap);
if (valMap['RSSI']) { if (valMap['RSSI']) {
@ -116,19 +117,19 @@ function createWWANStatusSection(wannum, wwanstatus) {
var connType = nvram[wanNumStr+'_proto']; var connType = nvram[wanNumStr+'_proto'];
if (connType == 'ppp3g' || modemType == 'non-hilink' || modemType == 'huawei-non-hilink' || modemType == 'hw-ether') { if (connType == 'ppp3g' || modemType == 'non-hilink' || modemType == 'huawei-non-hilink' || modemType == 'hw-ether') {
code += '<tr><td class="title indent1"></td>'; code += '<tr><td class="title indent1"></td>';
code += '<td class="content wwan-parser-view"><a href="#" onclick="showSMSForWWAN('+wannum+')">Click to view SMS</a></td></tr>'; code += '<td class="content wwan-parser-view"><a href="javascript:showSMSForWWAN('+wannum+')">Click to view SMS</a></td></tr>';
} }
code += '</table>'; code += '</table>';
return code; return code;
} }
function showSMSForWWAN(wwannum) { function showSMSForWWAN(wwannum) {
cookie.set("wwansms_selection", wwannum); cookie.set('wwansms_selection', wwannum);
document.location.href = 'wwan-sms.asp'; document.location.href = 'wwan-sms.asp';
} }
function wwan_getSignalStrengthMap(buffer, returnMap) { 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) { for (index = 0; index < itemsToFind.length; ++index) {
var element = itemsToFind[index]; var element = itemsToFind[index];
returnMap[element] = extractStringItem(element, buffer); returnMap[element] = extractStringItem(element, buffer);
@ -136,7 +137,7 @@ function wwan_getSignalStrengthMap(buffer, returnMap) {
} }
function wwan_getLocationMap(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) { for (index = 0; index < itemsToFind.length; ++index) {
var element = itemsToFind[index]; var element = itemsToFind[index];
returnMap[element] = extractLocationItem(element, buffer); returnMap[element] = extractLocationItem(element, buffer);
@ -149,8 +150,9 @@ function wwan_getLocationMap(buffer, returnMap) {
} }
function extractStringItem(tag, buffer) { function extractStringItem(tag, buffer) {
var regExtract = new RegExp(tag+" (.*?)(?:(\\s|\\,|$))", "gm"); var regExtract = new RegExp(tag+' (.*?)(?:(\\s|\\,|$))', 'gm');
var matchedArrs = regExtract.exec(buffer); var matchedArrs = regExtract.exec(buffer);
if (matchedArrs) if (matchedArrs)
return matchedArrs[1]; return matchedArrs[1];
@ -158,7 +160,7 @@ function extractStringItem(tag, buffer) {
} }
function extractMCCMNC(buffer) { function extractMCCMNC(buffer) {
var regExtract = new RegExp("MCCMNC (\\d*)(?:\\,?)", "gm"); var regExtract = new RegExp('MCCMNC (\\d*)(?:\\,?)', 'gm');
var matchedArrs = regExtract.exec(buffer); var matchedArrs = regExtract.exec(buffer);
if (matchedArrs) { if (matchedArrs) {
var returnMap = []; var returnMap = [];
@ -171,7 +173,7 @@ function extractMCCMNC(buffer) {
} }
function extractLocationItem(tag, buffer) { function extractLocationItem(tag, buffer) {
var regExtract = new RegExp(tag+" ((.*?))\\((.*?)\\)", "gm"); var regExtract = new RegExp(tag+' ((.*?))\\((.*?)\\)', 'gm');
var matchedArrs = regExtract.exec(buffer); var matchedArrs = regExtract.exec(buffer);
if (matchedArrs) { if (matchedArrs) {
var returnMap = []; var returnMap = [];
@ -183,7 +185,7 @@ function extractLocationItem(tag, buffer) {
} }
function wwan_getCarrierMap(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); var matchedArrs = regExtract.exec(buffer);
if (matchedArrs) { if (matchedArrs) {
var returnMap = []; var returnMap = [];
@ -199,64 +201,67 @@ function wwan_getCarrierMap(buffer) {
} }
function wwan_getRSSIBar(value) { function wwan_getRSSIBar(value) {
if (value > -51) if (value.substr(0, 5) == '&gt;=')
return "bar6.gif"; value = parseInt(value.substr(5)); /* special case for hilink modems */
else if (value <= -51 && value >= -73)
return "bar5.gif"; if (value > -50)
return 'bar6.gif';
else if (value <= -50 && value >= -73)
return 'bar5.gif';
else if (value <= -75 && value >= -85) else if (value <= -75 && value >= -85)
return "bar4.gif"; return 'bar4.gif';
else if (value <= -87 && value >= -93) else if (value <= -87 && value >= -93)
return "bar3.gif"; return 'bar3.gif';
else else
return "bar2.gif"; return 'bar2.gif';
} }
function wwan_getRSRPBar(value) { function wwan_getRSRPBar(value) {
if (value > -79) if (value > -79)
return "bar6.gif"; return 'bar6.gif';
else if (value <= -80 && value >= -90) else if (value <= -80 && value >= -90)
return "bar5.gif"; return 'bar5.gif';
else if (value <= -91 && value >= -100) else if (value <= -91 && value >= -100)
return "bar4.gif"; return 'bar4.gif';
else else
return "bar2.gif"; return 'bar2.gif';
} }
function wwan_getRSRQBar(value) { function wwan_getRSRQBar(value) {
if (value >= -9) if (value >= -9)
return "bar6.gif"; return 'bar6.gif';
else if (value <= -10 && value >= -15) else if (value <= -10 && value >= -15)
return "bar5.gif"; return 'bar5.gif';
else if (value <= -16 && value >= -20) else if (value <= -16 && value >= -20)
return "bar4.gif"; return 'bar4.gif';
else else
return "bar2.gif"; return 'bar2.gif';
} }
function wwan_getSINRBar(value) { function wwan_getSINRBar(value) {
if (value >= 21) if (value >= 21)
return "bar6.gif"; return 'bar6.gif';
else if (value <= 20 && value >= 13) else if (value <= 20 && value >= 13)
return "bar5.gif"; return 'bar5.gif';
else if (value <= 12 && value >= 0) else if (value <= 12 && value >= 0)
return "bar4.gif"; return 'bar4.gif';
else else
return "bar2.gif"; return 'bar2.gif';
} }
function wwan_getRSCPBar(value) { function wwan_getRSCPBar(value) {
if (value > -65) if (value > -65)
return "bar6.gif"; return 'bar6.gif';
else if (value <= -65 && value > -75) else if (value <= -65 && value > -75)
return "bar5.gif"; return 'bar5.gif';
else if (value <= -75 && value > -85) else if (value <= -75 && value > -85)
return "bar4.gif"; return 'bar4.gif';
else if (value <= -85 && value > -95) else if (value <= -85 && value > -95)
return "bar3.gif"; return 'bar3.gif';
else if (value <= -95 && value > -105) else if (value <= -95 && value > -105)
return "bar2.gif"; return 'bar2.gif';
else else
return "bar1.gif"; return 'bar1.gif';
} }
function wwan_getCQIBar(value) { function wwan_getCQIBar(value) {

Loading…
Cancel
Save