2022-01-06 16:42:29 +00:00
|
|
|
(function(recorders) {
|
|
|
|
recorders.bthrm = function() {
|
2022-01-12 18:46:15 +00:00
|
|
|
var bpm = "";
|
2022-01-28 22:47:56 +00:00
|
|
|
var bat = "";
|
|
|
|
var energy = "";
|
|
|
|
var contact = "";
|
|
|
|
var rr= "";
|
2022-01-06 16:42:29 +00:00
|
|
|
function onHRM(h) {
|
2022-01-12 18:46:15 +00:00
|
|
|
bpm = h.bpm;
|
2022-01-28 22:47:56 +00:00
|
|
|
bat = h.bat;
|
|
|
|
energy = h.energy;
|
|
|
|
contact = h.contact;
|
|
|
|
if (h.rr) rr = h.rr.join(";");
|
2022-01-06 16:42:29 +00:00
|
|
|
}
|
|
|
|
return {
|
2022-01-28 22:47:56 +00:00
|
|
|
name : "BT HR",
|
|
|
|
fields : ["BT Heartrate", "BT Battery", "Energy expended", "Contact", "RR"],
|
2022-01-06 16:42:29 +00:00
|
|
|
getValues : () => {
|
2022-01-28 22:47:56 +00:00
|
|
|
result = [bpm,bat,energy,contact,rr];
|
2022-01-12 18:46:15 +00:00
|
|
|
bpm = "";
|
2022-01-28 22:47:56 +00:00
|
|
|
rr = "";
|
|
|
|
bat = "";
|
|
|
|
energy = "";
|
|
|
|
contact = "";
|
2022-01-06 16:42:29 +00:00
|
|
|
return result;
|
|
|
|
},
|
|
|
|
start : () => {
|
|
|
|
Bangle.on('BTHRM', onHRM);
|
2022-01-28 22:47:56 +00:00
|
|
|
if (Bangle.setBTRHMPower) Bangle.setBTHRMPower(1,"recorder");
|
2022-01-06 16:42:29 +00:00
|
|
|
},
|
|
|
|
stop : () => {
|
|
|
|
Bangle.removeListener('BTHRM', onHRM);
|
2022-01-28 22:47:56 +00:00
|
|
|
if (Bangle.setBTRHMPower) Bangle.setBTHRMPower(0,"recorder");
|
2022-01-06 16:42:29 +00:00
|
|
|
},
|
2022-07-02 08:53:01 +00:00
|
|
|
draw : (x,y) => g.setColor((Bangle.isBTHRMActive && Bangle.isBTHRMActive())?"#00f":"#88f").drawImage(atob("DAwBAAAAMMeef+f+f+P8H4DwBgAA"),x,y)
|
2022-01-06 16:42:29 +00:00
|
|
|
};
|
2022-07-02 08:53:01 +00:00
|
|
|
};
|
|
|
|
recorders.hrmint = function() {
|
|
|
|
var active = false;
|
|
|
|
var bpmTimeout;
|
|
|
|
var bpm = "", bpmConfidence = "", src="";
|
|
|
|
function onHRM(h) {
|
|
|
|
bpmConfidence = h.confidence;
|
|
|
|
bpm = h.bpm;
|
|
|
|
srv = h.src;
|
|
|
|
if (h.bpm > 0){
|
|
|
|
active = true;
|
|
|
|
print("active" + h.bpm);
|
|
|
|
if (bpmTimeout) clearTimeout(bpmTimeout);
|
|
|
|
bpmTimeout = setTimeout(()=>{
|
|
|
|
print("inactive");
|
|
|
|
active = false;
|
|
|
|
},3000);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return {
|
|
|
|
name : "HR int",
|
|
|
|
fields : ["Heartrate", "Confidence"],
|
|
|
|
getValues : () => {
|
|
|
|
var r = [bpm,bpmConfidence,src];
|
|
|
|
bpm = ""; bpmConfidence = ""; src="";
|
|
|
|
return r;
|
|
|
|
},
|
|
|
|
start : () => {
|
|
|
|
Bangle.origOn('HRM', onHRM);
|
|
|
|
if (Bangle.origSetHRMPower) Bangle.origSetHRMPower(1,"recorder");
|
|
|
|
},
|
|
|
|
stop : () => {
|
|
|
|
Bangle.removeListener('HRM', 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)
|
|
|
|
};
|
|
|
|
};
|
2022-01-06 16:42:29 +00:00
|
|
|
})
|
|
|
|
|