Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.21;
Скачать: CL | DM;

Вниз

Работа с USB устройством.   Найти похожие ветки 

 
DMdeveloper ©   (2002-09-14 18:57) [0]

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


 
Странный Прохожий ©   (2002-09-16 10:05) [1]

Посмотрите в ini - файле для установки драйвера, секция для добавления параметров в реестр. Если нет, можно там прописать вручную.

Либо -- (менее вероятно) этот параметр создаётся драйвером при первой загрузке.


 
DMdeveloper ©   (2002-09-16 10:34) [2]

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


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

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


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

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


 
DMdeveloper ©   (2002-09-16 11:25) [5]

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


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

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

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

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


 
DMdeveloper ©   (2002-09-16 13:55) [7]

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


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

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


 
Master Noname ©   (2002-09-17 14:30) [9]

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


 
Master Noname ©   (2002-09-17 15:25) [10]

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


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

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


 
Master Noname ©   (2002-09-17 15:40) [12]

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


 
REA   (2002-09-18 18:08) [13]

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


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

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


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

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


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

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


 
DMdeveloper ©   (2002-09-20 09:29) [17]

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


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

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


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

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


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

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


 
DMdeveloper ©   (2002-09-20 15:03) [21]

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



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

Текущий архив: 2002.11.21;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.016 c
6-69455
Vasechkin
2002-09-18 21:01
2002.11.21
Народ ну помогите же мне!!!!!!!!!!


14-69534
^Sanya
2002-11-02 19:19
2002.11.21
Кттонибудь читал М.Кенту


4-69637
Николай Быков
2002-10-09 15:50
2002.11.21
HINT


3-69151
aaZ
2002-10-30 20:43
2002.11.21
Access


1-69251
Shluz
2002-11-11 19:38
2002.11.21
SMS средствами E-mail