mirror of https://github.com/espruino/BangleApps
[] altimeter: immediately show altitude after calibration changes
parent
ae5bb890e8
commit
0c220b4091
|
@ -6,8 +6,7 @@ Bangle.drawWidgets();
|
|||
var R = Bangle.appRect;
|
||||
var y = R.y + R.h/2;
|
||||
var MEDIANLENGTH = 20;
|
||||
var avr = [], median;
|
||||
var value = 0;
|
||||
var avr = [];
|
||||
|
||||
function fmt(t) {
|
||||
if ((t > -100) && (t < 1000))
|
||||
|
@ -20,25 +19,28 @@ function fmt(t) {
|
|||
Bangle.on('pressure', function(e) {
|
||||
while (avr.length>MEDIANLENGTH) avr.pop();
|
||||
avr.unshift(e.altitude);
|
||||
median = avr.slice().sort();
|
||||
let median = avr.slice().sort();
|
||||
g.reset().clearRect(0,y-30,g.getWidth()-10,R.h);
|
||||
if (median.length>10) {
|
||||
var mid = median.length>>1;
|
||||
value = E.sum(median.slice(mid-4,mid+5)) / 9;
|
||||
t = fmt(value);
|
||||
g.setFont("Vector",50).setFontAlign(0,0).drawString(t, g.getWidth()/2, y);
|
||||
var value = E.sum(median.slice(mid-4,mid+5)) / 9;
|
||||
} else {
|
||||
var value = median[median.length>>1];
|
||||
}
|
||||
t = fmt(value);
|
||||
|
||||
let o = Bangle.getOptions();
|
||||
let sea = o.seaLevelPressure;
|
||||
t = fmt(sea) + " " + e.temperature.toFixed(1);
|
||||
if (0) {
|
||||
g.setFont("Vector",50).setFontAlign(0,0).drawString(t, g.getWidth()/2, y);
|
||||
|
||||
let o = Bangle.getOptions();
|
||||
let sea = o.seaLevelPressure;
|
||||
t = sea.toFixed(1) + " " + e.temperature.toFixed(1);
|
||||
if (0) {
|
||||
print("alt raw:", value.toFixed(1));
|
||||
print("temperature:", e.temperature);
|
||||
print("pressure:", e.pressure);
|
||||
print("sea pressure:", sea);
|
||||
}
|
||||
g.setFont("Vector",25).setFontAlign(-1,0).drawString(t, 10, R.y+R.h - 35);
|
||||
}
|
||||
g.setFont("Vector",25).setFontAlign(-1,0).drawString(t, 10, R.y+R.h - 35);
|
||||
});
|
||||
|
||||
function setPressure(m, a) {
|
||||
|
@ -46,6 +48,7 @@ function setPressure(m, a) {
|
|||
print(o);
|
||||
o.seaLevelPressure = o.seaLevelPressure * m + a;
|
||||
Bangle.setOptions(o);
|
||||
avr = [];
|
||||
}
|
||||
|
||||
print(g.getFonts());
|
||||
|
@ -57,7 +60,7 @@ g.drawString(/*LANG*/"SEA L (hPa) TEMP (C)", g.getWidth()/2, y+62);
|
|||
g.flip();
|
||||
g.setFont("6x8").setFontAlign(0,0,3).drawString(/*LANG*/"STD", g.getWidth()-5, g.getHeight()/2);
|
||||
Bangle.setUI("updown", btn=> {
|
||||
if (!btn) setPressure(0, 1023.25);
|
||||
if (!btn) setPressure(0, 1013.25);
|
||||
if (btn<0) setPressure(1, 1);
|
||||
if (btn>0) setPressure(1, -1);
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue