serial c++
C: ¿Biblioteca serial RS-232 multiplataforma? (6)
Este es un enchufe descarado, pero tengo una biblioteca con licencia MIT para la comunicación RS-232 que es portátil a Windows y Linux y OS X aquí:
Estoy buscando una biblioteca multiplataforma de código abierto para trabajar con el puerto serie en C, algo PySerial la impresionante biblioteca PySerial (desafortunadamente, tengo que usar C para esta aplicación).
Solo encontré este: http://www.teuniz.net/RS-232/ , y eso no parece haber mencionado la compatibilidad con OS X.
Liberé el mío bajo la licencia MIT: https://github.com/Marzac/rs232
Está programado en C y funciona bien para Windows, Mac y Linux.
Me doy cuenta de que dijiste C y no C ++, pero quizás podrías usar los puertos seriales de Boost Asio y compilarlos en una biblioteca para vincularlos con tu aplicación C. Afirma ser compatible con POSIX, y OS X es POSIX.
Obtenga un código adicional Objective-C específico de OS X en las líneas de AMSerialPort, goSerial, serialconnect, PolKit, ... e implemente una compilación condicional de su archivo fuente C.
Usted pensaría que una biblioteca de C multiplataforma para puertos seriales ya habría existido durante 20 años, pero a partir de 2013 todavía no había uno, así que creé libserialport .
Se prueba en Windows, Mac OS X, Linux (incluido Android), BSD y probablemente también se compile en otros sistemas Unix. Es compatible con:
- Enumeración de puertos (obtener una lista de puertos serie en el sistema)
- Apertura, cierre y consulta de puertos.
- Configuración de los parámetros del puerto (velocidad en baudios, paridad, etc.)
- Operaciones de señalización de puertos (líneas de control de modem, roturas, etc.)
- Lectura, escritura y descarga de datos.
- Esperando eventos
- Obtención de información de error
La versión inicial 0.1.0 está en uso activo por el proyecto Sigrok para soportar hardware en serie y ya está empaquetado en varias distribuciones de Linux. La versión git también incluye nuevas llamadas a la API para obtener información sobre los adaptadores serie USB (VID / PID, etc.).
OS X es compatible con la API serie POSIX estándar, desde <termios.h>
y <unistd.h>
. Busque las funciones tcsetattr()
, cfsetspeed()
y así sucesivamente.