Add heart rate widget
parent
a5571f0dfd
commit
0541cc10cd
11
apps.json
11
apps.json
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
0.01: New Widget!
|
||||
|
|
@ -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};
|
||||
})();
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"name":"Heart Rate Widget", "type":"widget",
|
||||
"src":"=whrm"
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.7 KiB |
Loading…
Reference in New Issue