Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2003.02.17;
Скачать: [xml.tar.bz2];

Вниз

Работа с LPT в Niblle Mode - драйвер или...   Найти похожие ветки 

 
DC-AC   (2002-12-15 08:31) [0]

Вопрос к тем, кто "серьёзно" работал с 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-порта. Только писать драйвер ? Или есть другие пути ?


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

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


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

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


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

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


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

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


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

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


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

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



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2003.02.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.013 c
3-52720
Pk
2003-01-29 22:31
2003.02.17
Слишком медленно работает Locate


1-53030
ec
2003-02-10 20:44
2003.02.17
TDBNavigator


1-52993
Dr. Web
2003-02-10 14:43
2003.02.17
Как програмно запустить любую программу под другим пользером?


1-52874
kernel::panic
2003-02-07 17:05
2003.02.17
Глюк с TEdit в Delphi7


1-53042
maxim2
2003-02-10 12:17
2003.02.17
Как добавить картинку в статус бар





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский