1

私はRPi 2を車のBluetoothレシーバーのように機能させることに取り組んできましたが、Bluez5でBluetoothデバイスのペアリングを自動化する方法がわからないことを除けば、すべて順調です。以前は、Bluetooth エージェントと単純なスクリプトを使用していましたが、4 から 5 への移行で窓の外に出てしまったようです。セットアップの性質上、RPi に kb/マウスが一度もありません。車の中にあるので、誰もがRPiをスキャンできる完全に自動化されたセットアップである必要があり、おそらくハードコードされたPINが正しい場合、デバイスの信頼は自動的に行われる必要があり、cli入力は必要ありません.

私はウェブ全体を検索しましたが、誰もが bluetoothctl を使用するとうまくいくと言っているようですが、この特定のセットアップでは、友人に自分の電話をペアリングさせたいと考えています車は理想的ではありません。

4

2 に答える 2

2

bluez5では単純なスクリプトを使用できないとあなたが言う理由がわかりません。私はあなたがそれを行うことができると思います。以下はその方法の一例です。

bluez5 ソースをダウンロードして編集しますtest/simple-agent。以下に示すように、コード行をコメントアウトします。

def RequestAuthorization(self, device):
        print("RequestAuthorization (%s)" % (device))
        #auth = ask("Authorize? (yes/no): ")
        #if (auth == "yes"):
        return
        #raise Rejected("Pairing rejected")

認証のプロンプトを削除し、常にペアリング要求を受け入れます。

シンプル ペアリングを使用して上記のコード パスを通過するように、NoInputNoOutput 機能を使用して simple-agent を開始できるようになりました。

./simple-agent -c NoInputNoOutput

その後、ユーザー プロンプトや PIN なしで RPi とペアリングできるはずです。

これは、できることの一例にすぎないことに注意してください。単純なペアリングではなく、ハードコードされた PIN が必要な場合は、同じsimple-agentコードの適切なセクションを編集してそれを行います。これは練習問題として残しておきます。

于 2015-05-14T12:02:49.770 に答える