mirror of https://github.com/espruino/BangleApps
Attempt 2
parent
e9c8a7f67f
commit
e3b29d4f5f
|
@ -1,10 +1,39 @@
|
|||
(() => {
|
||||
var btHomeSequenceNo = 0;
|
||||
function advertiseBTHomeBattery() {
|
||||
require("ble_advert").set(0xFCD2, [0x40,0x00,btHomeSequenceNo,0x01,E.getBattery()]);
|
||||
btHomeSequenceNo = (btHomeSequenceNo + 1) & 255;
|
||||
}
|
||||
var btHomeBatterySequence = 0;
|
||||
|
||||
setInterval(advertiseBTHomeBattery, 5 * 60 * 1000);
|
||||
advertiseBattery();
|
||||
})();
|
||||
function advertiseBTHomeBattery() {
|
||||
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