реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> C8051F320+USBXpress, Проблемы с считыванием описания устройства
Dmitriy_V
сообщение Nov 6 2006, 15:55
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 57
Регистрация: 31-07-06
Пользователь №: 19 217



Прописываю в устройстве следующие строки
code const BYTE USB_MfrStr[] = {0x1E,0x03,'D',0,'m',0,'i',0,'t',0,'r',0,'i',0,'y',0,' ',0,'D',0,'e',0,'v',0,'i',0,'c',0,'e',0};
code const BYTE USB_ProductStr[] = {0x1E,0x03,'U',0,'S',0,'B',0,' ',0,'M',0,'a',0,'k',0,'e',0,'t',0,' ',0,'P',0,'l',0,'a',0,'t',0};
code const BYTE USB_SerialStr[] = {0x0A,0x03,'1',0,'1',0,'1',0,'1',0};

USB_Init(USB_VID,USB_PID,USB_MfrStr,USB_ProductStr,USB_SerialStr,USB_MaxPower,US
B_PwAttributes,USB_bcdDevice);

При подключении устройства на короткий момент выскакивает USB_ProductStr[], но после установке драйвера при вызове следующей функции:
SI_GetProductString(i,@S,0x01);
выдается описание устройства как USBXpress Device которое забито в драйвере.
SI_GetProductString(i,@S,0x00); нормально выводит тот серийный номер который я забиваю в устройство.

Можно ли считать описания устройства из программы не исправляя драйвер, и если можно то как?

Если вдруг у кого-нибудь есть полное описание функции SI_DeviceIOControl, то дайте пожалуйста ссылку или прикрепите его к ответу.
Go to the top of the page
 
+Quote Post
Седой
сообщение Nov 8 2006, 10:58
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 244
Регистрация: 21-02-05
Из: Урал
Пользователь №: 2 806



Цитата
При подключении устройства на короткий момент выскакивает USB_ProductStr[], но после установке драйвера при вызове следующей функции:
SI_GetProductString(i,@S,0x01);
выдается описание устройства как USBXpress Device которое забито в драйвере.
SI_GetProductString(i,@S,0x00); нормально выводит тот серийный номер который я забиваю в устройство.


Так и должно быть, потому что скорее всего данная функция вообще не обращается к устройству, а вызывает фунции типа SetupDiXXX.
0х01 - значение флага SI_RETURN_DESCRIPTION, и функция возвращает описание устройства, указанное в реестре.

Чтобы изменить на нужное вам, отредактируйте INF файл

[Strings]
..........
DESCRIPTION="USBXpress Device"
FRIENDLYNAME="USBXpress Device"
..........

Одно значение из этих двух параметров соответствует указанному флагу.

Цитата
Можно ли считать описания устройства из программы не исправляя драйвер, и если можно то как?

Можно. Пользуйтесь SetupApi.

Возможно даже прочитать все дескрипторы вашего устройства, см. пример diview.exe из DDK.
Go to the top of the page
 
+Quote Post
Dmitriy_V
сообщение Nov 27 2006, 01:20
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 57
Регистрация: 31-07-06
Пользователь №: 19 217



[quote name='Седой' date='Nov 8 2006, 10:58' post='173479']
[quote]
[quote]Можно ли считать описания устройства из программы не исправляя драйвер, и если можно то как?[/quote]
Можно. Пользуйтесь SetupApi.

Возможно даже прочитать все дескрипторы вашего устройства, см. пример diview.exe из DDK.
[/quote]

Не могу найти. Если можно дайте прямую ссылку на пример.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 07:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01358 секунд с 7
ELECTRONIX ©2004-2016