btadv: hide stale values from menu

pull/2587/head
Rob Pilling 2023-01-21 00:14:02 +00:00
parent 628d791c98
commit b671ca5952
2 changed files with 69 additions and 13 deletions

View File

@ -11,16 +11,12 @@ var __assign = (this && this.__assign) || function () {
return __assign.apply(this, arguments);
};
var _a, _b;
Bangle.loadWidgets();
Bangle.drawWidgets();
var ADVERT_MS = 30 * 1000;
var acc;
var bar;
var gps;
var hrm;
var mag;
var curMenu = "main";
var updateInterval;
var mainMenuScroll = 0;
var settings = {
barEnabled: false,
@ -110,6 +106,10 @@ var updateMenu = function () {
accMenu.z.value = acc.z.toFixed(2);
E.showMenu(accMenu);
}
else if (accMenu.x.value !== "...") {
accMenu.x.value = accMenu.y.value = accMenu.z.value = "...";
E.showMenu(accMenu);
}
break;
case "bar":
if (bar) {
@ -118,6 +118,10 @@ var updateMenu = function () {
barMenu.Temp.value = bar.temperature.toFixed(1) + 'C';
E.showMenu(barMenu);
}
else if (barMenu.Altitude.value !== "...") {
barMenu.Altitude.value = barMenu.Press.value = barMenu.Temp.value = "...";
E.showMenu(accMenu);
}
break;
case "gps":
if (gps) {
@ -128,6 +132,11 @@ var updateMenu = function () {
gpsMenu.HDOP.value = (gps.hdop * 5).toFixed(1) + 'm';
E.showMenu(gpsMenu);
}
else if (gpsMenu.Lat.value !== "...") {
gpsMenu.Lat.value = gpsMenu.Lon.value = gpsMenu.Altitude.value =
gpsMenu.Satellites.value = gpsMenu.HDOP.value = "...";
E.showMenu(gpsMenu);
}
break;
case "hrm":
if (hrm) {
@ -135,6 +144,10 @@ var updateMenu = function () {
hrmMenu.Confidence.value = hrm.confidence + '%';
E.showMenu(hrmMenu);
}
else if (hrmMenu.BPM.value !== "...") {
hrmMenu.BPM.value = hrmMenu.Confidence.value = "...";
E.showMenu(hrmMenu);
}
break;
case "mag":
if (mag) {
@ -144,6 +157,10 @@ var updateMenu = function () {
magMenu.Heading.value = mag.heading.toFixed(1);
E.showMenu(magMenu);
}
else if (magMenu.x.value !== "...") {
magMenu.x.value = magMenu.y.value = magMenu.z.value = magMenu.Heading.value = "...";
E.showMenu(magMenu);
}
break;
}
};
@ -166,9 +183,7 @@ var updateBleAdvert = function () {
return;
}
}
NRF.setAdvertising(Bangle.bleAdvert, {
interval: ADVERT_MS,
});
NRF.setAdvertising(Bangle.bleAdvert);
};
var encodeHrm = function () { return [0, hrm ? hrm.bpm : 0]; };
var encodeBarServiceData = function (data) {
@ -215,9 +230,17 @@ var toByteArray = function (value, numberOfBytes, isSigned) {
};
var enableSensors = function () {
Bangle.setBarometerPower(settings.barEnabled, "btadv");
if (!settings.barEnabled)
bar = undefined;
Bangle.setGPSPower(settings.gpsEnabled, "btadv");
if (!settings.gpsEnabled)
gps = undefined;
Bangle.setHRMPower(settings.hrmEnabled, "btadv");
if (!settings.hrmEnabled)
hrm = undefined;
Bangle.setCompassPower(settings.magEnabled, "btadv");
if (!settings.magEnabled)
mag = undefined;
};
var updateSetting = function (name, value) {
settings[name] = value;
@ -243,7 +266,6 @@ var updateServices = function () {
_b["0x2a37"] = {
value: encodeHrm(),
notify: true,
dog: 1,
},
_b),
_a));
@ -253,13 +275,20 @@ Bangle.on('pressure', function (newBar) { return bar = newBar; });
Bangle.on('GPS', function (newGps) { return gps = newGps; });
Bangle.on('HRM', function (newHrm) { return hrm = newHrm; });
Bangle.on('mag', function (newMag) { return mag = newMag; });
enableSensors();
Bangle.loadWidgets();
Bangle.drawWidgets();
showMainMenu();
setInterval(updateMenu, 1000);
enableSensors();
setInterval(updateBleAdvert, 30000);
var menuInterval = setInterval(updateMenu, 1000);
Bangle.on("lock", function (locked) {
changeInterval(menuInterval, locked ? 30000 : 1000);
});
var serviceInterval;
NRF.on("connect", function () {
updateInterval = setInterval(updateServices, 1000);
serviceInterval = setInterval(updateServices, 1000);
});
NRF.on("disconnect", function () {
clearInterval(updateInterval);
updateInterval = undefined;
clearInterval(serviceInterval);
serviceInterval = undefined;
});

View File

@ -115,6 +115,9 @@ const updateMenu = () => {
accMenu.y.value = acc.y.toFixed(2);
accMenu.z.value = acc.z.toFixed(2);
E.showMenu(accMenu);
} else if (accMenu.x.value !== "...") {
accMenu.x.value = accMenu.y.value = accMenu.z.value = "...";
E.showMenu(accMenu);
}
break;
@ -124,6 +127,9 @@ const updateMenu = () => {
barMenu.Press.value = bar.pressure.toFixed(1) + 'mbar';
barMenu.Temp.value = bar.temperature.toFixed(1) + 'C';
E.showMenu(barMenu);
} else if (barMenu.Altitude.value !== "...") {
barMenu.Altitude.value = barMenu.Press.value = barMenu.Temp.value = "...";
E.showMenu(accMenu);
}
break;
@ -135,6 +141,10 @@ const updateMenu = () => {
gpsMenu.Satellites.value = "" + gps.satellites;
gpsMenu.HDOP.value = (gps.hdop * 5).toFixed(1) + 'm';
E.showMenu(gpsMenu);
} else if (gpsMenu.Lat.value !== "...") {
gpsMenu.Lat.value = gpsMenu.Lon.value = gpsMenu.Altitude.value =
gpsMenu.Satellites.value = gpsMenu.HDOP.value = "...";
E.showMenu(gpsMenu);
}
break;
@ -143,6 +153,9 @@ const updateMenu = () => {
hrmMenu.BPM.value = "" + hrm.bpm;
hrmMenu.Confidence.value = hrm.confidence + '%';
E.showMenu(hrmMenu);
} else if (hrmMenu.BPM.value !== "...") {
hrmMenu.BPM.value = hrmMenu.Confidence.value = "...";
E.showMenu(hrmMenu);
}
break;
@ -153,6 +166,9 @@ const updateMenu = () => {
magMenu.z.value = "" + mag.z;
magMenu.Heading.value = mag.heading.toFixed(1);
E.showMenu(magMenu);
} else if (magMenu.x.value !== "...") {
magMenu.x.value = magMenu.y.value = magMenu.z.value = magMenu.Heading.value = "...";
E.showMenu(magMenu);
}
break;
}
@ -279,9 +295,20 @@ const toByteArray = (value: number, numberOfBytes: number, isSigned: boolean) =>
const enableSensors = () => {
Bangle.setBarometerPower(settings.barEnabled, "btadv");
if (!settings.barEnabled)
bar = undefined;
Bangle.setGPSPower(settings.gpsEnabled, "btadv");
if (!settings.gpsEnabled)
gps = undefined;
Bangle.setHRMPower(settings.hrmEnabled, "btadv");
if (!settings.hrmEnabled)
hrm = undefined;
Bangle.setCompassPower(settings.magEnabled, "btadv");
if (!settings.magEnabled)
mag = undefined;
};
const updateSetting = (