Pregunta

Estoy buscando una biblioteca multiplataforma de código abierto para trabajar con el puerto serie en C, algo así como el impresionante Piserial Biblioteca (desafortunadamente tengo que usar C para esta aplicación).

Solo he encontrado este: http://www.teuniz.net/rs-232/, y eso no parece haber mencionado la compatibilidad de OS X.

¿Fue útil?

Solución

Uno pensaría que una biblioteca C multiplataforma para puertos serie es algo que ya habría existido durante 20 años, pero a partir de 2013 todavía no había una, así que creé puerto libserial.

Se prueba en Windows, Mac OS X, Linux (incluidos Android), BSD y probablemente también se basará en otros sistemas UNIX. Admite:

  • Enumeración de puertos (obteniendo una lista de puertos serie en el sistema)
  • Puertos de apertura, cierre y consulta
  • Configuración de parámetros del puerto (velocidad de baudio, paridad, etc.)
  • Operaciones de señalización de puerto (líneas de control de módem, interrupciones, etc.)
  • Lectura, escritura y descarga de datos
  • Esperando eventos
  • Obtener información de error

La liberación inicial de 0.1.0 está en uso activo por el Sigrok Proyecto para admitir hardware en serie y ya está empaquetado en varias distribuciones de Linux. La versión GIT también incluye nuevas llamadas API para obtener información sobre los adaptadores en serie USB (VID/PID, etc.).

Otros consejos

Me doy cuenta de que dijiste C y no C ++, pero tal vez podrías usar Impulsar los puertos serie de Asio y compilar eso en una biblioteca para estar vinculado con su aplicación C. Afirma ser compatible con POSIX, y OS X es POSIX.

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/

Lancé el mío bajo la licencia del MIT: https://github.com/marzac/rs232

Está programado en C y funciona bien para Windows, Mac y Linux.

OS X admite la API de serie POSIX estándar, de <termios.h> y <unistd.h>. Busque las funciones tcsetattr(), cfsetspeed() y así.

Obtenga algún código adicional específico de OS X Objective-C en la línea de Amserialport, Goserial, SerialConnect, Polkit, ... e implementa una compilación condicional de su archivo fuente C.

http://osx.hyperjeff.net/apps/apps?f=Serial

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top