0

.netサンプルを使用してCOMポートに書き込もうとしています

実際の COM への書き込みには問題はありませんが、仮想 COM に書き込もうとするとタイムアウト例外が発生します。

未処理の例外: System.TimeoutException: 書き込みがタイムアウトしました。System.IO.Ports.SerialStream.Write(Byte[] 配列、Int32 オフセット、Int32 カウント、Int32 タイムアウト) で System.IO.Ports.SerialPort.Write(文字列テキスト) で System.IO.Ports.SerialPort.WriteLine(文字列テキスト)

問題をグーグルで調べたところ、これが見つかりまし。そこで言われていることによると、これは問題です:

.net の write() 関数は、次のように CreateFile と WriteFile Async を使用しています。

CreateFile("\\\\.\\" + portName,
            NativeMethods.GENERIC_READ | NativeMethods.GENERIC_WRITE,
            0,    // comm devices must be opened w/exclusive-access
            IntPtr.Zero, // no security attributes
            UnsafeNativeMethods.OPEN_EXISTING, // comm devices must use OPEN_EXISTING
            FILE_FLAG_OVERLAPPED,
            IntPtr.Zero  // hTemplate must be NULL for comm devices
            );

WriteFile(_handle, p + offset, count, IntPtr.Zero, overlapped);

FILE_FLAG_OVERLAPPE の代わりに NULL を使用したとき

私の質問は、どうすればこの問題を克服できますか? 独自のコードを作成する必要がありますか?

4

0 に答える 0