mirror of https://github.com/espruino/BangleApps
Merge branch 'master' of github.com:espruino/BangleApps
commit
d6e2295c8c
|
@ -1,2 +1,3 @@
|
||||||
0.01: First published version of app
|
0.01: First published version of app
|
||||||
0.02: Added support for locale and 12H clock
|
0.02: Added support for locale and 12H clock
|
||||||
|
0.03: Added HR indication to clock
|
||||||
|
|
|
@ -7,6 +7,12 @@
|
||||||
var locale = require('locale');
|
var locale = require('locale');
|
||||||
var _12hour = (require("Storage").readJSON("setting.json", 1) || {})["12hour"] || false;
|
var _12hour = (require("Storage").readJSON("setting.json", 1) || {})["12hour"] || false;
|
||||||
|
|
||||||
|
//HR variables
|
||||||
|
var id = 0;
|
||||||
|
var grow = true;
|
||||||
|
var size=10;
|
||||||
|
|
||||||
|
//Screen dimensions
|
||||||
const screen = {
|
const screen = {
|
||||||
width: g.getWidth(),
|
width: g.getWidth(),
|
||||||
height: g.getWidth(),
|
height: g.getWidth(),
|
||||||
|
@ -39,6 +45,12 @@
|
||||||
middle: screen.middle,
|
middle: screen.middle,
|
||||||
center: screen.center,
|
center: screen.center,
|
||||||
height: screen.height
|
height: screen.height
|
||||||
|
},
|
||||||
|
hr: {
|
||||||
|
color: '#333333',
|
||||||
|
size: 10,
|
||||||
|
x: screen.center,
|
||||||
|
y: screen.middle + 45
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -144,7 +156,7 @@
|
||||||
} else {
|
} else {
|
||||||
timestr = hours;
|
timestr = hours;
|
||||||
}
|
}
|
||||||
|
g.setFontAlign(0, 0, 0);
|
||||||
g.setColor(settings.time.color);
|
g.setColor(settings.time.color);
|
||||||
g.setFont(settings.time.font, settings.time.size);
|
g.setFont(settings.time.font, settings.time.size);
|
||||||
g.drawString(timestr, settings.time.center, settings.time.middle);
|
g.drawString(timestr, settings.time.center, settings.time.middle);
|
||||||
|
@ -155,19 +167,63 @@
|
||||||
g.drawString(date, settings.date.center, settings.date.middle);
|
g.drawString(date, settings.date.center, settings.date.middle);
|
||||||
};
|
};
|
||||||
|
|
||||||
Bangle.on('lcdPower', function (on) {
|
//setInterval for HR visualisation
|
||||||
if (on) drawClock();
|
const newBeats = function (hr) {
|
||||||
});
|
if (id != 0) {
|
||||||
|
changeInterval(id, 6e3 / hr.bpm);
|
||||||
|
} else {
|
||||||
|
id = setInterval(drawHR, 6e3 / hr.bpm);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//visualize HR with circles pulsating
|
||||||
|
const drawHR = function () {
|
||||||
|
if (grow && size < settings.hr.size) {
|
||||||
|
size++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!grow && size > 3) {
|
||||||
|
size--;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (size == settings.hr.size || size == 3) {
|
||||||
|
grow = !grow;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (grow) {
|
||||||
|
color = settings.hr.color;
|
||||||
|
g.setColor(color);
|
||||||
|
g.fillCircle(settings.hr.x, settings.hr.y, size);
|
||||||
|
} else {
|
||||||
|
color = "#000000";
|
||||||
|
g.setColor(color);
|
||||||
|
g.drawCircle(settings.hr.x, settings.hr.y, size);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// clean app screen
|
// clean app screen
|
||||||
g.clear();
|
g.clear();
|
||||||
g.setFontAlign(0, 0, 0);
|
|
||||||
Bangle.loadWidgets();
|
Bangle.loadWidgets();
|
||||||
Bangle.drawWidgets();
|
Bangle.drawWidgets();
|
||||||
|
|
||||||
// refesh every 30 sec
|
//manage when things should be enabled and not
|
||||||
|
Bangle.on('lcdPower', function (on) {
|
||||||
|
if (on) {
|
||||||
|
Bangle.setHRMPower(1);
|
||||||
|
} else {
|
||||||
|
Bangle.setHRMPower(0);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// refesh every second
|
||||||
setInterval(drawClock, 1E3);
|
setInterval(drawClock, 1E3);
|
||||||
|
|
||||||
|
//start HR monitor and update frequency of update
|
||||||
|
Bangle.setHRMPower(1);
|
||||||
|
Bangle.on('HRM', function (d) {
|
||||||
|
newBeats(d);
|
||||||
|
});
|
||||||
|
|
||||||
// draw now
|
// draw now
|
||||||
drawClock();
|
drawClock();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue