Add heart rate widget

master
Gordon Williams 2020-02-13 12:08:35 +00:00
parent a5571f0dfd
commit 0541cc10cd
5 changed files with 69 additions and 0 deletions

View File

@ -319,6 +319,17 @@
{"name":"*hrm","url":"heartrate-icon.js","evaluate":true}
]
},
{ "id": "whrm",
"name": "Simple Heart Rate widget",
"icon": "widget.png",
"version":"0.01",
"description": "When the screen is turned on, the widget turns on the heart rate monitor and displays the detected heart rate - can take 20s to get a reading.",
"tags": "health,widget",
"storage": [
{"name":"+whrm","url":"widget.json"},
{"name":"=whrm","url":"widget.js"}
]
},
{ "id": "stetho",
"name": "Stethoscope",
"icon": "stetho.png",

1
apps/whrm/ChangeLog Normal file
View File

@ -0,0 +1 @@
0.01: New Widget!

53
apps/whrm/widget.js Normal file
View File

@ -0,0 +1,53 @@
(() => {
var xpos = WIDGETPOS.tl;
var width = 24;
WIDGETPOS.tl += width+2;
var currentBPM = undefined;
var lastBPM = undefined;
var firstBPM = true; // first reading since sensor turned on
function draw() {
g.reset();
g.setFont("6x8", 1);
g.setFontAlign(0, 0);
g.clearRect(xpos,15,xpos+width,24); // erase background
var bpm = currentBPM, isCurrent = true;
if (bpm===undefined) {
bpm = lastBPM;
isCurrent = false;
}
if (bpm===undefined)
bpm = "--";
g.setColor(isCurrent ? "#ffffff" : "#808080");
g.drawString(bpm, xpos+width/2, 19);
g.setColor(isCurrent ? "#ff0033" : "#808080");
g.drawImage(atob("CgoCAAABpaQ//9v//r//5//9L//A/+AC+AAFAA=="),xpos+(width-10)/2,1);
g.setColor(-1);
}
// redraw when the LCD turns on
Bangle.on('lcdPower', function(on) {
if (on) {
Bangle.setHRMPower(1);
firstBPM = true;
currentBPM = undefined;
draw();
} else {
Bangle.setHRMPower(0);
}
});
Bangle.on('HRM',function(d) {
if (firstBPM)
firstBPM=false; // ignore the first one as it's usually rubbish
else {
currentBPM = d.bpm;
lastBPM = currentBPM;
}
draw();
});
Bangle.setHRMPower(Bangle.isLCDOn());
// add your widget
WIDGETS["hrm"]={draw:draw};
})();

4
apps/whrm/widget.json Normal file
View File

@ -0,0 +1,4 @@
{
"name":"Heart Rate Widget", "type":"widget",
"src":"=whrm"
}

BIN
apps/whrm/widget.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB