Как-то задавал вопрос, ответа не получил, видимо сам мало понимал что спрашивать. Попытка №2.
Ну очень нужна помощь! Перепробовал кучу примеров, тучу исходников, понял в чем "гвоздь" но не понял как победить.
Проблема заключается в... ткните пальцем куда копать! пожалуйста!
мой дескриптор - каких куча в примерах:
Код:
PROGMEM char usbHidReportDescriptor[22] = { /* дескриптор репорта USB */
0x06, 0x00, 0xff, // USAGE_PAGE (Generic Desktop)
0x09, 0x01, // USAGE (Vendor Usage 1)
0xa1, 0x01, // COLLECTION (Application)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255)
0x75, 0x08, // REPORT_SIZE (8)
0x95, 0x01, // REPORT_COUNT (1)
0x09, 0x00, // USAGE (Undefined)
0xb2, 0x02, 0x01, // FEATURE (Data,Var,Abs,Buf)
0xc0 // END_COLLECTION
};
ПО-хоста на библиотеке libusb0.dll отрабатывает как и задумывалось. При переходе на ДРУГИЕ библиотеки (hidlibrary, HID API и т.д. включая от Atmel), а так же другие языки (VC++, C# - были потуги) в поисках правильной передачи данных от Хоста к Девайсу, положительного резултата добиться не удалось (а еще чтение данных впереди). Даже самый распространенный пример "proba(e)" описанный на множествах форумов, работать не хочет. Откопал следующее... что-бы я не писал в структуру или массив "pdata[x]" URB_FUNCTION_CONTROL_TRANSFER (если я правильно понял SetupPacket, который должен содержать "посылку") остается тот-же. Процедура отправки данных через, hid.SendData(&pdata) т.е. при помощи HidD_SetFeature(...) вообще ну никак не влияет на посылку данных, кроме как если в pdata[0] засунуть что-нибудь не ноль (при не 0 отсылаемых данных просто нет). Такие фокусы как Write - уходят в себя не обращая внимание на OVERLAPPED. Внутрисхемный отладчик "дев(айса)ицы" показал, что он(а) получает те же данные SetupPacket что и отображает USB Trace.
Прикладываю файлы лога USB Trace посылки SendData(&pdata) без коннекта. Коннект подключается нормально.
Первая картинка показывает правильную "посылку" данных при помощи библиотеки libusb0. Вторая картинка то, что отсылает библиотека HID API (hidlibrary).
Вложение:
LIBUSB0.jpg [134.03 KiB]
Скачиваний: 339
Вложение:
HIDlibrary(HID).jpg [135.96 KiB]
Скачиваний: 421
Я так понимаю многие на этом собаку съели, но на форумах, почему-то до финальной стадии не доходит. Как говориться "на самом интересном месте" или просто - "разобрался, продолжаем дальше". Вот и мне кажется, что хожу вокруг да около... а слона не замечаю.