• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

picoman

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

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

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

Спасибо.

Андрей.
 
Z

zubr

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

picoman

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

Что значит но гарантии, что ответ устройству будет уходить сразу после приёма данных нет, даже и на уровне ядра?
А как тогда под Windows работают устройства требующие жёсткой привязки (синхронного обмена)?

Андрей.
 
Z

zubr

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!