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.