From d616fe9cf28928e0f07cccc100964381127f673b Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Tue, 28 May 2024 22:36:20 +0100 Subject: [PATCH] ble_advert: generate js --- modules/ble_advert.js | 69 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 modules/ble_advert.js diff --git a/modules/ble_advert.js b/modules/ble_advert.js new file mode 100644 index 000000000..0a037cfd8 --- /dev/null +++ b/modules/ble_advert.js @@ -0,0 +1,69 @@ +var advertise = function (options) { + var clone = function (obj) { + if (Array.isArray(obj)) { + return obj.map(clone); + } + else if (typeof obj === "object") { + var r = {}; + for (var k in obj) { + r[k] = clone(obj[k]); + } + return r; + } + return obj; + }; + NRF.setAdvertising(clone(Bangle.bleAdvert), options); +}; +var manyAdv = function (bleAdvert) { + return Array.isArray(bleAdvert) && typeof bleAdvert[0] === "object"; +}; +exports.set = function (id, advert, options) { + var _a, _b, _c; + var bangle = Bangle; + if (manyAdv(bangle.bleAdvert)) { + var found = false; + var obj = void 0; + for (var _i = 0, _d = bangle.bleAdvert; _i < _d.length; _i++) { + var ad = _d[_i]; + if (Array.isArray(ad)) + continue; + obj = ad; + if (ad[id]) { + ad[id] = advert; + found = true; + break; + } + } + if (!found) { + if (obj) + obj[id] = advert; + else + bangle.bleAdvert.push((_a = {}, _a[id] = advert, _a)); + } + } + else if (bangle.bleAdvert) { + if (Array.isArray(bangle.bleAdvert)) { + bangle.bleAdvert = [bangle.bleAdvert, (_b = {}, _b[id] = advert, _b)]; + } + else { + bangle.bleAdvert[id] = advert; + } + } + else { + bangle.bleAdvert = (_c = {}, _c[id] = advert, _c); + } + advertise(options); +}; +exports.push = function (adv, options) { + var bangle = Bangle; + if (manyAdv(bangle.bleAdvert)) { + bangle.bleAdvert.push(adv); + } + else if (bangle.bleAdvert) { + bangle.bleAdvert = [bangle.bleAdvert, adv]; + } + else { + bangle.bleAdvert = [adv, {}]; + } + advertise(options); +};