Чтение данных прерывания USB
У меня есть USB-устройство, которое использует драйверы libusb WIN32 и
Данные прерывания поступают от акселерометра через конечную точку 83 интерфейса USB-HID (в EP83). Данные представлены в небольшом формате с указанием следующих полей (x,y,z,Vbat,CpuTemp.) Данные собираются каждые 62,5 мс (16 Гц). Доступно несколько USB HID "get" и "set" отчетов (через ep0)
Как я могу получить доступ к этим данным через.NET и C#?
2 ответа
Если это устройство HID, я рекомендую использовать драйвер Windows по умолчанию - hid.dll, я использовал его, и все было в порядке. Таким образом, вам не нужно заботиться о развертывании драйвера, он все равно есть, и вам просто нужно понять API и использовать его. Для этого я рекомендую вам книгу Джона Аксельсона " USB Complete", у нее есть довольно хорошее объяснение и примеры там, это смесь C/C++ и C#, но есть тенденция к.net Также у нее есть HID-страница на ее веб-сайте, и там вы найдете примеры кода, которые вам просто нужны.
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, получаете его дескриптор. Затем выполните запись / чтение в конечные точки устройства.