Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Fuelen от Марта 05, 2013, 18:15



Название: LPT
Отправлено: Fuelen от Марта 05, 2013, 18:15
В общем, мне нужно управлять через LPT порт шаговым двигателем.
Предподаватель мне говорил писать на Delphi, но у меня Linux, и я выкрутился, чтобы писать на C++ и Qt.
нашел вот такое https://code.google.com/p/qextserialport/ (https://code.google.com/p/qextserialport/), обрадовался сначало, но понял, что это последовательный порт, а не параллельный ;D
Что меня интересует: скажите каким образом работать с Qt и LPT портом на Windows и на Linux. Может есть какие-то библиотеки уже? Примеры?


Название: Re: LPT
Отправлено: alexis031182 от Марта 05, 2013, 19:39
На сколько я знаю, работать с LPT портом значительно проще, нежели чем с serial. В линуксе для LPT имеется файл в /dev. В виндовс - не знаю. Мне кажется, что платформонезависимого кода для этой задачи не может быть. Ну разве что удастся откопать какой-нибудь класс, где реализован код под разные оси. Впрочем, это маловероятно, в виду тенденции к изъятию LPT с PC.


Название: Re: LPT
Отправлено: alex312 от Марта 05, 2013, 20:10
Fuelen поройся в исходниках avrdude и/или ponyProg - это программы для программирования микросхем, там должно быть реализовано ногодрыганье по LPT.


Название: Re: LPT
Отправлено: kuzulis от Марта 05, 2013, 21:29
Для ножкодрыганья в LPT нужен спец. драйвер, не стандартный, который позволяет это делать.
Стандартный драйвер реализует только протокол центроникс, если не изменяет память.
т.е. винда типа NT не даст тебе дрыгать ножками как тебе хочется.. Увы.

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

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

Что касается Linux - тут не подскажу, возможно есть что-то аналогичное, или же он позволяет от рута
прямой доступ к регистрам портов.. ХЗ..


Название: Re: LPT
Отправлено: Fuelen от Марта 06, 2013, 02:20
http://sourceforge.net/projects/libieee1284/ (http://sourceforge.net/projects/libieee1284/)
Может это подойдёт?


Название: Re: LPT
Отправлено: Fuelen от Марта 07, 2013, 02:23
up.
help :(


Название: Re: LPT
Отправлено: kuzulis от Марта 07, 2013, 10:15
Ну что опять? Что непонятного то?

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

Для Windows:

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

Profit?

Или ты хочешь чтобы тебе курсовик тут написали за тебя? :)
Гугл - твой лучший друг, не ленись. :)


Название: Re: LPT
Отправлено: Bepec от Марта 07, 2013, 13:13
*Осторожно недостоверная информация*

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

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

PS а пищалка и по сей день работает :D


Название: Re: LPT
Отправлено: Fuelen от Марта 08, 2013, 11:02
Ну я, собственно, спрашивал можно ли юзать libieee1284 для этого.
libieee1284 is a cross-platform library for parallel port access.

у меня опыта с компилироваными языками нет :D так вот, на сколько я понял, эта библиотека написана на C, можно её юзать из C++? :)


Название: Re: LPT
Отправлено: schmidt от Марта 08, 2013, 12:25
Конечно можно :) Компилируешь библиотеку, и потом используешь готовый lib файл для линковки со своим проектом. В коде проекта подключаешь  нужные header-файлы от библиотеки.