2017-07-03 1 views
0

私は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" を交換するときは、「値が予想内に収まっていません「範囲」の例外が表示されます。

答えて

0

メソッドsocket.ConnectAsync()の2番目のパラメータ "remoteServiceName"はRfcommDeviceService.ConnectionServiceNameである必要があります。

詳細については、Bluetooth RFCOMM chat sampleを参照してください。

関連する問題