1
0
Fork 0
BangleApps/apps/blescanner/app.js

42 lines
1.1 KiB
JavaScript

E.showMessage("Scanning...");
var devices = [];
setInterval(function() {
NRF.findDevices(function(devs) {
devs.forEach(dev=>{
var existing = devices.find(d=>d.id==dev.id);
if (existing) {
existing.timeout = 0;
existing.rssi = (existing.rssi*3 + dev.rssi)/4;
} else {
dev.timeout = 0;
dev.new = 0;
devices.push(dev);
}
});
devices.forEach(d=>{d.timeout++;d.new++});
devices = devices.filter(dev=>dev.timeout<8);
devices.sort((a,b)=>b.rssi - a.rssi);
g.clear(1).setFont("12x20");
var wasNew = false;
devices.forEach((d,y)=>{
y*=20;
var n = d.name;
if (!n) n=d.id.substr(0,22);
if (d.new<4) {
g.fillRect(0,y,g.getWidth(),y+19);
g.setColor(g.theme.bg);
if (d.rssi > -70) wasNew = true;
} else {
g.setColor(g.theme.fg);
}
g.setFontAlign(-1,-1);
g.drawString(n,0,y);
g.setFontAlign(1,-1);
g.drawString(0|d.rssi,g.getWidth()-1,y);
});
g.flip();
Bangle.setLCDBrightness(wasNew);
}, 1200);
}, 1500);