Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с LPT в Niblle Mode - драйвер или...


DC-AC ©   (2002-12-15 08:31:00) 

Вопрос к тем, кто "серьёзно" работал с LPT и немного в курсе про Nibble Mode LPT-порта (получение информации от принтера по четырём линиям BUSY,PE,SELECT,nERROR). LPT-порт юзается через WinAPI (CreateFile(),ReadFile(),WriteFile()). На принтер выдаётся последовательность байт. Если принтер может ответить в обычном двунаправленном режимe (например DeviceIoControl(hPort,$11,nil,0,@IDBuffer,256,NumberOfBytes,nil)) то всё без проблем. Но на некоторые команды принтер отвечает в Nibble Mode (причём я даже вижу этот ответ при мониторинге обмена специальной платой). И как прочитать ответ в своей программе ? Насколько я понимаю SetCommMask() есть только для COM-порта. Только писать драйвер ? Или есть другие пути ?


DC-AC   (2002-12-16 13:34:00) [1]

LPTWDMIO - чтука интересная... Давно валяется у меня на винте. На днях займусь изучением. И всё-таки попробую CreateFile("LPT1", GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, 0, 0) и далее GetCommMask(), SetCommMask() может быть получится следить за линиями состояния. Ведь работает же для LPT-порта SetCommTimeouts(), PurgeComm(), TransmitCommChar() !


jonik pegas   (2002-12-16 12:38:00) [2]

Стоит он несколько килобаксов:).
можно посмотреть на сайт progrex.narod.ru (его автор здесь некоторое время тусовался под ником странный прохожий)-там есть пример драйвера для LPT на асме.


DC-AC   (2002-12-16 11:52:00) [3]

Драйвер на fapo - очевидно этот http://www.fapo.com/1284tkit.htm?
Покупать я конечно вряд ли буду, я не организация и для меня это не дело жизни. Просто интересно сколько он стОит, цены в явном виде я там не нашёл.
А свой драйвер при помощи DDK писать - дело долгое, сначала нужно ещё DDK где-то достать, для меня легче (при помощи например DLPortIO или подобных) реализовать процедуры стандартного ввода-вывода на принтер и процедуру чтения в режиме Nibble. А что DeviceIoControl не будет работать - фиг с ним, например из EPSON-ов можно "вытянуть" DeviceID через тот же Nibble Mode.
Ну раз больше идей нет...


jonik pegas   (2002-12-16 10:02:00) [4]

Стандартный драйвер наверное NibbleMode не поддерживает, по крайней мере в MSDN об этом не сказано. Так что наверное придется делать свой драйвер. Наиболее функциональный драйвер наверное на www.fapo.com, тот поддерживает, но стоимость...


DC-AC   (2002-12-16 07:18:00) [5]

То что можно работать напрямую и при помощи драйверов прямого доступа к портам (дёргать пинами напрямую)- я знаю. Просто не хотелось бы реализовывать lpt.vxd ещё раз, тем более неизвестно, что за процедуры и функции туда входят. Удобно ведь - WriteFile() и не задумываешься о том где там строб а где всё остальное. И DeviceIoControl работает опять же. Кстати, а может быть кто знает ВСЕ коды DeviceIoControl для LPT, а не только $11. Например под W2K задействованы коды $160000-$160030 по-моему. $16000C - назначение известно, а вот остальные ?
И ещё вопрос. Может кто разбирался с исходниками (они на сях) драйвера LPT-порта ieee1284.vxd от Leonid Slobodchikov AKA Curvex ? Ссылки откуда скачал к сожалению не помню, но если надо будет найду.


ssm   (2002-12-15 17:38:00) [6]

vxd писать надобно...
в win95-me можно работать с портом напрямую,
и еще есть такая штука - WinDriver кажется что-то типа конструктора драйверов.


Наверх

Титульная страница Поиск, карта сайта Написать письмо