Pregunta

Estoy usando la pantalla para leer el texto de una consola serie. El problema es que la salida parece solo tener nueva línea n pero no retorno de carro, por lo que la pantalla se ve así ...

Line1
     Line2
          Line3

Me pregunto si hay algún parche para solucionar este problema.

¿Fue útil?

Solución

Probar stty onlcr.

los página del hombre Dice que traducirá nuevas líneas a pares de retorno de carro / nueva línea en la salida, lo que parece ser lo que necesita.

Otros consejos

onlcr es para traducir Ode suministro norteEWlines a Carreglo riñonalEturns.

stty -F /dev/ttyS0 inlcr se traducirá entrante Las nuevas líneas para el transporte regresan. Puede ejecutar eso desde otro terminal después de iniciar la pantalla para evitar cualquier restablecimiento que la pantalla pueda hacer en el inicio. Desafortunadamente, esto solo cambiará el problema. Luego obtendrá solo devoluciones y no hay nuevas líneas.

Lo que se necesita es una opción para adjuntar un regreso a una nueva línea entrante para que la terminal reciba \n\r, que es lo que el dispositivo en serie debería tener salida en primer lugar. Parece haber un onlret opción para hacer esto para datos salientes, pero no inlret Opción como parecemos necesitar en este caso.

Tengo exactamente el mismo problema (usando Picocom) y he estado buscando en Google durante días tratando de encontrar la solución estándar, pero nadie parece tener uno. Hay una serie de dispositivos seriales que solo salen \n y simplemente no se puede hacer para salir \r\n Y me niego a creer que todos pertenecen a solo dos usuarios de Linux. ¿¡Lo que da!?

Si usa el miniterm.py Programa que viene con Pyserial interpretará nuevas líneas como CRLF. No es el emulador terminal más completo, sino para interactuar con dispositivos seriales simples, hace el trabajo.

Sintaxis de uso (en OSX):

miniterm.py /dev/tty.usbserial-XXXXXX 115200

Reemplace xxxxxx con lo que el dispositivo aparezca en su sistema.

En mi caso funcionó: stty -F /dev/ttyACM0 -icrnl

Porque la serie se estableció implícitamente para traducir CR a NL. Este comando lo retrasó. Observe el personaje menos anterior icrnl.

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