2016-03-26 17 views
0

Linux altında C++ 'dan bir USB cihazına erişmem gerekiyor ve tamamen USB arabiriminde yeni. Erişiyorum cihaz herhangi bir sürücü ile gelmiyor - ama bir HID cihazı olarak ortaya çıkıyor. Cihaz, bir makine kontrolörüne benzer (basit şort komutları giriş/çıkış). Fare/klavye gibi değil - bu yüzden bir HID cihazı olarak görünmesi gerekip gerekmediğinden emin değilim.HID USB bağlantısı vs libusb

Okuduğum gibi, seçeneklerim bir HID aygıtı olarak veya kara listeye erişmek ve libusb kullanarak erişmektir. (Eğer yanlış anladıysan lütfen beni düzeltin). HID erişimi gitmek için bir yol gibi görünüyor - aksi takdirde cihaz için bir çekirdek sürücüsü yazmak zorunda.

HID erişimi tercih edilir gibi görünebilir. Linux altında HID kullanan bir cihazla nasıl iletişim kuracağınıza dair bir örnek var mı? Bu, bir USB yapılandırması, bir okuma uç noktası ve bir yazma uç noktası olan basit bir USB aygıtıdır.

cevap

2

hidapi'u kullanmanızı öneririz. Cihazınız zaten böyle çalışacak şekilde ayarlanmışsa, bu libusb'den daha iyi bir yoldur. libusb çalışır, ancak cihazınız için protokolün yanı sıra HID özelliklerini de uygulamanız gerekecektir. Sadece hidapi kullanıyorsanız, o zaman aygıtın protokolünü hidapi katmanının üstüne yerleştirmeniz gerekir. Sanırım hidapi, yine de libusb üzerine de uygulandığını hatırlıyorum.

+0

Okuma/yazma uç noktalarını bildiğimden beri, HID tarafından basit bir cihaza konuşan bir örnek (C++, ideal Qt) var mı? – TSG

+1

Sağladığım bağlantıya bakın, ihtiyacınız olan her şeye sahip, ilk sayfada bir örnek kullanım hakkı ve [github] bağlantısına dahil (https://github.com/signal11/hidapi/blob/master/hidtest /hidtest.cpp) tüm kaynağı ile. – Preston