COM-port в Win98 и Win2000
Существует старое устройство соединяющееся с компом через RS232. Работает в достаточно неприятном режиме, т.е. для того, чтобы читать что-то с него или писать, необходимо сначала послать сигнал, что собираешься читать, потом получить ответ, и только потом производить чтение (всё это через передачу данных, а не средствами сигналов RS232).
Существует 2 программы для работы с этим устройством, на win98 и на win2000.
Дело в том, что win98 позволял напрямую взаимодействовать с ком портом, и соответственно программа написана с использованием специфики работы прибора и работает быстро.
А вот в win2000 уже появился драйвер, покрывающий всю работу с COM-портом, и программа, написанная с его использованием работает крайне медленно, поскольку требует частых обращений к чтению и записи, причем нельзя писать, пока не прочитал ответ.
Я вижу 2 решения, или как-то подменить драйвера win2000 на то, что было в win98 (возможно ли это, а если да, то как?) или написать свой драйвер для работы с win2000 (но как это делается я не представляю).
Какие ещё могут быть решения этой задачи?
Может быть можете помочь советом, литературой, примером?
Заранее благодарю =)
По работе с COM портом ищи по форуму, было много раз (через API CreateFile("COM.."....))
По работе с COM портом ищи по форуму, было много раз (через API CreateFile("COM.."....))
Про это я на форуме много нашел. А надо в обход CreateFile... если под Win98 работало быстрее, значит может работать быстрее и под Win2000.
Еще ниже к железу боюсь винда не пустит
а вот дальше начинается секс!
В процессе использования агрегата под 98 окнами они(форточки) генерят двоичные сигналы для контроля оного ... снимаем их (как выбудете это делать разницы нет, я бы предпочёл какой нибудь перехват)!
Что с ними делать дальше думаю объяснять не стоит?!
Еще ниже к железу боюсь винда не пустит
Пустит только надо попросить =)
Только это уже не к этой ветке, а в сторону асмы.
Только это уже не к этой ветке, а в сторону асмы.
А как полному чайнику попросить?
Попробуй поискать там.
Попробуй поискать там.
+1 хороший ресурс!
Что работало быстрее?
На самом деле и NT, т.е. 2k и xp позволяют работать с портом напрямую. Только нафиг это нужно, если средства winAPI позволяют все сделать довольно быстро.
В свое время, пару лет назад писал прогу c com портом по взаимодействию с 1-wire шиной. Никаких тормозов не заметил.
Конечно перед этим придется понять сам принцип работы функций winAPI по работе с Com портом и научится правильно их применять. Если этим не заморачиватся, то естественно все будет тормозить.
Тут такое дело... Информация по winAPI функциям в интернете есть, но она в основном имеет обрывочный, противоречивый, а иногда и дезинформирующий характер.
Как то нашел одну интересную книженцию "Последовательные интерфейсы ПК. Практика программирования" Павла Агурова. Так вот, автор собрал всю информацию воедино и предоставил это все в доступной форме. Единственным недостатком может являтся то, что листинги в книге даны на Паскале. Но это не так важно.
Все верно написано. Самое простое вам написать прогу самостоятельно с использованием API , кстати, вы тогда получите совместимость с любыми операционками и с 98 и с ME и с XP. Сигналами квитирования спокойненько можно управлять из любой операционки с использованием API.
Самые большие тормоза появляются если вам надо на лету скорости менять, тогда да, до пары сотен миллисекунд доходит. А так можно вылизать так что быстренько будет работать , по крайней мере не медленнее чем под 98.
Того что есть в сети , достаточно чтобы разобраться с портом.
Не поддавайтесь соблазну использовать компоненты и т п, разберитесь сами .