私は4つのUSBシリアルコンバータ(Prolific)をUSBハブに接続しました。デバイスマネージャーを見ると、動的に割り当てられたCom番号が表示されます。しかし、ハブを別のUSBポートに再接続した後、またはシステムの再起動後に、それらのCOM番号が時々変更されることがあります。これらの数値を手動で検索することなく、すべてのコンバータの数値を更新する方法はありますか?基本的には、私のC#プロジェクトでは、すべてのコンバータの一意のIDを探して新しいCOM番号を取得するメソッドを用意したいと思います。これを行う方法はありますか(いくつかのwmiクエリを試しましたが、成功しませんでした)?USBシリアルコンバータを区別するにはどうすればいいですか?
今日、私は回避策について考えました。だから別の質問がある。どのようにUSBハブについての情報を取得するには?基本的に私は何とか自分のUSBハブを見つけて、ハブポートデバイスに接続された情報を取得することができました。これらのデバイスのCOM番号を取得することは、wmiクエリーを通じて非常に簡単です。私はUSBViewを使用して、そのような情報を得ることが可能であることを確認しました。私は、ルートハブ - >汎用USBハブ - >広範なUSB - シリアル通信ポートから木が立ち上がっているのを見ることができますが、今すぐコードでそれを行う方法を知ることができます。何か案は?
このリンクを探すために
いいえ、USBは、ポート番号が表示されません、バスです。そして、はい、あなたがテストしているときに痛い問題です(生産中ではありません)。あなたのコードでSerialPort.GetPortNames()を観察することはできません。デバイスデータから物理デバイスを識別する方法があれば、最適なソリューションです。 –
私は多くの詳細は覚えていませんが、作成された各ポートには関連するレジストリキーがあります(場所はUSBシリアルチップの製造元によって異なります)。 –
この問題を避けるため、Moxa 8ポートPCIシリアルカードを使用するように切り替えました。 –