Sto (sto per essere) scrivendo un'applicazione in Qt che verrà eseguita sui 3 sistemi operativi principali (Windows, Linux e Mac). Una delle caratteristiche di questa app è che ha bisogno di USB per parlare con un pezzo di hardware esterno personalizzato. È disponibile una libreria USB multipiattaforma?Esiste una libreria USB cross platform C++?
risposta
Prova libusb.
Sistemi operativi supportati: Linux, FreeBSD, NetBSD, OpenBSD, Darwin, MacOS X (e Windows, attraverso il progetto libusb-win32).
Ma si deve notare che utilizza
Siamo spiacenti, versione 1.2.0.0 di libusb0.sys
driver in modalità kernel su Windows, che non è certificati WHQL e potrebbe essere un problema in 64 bit di Windows 7 e Windows Server 2008 R2.
libusb0.sys
is digitally signed.
Grazie! Solo le informazioni di cui avevo bisogno. – Bojangles
Il problema con l'uso di libusb-win32 è che si tratta di una porta di libusb-0.1, che non è compatibile con libusb-1.0. Tuttavia, libusb-1.0 ora sembra supportare Windows in modo nativo. – trojanfoe
Libusb è migliorato negli ultimi anni: ora puoi usarlo su Windows per parlare ai dispositivi che hanno WinUSB come loro driver, quindi non devi eseguire alcun codice in modalità kernel da terze parti come 'libusb0.sys'. –
Vorrei solo ad aggiornare questo post per chi è tornato al giorno d'oggi ...
Libusb (versione 0.1) è stato dal deprecato. Lo standard moderno è usare libusb-1.0 o libusbx.
Personalmente, penso che ci siano molti motivi per utilizzare libusbx. È stato scritto da frustrati sviluppatori libusb-0.1 che volevano un ciclo di aggiornamento più frequente e un migliore sistema di manutenzione degli errori.
Le ragioni per suggerire libusbx sono i seguenti:
- non richiede l'accesso sudo
- lavorato molto meglio per me fuori dalla scatola con la lettura di messaggi in arrivo
- migliore supporto e più frequenti risposte a problemi/bug
- asincroni e supporto sincrono per l'invio/ricezione di messaggi
Concesso, libusb-1.0 supporta il reporting asincrono/sincronizzazione ... ma la filosofia alla base di libusbx è molto più allettante e la documentazione è migliore.
Quindi spetta a te, se tu o chiunque altro vorrebbe sapere ancora qualcosa sulle biblioteche, la storia è molto facile da trovare online. Puoi anche vedere la domanda dello stack this per ulteriori informazioni sull'oggetto immediato.
A partire da febbraio 2014, è rimasto solo [libusb] (http://libusb.info).La homepage di linusbx ha il seguente commento: libusbx era un fork di [libusb] (http://libusb.info), una libreria che fornisce accesso generico ai dispositivi USB. A partire dal 2014.01.26, questo progetto è stato completamente integrato in [libusb] (http://libusb.info) e sta per essere interrotto. Poiché non ci saranno ulteriori rilasci di libusbx, siete fortemente incoraggiati a passare all'uso di [libusb] (http://libusb.info). – user23573
L'hardware personalizzato parla HID tramite USB o utilizza direttamente la linea seriale? – nmichaels
Probabilmente un collegamento seriale. È un chip USB ATMega, con la libreria LUFA USB, che ha il supporto per entrambi, ma un collegamento seriale è probabilmente l'opzione più probabile. – Bojangles
Ah, ma su Windows è possibile trovare una dozzina e mezzo di librerie di terze parti per $$$ ;-) –