mirror of https://github.com/espruino/BangleApps
Attempt 2
parent
e9c8a7f67f
commit
e3b29d4f5f
|
@ -1,10 +1,39 @@
|
||||||
(() => {
|
var btHomeBatterySequence = 0;
|
||||||
var btHomeSequenceNo = 0;
|
|
||||||
function advertiseBTHomeBattery() {
|
|
||||||
require("ble_advert").set(0xFCD2, [0x40,0x00,btHomeSequenceNo,0x01,E.getBattery()]);
|
|
||||||
btHomeSequenceNo = (btHomeSequenceNo + 1) & 255;
|
|
||||||
}
|
|
||||||
|
|
||||||
setInterval(advertiseBTHomeBattery, 5 * 60 * 1000);
|
function advertiseBTHomeBattery() {
|
||||||
advertiseBattery();
|
var advert = [ 0x40, /* BTHome Device Information
|
||||||
})();
|
bit 0: "Encryption flag"
|
||||||
|
bit 1-4: "Reserved for future use"
|
||||||
|
bit 5-7: "BTHome Version" */
|
||||||
|
|
||||||
|
0x00, // Sequence number
|
||||||
|
btHomeBatterySequence,
|
||||||
|
|
||||||
|
0x01, // Battery, 8 bit
|
||||||
|
E.getBattery()
|
||||||
|
];
|
||||||
|
|
||||||
|
if(Array.isArray(Bangle.bleAdvert)){
|
||||||
|
var found = false;
|
||||||
|
for(var ad in Bangle.bleAdvert){
|
||||||
|
if(ad[0xFCD2]){
|
||||||
|
ad[0xFCD2] = advert;
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!found)
|
||||||
|
Bangle.bleAdvert.push({ 0xFCD2: advert });
|
||||||
|
} else {
|
||||||
|
Bangle.bleAdvert[0xFCD2] = advert;
|
||||||
|
}
|
||||||
|
NRF.setAdvertising(Bangle.bleAdvert);
|
||||||
|
btHomeBatterySequence = (btHomeBatterySequence + 1) & 255;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Bangle.bleAdvert) Bangle.bleAdvert = {};
|
||||||
|
setInterval(function() {
|
||||||
|
advertiseBTHomeBattery();
|
||||||
|
}, 300000); // update every 5 min
|
||||||
|
|
||||||
|
advertiseBTHomeBattery();
|
||||||
|
|
Loading…
Reference in New Issue