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

Вниз

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 вся ветка

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

Наверх




Память: 0.5 MB
Время: 0.014 c
2-1137665912
Ell
2006-01-19 13:18
2006.02.05
Можно ли сделать, чтобы программа удаляла сама себя?


15-1136997481
QwertyKz
2006-01-11 19:38
2006.02.05
Поиск окружностей


2-1137618904
Змей
2006-01-19 00:15
2006.02.05
Транслит


2-1137570298
md
2006-01-18 10:44
2006.02.05
double to string


3-1133951591
msgipss
2005-12-07 13:33
2006.02.05
Каким образом можно работать из delphi с полем clob БД Oracle





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский