skyspy: add event timing

master
Pavel Machek 2024-11-24 22:31:50 +01:00
parent 98d3a9c41d
commit 6db5940fec
1 changed files with 29 additions and 5 deletions

View File

@ -145,7 +145,7 @@ let fmt = {
}, },
}; };
/* gps library v0.1.4 */ /* gps library v0.1.4 (bad changes, revert!) */
let gps = { let gps = {
emulator: -1, emulator: -1,
init: function(x) { init: function(x) {
@ -154,7 +154,7 @@ let gps = {
}, },
state: {}, state: {},
on_gps: function(f) { on_gps: function(f) {
let fix = this.getGPSFix(); let fix = this.getGPSFix();
f(fix); f(fix);
/* /*
@ -189,6 +189,7 @@ let gps = {
return fix; return fix;
}, },
gps_start : -1, gps_start : -1,
fix_start : -1,
start_gps: function() { start_gps: function() {
Bangle.setGPSPower(1, "libgps"); Bangle.setGPSPower(1, "libgps");
this.gps_start = getTime(); this.gps_start = getTime();
@ -377,6 +378,8 @@ let quality = {
max_dalt: -9999, max_dalt: -9999,
step: 0, step: 0,
dalt: 0, dalt: 0,
fix_start: -1,
f3d_start: -1,
resetAlt: function() { resetAlt: function() {
this.min_dalt = 9999; this.min_dalt = 9999;
@ -397,6 +400,11 @@ let quality = {
adelta = "adelta ", tdelta = "tdelta "; adelta = "adelta ", tdelta = "tdelta ";
fix = gps.getGPSFix(); fix = gps.getGPSFix();
if (!fix || !fix.fix || !fix.lat)
this.fix_start = getTime();
if (qalt > 10)
this.f3d_start = getTime();
if (adj_time) { if (adj_time) {
print("Adjusting time"); print("Adjusting time");
setTime(fix.time.getTime()/1000); setTime(fix.time.getTime()/1000);
@ -474,6 +482,12 @@ let quality = {
msg = speed + "km/h\n" + "e" + hdop + "m" + "\ndd " + msg = speed + "km/h\n" + "e" + hdop + "m" + "\ndd " +
qalt.toFixed(0) + "\n(" + quality.step + "/" + qalt.toFixed(0) + "\n(" + quality.step + "/" +
ddalt.toFixed(0) + ")" + "\n" + alt + "m+" + adelta; ddalt.toFixed(0) + ")" + "\n" + alt + "m+" + adelta;
} else {
let t = getTime();
msg = "St: " + fmt.fmtTimeDiff(t-gps.gps_start) + "\n";
msg += "Sky: " + fmt.fmtTimeDiff(t-gps.gps_start) + "\n";
msg += "2D: " + fmt.fmtTimeDiff(t-this.fix_start) + "\n";
msg += "3D: " + fmt.fmtTimeDiff(t-this.f3d_start) + "\n";
} }
quality.step++; quality.step++;
if (quality.step == 10) { if (quality.step == 10) {
@ -491,6 +505,8 @@ let sky = {
sats: [], sats: [],
snum: 0, snum: 0,
sats_used: 0, sats_used: 0,
sky_start: -1,
this_usable: 0,
drawGrid: function() { drawGrid: function() {
g.setColor(0,0,0); g.setColor(0,0,0);
@ -505,7 +521,6 @@ let sky = {
}, },
radCircle: function(d) { radCircle: function(d) {
/* FIXME: .. should do real circle */
g.drawCircle(radX(0, 0), radY(0, 0), radD(d)); g.drawCircle(radX(0, 0), radY(0, 0), radD(d));
if (1) if (1)
return; return;
@ -521,7 +536,12 @@ let sky = {
let x = radX(a, e); let x = radX(a, e);
let y = radY(a, e); let y = radY(a, e);
g.setColor(s.snr === "" ? 1 : 0, s.snr === "" ? 0.25 : 0, s.snr === "" ? 0.25 : 0); if (s.snr === "")
g.setColor(1, 0.25, 0.25);
else {
g.setColor(0, 0, 0);
this.usable ++;
}
g.drawString(s.id, x, y); g.drawString(s.id, x, y);
}, },
@ -535,7 +555,10 @@ let sky = {
.setFont("Vector", 20) .setFont("Vector", 20)
.setFontAlign(0, 0); .setFontAlign(0, 0);
this.drawGrid(); this.drawGrid();
this.usable = 0;
sats.forEach(s => this.drawSat(s)); sats.forEach(s => this.drawSat(s));
if (this.usable < 5)
this.sky_start = getTime();
if (fix && fix.fix && fix.lat) { if (fix && fix.fix && fix.lat) {
g.setColor(0, 0, 0) g.setColor(0, 0, 0)
@ -576,13 +599,14 @@ function markGps() {
} }
ui.init(); ui.init();
ui.numScreens = 3; ui.numScreens = 4;
gps.init(); gps.init();
quality.resetAlt(); quality.resetAlt();
fmt.init(); fmt.init();
sky.decorate = () => { sky.decorate = () => {
let p = 15; let p = 15;
return;
pie.twoPie(p, p+ui.wi, p, quality.dalt, qalt); pie.twoPie(p, p+ui.wi, p, quality.dalt, qalt);
}; };
ui.topLeft = () => { ui.drawMsg("Clock\nadjust"); adj_time = 1; }; ui.topLeft = () => { ui.drawMsg("Clock\nadjust"); adj_time = 1; };