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

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

Работа с USB устройством. [D5, Win95/98]


Страницы:   1 2

DMdeveloper ©   (2002-09-14 18:57:00) 

У меня есть USB устройство, драйвер к нему, да и программа на делфи, которая с этим драйвером работает. Всё у меня есть. Программа осуществляет открытие устройства через реестр при помощи TReestry. Так вот: для этого она использует строковый параметр "SymbolicName" из реестра, который появляется там вместе с другими параметрами при установке драйвера. Когда я потащил своё устройство на другой комп (где USB порт сделан на PCI плате!!!) и установил свой драйвер, то в реестре необнаружил "SymbolicName" , хотя остальные параметры там были.
Причём тестовая программа RWBULK.exe (из DDK98) может работать с моим устройством.
Вопросы: 1. Почему там нет "SymbolicName"?
2. Как при помощи дельфи сделать программу способную работать с драйвером USB (не используя "SymbolicName", а используя GUID или что то в этом роде)?


DMdeveloper   (2002-09-20 15:03:00) [1]

А я точно незнаю, но это прописано в реестре, даже когда устройство оключено.


REA   (2002-09-20 12:55:00) [2]

COM он всегда COM # такой то, а тут на шине может быть много устройств. И как узнать адрес конкретного до того как оно появилось в реестре? И кто его туда прописывает? Драйвер при подключении?


Noname Master   (2002-09-20 11:37:00) [3]

Это как с COM портами, толь вместо имяни СОМ порта, имя девайса, прописанного в \DosDevices\0000000000000024#{a5dcbf10-6530-11d2-901f-00c04fb951ed}?


REA   (2002-09-20 11:05:00) [4]

А он не динамически выделяется при подключении?


DMdeveloper   (2002-09-20 09:29:00) [5]

REA: но у каждого устройства свой SymbolicName
\DosDevices\0000000000000024#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
Вот по нему и надо обращаться, они разные для каждого устройства


REA   (2002-09-19 17:52:00) [6]

Там проблема с адресацией: устройств то много может быть на шине. Если драйвер предполагает одно устройство, нужно CreateFile с именем этого устройства. Иначе есть PNP API специальное для отлова новых устройств.


Noname Master   (2002-09-19 17:10:00) [7]

2 DMdeveloper: Попробую твой путь... А как ты из делфей до него достукиваешься?


DMdeveloper   (2002-09-19 14:10:00) [8]

Master Noname : а я его сам не создавал. Я взял из DDK98 примерный драйвер и скомпилил его. Потом натравил своё устройство на него, т.е. подставил VID и PID такие же как и в inf файле и всё.


REA   (2002-09-18 18:08:00) [9]

На тексасе и должны быть вместе с драйвером. Не исключено что он эмулирует COM порт например - читай доки.


Master Noname   (2002-09-17 15:40:00) [10]

2 REA: А где их взять-то? Примеры эти...


REA   (2002-09-17 15:38:00) [11]

Обычно работа с драйвером идет через DeviceIOControl, ReadFile, WriteFile. Автоопределение устройств работает по пронципу как у DelphiJedi HID USB компонента - там сообщения посылаются когда устройство подключается и отключается. В простейшем случае имя устройства уже известно (типа {a5dcbf10-6530-11d2-901f-00c04fb951ed}) и CreateFile уже для него создается. Но примеры программ все-равно не помешают.


Master Noname   (2002-09-17 15:25:00) [12]

Нашел на сайте TI драйвер. Кажеться для своего контролера (TUSB3200). А именно 2 файла: usbio_ti.sys и usbio_ti.inf! Всё ясно с установкой, но не понял как до него достучаться из дельфей... Все девайсы с которыми доводилось работать имели в комлекте не только сами дрова, но и DLL-ку... А тут? Не знаю, что делать... Раскажите лопуху (т.е. мне), что к чему!


Master Noname   (2002-09-17 14:30:00) [13]

Dmdeveloper: Поделись опытом создания драйвера!!! Очень прошу!!! Очень надо!!!


Странный Прохожий   (2002-09-16 14:12:00) [14]

А вы попробовали?


DMdeveloper   (2002-09-16 13:55:00) [15]

А почему вы заменили 24 на 86?
Случайно или преднамеренно?


Странный Прохожий   (2002-09-16 11:58:00) [16]

Попробуйте прописать
\DosDevices\0000000000000086#{a5dcbf10-6530-11d2-901f-00c04fb951ed}

Убедитесь, что приложение запрашивает этот ключ (RegMon-ом)

Если не поможет, значит, ошибка в дельфёвой программе.


DMdeveloper   (2002-09-16 11:25:00) [17]

Вот так:
\DosDevices\0000000000000024#{a5dcbf10-6530-11d2-901f-00c04fb951ed}


Странный Прохожий   (2002-09-16 10:51:00) [18]

А как выглядит это самое SymbolicName?


REA   (2002-09-16 10:35:00) [19]

Скорее драйвер (при установке) выдает имя по которому будет доступно устройство (хотя если USB устройств много, то непонятно как программа будет их отличать).
Можно для начала попробовать прописать руками в реестр.


DMdeveloper   (2002-09-16 10:34:00) [20]

Вручную писал непосредственно в реестре - нефига не получается.


Страницы:   1 2

Наверх

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