From fcd0f1f0e748c8cf67f48506d37440d594afd614 Mon Sep 17 00:00:00 2001 From: bert hubert Date: Thu, 9 Jan 2020 13:49:09 +0100 Subject: [PATCH] many html and js changes --- html/almanac.js | 2 +- html/doalles.js | 86 ++++++++++++++++++++++++++++++++--------------- html/observer.js | 22 ++++++++---- html/observers.js | 10 ++++-- html/sv.js | 20 ++++++++++- 5 files changed, 102 insertions(+), 38 deletions(-) diff --git a/html/almanac.js b/html/almanac.js index fc06da5..bd90e93 100644 --- a/html/almanac.js +++ b/html/almanac.js @@ -14,7 +14,7 @@ function maketable(str, arr) enter(). append("tr"); - var columns = ["sv", "best-tle", "best-tle-dist", "best-tle-norad", "best-tle-int-desig", "eph-ecefX", "eph-ecefY", "eph-ecefZ", "tle-ecefX", "tle-ecefY", "tle-ecefZ", "eph-latitude", "eph-longitude", "tle-latitude", "tle-longitude", "tle-eciX", "tle-eciY", "tle-eciZ", "t0e", "t"]; + var columns = ["sv", "best-tle", "best-tle-dist", "best-tle-norad", "best-tle-int-desig", "eph-ecefX", "eph-ecefY", "eph-ecefZ", "tle-ecefX", "tle-ecefY", "tle-ecefZ", "eph-latitude", "eph-longitude", "tle-latitude", "tle-longitude", "tle-eciX", "tle-eciY", "tle-eciZ", "t0e", "t", "E", "M0"]; // append the header row thead.append("tr") diff --git a/html/doalles.js b/html/doalles.js index 45e096c..e435ed7 100644 --- a/html/doalles.js +++ b/html/doalles.js @@ -14,7 +14,7 @@ function maketable(str, arr) enter(). append("tr"); - var columns = ["sv", "best-tle", "iod", "eph-age-m", "latest-disco", "time-disco", "sisa", "health", "tle-dist", "alma-dist", "delta-utc", "delta-gps", "sources", "db", "delta_hz_corr","prres", "elev", "last-seen-s"]; + var columns = ["sv", "best-tle", "iod", "eph-age-m", "latest-disco", "time-disco", "sisa", "health", "alma-dist", "delta-utc", "sources", "hqsources", "db", "delta_hz_corr","prres", "elev", "last-seen-s"]; // append the header row thead.append("tr") @@ -175,36 +175,68 @@ function updateSats() o.db=""; o.elev=""; o.delta_hz_corr=""; - o.prres=""; + o.sources=0; + let prrestot = 0, prresnum=0, dbtot=0, hztot=0, hznum=0; + let mindb=1000, maxdb=0; + let minelev=90, maxelev=-1; + o.hqsources=0; Object.keys(o.perrecv).forEach(function(k) { - if(o.perrecv[k]["last-seen-s"] < 1800) { - o.sources = o.sources + ''+k+' '; - - o.db = o.db + o.perrecv[k].db +" "; - if(o.perrecv[k].elev != null) - o.elev = o.elev + o.perrecv[k].elev.toFixed(0)+" "; - else - o.elev = o.elev + "? "; - - if(o.delta_hz_corr == null) - o.delta_hz_corr =""; - if(o.perrecv[k].delta_hz_corr != null) - o.delta_hz_corr = o.delta_hz_corr + o.perrecv[k].delta_hz_corr.toFixed(0)+" "; - else - o.delta_hz_corr = o.delta_hz_corr + "_ "; - - if(o.prres == null) - o.prres =""; - if(o.perrecv[k].prres != null) - o.prres = o.prres + o.perrecv[k].prres.toFixed(0)+" "; - else - o.prres = o.prres + "_ "; - - + if(o.perrecv[k]["last-seen-s"] < 30) { + o.sources++; + dbtot += o.perrecv[k].db; + if(o.perrecv[k].db != null) { + let db=o.perrecv[k].db; + if(db > maxdb) + maxdb = db; + if(db maxelev) + maxelev = elev; + if(elev 20 + && (o.perrecv[k].prres != 0.000 || o.perrecv[k].used)) { + o.hqsources++; + + if(o.perrecv[k].delta_hz_corr != null) { + hztot += o.perrecv[k].delta_hz_corr; + hznum++; + } + + if(o.perrecv[k].prres != null) { + prrestot+= o.perrecv[k].prres; + prresnum++; + } + } } }); - + + if(mindb != 1000) + o.db = mindb+" - " +maxdb; + else + o.db = "-"; + + if(maxelev != -1) + o.elev = minelev.toFixed(0)+" - " +maxelev.toFixed(0); + else + o.elev = "-"; + + if(o.hqsources > 2) { + if(prresnum) + o.prres = (prrestot / prresnum).toFixed(2); + else + o.prres ="-"; + if(hznum) + o.delta_hz_corr = (hztot / hznum).toFixed(2); + else + o.delta_hz_corr ="-"; + } arr.push(o); }); diff --git a/html/observer.js b/html/observer.js index 79dbc10..816e574 100644 --- a/html/observer.js +++ b/html/observer.js @@ -136,11 +136,21 @@ function makeTable(str, obj) gnss_position=[]; Object.keys(obj).forEach(function(e) { if(e=="svs") { - Object.keys(obj[e]).forEach(function(k) { - arr.push({id: k, elev: obj[e][k].elev.toFixed(1), + var obj2 ={id: k, elev: obj[e][k].elev.toFixed(1), sigid: obj[e][k].sigid, - db: obj[e][k].db, azi: obj[e][k].azi.toFixed(1), prres: obj[e][k].prres.toFixed(1), "age-s": obj[e][k]["age-s"]}); + db: obj[e][k].db, azi: obj[e][k].azi.toFixed(1), + "age-s": obj[e][k]["age-s"], + prres: obj[e][k].prres.toFixed(1)}; + + if(obj[e][k].delta_hz_corr != null) + obj2["delta_hz_corr"]= obj[e][k].delta_hz_corr.toFixed(1); + if(obj[e][k].qi != null) + obj2["qi"]= obj[e][k].qi; + if(obj[e][k].used != null) + obj2["used"]= obj[e][k].used; + + arr.push(obj2); let color="blue"; let gnssid = obj[e][k].gnss; if(gnssid == 0) @@ -164,7 +174,7 @@ function makeTable(str, obj) enter(). append("tr"); - var columns= ["id", "value", "sigid", "azi", "elev", "db", "prres", "age-s"]; + var columns= ["id", "value", "sigid", "azi", "elev", "db", "qi", "used", "prres", "delta_hz_corr", "age-s"]; // append the header row thead.append("tr") @@ -189,7 +199,7 @@ function makeTable(str, obj) ret.color= null; return ret; })}). - enter().append("td").html(function(d) { + enter().append("td").text(function(d) { return d.value; }).attr("align", d=> d.align).style("background-color", d=> d.color); @@ -214,7 +224,7 @@ function update() }); - d3.queue(1).defer(d3.json, "./observers.json").defer(d3.json, "./almanac.json").awaitAll(ready); + d3.queue(1).defer(d3.json, "./observers.json").awaitAll(ready); function ready(error, results) { var obj = {}; diff --git a/html/observers.js b/html/observers.js index 1dfd0a6..4a1f7cf 100644 --- a/html/observers.js +++ b/html/observers.js @@ -3,6 +3,11 @@ var repeat; moment.relativeTimeThreshold('m', 120); +function escapeHTML(html) { + return document.createElement('div').appendChild(document.createTextNode(html)).parentNode.innerHTML; +} + + function makeTable(str, arr) { var table=d3.select(str); @@ -15,7 +20,7 @@ function makeTable(str, arr) enter(). append("tr"); - var columns= ["id", "last-seen", "latitude", "longitude", "satellites"]; + var columns= ["id", "last-seen", "latitude", "longitude", "owner", "remark", "vendor", "serialno", "hwversion", "swversion", "mods", "githash", "uptime", "clockdriftns", "clockacc", "freqacc", "h", "acc", "satellites"]; // append the header row thead.append("tr") @@ -51,9 +56,8 @@ function makeTable(str, arr) ret.value += ""; ret.align = "left"; } - else { - ret.value = row[column]; + ret.value = escapeHTML(row[column]); } return ret; })}). diff --git a/html/sv.js b/html/sv.js index e29946e..0c3f083 100644 --- a/html/sv.js +++ b/html/sv.js @@ -15,7 +15,7 @@ function makeTable(str, arr) enter(). append("tr"); - var columns= ["id1", "value1", "id2", "value2"]; + var columns= ["id1", "value1", "id2", "value2", "src", "db", "delta_hz_corr", "qi", "prres", "elev", "used"]; // append the header row thead.append("tr") @@ -71,17 +71,35 @@ function update() function ready(error, results) { var arr=[]; + let recvs; Object.keys(results[0]).forEach(function(e) { + if(e=="recvs") { + recvs=results[0][e]; + return; + } arr.push({id: e, value: results[0][e]}); }); var newarr=[]; for(var n=0 ; n < arr.length; n+=2) { + if(n + 1 < arr.length) newarr.push({id1: arr[n].id, value1: arr[n].value, id2: arr[n+1].id, value2: arr[n+1].value}); else newarr.push({id1: arr[n].id, value1: arr[n].value, id2: "", value2: ""}); } + + Object.keys(recvs).forEach(function(e) { + if(recvs[e]["last-seen-s"] < 60) + newarr.push({id1:"", value1:"", id2:"", value2:"", + src: e, + db: recvs[e].db, + qi: recvs[e].qi, + prres: recvs[e].prres.toFixed(1), + elev: recvs[e].elev, + used: recvs[e].used + }); + }); makeTable("#galileo", newarr, results[0]); };