低レベルのBluetoothユーティリティ

低レベルのBluetoothユーティリティ

デバイスをペアリングおよびペアリング解除し、デバイスからメッセージを表示し、デバイスにメッセージを送信し(ファイルシステムを使用して完了したいと思います!)、利用可能なフラグを設定できるBluetoothユーティリティはLinuxにありますか?

私が念頭に置いているアプリケーションは、10個の小さなBluetoothキーボードを持ち、各キーボードのすべてのキーをマッピングしてMIDIメッセージを送信したいということです(明らかにMIDI部分はこのOPの一部ではありません)。

答え1

以下に、デバイスとの対話に使用できるBluetooth操作ツールを示します。

人間 - 機械構成

hciconfig

  • コンピュータのBluetooth hciに関する情報を提供します。
  • デバイスが動作しており、必要なスキャンモードがあることを確認してください。
  • ランニングhcitool devもこの情報の一部を提供する必要があります。

人間 - 機械ツール

hcitool inqそしてhcitool scan

  • 近くのBluetoothデバイスに関する情報を提供するか、むしろ識別します。

hcitool info <BTAddr>

  • リモートBluetoothデバイスに関する情報を取得する

l2ping

l2ping <BTAddr>

  • リモートBluetoothデバイスと通信できることを確認する方法

SDPツール

sdptool browse <BTAddr> or sdptool records <BTAddr>

  • リモートBluetoothデバイスが提供するサービスに関する情報を提供します。

OBEXFTP

obexftp –nopath –noconn –uuid none –bluetooth <BTAddr> –channel <OPUSHChann elNo> –put <FileToPut>

  • リモートデバイス側でピンを指定せずにファイル転送を許可します。
  • デバイスのOPushチャネル番号は上記のsdptoolから取得されます。

obexftp -b <BTAddr> -v -p <FileToPut>

  • 指定されたBTデバイスにファイルを配置することを許可する
  • obexftpは、BTデバイスからファイルをインポートまたは一覧表示するためにも使用できます。
  • -bオプションを指定して近くのBTデバイスを識別することもできます。

コアエージェント

passkey-agent –default <Pin>

  • ここで指定されたピンコードは、リモートBTデバイスから提供された、または要求時にユーザーがデバイスに入力する必要があるパスワードです。

抑圧される

obexpushd

  • Bluetoothデバイスから送信されたファイルを受信できます。
  • イニシエータに従って受信したファイルは、対応するホームディレクトリに保存されます。

ペア

このサイトの指示に従って、コマンドラインを使用してデバイスをLinuxボックスとペアリングできます。記事のタイトルは次のとおりです。Linuxでコマンドラインを介してBluetoothデバイスをペアリングする方法

はい

  1. BluetoothデバイスMACアドレスを探す

    $ hcitool scan
    
    Scanning ...
        11:22:33:44:55:66   device 1
        12:34:56:78:90:12   device 2
    
  2. 予想されるペアリングコードを渡すようにBluetoothプロキシを設定します。

    $ bluetooth-agent 0000 &
    
  3. rfcomm設定ファイルを編集/etc/bluetooth/rfcomm.confし、上記のMACアドレスを入力してください。

    rfcomm0 {
      # Automatically bind the device at startup
      bind no;
      # Bluetooth address of the device
      device 11:22:33:44:55:66;
      # RFCOMM channel for the connection
      channel 3;
      # Description of the connection
      comment "This is Device 1's serial port.";
    }
    

    メモ:重要な注意点は、起動時にデバイスをバインドしないように設定した場合(bind no;)、シリアルポートを使用する前にこのコマンドを使用してrfcommを手動で起動する必要があることです(この場合はroot権限も必要です)。

    $ sudo rfcomm connect rfcomm0
    

引用する

関連情報