c++ c linux serial-port

c++ - Programación en serie(hardware handshake)



linux serial-port (1)

Esto puede no ser aplicable para su aplicación en particular, pero pensé que lo publicaría aquí en caso de que lo ayude a usted o a alguien más a buscar.

En la mayoría de los sistemas con termios , puede establecer el indicador CRTSCTS en el miembro ->c_cflags de la estructura termios que pase a tcsetattr , y tcsetattr que el kernel o el hardware controle el flujo RTS / CTS por usted.

(No es POSIX, pero está en los sistemas derivados BSD y SystemV por lo que está en casi todas partes, incluido Linux).

Estoy tratando de programar una comunicación en serie utilizando el protocolo de enlace de hardware en Linux usando C / C ++. Las señales que implementan el handshake son CTS (Clear to send) y RTS (Request to send). Actualmente mi función para configurar la señal CTS se ve de la siguiente manera:

int setCTS(int fd, int value) { int status; ioctl(fd, TIOCMGET, &status); // get the current port status if (value) status |= TIOCM_CTS; // rise the CTS bit else status &= ~TIOCM_CTS; // drop the CTS bit ioctl(fd, TIOCMSET, $status); // set the modified status return 0; }

donde fd es el descriptor de archivo para el puerto y el valor es el valor que se establecerá para la señal. Para codificar esta función, basé en http://www.easysw.com/~mike/serial/serial.html#5_1 .

El problema es que gcc no reconoce ninguna de las constantes utilizadas en el ejemplo. ¿Alguna sugerencia?

- Actualización -

Encontré una respuesta. Mirando a otro ejemplo, sys/ioctl.h declara las constantes.