Russian Qt Forum
Мая 26, 2025, 07:47 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: LPT  (Прочитано 7419 раз)
Fuelen
Гость
« : Марта 05, 2013, 18:15 »

В общем, мне нужно управлять через LPT порт шаговым двигателем.
Предподаватель мне говорил писать на Delphi, но у меня Linux, и я выкрутился, чтобы писать на C++ и Qt.
нашел вот такое https://code.google.com/p/qextserialport/, обрадовался сначало, но понял, что это последовательный порт, а не параллельный Смеющийся
Что меня интересует: скажите каким образом работать с Qt и LPT портом на Windows и на Linux. Может есть какие-то библиотеки уже? Примеры?
Записан
alexis031182
Гость
« Ответ #1 : Марта 05, 2013, 19:39 »

На сколько я знаю, работать с LPT портом значительно проще, нежели чем с serial. В линуксе для LPT имеется файл в /dev. В виндовс - не знаю. Мне кажется, что платформонезависимого кода для этой задачи не может быть. Ну разве что удастся откопать какой-нибудь класс, где реализован код под разные оси. Впрочем, это маловероятно, в виду тенденции к изъятию LPT с PC.
Записан
alex312
Хакер
*****
Offline Offline

Сообщений: 606



Просмотр профиля
« Ответ #2 : Марта 05, 2013, 20:10 »

Fuelen поройся в исходниках avrdude и/или ponyProg - это программы для программирования микросхем, там должно быть реализовано ногодрыганье по LPT.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #3 : Марта 05, 2013, 21:29 »

Для ножкодрыганья в LPT нужен спец. драйвер, не стандартный, который позволяет это делать.
Стандартный драйвер реализует только протокол центроникс, если не изменяет память.
т.е. винда типа NT не даст тебе дрыгать ножками как тебе хочется.. Увы.

Я когда то под винду писал программулинку-программатор для кастомного ножкодрыгания:
http://scapig.narod.ru/

Там использовался кастомный драйвер "lptwdmio.sys", но это было так давно (лет 10 назад) и бородато... Улыбающийся
Т.е. что касаемо винды тут все просто: Ищешь в гугле любой кастомный драйвер по-новее
и пользуешь его. Только винда должна быть 32х битная, иначе неподписаный драйвер не установишь
(особенно на 8-ке).

Что касается Linux - тут не подскажу, возможно есть что-то аналогичное, или же он позволяет от рута
прямой доступ к регистрам портов.. ХЗ..
« Последнее редактирование: Марта 05, 2013, 21:38 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
Fuelen
Гость
« Ответ #4 : Марта 06, 2013, 02:20 »

http://sourceforge.net/projects/libieee1284/
Может это подойдёт?
Записан
Fuelen
Гость
« Ответ #5 : Марта 07, 2013, 02:23 »

up.
help Грустный
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #6 : Марта 07, 2013, 10:15 »

Ну что опять? Что непонятного то?

Цитировать
Предподаватель мне говорил писать на Delphi, но у меня Linux, и я выкрутился, чтобы писать на C++ и Qt.
Вот это твоя главная ошибка. Нужно было писать в Windows т.к. больше примеров в гугле, да и это займет пару-тройку строк кода (образно).
Тут нет ничего сложного.

Для Windows:

1. Почитай про аппаратную особенность LPT, какие там есть регистры, какие у них адреса и какие пины имеются.
2. Найди кастом драйвер с описанием.
3. Напиши загрузчик для драйвера, например через SCM менеджер (полно примеров), нужно с правами админа грузить.
4. Напиши программу которая использует кастомизированное у-во LPT порта, которое создалось
драйвером после его загрузки.. Эта программа будет открывать это устройство и через DeviceIoControl() дрыгать ножками.

Profit?

Или ты хочешь чтобы тебе курсовик тут написали за тебя? Улыбающийся
Гугл - твой лучший друг, не ленись. Улыбающийся
« Последнее редактирование: Марта 07, 2013, 10:20 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
Bepec
Гость
« Ответ #7 : Марта 07, 2013, 13:13 »

*Осторожно недостоверная информация*

С помощью вот такой вот dll ки - inpout32.dll можно дрыгать ножками встроенного в материнку порта (пищать к примеру).
Помнится когда делалась эта причуда к W7 (там нельзя просто пищать системным динамиком) читал, что вроде с её же помощью можно программировать МК.

Но к сожалению это было почти полтора года назад, не упомню Веселый

PS а пищалка и по сей день работает Веселый
Записан
Fuelen
Гость
« Ответ #8 : Марта 08, 2013, 11:02 »

Ну я, собственно, спрашивал можно ли юзать libieee1284 для этого.
libieee1284 is a cross-platform library for parallel port access.

у меня опыта с компилироваными языками нет Веселый так вот, на сколько я понял, эта библиотека написана на C, можно её юзать из C++? Улыбающийся
Записан
schmidt
Гость
« Ответ #9 : Марта 08, 2013, 12:25 »

Конечно можно Улыбающийся Компилируешь библиотеку, и потом используешь готовый lib файл для линковки со своим проектом. В коде проекта подключаешь  нужные header-файлы от библиотеки.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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