obnizのフォーラムは新しいシステムに移行しております。
新しいフォーラムはこちらになりますBLE接続実行後にcloseを実行すると、ObnizOfflineErrorが発生する
-
下記コードを実行するとObnizOfflineErrorが発生します。
解決方法を教えてください。
※コマンドライン上で実行する上では、closeを実行しなければ良いのですが、
AWSへの移植を考えると、closeを実行しないと連続実行した際に
Obnizへの接続が失敗してしまうため、closeを実行する必要があると考えています。var Obniz = require("obniz"); var obniz = new Obniz("ID", {auto_connect: false}); obniz.onconnect = async function () { await obniz.ble.initWait(); obniz.ble.scan.onfind = async function(peripheral) { console.log(peripheral.localName); if (peripheral.localName == "OBNZTEST") { await peripheral.connectWait(); console.log("connect"); await peripheral.disconnectWait(); console.log("disconnect"); await obniz.closeWait(); console.log("close"); } // if end } // onfind end let target = { localName: ["OBNZTEST"] }; await obniz.ble.scan.startWait(target); } //onconnect end obniz.connect();
obniz.jsは3.15.1を利用しています。
実行ログは以下になります(一部パス情報を削除しています)OBNZTEST connect disconnect close ObnizOfflineError: obniz is not online. at node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/hci.js:139:34 at new Promise (<anonymous>) at ObnizBLEHci.timeoutPromiseWrapper (node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/hci.js:134:30) at Hci.readAclStreamWait (node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/protocol/hci.js:755:37) at AclStream.readWait (node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/protocol/central/acl-stream.js:45:38) at Gatt.exchangeMtuWait (node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/protocol/central/gatt.js:157:14) at node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/protocol/central/bindings.js:93:56 at processTicksAndRejections (internal/process/task_queues.js:93:5) at async BleRemotePeripheral.connectWait (node_modules/obniz/dist/src/obniz/libs/embeds/bleHci/bleRemotePeripheral.js:180:13) at async obniz.ble.scan.onfind (test.js:11:7) { code: 1 }