Перейти к содержанию
    

C8051F320+USBXpress

Прописываю в устройстве следующие строки

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, то дайте пожалуйста ссылку или прикрепите его к ответу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При подключении устройства на короткий момент выскакивает 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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

 

Не могу найти. Если можно дайте прямую ссылку на пример.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...