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

View File

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