Merge pull request #1449 from myxor/widgps_v0.04

GPS widget: show fix status
master
Gordon Williams 2022-02-14 11:59:48 +00:00 committed by GitHub
commit e20e865d05
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 15 additions and 6 deletions

View File

@ -1,3 +1,4 @@
0.01: First version
0.02: Don't break if running on 2v08 firmware (just don't display anything)
0.03: Fix positioning
0.04: Show GPS fix status

View File

@ -1,14 +1,17 @@
# GPS Power Status Widget
A simple widget that shows the on/off status of the GPS.
A simple widget that shows the on/off and fix status of the GPS.
The GPS can quickly run the battery down if it is on all the time so
it is useful to know if it has been switched on or not.
- Uses Bangle.isGPSOn()
- Shows in grey when the GPS is off
- Shows in amber when the GPS is on
- Shows in amber when the GPS is on but has no fix
- Shows in green when the GPS is on and has a fix
Written by: [Hugh Barney](https://github.com/hughbarney) For support
and discussion please post in the [Bangle JS
Forum](http://forum.espruino.com/microcosms/1424/)
Extended by Marco ([myxor](https://github.com/myxor))

View File

@ -1,8 +1,8 @@
{
"id": "widgps",
"name": "GPS Widget",
"version": "0.03",
"description": "Tiny widget to show the power on/off status of the GPS",
"version": "0.04",
"description": "Tiny widget to show the power and fix status of the GPS",
"icon": "widget.png",
"type": "widget",
"tags": "widget,gps",

View File

@ -4,7 +4,12 @@
function draw() {
g.reset();
if (Bangle.isGPSOn()) {
g.setColor("#FD0"); // on = amber
const gpsObject = Bangle.getGPSFix();
if (gpsObject && gpsObject.fix > 0) {
g.setColor("#0F0"); // on and has fix = green
} else {
g.setColor("#FD0"); // on but no fix = amber
}
} else {
g.setColor("#888"); // off = grey
}
@ -15,7 +20,7 @@
Bangle.on('lcdPower', function(on) {
if (on) {
WIDGETS.gps.draw();
if (!timerInterval) timerInterval = setInterval(()=>WIDGETS["gps"].draw(), 2000);
if (!timerInterval) timerInterval = setInterval(()=>WIDGETS.gps.draw(), 2000);
} else {
if (timerInterval) {
clearInterval(timerInterval);