次の機能を(順番に)実行するC#/ Visual Studio 2010を使用してWindowsアプリケーションを構築しようとしています。Bluetooth操作では、32feet.Netライブラリ関数を使用しています。
Bluetoothデバイスを見つけて、ユーザーが選択できるようにリスト/コンボボックスにリストします。(ユーザーが複数のデバイスを選択できるようにしたいので、
SelectBluetoothDeviceDialog
クラスオプションは使用しません。)デバイスのリストは経由BluetoothClient.DiscoverDevices()
で取得できますが、非同期操作ではありません。できれば非同期操作をしたいと思います。BluetoothComponent
イベントとメソッドを含むクラスDiscoverDevicesProgress
についてDiscoverDevicesComplete
読みましたDiscoverDevicesAsync
が、機能させることができませんでした。可能であれば、このためのサンプルコードを共有してください。ユーザーはリストからデバイスを選択し、「ペアリング」ボタンをクリックします。これまでのところ、を介してデバイスを正常にペアリングできます
BluetoothSecurity.PairRequest
。ここでは問題はありません。ユーザーは、「ペアリング済み」リストから1つまたは複数のデバイスを選択し、「接続」をクリックします。
BeginConnect
ここでは、 (非同期操作の場合)クラスConnected
のメソッドを使用してデバイスに接続しようとしましたBluetoothClient
が、次の例外が発生しました。
System.Net.Sockets.SocketsException:{"無効な引数が指定されました000319002CC6:0000110100001000800000805f9b34fb"}。
上記の例外の番号は、Connected
を使用して渡したメソッドに必要なGUID番号ですBluetoothService.SerialPort
。デバイスがCOM7ポートに接続されていることを想定しているため、これは失敗します。特定のCOMポートでデバイスを接続/ペアリングするにはどうすればよいですか?32feet.Netライブラリ関数でも可能ですか?その場合は、コードサンプルを提供してください。
参考資料注:StackOverflowの以下の記事で説明されているコードをすでに読んで、実装しようとしました。ただし、要件(ユーザーがCOMポートで複数のデバイスをペアリングして接続できるようにする)のため、同じコードを実行できません。しかし、それは概念を理解するのに役立ちました。 32feet.net c#で非同期の近くのBluetoothデバイスを検出する方法
この状況に対処するための最善の方法をアドバイスするように依頼してください。32feet.Net以外のライブラリ/関数を使用してみる必要がある場合は、お知らせください。
私の最終的な目標は、接続されたデバイスとの間でデータの読み取りと書き込みの両方を行うことです。そのため、現時点では、Bluetoothを介して特定のCOMポートに接続しようとしています。
よろしく、ルミット
===========================編集:回答1の情報を更新しました:
TOSHIBA VIRTUAL BT COMポートに接続されているはずのBluetoothデバイス(パッチ)を受け取りました。ご質問にお答えするために東芝の情報が必要でしたことをお詫び申し上げます。ポートとの通信は初めてです。これまでのところ、COM7を使用する必要があることはわかっています。Bluetooth経由でCOM7の同じパッチに接続するC++で構築されたアプリケーションがあります。ただし、ソースコードがなく、C#で同じユーティリティを実装するように求められました。あなたの回答から、C++アプリケーションが万が一WindowsSockets 2を使用している可能性があると思いますか?
また、ポート(整数値)の値を指定するオプションが表示されましBluetoothEndClient
たが、それも機能しませんでした。したがって、ポートはCOMではなく、他のタイプのポートであると思います。
よろしく、ルミット