6

シリアル ポート経由でデバイスに接続するユーティリティがあります。このアプリケーションをテストするために、デバイス用のシミュレーターを作成しています。

どちらのアプリケーションも、同じ Windows 7 マシンで実行することを目的としています。

私はC#でシミュレーターを書いています。com0com を使用して、仮想ポートのペアを作成しました (この場合、既存のペアがいくつかあるため、CNCA8 と CNCB8 です)。

シミュレーターで CNCB8 を開こうとしています (アプリケーションはまだ実行されていません)。例外が発生します。

System.dll で 'System.ArgumentException' 型の未処理の例外が発生しました

追加情報: 指定されたポート名が COM/com で始まっていないか、有効なシリアル ポートに解決されません。

サンプルコード:

        SerialPort port = new SerialPort("CNCB8", 9600, Parity.None, 8, StopBits.One);
        port.Handshake = Handshake.None;            
        port.Open();

未使用の仮想ポートであるため、この質問は関係ありません (IsOpen は問題がある場合は false を返します): C# SerialPort#Open() メソッドは、ポート名のために ArgumentException をスローしますか?

編集:ポート名が SerialPort.GetPortNames() に表示され、Windows のデバイス マネージャーの「com0com シリアル ポート エミュレーター」の下に表示されることも確認しました。また、B の代わりに CNCA を使用して (いくつかの異なる既存の仮想ポートを使用して)、「HandShake」行を削除して、念のためにボーレートを 115200 に変更してみました (ただし、最終的には 9600 が必要です)。

4

2 に答える 2