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
    }
    

Log in to reply
 

SUGGESTED TOPICS