mirror of https://github.com/espruino/BangleApps
bthrm - Streamline the code a bit
parent
f6432ef7b9
commit
47af3b482a
|
@ -42,3 +42,4 @@
|
||||||
Add debug option for disabling active scanning
|
Add debug option for disabling active scanning
|
||||||
0.17: New GUI based on layout library
|
0.17: New GUI based on layout library
|
||||||
0.18: Minor code improvements
|
0.18: Minor code improvements
|
||||||
|
0.19: Fix setHRMPower method not returning new state
|
||||||
|
|
|
@ -318,12 +318,13 @@ exports.enable = () => {
|
||||||
log("Starting notifications", newCharacteristic);
|
log("Starting notifications", newCharacteristic);
|
||||||
var startPromise = newCharacteristic.startNotifications().then(()=>log("Notifications started", newCharacteristic));
|
var startPromise = newCharacteristic.startNotifications().then(()=>log("Notifications started", newCharacteristic));
|
||||||
|
|
||||||
log("Add " + settings.gracePeriodNotification + "ms grace period after starting notifications");
|
if (settings.gracePeriodNotification){
|
||||||
startPromise = startPromise.then(()=>{
|
log("Add " + settings.gracePeriodNotification + "ms grace period after starting notifications");
|
||||||
log("Wait after connect");
|
startPromise = startPromise.then(()=>{
|
||||||
return waitingPromise(settings.gracePeriodNotification);
|
log("Wait after connect");
|
||||||
});
|
return waitingPromise(settings.gracePeriodNotification);
|
||||||
|
});
|
||||||
|
}
|
||||||
return startPromise;
|
return startPromise;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -397,6 +398,10 @@ exports.enable = () => {
|
||||||
|
|
||||||
if (settings.gracePeriodRequest){
|
if (settings.gracePeriodRequest){
|
||||||
log("Add " + settings.gracePeriodRequest + "ms grace period after request");
|
log("Add " + settings.gracePeriodRequest + "ms grace period after request");
|
||||||
|
promise = promise.then(()=>{
|
||||||
|
log("Wait after request");
|
||||||
|
return waitingPromise(settings.gracePeriodRequest);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
promise = promise.then((d)=>{
|
promise = promise.then((d)=>{
|
||||||
|
@ -404,33 +409,22 @@ exports.enable = () => {
|
||||||
d.on('gattserverdisconnected', onDisconnect);
|
d.on('gattserverdisconnected', onDisconnect);
|
||||||
device = d;
|
device = d;
|
||||||
});
|
});
|
||||||
|
|
||||||
promise = promise.then(()=>{
|
|
||||||
log("Wait after request");
|
|
||||||
return waitingPromise(settings.gracePeriodRequest);
|
|
||||||
});
|
|
||||||
} else {
|
} else {
|
||||||
promise = Promise.resolve();
|
promise = Promise.resolve();
|
||||||
log("Reuse device", device);
|
log("Reuse device", device);
|
||||||
}
|
}
|
||||||
|
|
||||||
promise = promise.then(()=>{
|
promise = promise.then(()=>{
|
||||||
if (gatt){
|
gatt = device.gatt;
|
||||||
log("Reuse GATT", gatt);
|
|
||||||
} else {
|
let cache = getCache();
|
||||||
log("GATT is new", gatt);
|
if (device.id !== cache.id){
|
||||||
characteristics = [];
|
log("Device ID changed from " + cache.id + " to " + device.id + ", clearing cache");
|
||||||
var cachedId = getCache().id;
|
clearCache();
|
||||||
if (device.id !== cachedId){
|
|
||||||
log("Device ID changed from " + cachedId + " to " + device.id + ", clearing cache");
|
|
||||||
clearCache();
|
|
||||||
}
|
|
||||||
var newCache = getCache();
|
var newCache = getCache();
|
||||||
newCache.id = device.id;
|
newCache.id = device.id;
|
||||||
writeCache(newCache);
|
writeCache(newCache);
|
||||||
gatt = device.gatt;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return Promise.resolve(gatt);
|
return Promise.resolve(gatt);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -440,11 +434,13 @@ exports.enable = () => {
|
||||||
var connectPromise = gatt.connect(connectSettings).then(function() {
|
var connectPromise = gatt.connect(connectSettings).then(function() {
|
||||||
log("Connected.");
|
log("Connected.");
|
||||||
});
|
});
|
||||||
log("Add " + settings.gracePeriodConnect + "ms grace period after connecting");
|
if (settings.gracePeriodConnect){
|
||||||
connectPromise = connectPromise.then(()=>{
|
log("Add " + settings.gracePeriodConnect + "ms grace period after connecting");
|
||||||
log("Wait after connect");
|
connectPromise = connectPromise.then(()=>{
|
||||||
return waitingPromise(settings.gracePeriodConnect);
|
log("Wait after connect");
|
||||||
});
|
return waitingPromise(settings.gracePeriodConnect);
|
||||||
|
});
|
||||||
|
}
|
||||||
return connectPromise;
|
return connectPromise;
|
||||||
} else {
|
} else {
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
|
@ -460,20 +456,20 @@ exports.enable = () => {
|
||||||
} else {
|
} else {
|
||||||
log("Start bonding");
|
log("Start bonding");
|
||||||
return gatt.startBonding()
|
return gatt.startBonding()
|
||||||
.then(() => log("Security status" + gatt.getSecurityStatus()));
|
.then(() => log("Security status after bonding" + gatt.getSecurityStatus()));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
promise = promise.then(()=>{
|
promise = promise.then(()=>{
|
||||||
if (!characteristics || characteristics.length === 0){
|
if (!characteristics || characteristics.length == 0){
|
||||||
characteristics = characteristicsFromCache(device);
|
characteristics = characteristicsFromCache(device);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
promise = promise.then(()=>{
|
promise = promise.then(()=>{
|
||||||
var characteristicsPromise = Promise.resolve();
|
var characteristicsPromise = Promise.resolve();
|
||||||
if (characteristics.length === 0){
|
if (characteristics.length == 0){
|
||||||
characteristicsPromise = characteristicsPromise.then(()=>{
|
characteristicsPromise = characteristicsPromise.then(()=>{
|
||||||
log("Getting services");
|
log("Getting services");
|
||||||
return gatt.getPrimaryServices();
|
return gatt.getPrimaryServices();
|
||||||
|
@ -487,11 +483,13 @@ exports.enable = () => {
|
||||||
log("Supporting service", service.uuid);
|
log("Supporting service", service.uuid);
|
||||||
result = attachServicePromise(result, service);
|
result = attachServicePromise(result, service);
|
||||||
}
|
}
|
||||||
log("Add " + settings.gracePeriodService + "ms grace period after services");
|
if (settings.gracePeriodService){
|
||||||
result = result.then(()=>{
|
log("Add " + settings.gracePeriodService + "ms grace period after services");
|
||||||
log("Wait after services");
|
result = result.then(()=>{
|
||||||
return waitingPromise(settings.gracePeriodService);
|
log("Wait after services");
|
||||||
});
|
return waitingPromise(settings.gracePeriodService);
|
||||||
|
});
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
@ -598,9 +596,10 @@ exports.enable = () => {
|
||||||
Bangle.setBTHRMPower(0);
|
Bangle.setBTHRMPower(0);
|
||||||
if (!isOn) stopFallback();
|
if (!isOn) stopFallback();
|
||||||
}
|
}
|
||||||
|
return Bangle.isBTHRMOn() || Bangle.isHRMOn();
|
||||||
}
|
}
|
||||||
if ((settings.enabled && !settings.replace) || !settings.enabled){
|
if ((settings.enabled && !settings.replace) || !settings.enabled){
|
||||||
Bangle.origSetHRMPower(isOn, app);
|
return Bangle.origSetHRMPower(isOn, app);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue