USB HID example cBuilder

Hello, All!

А нет ли у кого работающего примера для CBuilder (ну или для любого другого, не завязанного на MFC и Visual C) работы с HID USB устройством? Я нашел в примерах для HC08, но оно что-то не работает еще до того места, где должно с моим устройством начать говорить.

dima

formatting link

Reply to
Dmitry Orlov
Loading thread data ...
Reply to
Alexander Nickolsky

Hello, Alexander Nickolsky! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Thu, 24 Dec

2009 16:25:31 +0300:

DO>> А нет ли у кого работающего примера для CBuilder (ну или для любого DO>> другого, не завязанного на MFC и Visual C) работы с HID USB DO>> устройством?

AN> Вот:

AN>

formatting link
AN> С Атмелом и через GetFeature/SetFeature, но инициализация и работа с AN> устройствами расписаны.

Спасибо, правда я уже и сам написал, точнее переписал микрочиповский пример с MFC на голый С[++] и WinAPI. И еще несколько примеров нашел. Есть там одно отличие фундаментальное. Микрочиповский пример текстуально ищет свои PID и VID в реестре, куда их видимо сама винда прописывает при втыкании устройства. А другой пример пытается открыть "файл" устройства, прочитать из него атрибуты с PID и VID и сравнить с заданными. Какой способ лучше? В том коде, на котором ссылка с той страницы, что ты мне дал, тоже используется второй путь.

PS я столько лет боялся этого USB, а оказалось не так и сложно. Hе UART конечно, но при наличии готовых библиотек и аппаратной поддержки все делается достаточно линейно, во всяком случае если хост - PC.

dima

formatting link

Reply to
Dmitry Orlov
Reply to
Alexander Nickolsky

Hello, Alexander Nickolsky! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Thu, 24 Dec

2009 17:45:06 +0300:

AN> Thu Dec 24 2009 17:29, Dmitry Orlov wrote to Alexander Nickolsky:

DO>> одно отличие фундаментальное. Микрочиповский пример текстуально DO>> ищет свои PID и VID в реестре, куда их видимо сама винда DO>> прописывает при втыкании устройства. А другой пример пытается DO>> открыть "файл" устройства, прочитать из него атрибуты с PID и VID DO>> и сравнить с заданными. Какой способ лучше?

AN> Hасколько я понимаю, это просто одно и то же.

Hаверное да, второй способ не требует обращения к еще одной функции winapi и, видимо, все. Hу и сравнивать числа проще чем строки.

AN> Я пользуюсь интерфейсом setupapi. Hасколько я понимаю, записи в реестре AN> недокументированы и могут измениться. С другой стороны, setupapi AN> тоже могут поменять.

А вот этого я не понял. Там на том сайте, что ты сослался не слишком понятная мне фраза:

Зачем все это надо ? Дело в том, что файлы hid.h и hid.lib не входят в комплект SDK. Более того, эти функции в разных версиях hid.dll имеют разные номера! (Возможно, именно поэтому hid.lib и нет в SDK). Поэтому инициализацию мы будем проводить партизанским способом - через LoadLibrary. Функции для посылки и приема данных выглядят достаточно просто.

Я не слишком (мягко говоря) искушен в подоконном программировании, хидеры для библиотек где-то нашел, а их самих получил вызвав implib -c -f hid.lib %systemroot%\system32\hid.dll implib -c -f setupapi.lib %systemroot%\system32\setupapi.dll

Есть вероятность, что моя программа в разных версиях винды будет себя вести по-разному?

dima

formatting link

Reply to
Dmitry Orlov

Thu Dec 24 2009 18:32, Dmitry Orlov wrote to Alexander Nickolsky:

DO> Hаверное да, второй способ не требует обращения к еще одной функции DO> winapi и, видимо, все.

libusb

DO> Hу и сравнивать числа проще чем строки.

strcmp() сложен да...

[ZX]
Reply to
Kirill Frolov

Hello, Kirill Frolov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sat, 26 Dec

2009 19:28:00 +0000 (UTC):

DO>> Hаверное да, второй способ не требует обращения к еще одной функции DO>> winapi и, видимо, все.

KF> libusb

Что?

DO>> Hу и сравнивать числа проще чем строки.

KF> strcmp() сложен да...

Hе подходит.

dima

formatting link

Reply to
Dmitry Orlov
Reply to
Alexander Nickolsky

Hello, Alexander Nickolsky! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sun, 27 Dec

2009 17:15:44 +0300:

DO>> для библиотек где-то нашел, а их самих получил вызвав implib -c -f DO>> hid.lib %systemroot%\system32\hid.dll implib -c -f setupapi.lib DO>> %systemroot%\system32\setupapi.dll

DO>> Есть вероятность, что моя программа в разных версиях винды будет DO>> себя вести по-разному?

AN> Именно что будет. У hid.dll для Vista/XP и Win2000 разные AN> идентификаторы функций.

Понятно, спасибо. Пока что это меня устраивает, потом сделаю как в этих примерах загрузку dll.

dima

formatting link

Reply to
Dmitry Orlov

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.