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
- 1. Libreria IMAP Cross Platform C++
- 2. Cross Platform C?
- 3. Architettura codice cross platform C++
- 4. Libreria MIDI cross-platform semplice per Python
- 5. API cross platform audio
- 6. Sviluppo cross-platform Objective-C/C++
- 7. Light cross platform C GUI (OpenGL)
- 8. golang: cross platform path.Dir
- 9. OpenGL cross platform window
- 10. Crittografia stringa cross platform
- 11. Libreria USB C++
- 12. Una semplice libreria grafica cross-platform 2d per c o C++?
- 13. (Cross-Platform) Programmazione 3D con C# (mono)
- 14. Cross Platform ServiceStack Authentication
- 15. Building Cross Platform app - raccomandazione
- 16. API cross platform per i giochi?
- 17. Cross Platform/dev/null in Python
- 18. API di rete cross platform
- 19. Librerie di elaborazione immagini cross-platform C/C++ rapide
- 20. SWT Cross-Platform Enter Detection
- 21. Esiste una libreria C++ XSLT?
- 22. Caricatore di immagini cross platform C++ per OpenGL
- 23. Implementazione cross-platform A * più veloce?
- 24. Autenticazione cross platform tramite l'API Web ASP.NET
- 25. Qual è il buon IDE C++ cross-platform?
- 26. Definizione della funzione money_format cross-platform (Linux e Windows)
- 27. Differenza tra libreria di classi portatile e libreria di classi condivise in cross platform Xamarin
- 28. Dropzone cross-platform generazione delle miniature
- 29. Build Eclipse cross-platform con Maven Tycho
- 30. Cross-Platform equivalente a eventi Windows
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 $$$ ;-) –