mirror of https://github.com/espruino/BangleApps
Update app.js
parent
6d1077818b
commit
b4e0467cf2
|
@ -6,7 +6,7 @@ require("Font8x16").add(Graphics);
|
||||||
var intTime=10;
|
var intTime=10;
|
||||||
var altH = [];
|
var altH = [];
|
||||||
var fAlt=0;
|
var fAlt=0;
|
||||||
var roc;
|
var roc,rocAvg;
|
||||||
var gs;
|
var gs;
|
||||||
var lastPressure = Date.now();
|
var lastPressure = Date.now();
|
||||||
var flying=false;
|
var flying=false;
|
||||||
|
@ -24,7 +24,7 @@ Bangle.on('GPS', function(fix) {
|
||||||
|
|
||||||
/*setWatch(function() {
|
/*setWatch(function() {
|
||||||
|
|
||||||
}, (process.env.HWVERSION==2) ? BTN1 : BTN2, {repeat:true});*/
|
}, BTN1);*/
|
||||||
|
|
||||||
setInterval(function () {
|
setInterval(function () {
|
||||||
altH.push(fAlt);
|
altH.push(fAlt);
|
||||||
|
@ -32,7 +32,10 @@ setInterval(function () {
|
||||||
}, 1000);
|
}, 1000);
|
||||||
|
|
||||||
setInterval(function() {
|
setInterval(function() {
|
||||||
if ((!flying) && ((roc>1) || (roc<-1) || (gs>10))) { //take-off detected
|
//var y=0;
|
||||||
|
//gs=100;
|
||||||
|
//fAlt=7777;
|
||||||
|
if ((!flying) && ((rocAvg>1) || (rocAvg<-1) || (gs>10))) { //take-off detected
|
||||||
takeoffTime=Date().getTime();
|
takeoffTime=Date().getTime();
|
||||||
flying=true;
|
flying=true;
|
||||||
flyingTime=0;
|
flyingTime=0;
|
||||||
|
@ -42,36 +45,49 @@ setInterval(function() {
|
||||||
ftString=(flyingTime / 3600000).toFixed(0)+":"+(flyingTime / 60000 % 60).toFixed(0).padStart(2,'0');
|
ftString=(flyingTime / 3600000).toFixed(0)+":"+(flyingTime / 60000 % 60).toFixed(0).padStart(2,'0');
|
||||||
}
|
}
|
||||||
|
|
||||||
roc=(altH[altH.length-1]-altH[0])/intTime;
|
rocAvg=(altH[altH.length-1]-altH[0])/intTime;
|
||||||
|
roc=(altH[altH.length-1]-altH[altH.length-2]);
|
||||||
var timeStr = require("locale").time(Date(),1);
|
var timeStr = require("locale").time(Date(),1);
|
||||||
|
|
||||||
g.reset();
|
g.reset();
|
||||||
g.clear();
|
g.clear();
|
||||||
g.setFont("8x16",4).setFontAlign(1,-1).drawString((fAlt).toFixed(0)+"m", g.getWidth(), 0);
|
//draw altitude
|
||||||
//gs=100;
|
g.setFont("8x16",3).setFontAlign(1,-1).drawString((fAlt).toFixed(0)+"m", g.getWidth(), y);
|
||||||
if (!isNaN(gs)) {
|
//-------------
|
||||||
g.setFont("8x16",3).setFontAlign(1,-1).drawString(gs.toFixed(0), g.getWidth()-20, 14*7);
|
y+=16*3;
|
||||||
g.setFont("8x16",1).setFontAlign(-1,1).drawString("km", g.getWidth()-20, 14*8.5);
|
g.drawLine(24,y-2,g.getWidth(),y-2);
|
||||||
g.setFont("8x16",1).setFontAlign(-1,-1).drawString("h", g.getWidth()-20, 14*8.5);
|
//draw rate of climb
|
||||||
}
|
if (roc>0.1) g.setColor(0,1,0);
|
||||||
g.setColor(0.5,0.5,0.5);
|
if (roc<-1) g.setColor(1,0,0);
|
||||||
g.drawLine(0,14*4,g.getWidth(),14*4);
|
g.setFont("8x16",3).setFontAlign(1,-1).drawString(rocAvg.toFixed(1), g.getWidth()-20, y);
|
||||||
g.drawLine(0,14*7,g.getWidth(),14*7);
|
|
||||||
g.drawLine(0,14*10,g.getWidth(),14*10);
|
|
||||||
g.drawLine(g.getWidth()/2,14*10,g.getWidth()/2,g.getHeight()-1);
|
|
||||||
|
|
||||||
g.setColor(1,1,1);
|
g.setColor(1,1,1);
|
||||||
|
g.setFont("8x16",2).setFontAlign(-1,-1).drawString("m", g.getWidth()-20, y);
|
||||||
|
g.setFont("8x16",2).setFontAlign(-1,-1).drawString("s", g.getWidth()-20, y+20);
|
||||||
|
g.drawLine(g.getWidth()-20,y+26,g.getWidth()-8,y+26);
|
||||||
|
//-------------
|
||||||
|
y+=16*3;
|
||||||
|
g.drawLine(24,y-2,g.getWidth(),y-2);
|
||||||
|
//draw groundspeed
|
||||||
|
if (!isNaN(gs)) {
|
||||||
|
g.setFont("8x16",3).setFontAlign(1,-1).drawString(gs.toFixed(0), g.getWidth()-20, y);
|
||||||
|
g.setFont("8x16",1).setFontAlign(-1,-1).drawString("km", g.getWidth()-20, y+4);
|
||||||
|
g.setFont("8x16",1).setFontAlign(-1,-1).drawString("h", g.getWidth()-20, y+24);
|
||||||
|
g.drawLine(g.getWidth()-20,y+21,g.getWidth()-8,y+21);
|
||||||
|
}
|
||||||
|
//-------------
|
||||||
|
y+=16*3;
|
||||||
|
g.drawLine(0,y-2,g.getWidth(),y-2);
|
||||||
|
g.drawLine(24,0,24,y-2);
|
||||||
|
g.drawLine(g.getWidth()/2,y-2,g.getWidth()/2,g.getHeight()-1);
|
||||||
|
g.setColor(1,1,1);
|
||||||
|
//draw flight time
|
||||||
if (flying) {
|
if (flying) {
|
||||||
g.setFont("8x16",2).setFontAlign(0,-1).drawString(ftString, g.getWidth()*0.75, 14*10+4);
|
g.setFont("8x16",2).setFontAlign(0,-1).drawString(ftString, g.getWidth()*0.75, 14*10+4);
|
||||||
}
|
}
|
||||||
|
//draw time
|
||||||
g.setFont("8x16",2).setFontAlign(0,-1).drawString(timeStr, g.getWidth()/4, 14*10+4);
|
g.setFont("8x16",2).setFontAlign(0,-1).drawString(timeStr, g.getWidth()/4, 14*10+4);
|
||||||
|
//draw bar graph
|
||||||
if (roc>0.1) g.setColor(0,1,0);
|
if (roc>0.1) g.setColor(0,1,0);
|
||||||
if (roc<-1) g.setColor(1,0,0);
|
if (roc<-1) g.setColor(1,0,0);
|
||||||
|
g.fillRect(0,(y-2)/2,23,Math.clip((y-2)/2-roc*20,0,y-2));
|
||||||
g.setFont("8x16",3).setFontAlign(1,-1).drawString(roc.toFixed(1), g.getWidth()-20, 58);
|
|
||||||
g.setFont("8x16",2).setFontAlign(-1,-1).drawString("m", g.getWidth()-20, 51);
|
|
||||||
g.setFont("8x16",2).setFontAlign(-1,-1).drawString("s", g.getWidth()-20, 71);
|
|
||||||
g.drawLine(g.getWidth()-20,77,g.getWidth()-8,77);
|
|
||||||
g.drawLine(g.getWidth()-20,14*8.5-1,g.getWidth()-8,14*8.5-1);
|
|
||||||
|
|
||||||
}, 250);
|
}, 250);
|
||||||
|
|
Loading…
Reference in New Issue