Pages : 1
#1 Le 19/02/2014, à 15:43
- Drixx-prog
Programmation C, RS232
Bonjour,
Je souhaite que via une rasbperry je puisse lire les données que s'envoie 2 PC via des câbles RS232.
Concrètement, je dois pouvoir:
- ouvrir les ports USB de la rasberry
- lire les données transmises d'1 PC
- copier les données sur un fichier de la rasbperry
- renvoyer les données sur l'autre port USB de la rasbperry pour que l'autre PC puisse les lire.
Tous le programme dois être implanter sur la rasbperry et en programmation C.
Pour le moment j'ai réussi a ouvrir les ports(enfin je pense):
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
int main()
{
int rs0;
int rs1;
char car;
rs0=open("/dev/ttyUSB0", O_RDWR);
if(rs0 == -1)
{9
printf ("Erreur de l'ouverture du port 1");
return 0;
}else
{
rs0 = 1;
printf("Afficher les données reçus");
}
rs1=open("/dev/ttyUSB1", O_RDWR);
if(rs1 == -1)
{
printf ("Erreur de l'ouverture du port 1");
return 0;
}
Si quelqu'un peux m'aider s'il vous plait.
Merci
Dernière modification par Drixx-prog (Le 19/02/2014, à 16:06)
Hors ligne
#2 Le 19/02/2014, à 16:40
- claudius01
Re : Programmation C, RS232
Bonjour,
Avant d'analyser le programme, je souhaiterais être sûr de "... lire les données que s'envoient 2 PC via des câbles RS232".
En effet, RS232 est une norme électrique qui véhicule en général le protocole UART et qui, lorsqu'elle associée à USB (câble + protocole propres) conduit à utiliser un câble USB-RS232.
Ce câble, en plus de l'adaptation électrique, convertit les 2 protocoles dans les 2 sens au moyen d'un driver du type FTDI USB Serial Device.
A confirmer/infirmer ;-)
Cordialement, A+
--
Claudius
Hors ligne
#3 Le 19/02/2014, à 16:51
- Drixx-prog
Re : Programmation C, RS232
Dans le principe, c'est bien cela, je dois pouvoir sniffer et renvoyer vers le PC2 les données envoyer du PC1. J'utilise donc des cables RS232 pour relier le tous.
Le raspberry sert en quelques sorte d'espion situé entre les 2PC.
En esperant avoir repondu a ta question.
Cordialement
Hors ligne
#4 Le 19/02/2014, à 17:18
- claudius01
Re : Programmation C, RS232
Ok, tu as parfaitement répondu à la question.
Donc l'écriture/lecture via les 2 '/dev/ttyUSB0' et '/dev/ttyUSB1' de la Framboise se font comme tu l'as initié (open, read, write et close) dans la mesure où un driver du type FTDI USB Serial Device est installé sur les 2 dev en question. De plus, ce driver est très largement utilisé
(cf. https://www.google.fr/#q=ftdi+sio+raspberry+pi)
Est-ce le cas ?
NB: Sur Ubuntu, ce driver est livré de base sous '/lib/modules/3.5.0-23-generic/kernel/drivers/usb/serial/ftdi_sio.ko'
Edit: Corrections éditoriales + recherche Google
Dernière modification par claudius01 (Le 19/02/2014, à 17:26)
Hors ligne
#5 Le 19/02/2014, à 17:26
- Drixx-prog
Re : Programmation C, RS232
Oui ce driver est installé sur mes 2 dev.
L'ouverture de mes ports se déroule correctement, c'est surtout sur la suite du programme que j'ai du mal a réaliser (lecture/ecriture des données).
Cordialement
Hors ligne
#6 Le 19/02/2014, à 17:50
- claudius01
Re : Programmation C, RS232
Bon, je ne comprends pas trop la difficulté que tu peux avoir car avec tout ce qui est installé tu peux évaluer la chaine complète (hors problème de temps réel), avec les 2 commandes 'cat' et 'echo' comme indiqué dans Programmateur pour PIC24 (Électronique) - Page 3 :
En effet, si le device est par exemple /dev/ttyUSB1 suite à l’utilisation d’un câble USB/Série, l’envoi d’une ou plusieurs commandes se fera dans un 1er terminal console par echo « commandes » > /dev/ttyUSB1 ou cat fichier_de_commandes > /dev/ttyUSB1 et la réception plus l’affichage des réponses dans un 2ème terminal console par cat < /dev/ttyUSB1.
Cordialement, A+
--
Claudius
Hors ligne
#7 Le 19/02/2014, à 17:53
- Drixx-prog
Re : Programmation C, RS232
Je ne pense pas que tu est réellement compris mon projet, en fait je dois créer un programme en C qui fait les meme effet que ces comandes en gros. et non passer par le terminal de la raspberry.
Merci quand meme
Drixx-prog
Hors ligne
Pages : 1