![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с USB устройством. [D5, Win95/98]
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]Вручную писал непосредственно в реестре - нефига не получается.