bthrm - Disable fallback correctly

master
Martin Boonk 2022-11-13 00:19:11 +01:00
parent 8c1fce695b
commit 5644f44f3f
2 changed files with 15 additions and 5 deletions

View File

@ -36,3 +36,4 @@
Device not found errors now utilize increasing timeouts
0.15: Fix recording internal sensor
Handle fallback to internal sensor consistently if BT bpm is 0
Power internal sensor down if not needed for fallback

View File

@ -255,7 +255,7 @@ exports.enable = () => {
var retry = function() {
log("Retry");
if (!currentRetryTimeout){
if (!currentRetryTimeout && !powerdownRequested){
var clampedTime = retryTime < 100 ? 100 : retryTime;
@ -281,13 +281,13 @@ exports.enable = () => {
log("Disconnect: " + reason);
log("GATT", gatt);
log("Characteristics", characteristics);
var retryTimeResetNeeded = true;
retryTimeResetNeeded &= reason != "Connection Timeout";
retryTimeResetNeeded &= reason != "No device found matching filters";
clearRetryTimeout(retryTimeResetNeeded);
supportedCharacteristics["0x2a37"].active = false;
startFallback();
if (!powerdownRequested) startFallback();
blockInit = false;
if (settings.warnDisconnect && !buzzing){
buzzing = true;
@ -369,7 +369,7 @@ exports.enable = () => {
var initBt = function () {
log("initBt with blockInit: " + blockInit);
if (blockInit){
if (blockInit && !powerdownRequested){
retry();
return;
}
@ -508,6 +508,8 @@ exports.enable = () => {
});
};
var powerdownRequested = false;
Bangle.setBTHRMPower = function(isOn, app) {
// Do app power handling
if (!app) app="?";
@ -522,7 +524,9 @@ exports.enable = () => {
if (!Bangle.isBTHRMConnected()) initBt();
} else { // not on
log("Power off for " + app);
powerdownRequested = true;
clearRetryTimeout(true);
stopFallback();
if (gatt) {
if (gatt.connected){
log("Disconnect with gatt", gatt);
@ -543,7 +547,7 @@ exports.enable = () => {
if (settings.replace){
// register a listener for original HRM events and emit as HRM_int
Bangle.on("HRM", (e) => {
e.src = "int";
e.modified = true;
log("Emitting HRM_int", e);
Bangle.emit("HRM_int", e);
if (fallbackActive){
@ -574,6 +578,11 @@ exports.enable = () => {
log("setHRMPower for " + app + ": " + (isOn?"on":"off"));
if (settings.enabled){
Bangle.setBTHRMPower(isOn, app);
if (Bangle._PWR && Bangle._PWR.HRM && Object.keys(Bangle._PWR.HRM).length == 0) {
Bangle._PWR.BTHRM = [];
Bangle.setBTHRMPower(0);
if (!isOn) stopFallback();
}
}
if ((settings.enabled && !settings.replace) || !settings.enabled){
Bangle.origSetHRMPower(isOn, app);