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

GTK+ avec C & C++ Discussion :

GTK lecture rs232 en boucle


Sujet :

GTK+ avec C & C++

  1. #1
    Membre averti
    Inscrit en
    Mai 2004
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 16
    Par défaut GTK lecture rs232 en boucle
    Bonjour,

    je souhaiterais developper une application qui lit en boucle les data qui arrive sur un port rs232 et que les renvoie dans une texte view. Malheuresement, lorsque je met la boucle infini lecture des data sur le port rs232, mon GUI se plante. J'ai vu qu'il y avait des fonctions gtk_events_pending ()) ou quelque chose comme ca qui permet de gerer ce genre de cas. Mais je n'ai rien trouvé de très bien expliqué. Pourriez vous me le décrire un peu?

    Je souhaiterais une chose comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    bouton_callback{
          do{
             lecture port rs232
             afficher data sur la text view
          } while (1);
    }
     
    main{
      creation de la fenetre principale
      création bouton, text view
      affichage fenetre
    }
    Merci de votre aide

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Non. Ce n'est pas par là qu'il faut passer.

    Ton idée serait d'insérer une fonction dans la boucle principale Gtk+. Ca ne marchera pas. Du moins ce ne sera pas du tout productif.

    Il faut passer par les GIOChannel. Tu peux les voir comme une interruption logiciel (si tu connais le principe des interruptions).

    Je te laisse découvrir tout ca. Reviens ici si tu as besoin de quelques éclaircissements.

  3. #3
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Par défaut
    Je dirais plutôt GSource plutôt que GIOChannel...

  4. #4
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par liberforce Voir le message
    Je dirais plutôt GSource plutôt que GIOChannel...
    Faut voir...

    S'il veut insérer une fonction dnas la boucle principale, oui d'accord => GSource.

    Mais je lui propose d'avoir une fonction qui ne sera appelée que lorsqu'une information sera présente sur le port. Je me trompe en lui proposant les GIOChannel?

  5. #5
    Modérateur

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    1 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 395
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IO Channels — portable support for using files, pipes and sockets
    Si c'est du RS232 sous Linux, oui, ça doit être possible en lisant/écrivant dans /dev/ttyS0 effectivement, vu que le port série est traité comme un fichier. Je ne sais pas en revanche comment c'est géré sous Windows et il n'y a pas d'info sur la plateforme.

  6. #6
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    C'est effectivement sous l'angle linux que je lui est proposé cette solution. Et je suis comme toi. Sous Windows je n'en sais rien.

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/08/2012, 05h46
  2. Javabean Lecture RS232 à utiliser au niv Forms 10G
    Par yasstunisien dans le forum Forms
    Réponses: 7
    Dernier message: 15/10/2010, 17h52
  3. [CS3] activation case lecture auto et boucle
    Par devweb10 dans le forum Dreamweaver
    Réponses: 0
    Dernier message: 20/07/2009, 05h12
  4. [LabVIEW 8.2] Problème lecture RS232
    Par boubmarley dans le forum LabVIEW
    Réponses: 6
    Dernier message: 26/11/2008, 10h47
  5. lecture/ecriture des broches RTS/CTS du port RS232
    Par .:: sly51 ::. dans le forum C
    Réponses: 3
    Dernier message: 24/10/2006, 15h28

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