Saltar al contenido

¿Cómo puedo monitorear el tráfico del puerto serial?

Estate atento ya que en este escrito vas a encontrar la contestación que buscas.

Solución:

socat es una herramienta para conectar (casi) todo a (casi) todo, y tee puede duplicar flujos.
En su caso de uso, podría conectar su puerto serie /dev/ttyS0 a un PTY /tmp/ttyV0luego dirija su aplicación al PTY y haga que socat tee Salida de entrada y salida en algún lugar para que usted pueda observar.

Buscar en Google “socat serial port pty tee debug” le indicará varios ejemplos de “procedimiento estándar”, uno de los cuales es:

socat /dev/ttyS0,raw,echo=0 
SYSTEM:'tee in.txt |socat - "PTY,link=/tmp/ttyV0,raw,echo=0,waitslave" |tee out.txt'

Los archivos in.txt y out.txt entonces contendrá los datos capturados.

Actualizado después de los comentarios:

  • La sintaxis de socat parece confusa al principio, pero de hecho, son solo 2 declaraciones anidadas.
    Un pequeño precio a pagar por una herramienta tan potente y versátil.
  • Si necesita configurar su puerto serie o enviar otros ioctls, hágalo antes de llamar a socat, ya que socat no puede representarlos.
  • La herramienta de un solo propósito interceptty a partir de 2006 tiene una sintaxis un poco más simple, pero solo puede interceptar TTY (mientras realiza un proxy de ioctl), y probablemente no esté en su administrador de paquetes. (La mayoría de las distribuciones de Linux nunca lo agregaron a sus repositorios)

No creo que el controlador serie tenga ninguna funcionalidad de seguimiento que le permita ver paquetes. Puedes usar strace para observar todas las lecturas y escrituras de su aplicación:

strace -s9999 -o myapp.strace -eread,write,ioctl ./myapp

Encontré proyectos llamados Linux Serial Sniffer, jpnevulator y Moni. Los dos primeros parecen que hacen exactamente lo que quieres. El último se llama a sí mismo monitor, pero en realidad parece un programa estándar de comunicación en serie.

Reseñas y valoraciones

Ten en cuenta comunicar este post si lograste el éxito.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *