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

Bibliothèques Discussion :

[C++] Liaison série entre deux Linux.


Sujet :

Bibliothèques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Par défaut [C++] Liaison série entre deux Linux.
    Bonsoir,

    Après plusieurs jours de recherches infructueuses (sur internet et dans les manuels), je me décide à vous demander votre aide.

    Le sujet
    Dans le cadre d'un projet je doit réaliser un échange de donnée entre une carte embarquée (noyau linux LSB) et un poste (noyau linux ubuntu 7.10). Je dois donc réaliser deux programmes, un pour l'émission et un pour la réception (pour le moment ce n'est que le poste qui envoie des infos à la carte), de part le kernel le programme d'émission est compilé avec g++ et la réception est compilé sous arm-linux-g++.

    Ce qui devrait se passer
    Emission :
    Ouverture du port série par le fichier /dev/ttyS0 en mode non canonique asynchrone
    Envoi d'une trame
    Fermeture du port

    Réception:
    Ouverture du port série par le fichier /dev/ttyS0 en mode non canonique asynchrone
    Réception d'une trame (Boucle jusqu'à ce que le buffer d'entrée contienne quelque chose)
    Fermeture du port

    Ce qui se passe
    Emission :
    Ouverture du port série par le fichier /dev/ttyS0 en mode non canonique asynchrone
    Envoi d'une trame << j'ai des signaux lorsque je "sniffe" le port avec l'oscillo
    Fermeture du port

    Réception:
    Ouverture du port série par le fichier /dev/ttyS0 en mode non canonique asynchrone
    Réception d'une trame (Boucle jusqu'à ce que le buffer d'entrée contienne quelque chose) << Rien ne se passe. En réalité il faut que je lance minicom pour voir mes données s'afficher sur le terminal de minicom. En acquittant la séquence dans minicom ça fonctionne de temps à autre ... J'ai bien vérifié, minicom ne verrouille pas le port. En outre si je ferme minicom alors que le programme de réception est lancé alors celui si reçoit des trames vides.

    Vous l'aurez compris, minicom semble être requis pour acheminer les données mais d'une part, je ne comprend pas pourquoi et d'autre part je ne veux pas passer par minicom.
    Si jamais vous avez des infos, des idées, une remarque ... bref un truc pour me débloquer, je serais super content.

    Merci d'avance.

    Grayfox

    PS: je joint les deux archives contenants les programmes d'envoi et de réception.

    edit : Désolé pour le plantage de forum... Je ne pensais pas écrire dans "Bibliothèques"... oups
    Fichiers attachés Fichiers attachés

  2. #2
    Membre du Club
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par défaut
    Salut à toi grayfox27,
    j'ai a peu près les même opérations à faire que toi à l'aide des ports séries. (Linux"Ubuntu 7.10"et cible embarqué"Atmel AVR32").
    J'ai donc compilé et essayé tes programmes, malheureusement j'en arrive à la même conclusion que toi, il faut bel et bien ouvrir (dans mon cas gtkterm), un gestionnaire de port série pour que les données soient bien envoyées.

    Cependant si j'utilise mon programme d'émission et ton programme de réception, je n'ai aucun problème.(Ce qui me permet de valider mon porgramme par la même occasion à un problème près).

    Si par contre j'utilise ton programme d'émission et mon programme de réception, alors la rien ne marche de plus si j'ouvre le gtkterm alors le programme en réception se fige. Je suis sur du bon fonctionnement de mon programme puisque j'ai déjà validé son fonctionnement.

    A défaut de te donner une solution je te met peut-être sur une piste.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Par défaut
    Bien le bonjour,
    et desole par avance mais je suis sur un clavier qwerty donc pas d'accent

    Merci pour la reponse, depuis il y a eu du nouveau. En effet, j'ai mit de cote la carte contenant la version de Linux embarquee pour bouclee sur les deux ports series de mon post Linux (Ubuntu) et cela fonctionne (en emission comme en reception).

    J'ai donc reconnecter mon Linux a ma carte embarquee mais il communication ne se fait que dans un sens Carte --> Linux .
    J'ai beau chercher au niveau des histoires de flux de control mais rien ne change.

    A mon avis le probleme vient de la carte puisque lorsque je fait un setserial je tombe deux fois sur la meme adresse 0x000000. J'attend toujours une reponse d'Arcom ...

    Serait possible que tu me dises ce qui change entre ton programme d'envoi et le mien ?

    Merci d'avance et encore desole pour les accents j'editerai quand j'aurai un AZERTY.

    --grayfox27

  4. #4
    Membre du Club
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par défaut
    Et bien mon programme est écrit en C.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Par défaut
    Mais encore ?

  6. #6
    Membre du Club
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par défaut
    Je n'utilise pas les mêmes librairies qu'en C++. Mais sinon tout est identique dans la manière de procéder, c'est juste le nom des fonctions qui change et donc la manière dont elles fonctionnent.

Discussions similaires

  1. [XL-2010] liaison automatique entre deux dossiers
    Par sarl-78 dans le forum Excel
    Réponses: 4
    Dernier message: 30/05/2012, 20h31
  2. Réponses: 1
    Dernier message: 26/04/2012, 14h05
  3. Liaison série entre 2 KIT MC 09B
    Par abdelkoudouss dans le forum Assembleur
    Réponses: 1
    Dernier message: 02/02/2011, 15h35
  4. Réponses: 6
    Dernier message: 27/04/2010, 16h45
  5. Partage de fichiers entre deux Linux
    Par nicocolt dans le forum Réseau
    Réponses: 3
    Dernier message: 30/03/2008, 11h50

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