Russian Qt Forum
Мая 26, 2025, 07:47
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
LPT
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: LPT (Прочитано 7419 раз)
Fuelen
Гость
LPT
«
:
Марта 05, 2013, 18:15 »
В общем, мне нужно управлять через LPT порт шаговым двигателем.
Предподаватель мне говорил писать на Delphi, но у меня Linux, и я выкрутился, чтобы писать на C++ и Qt.
нашел вот такое
https://code.google.com/p/qextserialport/
, обрадовался сначало, но понял, что это последовательный порт, а не параллельный
Что меня интересует: скажите каким образом работать с Qt и LPT портом на Windows и на Linux. Может есть какие-то библиотеки уже? Примеры?
Записан
alexis031182
Гость
Re: LPT
«
Ответ #1 :
Марта 05, 2013, 19:39 »
На сколько я знаю, работать с LPT портом значительно проще, нежели чем с serial. В линуксе для LPT имеется файл в /dev. В виндовс - не знаю. Мне кажется, что платформонезависимого кода для этой задачи не может быть. Ну разве что удастся откопать какой-нибудь класс, где реализован код под разные оси. Впрочем, это маловероятно, в виду тенденции к изъятию LPT с PC.
Записан
alex312
Хакер
Offline
Сообщений: 606
Re: LPT
«
Ответ #2 :
Марта 05, 2013, 20:10 »
Fuelen
поройся в исходниках avrdude и/или ponyProg - это программы для программирования микросхем, там должно быть реализовано ногодрыганье по LPT.
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: LPT
«
Ответ #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
Гость
Re: LPT
«
Ответ #4 :
Марта 06, 2013, 02:20 »
http://sourceforge.net/projects/libieee1284/
Может это подойдёт?
Записан
Fuelen
Гость
Re: LPT
«
Ответ #5 :
Марта 07, 2013, 02:23 »
up.
help
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: LPT
«
Ответ #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
Гость
Re: LPT
«
Ответ #7 :
Марта 07, 2013, 13:13 »
*Осторожно недостоверная информация*
С помощью вот такой вот dll ки - inpout32.dll можно дрыгать ножками встроенного в материнку порта (пищать к примеру).
Помнится когда делалась эта причуда к W7 (там нельзя просто пищать системным динамиком) читал, что вроде с её же помощью можно программировать МК.
Но к сожалению это было почти полтора года назад, не упомню
PS а пищалка и по сей день работает
Записан
Fuelen
Гость
Re: LPT
«
Ответ #8 :
Марта 08, 2013, 11:02 »
Ну я, собственно, спрашивал можно ли юзать libieee1284 для этого.
libieee1284 is a cross-platform library for parallel port access.
у меня опыта с компилироваными языками нет
так вот, на сколько я понял, эта библиотека написана на C, можно её юзать из C++?
Записан
schmidt
Гость
Re: LPT
«
Ответ #9 :
Марта 08, 2013, 12:25 »
Конечно можно
Компилируешь библиотеку, и потом используешь готовый lib файл для линковки со своим проектом. В коде проекта подключаешь нужные header-файлы от библиотеки.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...