2020-12-08 15:40:15 +00:00
|
|
|
var m = require("openstmap");
|
2020-05-08 21:06:36 +00:00
|
|
|
var HASWIDGETS = true;
|
|
|
|
var y1,y2;
|
2020-04-07 20:41:57 +00:00
|
|
|
var fix = {};
|
|
|
|
|
|
|
|
function redraw() {
|
2020-05-08 21:06:36 +00:00
|
|
|
g.setClipRect(0,y1,g.getWidth()-1,y2);
|
2020-12-08 15:40:15 +00:00
|
|
|
m.draw();
|
2020-04-08 20:22:51 +00:00
|
|
|
drawMarker();
|
2020-12-08 15:56:53 +00:00
|
|
|
if (WIDGETS["gpsrec"] && WIDGETS["gpsrec"].plotTrack) {
|
|
|
|
g.setColor(0.75,0.2,0);
|
|
|
|
WIDGETS["gpsrec"].plotTrack(m);
|
|
|
|
}
|
2020-05-08 21:06:36 +00:00
|
|
|
g.setClipRect(0,0,g.getWidth()-1,g.getHeight()-1);
|
2020-04-08 20:22:51 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
function drawMarker() {
|
|
|
|
if (!fix.fix) return;
|
2020-12-08 15:40:15 +00:00
|
|
|
var p = m.latLonToXY(fix.lat, fix.lon);
|
2020-04-07 20:41:57 +00:00
|
|
|
g.setColor(1,0,0);
|
2020-12-08 15:40:15 +00:00
|
|
|
g.fillRect(p.x-2, p.y-2, p.x+2, p.y+2);
|
2020-04-07 20:41:57 +00:00
|
|
|
}
|
2020-04-08 20:22:51 +00:00
|
|
|
|
2020-04-07 20:41:57 +00:00
|
|
|
var fix;
|
|
|
|
Bangle.on('GPS',function(f) {
|
|
|
|
fix=f;
|
2021-09-15 15:40:34 +00:00
|
|
|
g.reset().clearRect(0,y1,240,y1+8).setFont("6x8").setFontAlign(0,0);
|
2020-04-07 20:41:57 +00:00
|
|
|
var txt = fix.satellites+" satellites";
|
|
|
|
if (!fix.fix)
|
|
|
|
txt += " - NO FIX";
|
2020-12-08 15:40:15 +00:00
|
|
|
g.drawString(txt,120,y1 + 4);
|
2020-04-08 20:22:51 +00:00
|
|
|
drawMarker();
|
2020-04-07 20:41:57 +00:00
|
|
|
});
|
2021-06-11 10:34:05 +00:00
|
|
|
Bangle.setGPSPower(1, "app");
|
2020-05-08 21:06:36 +00:00
|
|
|
|
|
|
|
if (HASWIDGETS) {
|
|
|
|
Bangle.loadWidgets();
|
|
|
|
Bangle.drawWidgets();
|
|
|
|
y1 = 24;
|
|
|
|
var hasBottomRow = Object.keys(WIDGETS).some(w=>WIDGETS[w].area[0]=="b");
|
|
|
|
y2 = g.getHeight() - (hasBottomRow ? 24 : 1);
|
|
|
|
} else {
|
|
|
|
y1=0;
|
|
|
|
y2=g.getHeight()-1;
|
|
|
|
}
|
|
|
|
|
2020-04-07 20:41:57 +00:00
|
|
|
redraw();
|
|
|
|
|
2021-06-24 10:37:30 +00:00
|
|
|
function recenter() {
|
2020-04-07 20:41:57 +00:00
|
|
|
if (!fix.fix) return;
|
2020-12-08 15:40:15 +00:00
|
|
|
m.lat = fix.lat;
|
|
|
|
m.lon = fix.lon;
|
2020-04-07 20:41:57 +00:00
|
|
|
redraw();
|
2021-06-24 10:37:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
setWatch(recenter, global.BTN2?BTN2:BTN1, {repeat:true});
|
2021-06-11 10:34:05 +00:00
|
|
|
|
|
|
|
var hasScrolled = false;
|
2021-06-24 10:37:30 +00:00
|
|
|
Bangle.on('drag',e=>{
|
2021-06-11 10:34:05 +00:00
|
|
|
if (e.b) {
|
|
|
|
g.setClipRect(0,y1,g.getWidth()-1,y2);
|
|
|
|
g.scroll(e.dx,e.dy);
|
|
|
|
m.scroll(e.dx,e.dy);
|
|
|
|
g.setClipRect(0,0,g.getWidth()-1,g.getHeight()-1);
|
|
|
|
hasScrolled = true;
|
|
|
|
} else if (hasScrolled) {
|
|
|
|
hasScrolled = false;
|
|
|
|
redraw();
|
|
|
|
}
|
|
|
|
});
|