2020-05-07 07:21:12 +00:00
|
|
|
var buf = Graphics.createArrayBuffer(240,120,1,{msb:true});
|
2019-10-30 20:34:41 +00:00
|
|
|
var lastFix = {fix:0,satellites:0};
|
|
|
|
function onGPS(fix) {
|
|
|
|
lastFix = fix;
|
2020-05-07 07:21:12 +00:00
|
|
|
buf.clear();
|
|
|
|
buf.setFontAlign(0,0);
|
|
|
|
buf.setFont("6x8");
|
|
|
|
buf.drawString(fix.satellites+" satellites",120,6);
|
2019-10-30 20:34:41 +00:00
|
|
|
if (fix.fix) {
|
2020-05-07 07:21:12 +00:00
|
|
|
var speed = require("locale").speed(fix.speed);
|
|
|
|
var m = speed.match(/([0-9,\.]+)(.*)/); // regex splits numbers from units
|
2019-10-30 20:34:41 +00:00
|
|
|
var txt = (fix.speed<20) ? fix.speed.toFixed(1) : Math.round(fix.speed);
|
2020-05-07 07:21:12 +00:00
|
|
|
var value = m[1], units = m[2];
|
2019-10-30 20:34:41 +00:00
|
|
|
var s = 80;
|
2020-05-07 07:21:12 +00:00
|
|
|
buf.setFontVector(s);
|
|
|
|
buf.drawString(value,120,10+s/2);
|
|
|
|
buf.setFont("6x8",2);
|
|
|
|
buf.drawString(units,120,s+26);
|
2019-10-30 20:34:41 +00:00
|
|
|
} else {
|
2020-05-07 07:21:12 +00:00
|
|
|
buf.setFont("6x8",2);
|
|
|
|
buf.drawString("Waiting for GPS",120,56);
|
2019-10-30 20:34:41 +00:00
|
|
|
}
|
2020-05-07 07:21:12 +00:00
|
|
|
g.reset();
|
|
|
|
g.drawImage({width:buf.getWidth(),height:buf.getHeight(),bpp:1,buffer:buf.buffer},0,70);
|
2019-10-30 20:34:41 +00:00
|
|
|
g.flip();
|
|
|
|
}
|
2020-05-07 07:21:12 +00:00
|
|
|
g.clear();
|
2019-10-30 20:34:41 +00:00
|
|
|
onGPS(lastFix);
|
2020-05-07 07:21:12 +00:00
|
|
|
Bangle.loadWidgets();
|
|
|
|
Bangle.drawWidgets();
|
|
|
|
|
2019-10-30 20:34:41 +00:00
|
|
|
Bangle.on('GPS', onGPS);
|
2020-05-26 16:02:10 +00:00
|
|
|
Bangle.setGPSPower(1);
|