Чтение данных прерывания USB - PullRequest
0 голосов
/ 04 марта 2011

У меня есть USB-устройство, которое использует драйверы libusb WIN32 и

Данные прерывания поступают от акселерометра через конечную точку интерфейса USB-HID 83 (в EP83).Данные представлены в формате с ограниченным доступом со следующими полями (x, y, z, Vbat, CpuTemp.). Данные собираются каждые 62,5 мс (16 Гц).Доступно несколько отчетов «получить» и «установить» USB HID (через ep0)

Как я могу получить доступ к этим данным через .NET и C #?

Ответы [ 2 ]

0 голосов
/ 12 марта 2011

Если это устройство HID, я рекомендую использовать драйвер Windows по умолчанию - hid.dll, я использовал его, и все было в порядке.Таким образом, вам не нужно заботиться о развертывании драйвера, он все равно есть, и вам просто нужно понять API и использовать его.Для этого я рекомендую вам книгу Джона Аксельсона USB Complete , у нее есть довольно хорошее объяснение и примеры там, это смесь C / C ++ и C #, но тенденция для .net Также у нее есть Спрятал страницу на ее сайте и там вы найдете примеры кода, которые вам просто необходимы.

0 голосов
/ 07 марта 2011

libusb32 - это библиотека c / c ++ универсального драйвера usb. это входит в 2 слоя. нижний уровень в режиме ядра - это общий клиентский драйвер libusb0.sys + .inf, который вы изменяете, и он сообщает, на какое устройство загружать этот универсальный usb-драйвер. У них есть инструмент inf-wizard.exe, который поможет вам сделать этот файл .inf для вашего устройства. Верхним слоем в пользовательском пространстве является libusb.lib (вы также можете создать статическую ссылку), который взаимодействует с драйвером libusb. Вы можете найти в источниках usb.h, который фактически определяет интерфейс между вашим кодом и usb (драйвером usb). Чтобы получить доступ к неуправляемому коду или вам нужно написать свой уровень взаимодействия в c # или в c ++ / cli или использовать готовый слой, созданный кем-то. Здесь ссылка на один из проектов, http://sourceforge.net/projects/libusbdotnet/ Как использовать библиотеку libusb, я советую вам посмотреть пример из них. Обычно это так, как будто вы открываете дескриптор шины USB, затем находите там свое устройство по VendorId & ProductId, получаете его дескриптор. Затем выполните запись / чтение в конечные точки устройства.

...