2016-11-01 25 views
0

blueooth接続に関する質問があります。私は自分のデバイス(Bluetoothシールド付きArduino Nano)へのBluetooth接続をセットアップし、何らかの理由で接続が失敗する可能性があります。それは大丈夫です、それはブルートゥースです、そして、例えば、デバイスが範囲外であるときに起こります。しかし、可能であれば、私は接続を再確立したい。私が問題を抱えているのはこの部分です。接続するコードはもう機能しません。動作しているように見えるのは、デバイスを再起動することです(アプリを再起動するだけでは不十分です)。 Piをリブートした後、接続は生きており、再び蹴ります。Bluetoothの再接続

再起動後に修正された問題があるようですが、リブートする必要なくこの問題を解決する方法を知りたいと思います。誰でも?

更新さらに詳しい情報私はArduinoと接続して制御するためにFirmataライブラリを使用しています。私はfirmataのコードを変更することにあまり慣れていませんが、私は両側をコントロールしています。

+0

"**接続するコードはもう使用できません**"エラー情報は何ですか?ペアリングを試みてもう一度ペアリングしましたか? –

+0

私はこれを試していませんが、これは人間の介入なしには機能する必要があるからです。実際にコードとのペアリング/ペアリングが可能かどうかは確かではありませんが、必要であればそれは奇妙なものになるでしょうか? – Jasper

答えて

0

あなたの質問にお答えするために、私はここであなたのデバイスを制御できると仮定します。制御とは、デバイスが再接続を試みるようにコードを変更できることを意味します。

問題

さて、あなたの場合には、デバイスが範囲外になった場合、接続が切断されたが、彼らはあなたのデバイスの範囲なしで来たときに、本質的に他のデバイスに再接続してみてください。最後に接続されたデバイスに再接続しようとするコードが書かれていない限り、デバイスは範囲内にあっても接続しようとしません。あなたのデバイスを再起動するときには、aurdinoデバイスが再接続を行うためにすべての/最後に接続されたデバイスに再接続しようとしている可能性があります。あなたの問題を解決するために

ソリューション

、あなたが言う5秒の定期的な間隔での最後の接続されたデバイスへの再接続を維持しようとすることが好ましいaurdino側のコードの一部を追加することができます。

制限

しかし、これは、より多くのデバイスが範囲内に実際にあるかどうかを正確に知っていないポーリングのようなものです。ブルートゥースでは、デバイスをスキャンするまでデバイスが範囲内に入っているかどうかを知ることはできません。あなたがこの解決策に直面しなければならない問題は、デバイスが存在しなくても定期的にブルートゥースを介して再接続しようとするため、より多くの電力が必要になることです。

これが役に立ちます。

よろしくお願いします。

+0

私はデバイスの制御権を持っています。私はArduinosを遠隔から接続して制御するためにfirmataを使用しています。私はそれらのデバイスが再接続しているとは思わない、私が知る限りFirmataには再試行/再接続ロジックはない。 – Jasper

+0

Firmataはホストとarduinoの間の通信プロトコルですが、Firmataには再試行/再接続ロジックがありませんので、開発しないでください。 akasonlyaksの言うとおり、Arduino側で定期的に実行される再接続ロジックコードを記述します。 – Jackie

+0

私は理解しますが、Arduino側でロードされるのはfirmataコードだけです。ブルートゥースの接続は、TX/RXの配線とシリアルの起動と同じくらい簡単です。それはかなりです。だから私は再試行ロジックをどのように組み込むべきかについては分かりません。 – Jasper