mirror of https://github.com/espruino/BangleApps
53 lines
1.4 KiB
JavaScript
53 lines
1.4 KiB
JavaScript
(() => {
|
|
if (!Bangle.isLocked) return; // old firmware
|
|
var currentBPM;
|
|
var lastBPM;
|
|
var isHRMOn = false;
|
|
|
|
// turn on sensor when the LCD is unlocked
|
|
Bangle.on('lock', function(isLocked) {
|
|
if (!isLocked) {
|
|
Bangle.setHRMPower(1,"widhrm");
|
|
currentBPM = undefined;
|
|
WIDGETS["hrm"].draw();
|
|
} else {
|
|
Bangle.setHRMPower(0,"widhrm");
|
|
}
|
|
});
|
|
|
|
var hp = Bangle.setHRMPower;
|
|
Bangle.setHRMPower = () => {
|
|
hp.apply(Bangle, arguments);
|
|
isHRMOn = Bangle.isHRMOn();
|
|
WIDGETS["hrm"].draw();
|
|
};
|
|
|
|
Bangle.on('HRM',function(d) {
|
|
currentBPM = d.bpm;
|
|
lastBPM = currentBPM;
|
|
WIDGETS["hrm"].draw();
|
|
});
|
|
|
|
// add your widget
|
|
WIDGETS["hrm"]={area:"tl",width:24,draw:function() {
|
|
var width = 24;
|
|
g.reset();
|
|
g.setFont("6x8", 1).setFontAlign(0, 0);
|
|
g.clearRect(this.x,this.y+15,this.x+width,this.y+23); // erase background
|
|
var bpm = currentBPM, isCurrent = true;
|
|
if (bpm===undefined) {
|
|
bpm = lastBPM;
|
|
isCurrent = false;
|
|
}
|
|
if (bpm===undefined)
|
|
bpm = "--";
|
|
g.setColor(isCurrent ? g.theme.fg : "#808080");
|
|
g.drawString(bpm, this.x+width/2, this.y+19);
|
|
g.setColor(isHRMOn ? "#ff0033" : "#808080");
|
|
g.drawImage(atob("CgoCAAABpaQ//9v//r//5//9L//A/+AC+AAFAA=="),this.x+(width-10)/2,this.y+1);
|
|
g.setColor(-1);
|
|
}};
|
|
|
|
Bangle.setHRMPower(!Bangle.isLocked(),"widhrm");
|
|
})();
|