Russian Qt Forum

Программирование => С/C++ => Тема начата: sega от Апрель 30, 2004, 20:07



Название: управление девайсом через порт
Отправлено: sega от Апрель 30, 2004, 20:07
Уважаемые, расскажите, как записывать/считывать из портов под виндой?
Нужна прога для управления прибором, подключенным к компу. Прибор выдает данные с периодом 10ms,
и принимает управляющие команды. Надо обрабатывать поступающие данные и осуществлять управление девайсом.
Среда разработки ПО - Visual C++ или Delphi.
ps если можно, то подробнее пожалуйста: работа с портами под Windows и написание драйверов совершенно новая для меня тема...


Название: Re: управление девайсом через порт
Отправлено: Rainbow от Май 01, 2004, 00:59
С 10-ма мс придется туго. Если привязка идет к ним.
Насчет же инфы то "Programming WDM" by Walter Oney.


Название: управление девайсом через порт
Отправлено: Gardener от Сентябрь 24, 2004, 08:52
Если комп достаточно хорош, то 10 млс - вполне реально. Смотря сколько времени, конечно, займет обработка самих данных. Win98 позволяет осуществлять прямой доступ к портам, а вот для 2000 или XP действительно нужен драйвер. В наборе DDK есть стандартный пример драйвера ввода-вывода, который тебя вполне устроит, он так и называется - portio.


Название: управление девайсом через порт
Отправлено: Rainbow от Сентябрь 27, 2004, 11:57
Вообще если нужно 100% ганарнтировать такой интервал, понадобится какий нибудь rtos. Ну уж никак не маздай.


Название: управление девайсом через порт
Отправлено: Gardener от Сентябрь 28, 2004, 09:11
Я промерял в свое време на третьем пне под NT. Интервал 10 ms соблюдается с точностью до 10 %, если, конечно, в это же время нет активных приложений. Думаю, десятипроцентная точность сохранится и под 2000. Под хряком - не уверен.


Название: управление девайсом через порт
Отправлено: Rainbow от Сентябрь 28, 2004, 12:33
Цитата: "Gardener"
Думаю, десятипроцентная точность сохранится и под 2000. Под хряком - не уверен.

Не сохранилась. В свое время я писал драйвер для PCI-шного устройства. В котором прерываия шли ч-з 20 мсек. С трудом удерживал. Пришлось делать буферизацию. При том если очень сильно пригрузить комп, то всеровно все тухло. Прерывания задерживались в среднем на 5-10 мсек. Под хряком не проверял.


Название: управление девайсом через порт
Отправлено: Racheengel от Сентябрь 28, 2004, 14:05
я по работе занимаюсь подобной фишкой (программа диспетчерского управления линией). пишу на Qt, юзаю QExtSerialPort класс. если заинтересует - могу дать все, что есть. Пиши на мейл racheengel@ukrtop.com.


Название: управление девайсом через порт
Отправлено: Gardener от Сентябрь 29, 2004, 16:30
Цитата: "Rainbow"
В свое время я писал драйвер для PCI-шного устройства. В котором прерываия шли ч-з 20 мсек. С трудом удерживал. Пришлось делать буферизацию. При том если очень сильно пригрузить комп, то всеровно все тухло. Прерывания задерживались в среднем на 5-10 мсек. Под хряком не проверял.
Я, вообще-то, говорил о замере из апликации. В драйвере точность должна быть существенно выше, особенно если он обрабатывает прерывания от инициативного устройства. Скорее всего, тут передавались большие объемы информации, которые драйвер не успевал обработать и переварить.