0

USB から RS422 へのコンバーターを介してシリアル ポートにデータを書き込むアプリケーションがあります。この変換ケーブルは、USB ハブを介して PC に接続します。私が直面している問題は、アプリケーションを実行している PC を変更するたびに、COM ポートの名前が変わることです。そのため、コードでこれを変更し、コードを再コンパイルしてアプリケーションを実行する必要があります。現在、シリアルポートを初期化するために使用しているコードは次のとおりです。

if ((comport = CreateFile("\\\\.\\COM7", GENERIC_WRITE, 0, 
        NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL)) == INVALID_HANDLE_VALUE)
    {
        return false;
    }

ここでは、COM ポートの名前だけに言及しています。COM ポートの状態を知り、コンバーターが接続されている COM ポートをオンザフライで認識する API があるかどうかを知りたいですか?

4

2 に答える 2

1

Windowsで利用可能なすべてのシリアルポートを検出する適切な方法は何ですか? その質問は、少なくとも少しはあなたを助けるかもしれません. したがって、2 番目の回答が示すように、API ではおそらく不可能です。シリアル ポートはプラグ アンド プレイではありません。

したがって、すべてのポートを一覧表示できます。私が考える唯一の方法は、リストにある各デバイスをポーリングすることです。そして、期待する応答が得られるまで待ちます。それはそれほどいいことではありません。

編集:それがあなたが望むものであれば、フレンドリーな名前を取得することは可能かもしれません. Windows で COM ポートのフレンドリ名を取得するにはどうすればよいですか?

于 2013-04-09T07:27:11.143 に答える