BangleApps/apps/bthrm/recorder.js

74 lines
2.1 KiB
JavaScript
Raw Permalink Normal View History

(function(recorders) {
recorders.bthrm = function() {
var bpm = "";
var bat = "";
var energy = "";
var contact = "";
var rr= "";
function onHRM(h) {
bpm = h.bpm;
bat = h.bat;
energy = h.energy;
contact = h.contact;
if (h.rr) rr = h.rr.join(";");
}
return {
name : "BT HR",
fields : ["BT Heartrate", "BT Battery", "Energy expended", "Contact", "RR"],
getValues : () => {
2024-03-13 10:51:40 +00:00
const result = [bpm,bat,energy,contact,rr];
bpm = "";
rr = "";
bat = "";
energy = "";
contact = "";
return result;
},
start : () => {
Bangle.on('BTHRM', onHRM);
if (Bangle.setBTHRMPower) Bangle.setBTHRMPower(1,"recorder");
},
stop : () => {
Bangle.removeListener('BTHRM', onHRM);
if (Bangle.setBTHRMPower) Bangle.setBTHRMPower(0,"recorder");
},
draw : (x,y) => g.setColor((Bangle.isBTHRMActive && Bangle.isBTHRMActive())?"#00f":"#88f").drawImage(atob("DAwBAAAAMMeef+f+f+P8H4DwBgAA"),x,y)
};
};
recorders.hrmint = function() {
var active = false;
var bpmTimeout;
2022-11-12 21:47:03 +00:00
var bpm = "", bpmConfidence = "";
function onHRM(h) {
bpmConfidence = h.confidence;
bpm = h.bpm;
if (h.bpm > 0){
active = true;
if (bpmTimeout) clearTimeout(bpmTimeout);
bpmTimeout = setTimeout(()=>{
active = false;
},3000);
}
}
return {
name : "HR int",
2022-11-12 21:47:03 +00:00
fields : ["Int Heartrate", "Int Confidence"],
getValues : () => {
2022-11-12 21:47:03 +00:00
var r = [bpm,bpmConfidence];
bpm = ""; bpmConfidence = "";
return r;
},
start : () => {
2022-11-12 21:47:03 +00:00
Bangle.on('HRM_int', onHRM);
if (Bangle.origSetHRMPower) Bangle.origSetHRMPower(1,"recorder");
},
stop : () => {
2022-11-12 21:47:03 +00:00
Bangle.removeListener('HRM_int', onHRM);
if (Bangle.origSetHRMPower) Bangle.origSetHRMPower(0,"recorder");
},
draw : (x,y) => g.setColor(( Bangle.origIsHRMOn && Bangle.origIsHRMOn() && active)?"#0f0":"#8f8").drawImage(atob("DAwBAAAAMMeef+f+f+P8H4DwBgAA"),x,y)
};
};
})