下記コードを実行すると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
}