Быстрая очистка буфера на компьютере.
Производительность встроенного в материнскую плату COM-порта обычно выше, чем виртуального COM-порта, создаваемого драйвером NPort. Есть несколько полезных настроек, которые помогут немного увеличить производительность.
Изменять настройки драйвера можно с помощью специальных утилит: NPort Windows Driver Manager или NPort Administrator.
Зачем нужна очистка буфера?
Некоторые программы используют функцию Win32 PurgeComm () перед тем, как считать или отправить данные последовательному устройству. Вызов этой функции нужен для отбрасывания «мусора», который может находиться в приемном буфере на момент запуска программы, и в некоторых случаях приводящий к ошибкам в работе устройства. Если ваша программа использует функцию Win32 PurgeComm (), это может быть причиной низкой производительности NPort.
Работа без Fast Flush
После того, как программа вызывает функцию PurgeComm (), драйвер NPort-а делает несколько запросов к микропрограмме NPort, чтобы убедиться, что в буфере NPort-а нет данных в очереди, а не просто очищает локальный буфер.
На эти запросы драйвера к NPort уходит нескольких сотен миллисекунд. Вот почему функция PurgeComm () работает значительно быстрее со встроенными в материнскую плату COM-портами, чем с виртуальными портами.
Работа с Fast Flush
Для поддержки приложений, требующих более быстрого времени отклика, в драйвере NPort реализована функция Fast Flush (быстрая очистка). По умолчанию эта функция включена. Драйвер NPort не делает запросов к микропрограмме NPort, а сразу очищает локальный буфер и уведомляет приложение.
Рис. 1 Работа функции Fast Flush
Если вы отключили функцию Fast Flush и обнаружили, что виртуальные COM-порты работают заметно медленнее, чем встроенный в материнскую плату COM-порт, попробуйте проверить, используется ли функция PurgeComm () в вашем приложении.
Если это так, можно попытаться улучшить производительность NPort, включив функцию Fast Flush. Для этого откройте NPort Windows Driver Manager или NPort Administrator, перейдите на страницу Advanced Settings и выберите параметр Fast Flush (Flush local buffer only).
Рис 2. Функция Fast Flush в настройках включена по умолчанию.