serial c cross-platform serial-port interfacing

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í:

http://wjwwood.io/serial/

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.



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.

http://osx.hyperjeff.net/Apps/apps?f=serial


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.