bluezで現在廃止されているrfcommバイナリの代替

bluezで現在廃止されているrfcommバイナリの代替

bluez 5.44以降、bluez-utils(およびhcitoolなど)に含まれているrfcommバイナリは廃止予定と見なされ、AURが提供するbluez-utils-compatパッケージにのみ含まれます。

rfcommカーネルモジュールを使用してBluetoothデバイスをシリアルポートにバインドするための同様のコマンドラインアプリケーションがありますか?それとも今からPyBluezまたは同様のライブラリを使用する必要がありますか?

後者の場合、どのPython 3ライブラリをお勧めしますか?

知っている人がいれば、なぜそれほど多くのbluez-utilが突然使用されなくなったと思われるのか教えてください。関連情報が見つかりません。

これ建築ウィキペディアrfcomm機能の新しい実装を使用することをお勧めします。D-Busプロファイル1 API

ベストアンサー1

別の考えられる解決策が見つかりました。私は誰かのgithubリポジトリを調べてこれを見つけました。これはpython3の組み込みソケットモジュールを使用します。

前提条件:

  1. <アダプターアドレス> アドレスに動作しているアダプターがあります。
  2. ターゲットBluetoothデバイスは<デバイスアドレス>にあります。
  3. デバイスが固定されました。

つまり、rfcommの同じポイントを使用できます。


$python3
>>> import socket
>>> sock = socket.socket(socket.AF_BLUETOOTH, socket.SOCK_STREAM, socket.BTPROTO_RFCOMM)
>>> adapter = '00:11:22:33:44:55' #<adapter address>
>>> device = '55:44:33:22:11:00' #<device address>
>>> sock.bind((adapter, 1))
>>> sock.connect((device, 1))
## If not pinned it will ask you. You can use/adapt the bluez simple-agent for headless pinning
>>> sock.send(b'hello\n')
>>> sock.recv(100)
>>> sock.close()

おすすめ記事