Tengo el siguiente código que intento ejecutar y obtengo resultados diferentes cada vez que lo ejecuto. A veces simplemente obtengo "Apagado". A veces obtengo ese plus "Encendido". A veces obtengo todo lo anterior más "Escaneo iniciado". Y a veces se ejecuta hasta el final y recibo un montón de "todavía buscando..." y finalmente llega al dispositivo BLE y devuelve el anuncio.
No tengo idea de por qué esto funciona a veces y no a otros.
var async = require('async'); var noble = require('../index'); var peripheralIdOrAddress = "8cf681a590f3"; noble.on('stateChange', function(state) { if (state === 'poweredOn') { noble.startScanning(); console.log("Powered On") } else { noble.stopScanning(); console.log("Powered Off") } }); noble.on('scanStart', ()=>console.log("Scanning started")) noble.on('scanStop', ()=>console.log("Scanning stopped")) noble.on('discover', function(peripheral) { console.log("Discovered something!"); if (peripheral.id === peripheralIdOrAddress || peripheral.address === peripheralIdOrAddress) { noble.stopScanning(); console.log('peripheral with ID ' + peripheral.id + ' found'); var advertisement = peripheral.advertisement; console.log(JSON.stringify(advertisement)); peripheral.on('disconnect', function() { console.log("Peripheral disconnected"); process.exit(0); }); peripheral.on('connect', ()=>console.log("Peripheral connected")); peripheral.connect(function(error) { peripheral.discoverServices("a0521000-2a63-479e-9d0a-09dfa7c8fd98",()=>console.log("Service discovered")); }); } else{console.log("Not the one. still searching...")} });Adición loca a esta pregunta. Probé muchas cosas apagando y desenchufando cosas.
Al final descubrí que era el puerto de alimentación. Si estoy enchufado a la corriente de la pared, obtengo aproximadamente 1 de cada 10 ejecuciones que funcionan. Si desenchufo la toma de corriente y me quedo sin batería, funciona todo el tiempo.
tan extraño