¿Cómo controlar la línea RTS/CTS del puerto serie en VB?
La configuración del puerto serie en Linux se realiza principalmente a través de la estructura termios, pero esta estructura no proporciona una interfaz para controlar RTS u obtener el estado de los pines del puerto serie como CTS. Estas interfaces se pueden obtener/controlar mediante llamadas al sistema ioctl. .
Obtener:
ioctl(fd, TIOCMGET, y bits de control);
if (bits de control y TIOCM_CTS)
printf( " Hay una señal \n ");
else
printf(" Sin señal \n");
Configuración:
ioctl(fd, TIOCMGET, amp; ctrlbits);
if (bandera)
ctrlbits |= TIOCM_RTS
else
ctrlbits &= ~TIOCM_RTS;
ioctl(fd, TIOCMSET, &ctrlbits);
De hecho, cuando TIOCM_RTS es válido, establece el RTS del puerto serie en señal, pero el nivel de el puerto serie es una señal cuando está bajo y no es señal cuando está alto, lo cual es opuesto al estado obtenido por TIOCMGET, es decir, e., TIOCMGET/TIOCMSET solo obtiene/controla el pin correspondiente del puerto serie. El pin se señala sin reaccionar al nivel real del puerto serie actual.