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

Вниз

Работа с 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.008 c
14-69527
Ate
2002-11-01 18:23
2002.11.21
Каменный эдитор


1-69344
Оксана
2002-11-06 17:45
2002.11.21
QuickReport


6-69482
MikeZ
2002-09-25 00:48
2002.11.21
Закончил ли IE закачку страницы?


1-69346
trotski
2002-11-12 22:04
2002.11.21
Много компонент


7-69608
Ш-К
2002-09-20 16:56
2002.11.21
DeviceIoControl.





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