Компоненты для работы с Com-портом и лечение к ним, или (+)

  • Автор темы picoman
  • Дата начала
Статус
Закрыто для дальнейших ответов.
P

picoman

#1
Ищу для BCB6 Компоненты для работы с COM-портом и лечение к ним,
ИЛИ
грамотные способы работы с портом без написания драйверов.

1. Как возможно приложению адекватно работать с ком-портом, ведь время выполнения ему предоставляется непредсказуемо?
С отправкой/приёмом в порт блоков данных понятно, есть стандартный драйвер Windows который доступен через файл порта, но как приложению чётко управлять устройством (чтобы ответ устройству уходил сразу после приёма данных от устройства)? Мне говорили что для BCB есть компоненты которые решают все эти проблемы без написания драйвера устройства. Интересно как они работают (это драйвер конфигурируемый или что?), как написать поведение системы при работе с устройством через эти компоненты, код пишешь для компонента отдельно, а приложение связываешь с компонентом уже через системный буфер?

Помогите кто может!

Спасибо.

Андрей.
 
Z

zubr

#3
Используя DeviceIoControl вместо ReadFile, WriteFile скорость работы с COM-портом на пользовательском уровне увеличится. Но гарантии, что ответ устройству будет уходить сразу после приёма данных нет, даже и на уровне ядра. Можешь еще повысить приоритет своему приложению, которое работает с компортом, но тогда другие программы, работающие в системе будут "отдыхать".
 
P

picoman

#4
Используя DeviceIoControl вместо ReadFile, WriteFile скорость работы с COM-портом на пользовательском уровне увеличится. Но гарантии, что ответ устройству будет уходить сразу после приёма данных нет, даже и на уровне ядра. Можешь еще повысить приоритет своему приложению, которое работает с компортом, но тогда другие программы, работающие в системе будут "отдыхать".
Что значит но гарантии, что ответ устройству будет уходить сразу после приёма данных нет, даже и на уровне ядра?
А как тогда под Windows работают устройства требующие жёсткой привязки (синхронного обмена)?

Андрей.
 
Z

zubr

#5
Не путай понятия - синхронный обмен и таймауты при выполнении операций, это разные вещи. Синхронный обмен данными между внешним устройством и COM-портом легко создается на прикладном уровне, для этого не надо драйвер городить. Советую почитать литературу по данному профилю.
 
Статус
Закрыто для дальнейших ответов.