Recibir datos del puerto serie

Recibir datos del puerto serie

Quiero recibir datos del puerto serie RS232 a mi terminal y con una directiva a un archivo. Debería ser bastante sencillo.

cat /dev/ttyS0
cat /dev/ttyS0 > file.txt

Antes de eso, configuré los parámetros para que coincidan con los del dispositivo (Analizador de bioquímica).

sudo stty -F /dev/ttyS0 9600 -parity cs8 cstopb

es decir

  1. Velocidad de baudios: 9600
  2. Paridad: ninguna
  3. Bits - 8 bits
  4. Bits de parada - 2

Pero no recibo nada en el terminal. Simplemente está en blanco. ¿Cuál es el problema?

Respuesta1

Intentarminicomprimero y vea lo que devuelve su puerto serie. instalarlo consudo apt-get install minicom

Lo inicias de la siguiente manera (para ttyS0):

sudo minicom -D /dev/ttyS0

Puede configurar los parámetros de comunicación desde Minicom (usando ctrl-A P), para estar seguro de que son correctos.

Si su dispositivo utiliza un protocolo específico, es posible que necesite un comando para iniciar la comunicación. Así que eche un vistazo al manual de usuario.

Quizás su dispositivo esté configurado para utilizar el protocolo de enlace por hardware. Si es posible, apágalo (al menos al principio).

Si no puedes apagarlo, tendrás que configurarlo también de tu lado. En Minicom esto está debajo ctrl-A Oy luego serial port setup.

He usado Minicom con frecuencia para depurar comunicaciones seriales y encuentro que funciona mejor.

He recibido más información del OP:

El instrumento de laboratorio (Cobas C311) utiliza el protocolo ASTM. Allí, en la interfaz, solo tenemos que hacer clic en "Enviar al host" y se envía un montón de registros ASTM. Sólo necesito recibirlos en un archivo. ¿Hay alguna otra configuración? ¿Cuál es el comando para empezar a adquirir datos?...y ¿cómo guardar los datos en un archivo?

Elegido los parámetros correctos. Minicom muestra 9600 8N2. Espero que esté bien. Pero no recibir nada, ni un solo bit. El analizador dice: "El instrumento transmitió ENQ como una solicitud de envío, pero el host no devolvió ACK o NAK dentro de los 15 segundos (tiempo de espera del enlace)".

El dispositivo utiliza elProtocolo ASTM. El dispositivo envía el <ENQ>carácter como señal de que está listo para comenzar a enviar datos.
Esto no es algo que puedas recibir usando minicomningún otro programa de terminal. Necesitará un software de aplicación adecuado que admita este protocolo.

Definitivamente debe leer el manual de usuario y consultar el disco de instalación (si corresponde) y el sitio web del fabricante para encontrar una aplicación que admita este protocolo.
Me sorprendería que no tuvieran soporte de aplicaciones para este dispositivo. Si ofrecen algo, probablemente sea una aplicación de Windows o algún código de ejemplo más una biblioteca.

Es posible escribir algo tú mismo, pero no será fácil. Hay cierto soporte de Python paraASTMy hay unsecuencia de comandos Perlque podrías intentarlo.

SO también tiene uncorreocon algo de información sobre ASTM..

información relacionada