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

Qt Discussion :

Compatibilité entre plusieurs ports série et plusieurs fils d'exécution


Sujet :

Qt

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur conseil électronique/informatique
    Inscrit en
    Décembre 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur conseil électronique/informatique
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2018
    Messages : 17
    Points : 10
    Points
    10
    Par défaut Compatibilité entre plusieurs ports série et plusieurs fils d'exécution
    Bonjour à tous,


    Je suis en train une IHM sur Raspberry via QT creator en C++, dans l'ensemble le développement se passe bien mais je viens de me rendre compte que j'ai des soucis de compatibilité au niveau de mes ports séries....

    En effet mon système est composé d'une fenêtre principale Mainwindow et de différents Threads.... Cependant dans ma fenêtre principale mainwindow.cpp je continue en permanence avec un DSPIC33 via le port serie UART5, dans le même temps dans un thread à l'écriture et la lecture de badge RFID, je communique également sur un port série USB que j'interroge en permanence pour savoir si un badge n'est pas présent...

    Et c'est la que tout s’embrouille ! A savoir, lorsque j'envoie des données via le port série UART5 au PIC cela produit des interférences au niveau de la lecture des badges sur le port serie USB1 et ce problème dans l'autre sens également. L'application peut même carrément s’arrêter de fonctionner si le système s'embrouille trop...

    Il est à noté que le port série UART5 est déclaré uniquement dans mainwindow.cpp et que le port série USB1 est déclaré quand le threadRFID.cpp.



    Comment dois-je faire pour que les deux communications n’interfèrent pas entre elles ?

    Y'a t-il des déclarations spécifiques à faire dans des endroits spécifiques ?

    Ou une méthode à appliquer ?


    n'hésitez pas si vous avez besoin de plus de renseignements...

    Merci d'avance !

    ps: je veux vous faire peur, mais je vais créer un thread qui gérera un monnayeur via un troisième port série ;p

  2. #2
    Membre confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2015
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2015
    Messages : 294
    Points : 558
    Points
    558
    Par défaut
    Bonjour,je pense que tu devrais faire la communication sur le port serie UART5 dans un thread secondaire et non pas dans la mainwindow (thread gui principal).

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur conseil électronique/informatique
    Inscrit en
    Décembre 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur conseil électronique/informatique
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Décembre 2018
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    merci de ta réponse !

    au final j'avais mis en place ce que tu m'as proposé et j'ai donc essayé l'inverse à savoir déclarer tout les ports séries dans le ma page mainwindow. Ça fonctionne bien et j'arrive bien à accéder à mon port série dans une autre classe si je le défini en variable externe avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    extern QSerialPort* serialRFID;
    Cependant je pense qu'il doit y avoir moyen de créer des port séries spécifiques à des threads sans que ceux-ci rentre en conflit avec d'autres port séries.... des idées ?

    Car ça serait quand même plus propre si la gestion de mon rfid se faisait dans un thread spécifique....

    Merci d'avance

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/04/2009, 10h14
  2. gestion de plusieurs ports série
    Par kouedic dans le forum Windows
    Réponses: 1
    Dernier message: 15/02/2008, 09h10
  3. gestion de plusieurs ports série
    Par kouedic dans le forum Bibliothèques
    Réponses: 0
    Dernier message: 15/02/2008, 08h58
  4. partager une struct entre plusieurs fils
    Par romainromain dans le forum Réseau
    Réponses: 8
    Dernier message: 22/11/2006, 20h22
  5. codage des données à l'entrée du port série
    Par sanatou dans le forum Windows
    Réponses: 4
    Dernier message: 09/11/2006, 11h22

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