Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 01/05/2012, à 16:51

cocoLeNain

[RESOLU]Emuler périphérique port Série ? Socat ?

Bonjour à tous,

Je suis en train de développer une application qui communique via un port série avec Arduino (pour ceux qui ne connaissent pas Arduino, c'est une solution à base de microcontroller ATMEL avr). Et j'aimerai faire des tests de non régressions sur mon application et par conséquent émuler la carte Arduino en envoyant des messages en dur à mon application.

J'ai fait quelque recherches sur le net et j'ai vu qu'il existait une appli appellée socat (présent dans les dépots). J'ai donc essayé en lancant la commande suivante dans la console n°1:

socat -d -d PTY: PTY:

Résultat de la commande

2012/05/01 16:46:03 socat[1158] N PTY is /dev/pts/1
2012/05/01 16:46:03 socat[1158] N PTY is /dev/pts/2
2012/05/01 16:46:03 socat[1158] N starting data transfer loop with FDs [3,3] and [5,5]

Puis, j'ai lancé dans la console n°2 la commande suivante pour afficher les messages arrivant sur le port série émulé :

 tail -f /dev/pts/1

Et enfin, j'ai envoyé un helloword sur le port série émulé avec la commande suivante :

echo -n "HelloWorld" > /dev/pts/1

Mais je n'ai aucun message dans ma console n°2.

Je voudrai donc savoir si je peux faire émuler un port série avec socat.
Si  oui, qu'est-ce qui n'est pas bon ?
Si non, y a-t-il une solution pour réaliser ce que je veux faire.

merci d'avance.

Dernière modification par cocoLeNain (Le 02/05/2012, à 15:46)

Hors ligne

#2 Le 02/05/2012, à 15:45

cocoLeNain

Re : [RESOLU]Emuler périphérique port Série ? Socat ?

Après quelques heures de recherches supplémentaires, j'ai finalement trouvé la solution. Ce qu'il faut savoir c'est que si on envoie un message sur le port /dev/pts/1, c'est le port /dev/pts/2 qui recevra le message (et inversement si on envoie sur /dev/pts/2, /dev/pts/1 reçoit).

Avec mon exemple précédent, voici les commandes à taper :
- Terminal n°2 :

cat < /dev/pts/1

- Terminal n°3

echo "HelloWorld" > /dev/pts/2

Dernière modification par cocoLeNain (Le 02/05/2012, à 15:45)

Hors ligne