Последовательные порты, CreateFile и SetCommState - PullRequest
0 голосов
/ 22 апреля 2010

Я использую функции Windows API CreateFile и SetCommState , чтобы открыть ряд последовательных портов для чтения и записи, выбирая порты с использованием этой записи:

\\?\COM1

Я тщательно регистрирую производительность, и по какой-то странной причине вызов CreateFile занимает примерно столько же времени, сколько и вызовы SetCommState (около 4,1 секунды).

Я нахожу это очень странным и заставляет меня подозревать, что и CreateFile, и SetCommState выполняют набор аналогичных задач с подсистемой Windows, которая обрабатывает связь через последовательный порт.

Может ли быть способ ускорить один из обоих вызовов или устранить один, например, вызвать CreateFile таким образом, чтобы он уже использовал DCB, с которым я подготовился для вызова SetCommState?

1 Ответ

0 голосов
/ 22 апреля 2010

В документации, которую вы опубликовали, предлагается вызвать GetCommState для инициализации структуры DCB. Интересно, это задержка, потому что вы устанавливаете что-то, что вас не волнует? Что бы это ни стоило, я заметил гораздо большие задержки открытия виртуальных COM-портов Bluetooth, чем обычные или USB-порты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...