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の組み込みソケットモジュールを使用します。
前提条件:
- <アダプターアドレス> アドレスに動作しているアダプターがあります。
- ターゲットBluetoothデバイスは<デバイスアドレス>にあります。
- デバイスが固定されました。
つまり、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()