GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo saber si un puerto serie realmente está transmitiendo datos sin abrir el dispositivo?

RS232 no tiene indicador de "presencia de cable" de ningún tipo. Solo está recibiendo señales de transmisión o metadatos (control), o no, eso es todo lo que sabe. Si recibe una señal entrante (CTS|DSR|CD), sabrá que el cable está conectado. Si no recibe ninguna señal entrante, el estado del cable es indeterminado y no hay forma de determinar si está enchufado sin soluciones de hardware adicionales o realizando algún tipo de intercambio con el dispositivo remoto.

El enfoque habitual consiste en realizar algún tipo de transmisiones "mantenidas activas" (incluso solo metadatos, por ejemplo, configurar momentáneamente DTR y esperar CTS), pero si la disciplina del protocolo utilizado por el software en los dos extremos del cable prohíbe dicho intercambio inactivo, usted' estás prácticamente obligado a usar un soldador para continuar.

Lo que podría intentar es algún tipo de "demonio" adicional que configura una tubería, reenvía datos entre su software y el dispositivo físico (en ambos extremos), lo encapsula y realiza "comprobaciones de conexión" si la tubería está inactiva.

Permítanme agregar una solución bastante común:si su dispositivo de punto final no usa control de hardware, puede acortar DTR con CTS dentro del enchufe en el lado del host y usar 'control de hardware' en el lado del host. La generación de DTR activa automáticamente CTS, lo que permite la transmisión, si el cable está presente, por lo que la transmisión no se ve afectada. Mientras tanto, con el cable ausente, el sistema reaccionará a la falta de CTS de manera apropiada para este evento, p. generando un tiempo de espera o suspendiendo la transmisión hasta que se conecte el cable.


Linux
  1. ¿Cómo saber qué significa el 'errno'?

  2. ¿Cómo puedo monitorear datos en un puerto serie en Linux?

  3. ¿Cómo encontrar todos los dispositivos seriales (ttyS, ttyUSB, ..) en Linux sin abrirlos?

  4. ¿Cómo abrir el puerto serie en Linux sin cambiar ningún pin?

  5. ¿Cómo sé cuál /dev/ttyS* es mi puerto serie?

Cómo encontrar el número de puerto de un servicio en Linux

Cómo saber los grupos de un usuario de Linux

Cómo cambiar el puerto SSH en CentOS

¿Cómo puedo configurar los bits de paridad cuando uso la pantalla para acceder a un puerto serie?

Cómo saber si un disco es un SSD o un HDD

¿Cómo determinar la tasa de baudios de un puerto serie?