1

接続されているすべての arduino の COM ポート番号を自動的に検出する C++ プログラムを作成しようとしています。

利用可能なすべての COM ポート デバイスのリストを取得できることは既にわかっていますがHKLM/HARDWARE/DEVICEMAP/SERIALCOMM、そこでリッスンしているデバイスに関する情報はありません。たとえば、GUID またはデバイスの説明を取得して、どちらが Arduino であるかを検出する方法はありますか? 私が見る唯一の他の方法は、すべてのポートに何かを送信して、以前に定義された応答をリッスンすることです。回答ありがとうございます:)

編集: コンパイラと MinGW として g++ を使用していることに言及する必要があると思います。syam は、Arduino COM ポートを自動検出する方法を教えてくれました。これは私が望むものを達成しているようですが、C#で書かれており、純粋なWin32が必要な場合は.Net固有のAPIを使用しています.

4

2 に答える 2

0

この記事によると、それを行う方法の 1 つは、以下を参照することですHKEY_LOCAL_MACHINE\System\CurrentControlSet\Services

  1. には、、、、などHKEY_LOCAL_MACHINE\System\CurrentControlSet\Servicesの関連するサブキーがいくつかあります。Arduino はおそらく , になりますが、正直なところ、よくわかりません。usbaudiousbccgbusbehciusbprintusbscanusbccgbusbehci
  2. 0名前が、などの数値である値を探しているキーの内部1
  3. 値はデバイス ID です

デバイスのデバイス ID は、Windows の [デバイス マネージャー] から確認できます。デバイスを右クリックし、[プロパティ] を選択して、[詳細] タブを選択します。明らかに、Arduino デバイスのデバイス ID を探して、必要なレジストリ キーをプログラムで開くことができます。あなたの問題に対するこのアプローチの問題は、使用する予定のArduinoごとにArduino検出器を事前にプログラムする必要があることです。

于 2013-04-24T18:51:12.290 に答える