Исключение тайм-аута при записи в виртуальный COM

Я пытаюсь записать в COM-порт, используя пример.net

У меня нет проблем с записью в реальный COM, но когда я пытаюсь записать в виртуальный COM, я получаю исключение тайм-аута

Необработанное исключение: System.TimeoutException: истекло время записи. в System.IO.Ports.SerialStream.Write(массив Byte[], смещение Int32, число Int32, тайм-аут Int32) в System.IO.Ports.SerialPort.Write(текст строки) в System.IO.Ports.SerialPort.WriteLine(Текст строки)

Я погуглил проблему и нашел это. в соответствии с тем, что там сказано, это проблема:

Функция write().net использует 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);

когда я использовал те, у меня было NULL вместо FILE_FLAG_OVERLAPPE

Мой вопрос, как я могу преодолеть эту проблему? я должен написать свой собственный код?

0 ответов

Другие вопросы по тегам