私はRFCOMMを使用してラズベリーパイと通信するWindows UWPアプリケーションを作っています。私のWindowsラップトップとRaspberry Piはすでに接続されており、(手動で)ペア設定されています。私はラズベリーパイとそれが使用しているチャンネルのブルートゥースアドレスを知っていて、これらの値はConnectAsync(...)のパラメータにハードコードされています。UWP Bluetooth ConnectAsyncエラーがRaspberry Piに送信されました。要素が見つかりません
ConnectAsync(...)が呼び出されると、Raspberry Piは接続を受け取り、 "accepted connection from( 'Windows bluetooth address'、1)という行を表示します。 System.Exception 'mscorlib.ni.dllで発生しましたが、ユーザーコードで処理されませんでした。追加情報:エレメントが見つかりません。 (HRESULTからの例外:0x80070490)」は、ConnectAsync(...)が呼び出され、メッセージがラズベリーパイに配信されない場合に発生します。
Windowsコード(クライアントとして、ラズベリーPi ):Pythonのサーバーとして
StreamSocket socket = new StreamSocket();
await socket.ConnectAsync(new HostName(bluetoothAddress), "1"); // the format of bluetoothAddress is 'AB:CD:AB:CD:AB:CD'
Stream streamOut = socket.OutputStream.AsStreamForWrite();
StreamWriter writer = new StreamWriter(streamOut);
await writer.WriteLineAsync(message);
await writer.FlushAsync();
ラズベリーパイ():
import bluetooth
server_sock=bluetooth.BluetoothSocket(bluetooth.RFCOMM)
port = 1
server_sock.bind(("",port))
server_sock.listen(1)
client_sock,address = server_sock.accept()
print("Accepted connection from ",address)
data = client_sock.recv(1024)
print("received [%s]" % data)
私はbluetoothAddressとConnectAsync(...)に "1" を交換するときは、「値が予想内に収まっていません「範囲」の例外が表示されます。