メインコンテンツへスキップ

obniz BLE/Wi-Fiゲートウェイ Peripheralとの強制切断方法について

コメント

8件のコメント

  • obnizサポートチーム

    connectWaitには現在キャンセルに対応してないため途中のdisconnectWaitには対応できていない状態だと思われます。

    状況を詳しく知りたいと思いますが、切断されない状態になるときはconnectWaitの関数は処理を完了しているんでしょうか。時系列に関して詳しく知りたいと思います。

    0
  • 岡田英祐

    1.connectWaitを呼び出し

    2.20秒立ってもconnectWaitから応答がないため、

      Promiseで強制的に処理を戻すようにしてから

      disconnectWait()を呼び出し

    1のconnectWait関数完了は確認できていません。

    0
  • obnizサポートチーム

    connectWait中にdisconnectWait実行できますがキャンセルされているわけではございません。
    そのため、connectWaitの途中にdisconnectWaitが失敗することは仕様です。
    最大20秒でのご切断をご希望とのことで、申し訳ございませんが、ご要望として承ります。

    0
  • 岡田英祐

    ご回答ありがとうございます。
    結局のところ、20秒経過してもconnectWaitから応答がない場合、
    現状ではどのような処置をしたら、connectのやり直しができますでしょうか?

    0
  • obnizサポートチーム

    キャンセル機能は現在ございません。
    接続が正常に完了するか、タイムアウト(90秒)まで待つ必要がございます。

    0
  • 岡田英祐

    ご回答ありがとうございます。

    タイムアウト90秒を任意に変更できないのでしょうか。

    上記出来ない場合ですが、強制的に切断する方法として、
    obniz.close();でBLE/Wi-fiゲートウェイと切断してから、
    obniz.onconnect
    obniz.ble.initWait();
    でも実現可能でしょうか。

    0
  • obnizサポートチーム

    >タイムアウト90秒を任意に変更できないのでしょうか。
    できかねます。こちらご要望として承ります。

    >上記出来ない場合ですが、強制的に切断する方法として、
    >obniz.close();でBLE/Wi-fiゲートウェイと切断してから、
    >obniz.onconnect
    >obniz.ble.initWait();
    >でも実現可能でしょうか。
    実現可能です。

    0
  • 岡田英祐

    上記回答通り実装いたしましたが、
    obnizjsとobnizクラウドとの再接続処理がされていないことが分かりましたので共有します。

    close呼出し後、autoConnect=falseに設定されていましたので、処理としては、
    obniz.close()
    obniz.autoConnect=true
    obniz.onconnect
    obniz.ble.initWait();
    としました。

    0

サインインしてコメントを残してください。