IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Emulation d'un port ttySx


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2017
    Messages : 8
    Par défaut Emulation d'un port ttySx
    Bonjour,

    j'ai un programme qui communique avec un périphérique externe qui n'est pas toujours à ma disposition. Et pour des raisons de debug je souhaiterais émuler ce périphérique lorsqu'il est branché au pc. Donc l'idée serait d'écrire dans un fichier qui se comporterait comme le fichier représentant le périphérique. Sauf que quand on écrit dans un fichier "classique", les données restent et ça me gène. Le périphérique est simplement émulé par un programme console qui vient lire et écrire dans le fichier d'échange.

    J'ai donc besoin que les données ne soit pas persistantes dans le fichier, mais qu'elles soient uniquement de passage dans le fichier un peu à la manière d'un pipe... sauf que je ne souhaite pas avoir à modifier le code de mon appli pour le debug, mais juste à changer le nom du fichier correspondant au périphérique.
    Des pistes ?

    Hugo

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 474
    Par défaut
    Bonjour,

    Je suppose que tu travailles avec un unixoïde (probablement Linux si /dev/ttySx) et que tu utilises les ports séries RS/232 classiques d'un PC, qui vont généralement par deux, même s'ils commencent à se faire très rares depuis 15 ans (dépréciés au profit de l'USB) et que les petites machines (comme les portables) n'en proposent parfois qu'un seul. Il y a plusieurs solutions qui s'offrent à toi :

    • La première, si tu disposes de deux ports, est de dénicher un câble « NULL-Modem » quelque part et de relier les deux ports ensemble. Tu te retrouveras alors dans une authentique configuration de dialogue à distance, y compris au niveau hardware. À l'époque où les ports série étaient encore standard, tu le trouvais facilement au rayon informatique (voire même Hi-Fi) de l'hypermarché du coin. Aujourd'hui, c'est impensable, mais tu dois encore facilement en trouver en ligne. Sinon, tu peux aussi le fabriquer toi-même si tu aimes bricoler (c'est juste du fil). Tu lances alors ton programme sur son port série habituel et ton programme d'écoute sur l'autre ;


    • Si ta communication est unidirectionnelle (si ton programme ne fait que lire ou qu'écrire dans le port série), le plus simple est de créer un tube nommé avec « mknod <nom> p » ou « mkfifo nom » ;


    • Sinon, tu peux utiliser un « pseudo TTY » (/dev/pty) qui servent précisément à cela et dont on se sert entre autres pour faire fonctionner les X-Term de l'interface graphique. Voir man 7 pty. L'avantage est qu'en principe, ils devraient réagir proprement aux signaux de contrôle (IOCTL) qui pourraient être utilisés par ton programme pour paramétrer proprement le port série (et en particulier, définir sa vitesse de transmission).


    Tu peux également recourir aux sockets UNIX (sockets habituels dont le point de rendez-vous est un nom de fichier, comme un tube nommé) mais là, par contre, il y a peu de chances que le programme concerné accepte de fonctionner directement avec. Il faut suivre une procédure de connexion comme pour le réseau.

Discussions similaires

  1. Emulation port série RS232
    Par Invité dans le forum Développement
    Réponses: 0
    Dernier message: 26/07/2011, 14h43
  2. Programmer port derrière routeur NAT TRAVERSAL comme Emule
    Par Steff2 dans le forum Web & réseau
    Réponses: 4
    Dernier message: 04/05/2010, 14h29
  3. Emulation Port Série - USB
    Par azman0101 dans le forum Windows XP
    Réponses: 0
    Dernier message: 24/12/2007, 11h02
  4. emuler un port
    Par Elstak dans le forum Réseau
    Réponses: 13
    Dernier message: 13/06/2007, 19h12
  5. emulation port usb
    Par H¤N£y dans le forum Composants
    Réponses: 3
    Dernier message: 09/08/2006, 17h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo