C: cross-platform RS 232-biblioteca di serie? [chiuso]
-
24-10-2019 - |
Domanda
Sto cercando una libreria multi-piattaforma open source per lavorare con la porta seriale in C, qualcosa sulla falsariga della impressionante pySerial libreria "noreferrer" (purtroppo devo usare C per questa applicazione).
ho trovato solo questo: http://www.teuniz.net/RS-232/ , e che non sembra avere la compatibilità menzione OS X.
Soluzione
Si potrebbe pensare che una libreria multi-piattaforma C per le porte seriali è qualcosa che sarebbe esistita già da 20 anni, ma a partire dal 2013 non c'era ancora uno, così ho creato libserialport .
Si è testato su Windows, Mac OS X, Linux (tra cui Android), BSD e probabilmente costruire su altri sistemi Unix anche. Supporta:
- Port enumerazione (ottenendo un elenco di porte seriali sul sistema)
- apertura, chiusura e porte interrogazione
- Impostazione parametri della porta (velocità di trasmissione, parità, ecc.)
- porta di segnalazione operazioni (linee di controllo del modem, pause, ecc.)
- lettura, la scrittura, e vampate di dati
- In attesa di eventi
- Come ottenere informazioni di errore
L'0.1.0 rilascio iniziale è in uso attivo dal href="http://sigrok.org/" rel="noreferrer"> Sigrok progetto
Altri suggerimenti
Mi rendo conto che hai detto C e non C ++, ma forse si potrebbe utilizzare Boost porte seriali del Asio e compilare che in una biblioteca per essere collegato con l'applicazione C. Sostiene di essere POSIX compatibili, e OS X è POSIX.
Questa è una spina spudorato, ma ho una libreria con licenza MIT per la comunicazione RS-232, che è portabile su Windows e Linux e OS X qui:
ho rilasciato mina sotto la licenza MIT: https://github.com/Marzac/rs232
Si è programmato in C e funziona bene per Windows, Mac e Linux.
OS X supports the standard POSIX serial API, from <termios.h>
and <unistd.h>
. Look up the functions tcsetattr()
, cfsetspeed()
and so on.
Get some additional OS X-specific Objective-C code along the lines of AMSerialPort, goSerial, serialconnect, PolKit, ... and implement a conditional compilation of your C source file.