0

私のコードでは、次の値を設定しています。

public SerialPort comPort = new SerialPort();
comPort.PortName = portName; 

PortNameたとえば、COM17にすることができます。

ここで、GUIを介して2つのデバイスを追加した場合(両方ともCOM17)、1つは最終的に例外をスローします(COM17へのアクセスが拒否されました)。次に、どのデバイスがそのCOMポートに接続されているかを確認したいので、アプリケーションがそれを認識した場合は、ポートを介してコマンドを送信できます。認識されていない場合は、GUIのオプションが無効になります。

それで、インストール時にデータベースに保存できるCOMポートから一意の情報を取得する方法はありますか?

編集:明確にするために、間違ったデバイスがそのCOMポートに接続されている場合(インストールした場合を除く)、エラーが発生します。私はそのエラーを見つけたので、それが正しいものではないことを知っています。しかし、私はむしろそれがどのデバイスであるかを知りたいです。2つのドライバDLLが含まれていて、2つの異なるデバイスがあり、誰かがそれらを切り替えたとします。次に、私のアプリケーションは正しい名前をチェックして確認できるため、エラーをスローしてユーザーに再インストールする必要があると言うのではなく、インストールされたオブジェクトのCOMポートを変更するだけでよいと結論付けます。

4

1 に答える 1

1

これはハードウェアによって異なります。接続されているデバイスが特定の信号メッセージに対して予測可能で一貫した応答を提供する場合は、それを使用してデバイスを識別できます。同じことを行って、独自のハードウェアが接続されているCOMポートを特定します。私はすべてのCOMポートを繰り返し処理し、ハードウェアから特定の応答を返すことがわかっているメッセージを送信します。期待される結果が得られるポートは、ハードウェアを使用したポートです。

于 2013-03-14T15:07:28.683 に答える