я сделал HID устройство, описанное в статье http://we.easyelectronics.ru/electro-an ... v-usb.html
устройство отобразилось в диспетчере устройств. Программа на си, текст которой приведен в
статье не видит моё устройство.
Код:
if ( hid.GetConnectedDeviceName() == exampleDeviceName ){
res = 1;
break;
}
нормально не отрабатывает, то есть hid.GetConnectedDeviceName() всегда возвращает пустую строку.
И так эта функция себя ведет для любого HID устройства, а не только для моего,
подскажите что делать. Стоит c++ belder update 4. проблема не только у меня вот тут
обсуждается http://radiokot.ru/forum/viewtopic.php? ... 2&start=20 решение я так и
не нашел, помогите пожалуйста.
int connect() // этой функцией будем подключаться к устройству
{
int i, n, res=0;
string exampleDeviceName = "";
exampleDeviceName += vendorName;
exampleDeviceName += " ";
exampleDeviceName += productName;
n = hid.EnumerateHIDDevices(); // узнаем все Hid устройства vid_16c0&pid_05df
// vid и pid указаны в hidlibrary.h константой idstring
for (i=0; i<n; i++) // ищем среди них наше
{
hid.Connect(i);
// GetConnectedDeviceName() возвращает string,
// где через пробел указаны vendor и product Name.
// Сравниваем, если совпало - значить устройство наше
if ( hid.GetConnectedDeviceName() == exampleDeviceName )
{
res = 1;
break;
}
}
return res;
}
но у меня hid.GetConnectedDeviceName всегда пустая
Еще раз: в Си строки так не сравниваются. Точка.
Возможно, это пример на каком-то ином языке... например, С++ с переназначенными операторами сравнения... это уже мне неведомо.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Я попытался сделать устройство, описанное в этой статье. Само устройство я сделал. Сделал и залил прошивку.Все сделал как в статье кроме 2 моментов: 1)в файле usbconfig.h пришлось раскоментарить строчку
/* #_DESCRIPTORNdefine USB_CFG_HID__LEREPORTGTH 42 */
42 поменяв на 22
без этой строки устройство в диспетчере устройств отображалось с ошибкой.
2) программу на стороне компьютора писал на delphi7.
Все делал под windows xp 32 bit В итоге устройство в моей программе определяется, но зажечь светодиоды не получается. Я там пользовался компонентом TJvHidDeviceController
вот код
[uquote="TDKS",url="/forum/viewtopic.php?p=3109842#p3109842"]/* #_DESCRIPTORNdefine USB_CFG_HID__LEREPORTGTH 42 */
42 поменяв на 22[/uquote]
ссылка на файл битая. Скачал c V-USb.
Писать надо более понятно. Правильно #define USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH 22
Это строчка как написана #define USB_CFG_INTERFACE_CLASS ? 2 или 3?
И комп как видит устройство? Hid совместимое или как написано в диспетчере задач?
з.ы. лучше найти работающий полностью проект. Запустить его, а уж потом менять....