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 19/02/2014, à 16: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, à 17:06)

Hors ligne

#2 Le 19/02/2014, à 17: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, à 17: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, à 18: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, à 18:26)

Hors ligne

#5 Le 19/02/2014, à 18: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, à 18: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, à 18: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