Текущий архив: 2006.02.05;
Скачать: CL | DM;
Вниз
USB-->LPT Найти похожие ветки
← →
SVASH © (2005-11-20 21:23) [0]Помогите сделать из этого чуда действительно LPT. То есть, как из Delphi можно управлять выводами такого LPT и опрашивать его состояние (По схожей с родным LPT схеме не идет).
← →
Deka © (2005-11-21 09:51) [1]Из какого чуда? У тебя есть девайс и проблема с ним работать? Или тебе хочется иметь такой девайс?
← →
tesseract © (2005-11-21 10:07) [2]
> Помогите сделать из этого чуда действительно LPT. То есть,
> как из Delphi можно управлять выводами такого LPT и опрашивать
> его состояние (По схожей с родным LPT схеме не идет).
А какая родная схеме? Можно через прямой доступ к драйверу (Win2K+)
← →
SVASH © (2005-11-21 11:18) [3]Устройство есть. Хочется с ним работать.
Но вот стандартный LPT порт работает через функции CreateFile и драйвера, которых в Интернете много.
А как управлять выводами этого LPT-порта?
Можно через прямой доступ к драйверу - я так понимаю, что речь идет о USBPRINT в XP. Но как с этим драйвером общаться?
← →
tesseract © (2005-11-21 17:58) [4]
> USBPRINT
Он-то здесь причём? Обращаться надо к драйверу виртуального LPT-порта. Доки входят в SDK/DDK.
Обращаться всё равно придётся через CreateFile + DeviceIOcontrol.
← →
SVASH © (2005-11-21 20:13) [5]Таким образом как связать виртуальный порт с реальными выводами, которые обслуживаются системным драйвером USBPRINT (в XP). Система знает о наличии порта USB, о подключении к нему устройства поддержки параллельного принтера, но самого параллельного порта она не создала. Как обратиться к этому "Устройству поддержки принтера" (ресурсов ситема ему не отводит, внятного имени этого нечто в реестре я не нашел).
Между делом, для 98 к этому адаптеру приложен драйвер, который сам создал в системе виртуальный порт, вот только добраться до него известными методами не получилось.
← →
tesseract © (2005-11-21 21:37) [6]
> Между делом, для 98 к этому адаптеру приложен драйвер, который
> сам создал в системе виртуальный порт, вот только добраться
> до него известными методами не получилось.
Какими-такими известными? DeviceIOControl должен помочь.
Насчёт lpt точно не уверен но в com-драйверах всё ok. LPT-виртуальный порт по определению поддерживает все линии и протоколы ECP/EPP
← →
DC-AC (2005-11-22 11:37) [7]Давайте сначала зададимся вопросом : ЧТО требуется делать с выводами виртуального порта LPT ? Стандартные протоколы взаимодействия с принтером (а именно они скорее всего поддерживаются драйвером этого устройства) или нужно управлять выводами LPT (особенно управляющими) напрямую ?
← →
DC-AC (2005-11-22 11:46) [8]Надеюсь все поняли о чём речь : например, выдать в принтер один байт - прочитать байт статуса, если ОК - установить байт данных на шине данных, стробировать его, опять читать байт статуса и дождаться снятия сигнала BUSY. Это для стандартного протокола обмена.
← →
SVASH © (2005-11-22 17:40) [9]Хотя бы это сделать.
То есть, на первом этапе добиться того, чтобы ЧТО-НИБУДЬ произошло с выводами порта.
Пока я даже не понял, как я его могу назвать в XP, чтобы система поняла, о чем речь. Потом, коды команд, которые можно посылать драйверу (замечу, что в действительности не могу со 100% уверенностью сказать, какой драйвер обслуживает это устройство, но вроде бы USBPRINT).
← →
Pa5ha (2005-11-22 17:56) [10]Читать все лень. Но в NT-системах прямой доступ к портам закрыт. Надо скачать http://ln.com.ua/~real/avreal/description.html#driver драйвер, который откроет доступ. Я тоже железяками балуюсь на основе AVR микроконтроллеров и программатор можно в нт выюзать только так.
← →
SVASH © (2005-11-22 22:24) [11]Все же надо было прочитать, о чем идет речь.
Еще раз повторяю - есть адаптер USB-->LPT.
Как из него сделать LPT, аналогичный тому, который есть на материнке.
Или проще - как к нему обращаться програмными методами (либо управлять его выводами, либо посылать в него байты и опрашивать состояние - что по сути одно и тоже).
Акцентирую внимание, что "в лоб" эта проблема не решается. Нужно как-то извращаться.
← →
Германн © (2005-11-23 01:54) [12]
> SVASH © (21.11.05 20:13) [5]
>
> Таким образом как связать виртуальный порт с реальными выводами,
> которые обслуживаются системным драйвером USBPRINT (в XP).
> Система знает о наличии порта USB, о подключении к нему
> устройства поддержки параллельного принтера, но самого параллельного
> порта она не создала. Как обратиться к этому "Устройству
> поддержки принтера" (ресурсов ситема ему не отводит, внятного
> имени этого нечто в реестре я не нашел).
> Между делом, для 98 к этому адаптеру приложен драйвер, который
> сам создал в системе виртуальный порт, вот только добраться
> до него известными методами не получилось.
Имхо драйверы этого устройства в современной линейке NT работают без создания "виртуального параллельного порта". Так что обратиться к нему как к LPT-не удастся никогда. А в 98-м поддержка USB-устройств ещё была толком не сделана, так там разработчики адаптера решили "пойти другим путем". Опять же, имхо.
← →
DC-AC (2005-11-23 09:21) [13]Видел такие девайсы, но к сожалению не "счупал" ;-), времени пока катастрофически не хватает, программированием принтеров посдеднее время почти не занимаюсь.
Драйвер к этому девайсу идёт ? В системе появляется какой-нибудь новый порт (например LPT3) ? Подозреваю, что или CreateFile ("LPT3"...) а далее ReadFile() WriteFile() или через IOCtrl соответствующего драйвера (нужно иметь документацию по нему).
← →
tesseract © (2005-11-23 10:30) [14]
> Драйвер к этому девайсу идёт ? В системе появляется какой-
> нибудь новый порт (например LPT3) ? Подозреваю, что или
> CreateFile ("LPT3"...) а далее ReadFile() WriteFile() или
> через IOCtrl соответствующего драйвера (нужно иметь документацию
> по нему).
Драйвер с поддержкой виртаульного порта:
http://www.usb-drivers.com/drivers/57/57156.htm
Насчёт остального читайте выше. Коды для DeviceIoControl - в DDK.
← →
DC-AC (2005-11-23 12:24) [15]14: Это драйвер именно для этого девайса ? Что читать выше "для остального" ? Для чего остального ? Зачем мне вообще что-то читать ? Коды DeviceIoControl для lpt.vxd мне, предположим, известны и без DDK. А каким боком относится lpt.vxd к виртуальному LPT-порту со своим драйвером ? (если драйвер идёт с девайсом, из фразы "Еще раз повторяю - есть адаптер USB-->LPT" это не совсем понятно). Остаётся уточнить у 0:
Парадокс...
← →
SVASH © (2005-11-23 16:33) [16]С устройстврм идет только Win98 драйвер. По 2000 и XP в руководстве написано "включить в USB" и использовать. Я проделал указанную процедуру. (То есть, включил в порт). Результат - Обнаружено новое и т.д.
Потом - Новое оборудование установлено и готово к работе.
В оборудование появилась сторка Поддержка USB ринтера (в категории Контроллеры USB).
Смотрел сведения об устройстве: Устройство работает нормально.
Размещение: IEEE1284 Controller
Сведения о файле драцвера - USBPRINT.SYS
Описание его на сайте Майкрософт - смесь абстрактной терминологии с полным туманом. Хотя все же некоторые зерна истины я там отфильтровал.
Полночи работал с сервисом USBPRINT (он кстати говоря по опросу конфигурации не дает признака файлового сервиса, потому на данном этапе я думаю напрочь забыть о наличии функции CreateFile).
Хотя еще была идея попробовать его переконфигурировать. В целом текщий результат моих экспериментов - сообщение Системе не удалось запустить устройство, информация об устройстве неправильная или повреждена.
DDK скачать немогу (интернет-соеденение не позволяет). Купить тоже не могу - тут городок небольшой и продавцы компьютерных дисков либо делают круглые глаза, либо переспрашивают, что это за новая игра такая.
Вот и вся суть проблем с предварительными результатами.
Еще обратил внимание на некоторую связь USBMON.DLL с данной проблемой, но вот какое-нибудь описание функций этой библиотеки тоже пока не нашел.
Может это все и "каша", да и вещь, которую я собирался подключать к этому порту я уже переделал (мне нужно было одновременно управлять состоянием 24 выводов и опрашивать 8, программатор такой, преределал под один порт на "матери", добавив пару регистров-защелок аппаратно), но думаю все же концы вывести нужно.
← →
Deka © (2005-11-23 17:58) [17]Раз у тебя в системе появился USB-принетр, значит твой шнурок предназначен не для создания виртуального LPT порта, а для сокрытия LPT принтера и представления его системе как USB принтера. Ну а так как у USB принтера нет каких-нибудь аппаратных ножек и вообще передача последовательная, то наверное тебе надо поискать доки про управление USB принтерами. Как отправить байт данных и как прочитать состояние принтера. Делать все будет через стандартный драйвер системы. Вот такое у меня IMHO. А вообще для подключения программатора я рекомендовал бы тебе вот такую железяку - http://www.ftdichip.com/Products/FT245BM.htm
С сайта производителя можно скачать все необходимые драйвера и DDK с примерами. Сможешь управлять любым пином.
← →
DC-AC (2005-11-24 11:34) [18]>http://www.ftdichip.com/Products/FT245BM.htm
Да, это самый подходящий вариант для разработчиков, не стоит скрещивать ежа с ужом, а стоит сразу же разрабатывать под USB и (возможно) ставить свой контроллер (Intel, PIC, Atmel) на том конце, который будет делать всё необходимое. Да и биты защиты на область кода программы потом можно будет поставить - фиг кто такое потом повторит.
Страницы: 1 вся ветка
Текущий архив: 2006.02.05;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.012 c