2

私は Bluetooth プログラミングに非常に慣れていないため、この質問が素朴に思われる場合はお詫び申し上げます。

とはいえ、私の潜在的なクライアントは、Bluetooth 経由で Wi​​ndows PC にデータを送信するカスタム ハードウェア デバイスを持っています。PC ソフトウェアは、仮想 COM ポートを開き、そこからデータを読み取ることによってデバイスに接続します。次に、このデータをリアルタイムで視覚化します。

彼らがやりたいことは、これらのデバイスのうち 3 つ (または、異なるセンサーに接続された 3 つの非常に類似したデバイス) を同時に PC に接続することです。彼らはソフトウェアを書き直して、3 つのソースすべてからデータを集約し、そのすべてをリアルタイムで視覚化したいと考えています。これは、各デバイスがデータを生成してから画面にデータが表示されるまでの遅延が、最悪でも数十ミリ秒程度になることを意味します。

私の質問は 2 つあります。

1)。これはまったくできますか?PC 上のソフトウェアが、Bluetooth でバックアップされた 3 つの仮想 COM ポートに同時に接続する方法はありますか? (答えは「はい」だと思いますが、確かにそうです)。

2)。これを行うのに最適なプラットフォームは何ですか? 元のソフトウェアは C++/MFC で書かれていますが、個人的には、より簡単なグラフィックスと GUI API にアクセスできる、より最新のものを好みます。

4

1 に答える 1

1

私のライブラリ32feet.NETを使用できます。 たとえば、ドキュメントを参照してください。

まず、仮想 COM ポートを使用しないでください。セットアップが難しく、使用が不透明で、保守が困難です。私たちのBluetoothClient.Connect操作を使用してください (またはBluetoothListener、デバイスが PC に接続されている場合)。次に、3 つのソケット (実際にはNetworkStreams) があり、非同期または同期のいずれであっても、3 つすべてから読み取ることができます。たとえば、一般的な Bluetooth データ接続を参照してください。

デバイスは Serial Port Profile を使用するため、 UUID/Guid BluetoothService.SerialPortを使用します。3 つのデバイスに必要なのは、それぞれのデバイス アドレスです。ディスカバリ (ドキュメントを参照) を介して取得するか、デバイス アドレスがデバイスのラベルまたは回路基板に書き​​込まれている可能性があり、コードで const として定義するだけです。例えば

static readonly BluetoothAddress DeviceAddr1
    = BluetoothAddress.Parse("002233445566");

遅延に関しては問題ないはずですが、他の方法では遅くなると思います。.NET は最新であり、UI 用の WinForms、WPF、および Silverlight オプションを備えています。

于 2012-05-04T08:58:38.543 に答える