2012-07-13 20 views
9

Sto cercando una libreria C++ in grado di connettersi e comunicare con dispositivi con porta seriale. Ne ho bisogno uno che possa essere usato su Windows e Linux. Ho trovato "serialib" già, ma questo non ha funzionalità per enumerare le porte disponibili.Esiste una libreria di porta seriale C++ multipiattaforma in grado di enumerare le porte?

Quindi ho bisogno di una libreria "port enumerator" multipiattaforma o di un'intera nuova libreria di porte seriali multipiattaforma.

Qualcuno sa di uno buono?

Grazie, Dan.

+0

Stai provando a risolvere il problema sbagliato. I giorni in cui è possibile collegare un cavo seriale a un connettore chiaramente etichettato sul retro della macchina sono finiti da tempo. È possibile ottenere un elenco di porte disponibili con una chiamata nativa, ma ciò non indica ancora quale di queste porte sia effettivamente connessa al dispositivo. L'utente dovrà scoprirlo. Forniscigli un file di configurazione che gli consenta di inserire il nome della porta. Ora non importa più quale formato specifico viene utilizzato per il nome della porta. –

+3

Scrivere un nome di porta in un file di configurazione è un inconveniente. Ho visto applicazioni multipiattaforma che elencano le porte utilizzabili/connesse e forniscono un elenco per l'utente. Questo è quello che voglio. (un buon esempio è l'IDE di Arduino, tuttavia questo è scritto in java.) – DanJAB

+0

Hai trovato una libreria multipiattaforma per Arduino? Ovviamente è un inconveniente per l'utente. Le porte seriali risalgono agli anni settanta, l'hardware quarantenne che non supporta la spina e prega. L'errore qui è di basarsi su uno standard hardware quarantenne. E sì, probabilmente non è colpa tua, alcuni produttori di hardware hanno scelto la strada facile. Trova un altro venditore. –

risposta

2

Il progetto QextSerialPort è una libreria di porte seriali multipiattaforma che include l'enumerazione delle porte. Here è il loro esempio di fare una semplice enumerazione di tutte le porte seriali.

+1

Grazie per il suggerimento, non sono sicuro che sia proprio quello che sto cercando dato che non sto usando Qt. – DanJAB

+1

Abbastanza buono, ma tieni a mente che non hai bisogno di usare la GUI di Qt. La libreria QtCore (tutto ciò che è necessario per utilizzare QextSerialPort) dipende solo da Glib e PCRE. – wjl

+0

Ho avuto errori su errori nel tentativo di integrare QextSerialPort in es. Eclipse invece di QtCreator – user3085931

7

http://wjwwood.io/serial/

https://github.com/wjwwood/serial

Questa è una libreria porta seriale multi-piattaforma, che è concesso in licenza MIT e non ha dipendenze esterne per runtime.

+1

Grazie per quello, sembra proprio il tipo di cosa che cercavo. Ho già iniziato a usare quello qui però: http://www.teuniz.net/RS-232/ e questo funziona bene per me. – DanJAB

+0

Informazioni su [http://www.teuniz.net/RS-232](http://www.teuniz.net/RS-232):
_ "Utilizza il polling per ricevere caratteri dalla porta seriale. basato sugli eventi non è supportato. "_
Eventuali altre opzioni senza le restrizioni summenzionate? –

+0

Sfortunatamente la libreria è piuttosto incurante delle allocazioni di memoria, perdite, lancio di eccezioni, blocco e, per quanto posso vedere, non supporta l'IO asincrono. – Trass3r

Problemi correlati