Здравствуйте Подскажите, может кто ни будь в курсе, я уже перерыл MSDN, есть ли какие ни будь сообщения информирующие о том, что произошла запись в ком порт, или мягкотелые не догадались до этого. Задача в следующем есть программа что то типа SCADA системы, в ней есть один поток который постоянно читает порт и записывает данный в другой буфер, а дальше другой поток парсит этот буфер ну согласно данным отображает информацию о тех процессе (ну в общем обычный сервер),но куда бы проще было бы если бы в Винде были бы сообщения, или скорее всего придется разрабатывать драйвер, который будет посылать сообщения, о записи в порт. Может кто нибудь знает где можно взять готовый драйвер
CreateFile с флагом FILE_FLAG_OVERLAPPED. Далее - ReadFile с параметром OVERLAPPED. В сети есть примеры. Драйвер писать не надо (по крайней мере, для этого). Удачи!
Я может не правильно вопрос поставил, имеется ввиду, что программа занимается своим делом, и как только приходит сообщение ну к примеру WM_WRITEPORT (произошла запись в порт), где одним из параметров является число байт записанных в порт, после этого я читаю порт (ReadFile), но естественно перед этим использовав функцию CreateFile
Вы правильно задали вопрос. Я его так и понял. Это все, о чем я написал, называется организацией асинхронного ввода/вывода. Этот метод и позволяет решить Вашу задачу. Почитайте статью Титова Олега, на просторах сети ее много растиражировано. Она поможет. Удачи!
com - ком порт генерит прерывание ? что-то новое у меня в системе 21 ком порт, с такими темпами прерываний не наберешся А вообще рулит !
_Serega_ Ничего сибе системка - эт что за зверь? В Нормальной IBM архитектуре их всего максимум 4 и два прерывания на всех А на современных машинах и один не всегда бывает , если не считать виртуальные на встроенных модемах ЗЫ: Ты случаем не COM объекты имел в виду ? )
Угадал , но не только модем ... Кстати чет я тормознул насчет прерываний, просто у меня ком не висит на IRQ, а только ЛПТ. Отсюда и от количества портов сделал неправильный вывод ЗЫ: надо как-нить rs232 копнуть на досуге
Y_Mur Бывают так называемые мультипортовые карты - видел я одну такую (именно на COM, говорить не буду в какой системе), не знаю, 21 там или нет, но жгут из проводов внушительный был. Непосредственно к системному блоку один кабель подключается, а он ведет к карте, на которой куча дополнительных гнезд. К ним подключалось несколько устройств (не модемов, естественно ) С программной точки зрения - не знаю, что там происходило - сию программу посмотреть нельзя было. Вот так.
ksu_ant Я тоже мультпортовые карты видел, но куда меньше чем на 21 порт, раньше даже локальные сети на сомах делали , но сейчас они давно вымерли как динозёвры, а промышленные локалки используют RS423, RS422, RS485, которые внешне и логически похожи на com, но совсем не он Потому и удивился, что _Serega_ так запросто говорит, что у него 21 сом порт, на которые прерываний не напасёшся )) А оказалось - банальная ошибка ... _Serega_ А Wim модемы и подобные им устройства эмулируют сом порт только на уровне win API, а реальная работа с железом может и близко ничего общего с RS232 протоколом не иметь ) ЗЫ: не путать с полноценными встраиваемыми модемами, которые проецируют ввод вывод на реальное адресное пространство com порта - тогда порт настоящий, только без внешнего разьёма