Russian Qt Forum
Ноябрь 23, 2024, 04:08 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: управление девайсом через порт  (Прочитано 8009 раз)
sega
Гость
« : Апрель 30, 2004, 20:07 »

Уважаемые, расскажите, как записывать/считывать из портов под виндой?
Нужна прога для управления прибором, подключенным к компу. Прибор выдает данные с периодом 10ms,
и принимает управляющие команды. Надо обрабатывать поступающие данные и осуществлять управление девайсом.
Среда разработки ПО - Visual C++ или Delphi.
ps если можно, то подробнее пожалуйста: работа с портами под Windows и написание драйверов совершенно новая для меня тема...
Записан
Rainbow
Гость
« Ответ #1 : Май 01, 2004, 00:59 »

С 10-ма мс придется туго. Если привязка идет к ним.
Насчет же инфы то "Programming WDM" by Walter Oney.
Записан
Gardener
Гость
« Ответ #2 : Сентябрь 24, 2004, 08:52 »

Если комп достаточно хорош, то 10 млс - вполне реально. Смотря сколько времени, конечно, займет обработка самих данных. Win98 позволяет осуществлять прямой доступ к портам, а вот для 2000 или XP действительно нужен драйвер. В наборе DDK есть стандартный пример драйвера ввода-вывода, который тебя вполне устроит, он так и называется - portio.
Записан
Rainbow
Гость
« Ответ #3 : Сентябрь 27, 2004, 11:57 »

Вообще если нужно 100% ганарнтировать такой интервал, понадобится какий нибудь rtos. Ну уж никак не маздай.
Записан
Gardener
Гость
« Ответ #4 : Сентябрь 28, 2004, 09:11 »

Я промерял в свое време на третьем пне под NT. Интервал 10 ms соблюдается с точностью до 10 %, если, конечно, в это же время нет активных приложений. Думаю, десятипроцентная точность сохранится и под 2000. Под хряком - не уверен.
Записан
Rainbow
Гость
« Ответ #5 : Сентябрь 28, 2004, 12:33 »

Цитата: "Gardener"
Думаю, десятипроцентная точность сохранится и под 2000. Под хряком - не уверен.

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

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #6 : Сентябрь 28, 2004, 14:05 »

я по работе занимаюсь подобной фишкой (программа диспетчерского управления линией). пишу на Qt, юзаю QExtSerialPort класс. если заинтересует - могу дать все, что есть. Пиши на мейл racheengel@ukrtop.com.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Gardener
Гость
« Ответ #7 : Сентябрь 29, 2004, 16:30 »

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


Страница сгенерирована за 0.05 секунд. Запросов: 22.