stty la velocidad de baudios del dispositivo se reinicia una vez que ya no se usa

0

-la 2013 MBP, con Yosemite 10.10.2 Mientras usa un USB - > Cable serie (conjunto de chips FTDI), no puedo obtener una velocidad de baudios establecida y hacer que se pegue mientras el dispositivo no está abierto / escrito / leído. Por ejemplo:

Si ejecuto, "stty -f /dev/cu.xxxxxxxx 19200" mientras no esté haciendo nada relacionado con el software, se restablecerá la velocidad de baudios a 9600 inmediatamente después.

Sin embargo, si ejecuto "cat -u < /dev/cu.xxxxxxxx" y THEN configuro el baud a 19200 mientras el gato se está ejecutando, la velocidad de baudios se mantendrá. Este es también el caso cuando escribo un código de prueba y ejecuto el comando del sistema C abierto ("/ dev / cu.xxxxxxxx") y congelamos el programa.

Bajo las antiguas raíces de BSD, esto parece ser un comportamiento estándar. Cuando intento esto en una caja de Debian, la velocidad de transmisión se mantiene. Esto me indica que depende del sistema, pero ¿hay alguna forma de que la velocidad de transmisión sea la predeterminada / palo para siempre?

    
pregunta user3022479 19.03.2015 - 18:30

3 respuestas

1

Para cualquier persona que luego pueda encontrar esto, no pude encontrar ningún truco para ayudar a mantener un "palo" de velocidad de transmisión con stty -f /dev/cu.xxxxxxxx 19200 . Terminé escribiendo un pequeño programa de C simple que open() y sleep() indefinidamente mientras realizaba cualquier otra magia de bash, que emulaba efectivamente lo que originalmente quería.

    
respondido por el user3022479 13.07.2015 - 05:25
1

Para cualquiera que haya encontrado esto (sí, otro ...), aquí hay una solución de shell (al menos Bash):

El 'truco' es abrir un descriptor de archivo para el puerto serie antes de usar stty. Y lo mantiene abierto durante toda la lectura / escritura.

Ejemplo:

exec 3<>/dev/cu.xxxxxxxx           # open a file descriptor
stty -f /dev/cu.xxxxxxxx raw 19200 # configure the serial port
cat /dev/cu.xxxxxxxx               # do stuff...
exec 3<&-                          # close the file descriptor

Gracias a @crasysim por su comentario en el misma pregunta.

    
respondido por el Ek1noX 16.10.2018 - 14:29
0

Tenía un problema similar y la respuesta que publicaste me hizo pensar en si había una manera de ejecutar stty y luego otro comando antes de que stty saliera. Esto es esencialmente lo que hace la tubería aunque con la entrada estándar y la salida estándar unidas, lo que es irrelevante en este caso.

Desde mi experimentación, lo siguiente te permitirá cambiar la configuración de cu y luego acceder a ella con esa configuración.

stty -f /dev/cu.xxxxxxxx 115200|cat /dev/cu.xxxxxxxx

    
respondido por el Nick Dancer 24.06.2018 - 07:09

Lea otras preguntas en las etiquetas