obnizのフォーラムは新しいシステムに移行しております。
新しいフォーラムはこちらになりますobnizBLEでのフィルタリング
-
obnizBLEで、BLEビーコンの受信データをUUIDでフィルタリングするテストをしましたが、Console上には何も表示されなくなってしまいました。(フィルタリング前は受信内容が表示されていました)
また、受信データをDropboxに書き込む様にしてみましたが、上記と同様に何も出力されません。
ビーコンとobnizBLEは至近距離に配置しており、受信環境に変化は有りません。
考えられる問題があればご教授頂きたく。
ソースコード(部分):
var setting = {
duration: 10, // 10 sec
duplicate: true, // allow duplicate
activeScan: false
}
var target = {
uuids: ["<uuid>"]
}
obniz.onconnect = async function () {
await obniz.ble.initWait();
var dbx = new Dropbox.Dropbox({ accessToken: '<token>' });obniz.ble.scan.start(target,setting); obniz.ble.scan.onfind = function (peripheral) { console.log(peripheral.address,peripheral.localName,peripheral.iBeacon);
dbx.filesUpload({path: '/obniz.txt', contents: peripheral.address + ", " + peripheral.localName + ", " + peripheral.iBeacon + ", " +new Date(), mode: 'overwrite' });
-
たとえば、下記のように書くと動くのを確認いたしました。 (obniz.js3.2.0にて確認)
var setting = { duration: 10, // 10 sec duplicate: true, // allow duplicate activeScan: false } var target = { uuids: ["273e5100-6b90-4779-83b8-b8bf1dadac35"] } await obniz.ble.initWait(); obniz.ble.scan.start(target,setting); obniz.ble.scan.onfind = function (peripheral) { console.log(peripheral.address, peripheral._adv_data_filtered.serviceUuids); };
serviceが存在したとしても、BLEのadvertisementの中にそのUUIDが入っているかどうかはまた別の話となります。
上記のプログラム内でperipheral._adv_data_filtered.serviceUuids
がadvertisementの中に入っていたUUID一覧になります。(内部で使用している変数になります)そちらをご確認いただき、フィルタリングの確認をしていただければと思います。