Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > COM порт


Автор: Mikel 10.7.2002, 22:19
Как можно следить за данными на COM порте, не мешая другим программам работать с ним же?

Автор: Dapo 11.7.2002, 11:06
Не знаю, пригодяться ли мои соображения, но, мне кажется, это вряд ли получиться. Я писал програмешку, что-то вроде тестера устройства подключенного к com-порту (к сожелению до ума не довел, но, тем не менее она прекрасно опрашивает модем  :hehe ). Так вот, запустил я два экземпляра, этой проги и послав в порт данные из одной, попытался прочитать данные с помощью другой - не получилось. Думаю проблема в следующем: для каждой программы работающей с портом, Винда создает отдельный буфер передаваемых и читаемых данных, причем, после чтения, этот буфер очищается. Прошу не воспринимать мои слова на веру, это лишь мои догадки. Я и сам очень хотел бы разобраться в этом вопросе. :exclamation

Автор: Mikel 11.7.2002, 11:09
Цитата
после чтения, этот буфер очищается

Были такие мысли, и скорее всего, так и есть, но как же работают проги типа VitalAgent?

Автор: podval 11.7.2002, 15:13
Загляни в http://www.delphikingdom.com/mastering/ports1.htm на сайте "Королевство Дельфи". Там уже 5 частей. Всё о работе с портами.

Автор: Mikel 12.7.2002, 15:52
Прбовал по ихнему :) первому способу, выдает только 0 и утверждает что подключился к порту(пришлось код поправить-не компилился)

Автор: максим 2.10.2002, 20:20
Нихрена не получается, я писал программулину по СОМ порту, видать виндоза четко контролирует и не позволяет, если СОМ порт уже кем то открыт его использовать.
[email protected]

Автор: FdX 2.10.2002, 22:25
Цитата
кажется, это вряд ли получиться

Ну как же не получится? Если ком-порт железный, а не эмулируемый драйверами (напр. винмодема), то можно юзать IOHandler. Для этого надо написать VxD. Это имеет смысл, когда прогу пишешь на продажу.

Автор: Mikel 3.10.2002, 21:10
А как нибудь по-проще и по-понятнее? Есть варианты?

Автор: FdX 3.10.2002, 21:59
Ну возмозно есть компоненты для этого. А так в виндах вроде нет поддержки такого.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)