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)
{
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) {

@ -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
#
@ -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
@ -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 ..."

@ -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);

@ -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 += '<td class="content">'+nvram[wanNumStr+'_modem_type']+'</td></tr>';
code += '<tr><td class="title indent1">Current Mode</td>';
code += '<td class="content">'+wwan_getCurrentMode(wwanstatus)+'</td></tr>';
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 += '<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>';
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) == '&gt;=')
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) {

Loading…
Cancel
Save