GNU/Linux >> Tutoriels Linux >  >> Linux

Comment savoir si un port série transmet réellement des données, sans ouvrir l'appareil ?

RS232 n'a aucun indicateur de "présence de câble" d'aucune sorte. Vous ne faites que passer des signaux de transmission ou de métadonnées (contrôle), ou vous ne le faites pas - c'est tout ce que vous savez. Si vous recevez un signal entrant (CTS|DSR|CD), vous savez que le câble est connecté. Si vous ne recevez aucun signal entrant, l'état du câble est indéterminé et il n'y a aucun moyen de déterminer s'il est branché sans solutions matérielles supplémentaires - ou d'effectuer une sorte d'échange avec l'appareil distant.

L'approche habituelle consiste à effectuer une sorte de transmission "continue" (même juste des métadonnées - par exemple, définir momentanément DTR et attendre CTS) mais si la discipline du protocole utilisé par le logiciel aux deux extrémités du câble interdit un tel échange inactif, vous ' Je suis pratiquement obligé d'utiliser un fer à souder pour continuer.

Ce que vous pourriez essayer, c'est une sorte de "démon" supplémentaire qui configure un canal, transmettant les données entre votre logiciel et le périphérique physique (aux deux extrémités), l'encapsulant - et effectuant des "vérifications de connexion" si le canal est inactif.

Permettez-moi d'ajouter une solution assez courante :si votre périphérique d'extrémité n'utilise pas de contrôle matériel, vous pouvez court-circuiter DTR avec CTS à l'intérieur de la prise côté hôte et utiliser le "contrôle matériel" côté hôte. La génération de DTR entraîne automatiquement CTS, permettant la transmission, si le câble est présent, de sorte que la transmission n'est pas affectée. Pendant ce temps, sans câble, le système réagira au manque de CTS d'une manière appropriée à cet événement, par ex. générant un délai d'attente ou suspendant la transmission jusqu'à ce que le câble soit branché.


Linux
  1. Comment envoyer des données à un port série et voir une réponse ?

  2. Comment ouvrir le port série sous Linux sans changer de broche ?

  3. Lire/écrire sur un port série sans racine ?

  4. Comment partager la connexion internet ?

  5. Comment savoir si un disque est un SSD ou un HDD

Comment trouver le numéro de port d'un service sous Linux

Comment se connecter et envoyer des données à un port série Bluetooth sous Linux ?

Comment connaître les groupes d'un utilisateur Linux

Comment changer le port SSH dans CentOS

Comment cat connaît-il le débit en bauds du port série ?

Comment déterminer le débit en bauds d'un port série ?