Как программно работать с LPT портом?
Я работал с ним из Delphi
сейчас, найду - у себя расшарю
ftp://homestead.hackers/setups_m/Paraport
Он устанавливает псевдо-драйвер, через который можно удобно работать непосредственно с каждой ногой LPT-порта
Он устанавливает псевдо-драйвер, через который можно удобно работать непосредственно с каждой ногой LPT-порта
Можешь его на форум выложить, а то я не в локалке.
А есть какие-нибудь враперы, позволяющие не устанавливать драйвер, а работать на прямую с LPT?
Что конкретно тебе нужно сделать с lpt-портом?
ну ещё в Linux /dev/lp...
А в остальных NT-based - "DDK в зубы и вперёд!" (c)
Еще желательно, чтобы не было никаких внешних файлов, и ничего не нужно было устанавливать.
Я кое-чего нарыл о функции CreateFile. Но пока еще не нашел достаточного количества информации чтобы ее использовать.
int fd = open("LPTx", blablabla);?
STROBE
LINEFEED
INIT
SELECTIN
DIRECTION
А также всякие хитрые настройки про скорость порта, например.
И можно ли пример программки.
так можно писать в порт, но не читать из него.
Мне особые навороты не нужны, достаточно чтения ножек данных.
чем не устраивает враппер?
А можно ли читать с помощью, CreateFile?
Не хотелось бы заниматся установкой. Программа для которой нужно чтение LPT работает без установки.
"DDK в зубы и вперёд" (с)
Установи MSDN (неужели не установлен ?! ) и читай:
Win32 and COM Development -> Driver Development Kit -> Parallel Ports and Devices
Подозреваю, что DDK для данной задачи будет многовато. Сейчас прорабатываю тему CreateFile, вроде инете говорят, что можно ее использовать.
PS: в DDK про parallel port немного - я уже взботнул.
Или несколько?
Если несколько - тут надо быть осторожным. дождаться, пока STROBE не сработает - что данные можно считывать.
http://junglewin.narod.ru/lpt.html
Вот чего там по моей теме:
2.1 Открытие и закрытие порта.
Тут все просто, открываем доступ к устройству. Это осуществляется посредством функции CreateFile c параметром LPTn, где LPTn существующее имя для объекта устройства:
HANDLE hLpt = CreateFile( "LPT1", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING,
0, NULL );
При удачном завершении операции будет возвращен файловый дескриптор, через который мы и будем управлять параллельным портом. Остается только добавить, что после использования следует освободить порт посредством вызова CloseHandle(hLpt).
2.2 Запись данных и чтение
Запись и чтение происходит как при обращении к обычному файлу. Для этого используются функции WriteFile и ReadFile.
Это не принципиально. Для меня важно лишь изменеие данных на ножках, дублирование не проблема.
С каких?
Только с data-ножек? или с системных тоже?
если только data, то OpenFile("LPT", ...) и вперед
Оставить комментарий
Nugos
Работаю в среде Visual Studio C++.