120 lines
3.2 KiB
JavaScript
120 lines
3.2 KiB
JavaScript
"use strict";
|
|
var repeat;
|
|
|
|
moment.relativeTimeThreshold('m', 120);
|
|
|
|
function makeTable(str, arr)
|
|
{
|
|
var table=d3.select(str);
|
|
table.html("");
|
|
var thead=table.append("thead");
|
|
var tbody=table.append("tbody");
|
|
|
|
var rows=tbody.selectAll("tr").
|
|
data(arr).
|
|
enter().
|
|
append("tr");
|
|
|
|
var columns= ["id1", "value1", "id2", "value2", "src", "db", "delta_hz_corr", "qi", "prres", "elev", "used"];
|
|
|
|
// append the header row
|
|
thead.append("tr")
|
|
.selectAll("th")
|
|
.data(columns)
|
|
.enter()
|
|
.append("th")
|
|
.text(function(d) {
|
|
return d;
|
|
});
|
|
|
|
var cells = rows.selectAll("td").
|
|
data(function(row) {
|
|
return columns.map(function(column) {
|
|
var ret={};
|
|
ret.align = "right";
|
|
if(column=="id1" || column == "id2")
|
|
ret.value = row[column]+":";
|
|
else
|
|
ret.value = row[column];
|
|
|
|
ret.color= null;
|
|
return ret;
|
|
})}).
|
|
enter().append("td").html(function(d) {
|
|
return d.value;
|
|
|
|
}).attr("align", d=> d.align).style("background-color", d=> d.color);
|
|
|
|
}
|
|
|
|
var sats={};
|
|
var lastseen=null;
|
|
var sv=2;
|
|
var gnssid=3;
|
|
var sigid=0;
|
|
|
|
function update()
|
|
{
|
|
var seconds = 2;
|
|
clearTimeout(repeat);
|
|
repeat=setTimeout(update, 1000.0*seconds);
|
|
|
|
if(lastseen != null)
|
|
d3.select("#freshness").html(lastseen.fromNow());
|
|
d3.json("./global.json", function(d) {
|
|
lastseen = moment(1000*d["last-seen"]);
|
|
d3.select("#freshness").html(lastseen.fromNow());
|
|
});
|
|
|
|
|
|
d3.queue(1).defer(d3.json, "./sv.json?gnssid="+gnssid+"&sv="+sv+"&sigid="+sigid).defer(d3.json, "./almanac.json").awaitAll(ready);
|
|
|
|
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]);
|
|
};
|
|
|
|
}
|
|
|
|
console.log(window.location.href);
|
|
var url = new URL(window.location.href);
|
|
sv = url.searchParams.get("sv");
|
|
gnssid = url.searchParams.get("gnssid");
|
|
sigid = url.searchParams.get("sigid");
|
|
|
|
|
|
|
|
|
|
repeat=update();
|
|
|
|
|