Update widalt.wid.js
parent
8c70038661
commit
4e6cc0961d
|
|
@ -1,38 +1,42 @@
|
||||||
(() => {
|
(() => {
|
||||||
var alt = "";
|
var alt = "";
|
||||||
var lastAlt=0;
|
var lastAlt;
|
||||||
|
var timeout;
|
||||||
var settings = Object.assign({
|
var settings = Object.assign({
|
||||||
interval: 5000,
|
interval: 60000,
|
||||||
}, require('Storage').readJSON("widalt.json", true) || {});
|
}, require('Storage').readJSON("widalt.json", true) || {});
|
||||||
Bangle.setBarometerPower(true, "widalt");
|
Bangle.setBarometerPower(true, "widalt");
|
||||||
Bangle.on("pressure", (p) => {
|
Bangle.on("pressure", (p) => {
|
||||||
|
if (timeout) return;
|
||||||
|
//some other app is using the barometer - ignore new readings until our interval is up
|
||||||
if (Math.floor(p.altitude) != lastAlt) {
|
if (Math.floor(p.altitude) != lastAlt) {
|
||||||
lastAlt = Math.floor(p.altitude);
|
lastAlt = Math.floor(p.altitude);
|
||||||
|
nextUpdate = Date.now() + settings.interval;
|
||||||
alt = p.altitude.toFixed(0);
|
alt = p.altitude.toFixed(0);
|
||||||
var w = WIDGETS["widalt"].width;
|
WIDGETS.widalt.draw();
|
||||||
WIDGETS["widalt"].width = 1 + (alt.length)*12+16;
|
|
||||||
if (w!=WIDGETS["widalt"].width) Bangle.drawWidgets();
|
|
||||||
else WIDGETS["widalt"].draw();
|
|
||||||
}
|
}
|
||||||
Bangle.setBarometerPower(false,"widalt")
|
Bangle.setBarometerPower(false, "widalt");
|
||||||
setTimeout(()=>{Bangle.setBarometerPower(true,"widalt");},settings.interval);
|
timeout = setTimeout(() => {
|
||||||
|
timeout = undefined;
|
||||||
|
Bangle.setBarometerPower(true, "widalt");
|
||||||
|
}, settings.interval);
|
||||||
});
|
});
|
||||||
|
|
||||||
function draw() {
|
function draw() {
|
||||||
if (!Bangle.isLCDOn()) return;
|
if (!Bangle.isLCDOn()) return;
|
||||||
g.reset();
|
g.reset();
|
||||||
g.setColor(g.theme.bg);
|
g.clearRect(this.x, this.y, this.x + this.width, this.y + 23);
|
||||||
g.fillRect(this.x, this.y, this.x + this.width, this.y + 23);
|
var w = this.width;
|
||||||
g.setColor(g.theme.fg);
|
this.width = 1 + (alt.length) * 12 + 16;
|
||||||
|
if (w != this.width) Bangle.drawWidgets();
|
||||||
g.drawImage(atob("EBCBAAAAAAAIAAwgFXAX0BCYIIggTD/EYPZADkACf/4AAAAA"), this.x, this.y + 4);
|
g.drawImage(atob("EBCBAAAAAAAIAAwgFXAX0BCYIIggTD/EYPZADkACf/4AAAAA"), this.x, this.y + 4);
|
||||||
g.setFontCustom(atob("AAAAABwAAOAAAgAAHAADwAD4AB8AB8AA+AAeAADAAAAOAAP+AH/8B4DwMAGBgAwMAGBgAwOAOA//gD/4AD4AAAAAAAABgAAcAwDAGAwAwP/+B//wAAGAAAwAAGAAAAAAAAIAwHgOA4DwMA+BgOwMDmBg4wOeGA/gwDwGAAAAAAAAAGAHA8A4DwMAGBhAwMMGBjgwOcOA+/gDj4AAAAABgAAcAAHgADsAA5gAOMAHBgBwMAP/+B//wABgAAMAAAAAAAgD4OB/AwOYGBjAwMYGBjBwMe8Bh/AIHwAAAAAAAAAfAAP8AHxwB8GAdgwPMGBxgwMOOAB/gAH4AAAAAAABgAAMAABgAwMAeBgPgMHwBj4AN8AB+AAPAABAAAAAAAMfAH38B/xwMcGBhgwMMGBjgwP+OA+/gDj4AAAAAAAAOAAH4AA/gQMMGBgzwME8BhvAOPgA/4AD8AAEAAAAAAGAwA4OAHBwAAA="), 46, atob("BAgMDAwMDAwMDAwMBQ=="), 21 + (1 << 8) + (1 << 16));
|
g.setFontCustom(atob("AAAAABwAAOAAAgAAHAADwAD4AB8AB8AA+AAeAADAAAAOAAP+AH/8B4DwMAGBgAwMAGBgAwOAOA//gD/4AD4AAAAAAAABgAAcAwDAGAwAwP/+B//wAAGAAAwAAGAAAAAAAAIAwHgOA4DwMA+BgOwMDmBg4wOeGA/gwDwGAAAAAAAAAGAHA8A4DwMAGBhAwMMGBjgwOcOA+/gDj4AAAAABgAAcAAHgADsAA5gAOMAHBgBwMAP/+B//wABgAAMAAAAAAAgD4OB/AwOYGBjAwMYGBjBwMe8Bh/AIHwAAAAAAAAAfAAP8AHxwB8GAdgwPMGBxgwMOOAB/gAH4AAAAAAABgAAMAABgAwMAeBgPgMHwBj4AN8AB+AAPAABAAAAAAAMfAH38B/xwMcGBhgwMMGBjgwP+OA+/gDj4AAAAAAAAOAAH4AA/gQMMGBgzwME8BhvAOPgA/4AD8AAEAAAAAAGAwA4OAHBwAAA="), 46, atob("BAgMDAwMDAwMDAwMBQ=="), 21 + (1 << 8) + (1 << 16));
|
||||||
g.setFontAlign(-1, 0);
|
g.setFontAlign(-1, 0);
|
||||||
g.drawString(alt, this.x + 16, this.y + 12);
|
g.drawString(alt, this.x + 16, this.y + 12);
|
||||||
}
|
}
|
||||||
WIDGETS["widalt"] = {
|
WIDGETS.widalt = {
|
||||||
area: "tr",
|
area: "tr",
|
||||||
width: 6,
|
width: 6,
|
||||||
draw: draw
|
draw: draw
|
||||||
};
|
};
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue