Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

COM-port в Win98 и Win2000

1.8K
21 июля 2008 года
Arkady
153 / / 18.12.2007
Здравствуйте,

Существует старое устройство соединяющееся с компом через RS232. Работает в достаточно неприятном режиме, т.е. для того, чтобы читать что-то с него или писать, необходимо сначала послать сигнал, что собираешься читать, потом получить ответ, и только потом производить чтение (всё это через передачу данных, а не средствами сигналов RS232).

Существует 2 программы для работы с этим устройством, на win98 и на win2000.
Дело в том, что win98 позволял напрямую взаимодействовать с ком портом, и соответственно программа написана с использованием специфики работы прибора и работает быстро.
А вот в win2000 уже появился драйвер, покрывающий всю работу с COM-портом, и программа, написанная с его использованием работает крайне медленно, поскольку требует частых обращений к чтению и записи, причем нельзя писать, пока не прочитал ответ.

Я вижу 2 решения, или как-то подменить драйвера win2000 на то, что было в win98 (возможно ли это, а если да, то как?) или написать свой драйвер для работы с win2000 (но как это делается я не представляю).
Какие ещё могут быть решения этой задачи?
Может быть можете помочь советом, литературой, примером?

Заранее благодарю =)
11
21 июля 2008 года
oxotnik333
2.9K / / 03.08.2007
предполагаю, что Ваша программа не будет быстрей работать, нежели родной драйвер
По работе с COM портом ищи по форуму, было много раз (через API CreateFile("COM.."....))
1.8K
21 июля 2008 года
Arkady
153 / / 18.12.2007
Цитата: oxotnik333
предполагаю, что Ваша программа не будет быстрей работать, нежели родной драйвер
По работе с COM портом ищи по форуму, было много раз (через API CreateFile("COM.."....))



Про это я на форуме много нашел. А надо в обход CreateFile... если под Win98 работало быстрее, значит может работать быстрее и под Win2000.

11
21 июля 2008 года
oxotnik333
2.9K / / 03.08.2007
API-шная ф-я DeviceIoControl
Еще ниже к железу боюсь винда не пустит
332
21 июля 2008 года
Valiant
416 / / 27.09.2004
Соединяемся с девайсом через CreateFile ...
а вот дальше начинается секс!
В процессе использования агрегата под 98 окнами они(форточки) генерят двоичные сигналы для контроля оного ... снимаем их (как выбудете это делать разницы нет, я бы предпочёл какой нибудь перехват)!
Что с ними делать дальше думаю объяснять не стоит?!
332
21 июля 2008 года
Valiant
416 / / 27.09.2004
Цитата: oxotnik333
API-шная ф-я DeviceIoControl
Еще ниже к железу боюсь винда не пустит



Пустит только надо попросить =)

Только это уже не к этой ветке, а в сторону асмы.

1.8K
21 июля 2008 года
Arkady
153 / / 18.12.2007
Спасибо!! =)

Цитата: Valiant
Пустит только надо попросить =)

Только это уже не к этой ветке, а в сторону асмы.



А как полному чайнику попросить?

8.8K
21 июля 2008 года
Se AD WMD
165 / / 10.01.2007
http://www.pcports.ru/Articles.php
Попробуй поискать там.
332
22 июля 2008 года
Valiant
416 / / 27.09.2004
Цитата: Se AD WMD
http://www.pcports.ru/Articles.php
Попробуй поискать там.



+1 хороший ресурс!

590
23 июля 2008 года
Gigahard
223 / / 03.04.2006
Вообще не очень понятно, что значит "под Win98 работало быстрее"?
Что работало быстрее?
На самом деле и NT, т.е. 2k и xp позволяют работать с портом напрямую. Только нафиг это нужно, если средства winAPI позволяют все сделать довольно быстро.
В свое время, пару лет назад писал прогу c com портом по взаимодействию с 1-wire шиной. Никаких тормозов не заметил.
Конечно перед этим придется понять сам принцип работы функций winAPI по работе с Com портом и научится правильно их применять. Если этим не заморачиватся, то естественно все будет тормозить.

Тут такое дело... Информация по winAPI функциям в интернете есть, но она в основном имеет обрывочный, противоречивый, а иногда и дезинформирующий характер.
Как то нашел одну интересную книженцию "Последовательные интерфейсы ПК. Практика программирования" Павла Агурова. Так вот, автор собрал всю информацию воедино и предоставил это все в доступной форме. Единственным недостатком может являтся то, что листинги в книге даны на Паскале. Но это не так важно.
479
23 июля 2008 года
Ухух
142 / / 05.05.2006
Цитата: Gigahard
средства winAPI позволяют все сделать довольно быстро.Конечно перед этим придется понять сам принцип работы функций winAPI по работе с Com портом и научится правильно их применять. Если этим не заморачиватся, то естественно все будет тормозить.



Все верно написано. Самое простое вам написать прогу самостоятельно с использованием API , кстати, вы тогда получите совместимость с любыми операционками и с 98 и с ME и с XP. Сигналами квитирования спокойненько можно управлять из любой операционки с использованием API.

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

Того что есть в сети , достаточно чтобы разобраться с портом.

Не поддавайтесь соблазну использовать компоненты и т п, разберитесь сами .

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог