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 :

Lecture du port série en temps réel


Sujet :

Qt

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2013
    Messages : 84
    Points : 94
    Points
    94
    Par défaut Lecture du port série en temps réel
    Bonjour à tous,

    Je commence à utiliser le les fonctions concernant le port série de QT.
    Je souhaite afficher les données que je reçois dans un QTPlaintText mais cela me pose des problèmes.

    En effet, sur mon port série j'affiche le message suivant : "Bonjour le numéro est ?" où ? est un nombre qui s'incrémente à chaque nouvel envoi de ce message. Ceci n'est que pour le test de mon application QT.

    Mais quand j'affiche ce que j'ai reçu cela se mélange comme on peut le voir sur la capture d'écran suivante :

    Nom : Sortie.png
Affichages : 876
Taille : 43,1 Ko

    Mon code est classique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    serial = new QSerialPort(this);
    serial->setPortName("COM6");
    serial->setBaudRate(115200);
    serial->setDataBits(QSerialPort::Data8);
    serial->setParity(QSerialPort::NoParity);
    serial->setStopBits(QSerialPort::OneStop);
    serial->setFlowControl(QSerialPort::NoFlowControl);
    serial->setReadBufferSize(20000);  // J'ai essayé plusieurs valeur dont 0 mais cela ne change rien
     
    if (serial->open(QIODevice::ReadWrite))
    {
        connect(serial,SIGNAL(readyRead()),this,SLOT(serialReceived()));
        qDebug("Connection OK");
    }
    else
    {
        qDebug("Connection Error");
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    void MainWindow::serialReceived(){
        Editors[0].editor->appendPlainText(serial->readAll());
    }
    Je ne vois pas comment résoudre ce problème. Cela est-il seulement un problème d'affichage ?

    J'espère que vous pourrez m'aider.

    Merci d'avance

    Cordialement

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 107
    Points : 189
    Points
    189
    Par défaut
    slt,
    Comme la doc l'indique, appendPlainText créé un nouveau paragraphe.
    Le problème est que readAll lit tout le contenu d'un buffer, qui peut potentiellement être en cours de remplissage et donc avoir la dernière transmission de ligne non terminée.
    Donc soit tu utilises un readLine avec appendPlainText.
    Donc soit tu utilises un readAll avec insertPlainText.
    Mais pas un mélange ds 2.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lecture du port série incohérente
    Par L-F-an dans le forum Qt
    Réponses: 4
    Dernier message: 25/03/2010, 17h34
  2. Lecture sur port série sous Linux
    Par DangerousBowlOfJelly dans le forum C
    Réponses: 6
    Dernier message: 28/03/2008, 18h00
  3. lecture du port série
    Par joooooo dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 24/04/2007, 01h18
  4. Pb lecture sur port série sous XP SP2
    Par ViveLesQuads dans le forum Delphi
    Réponses: 7
    Dernier message: 09/06/2006, 18h12
  5. [C#] lecture sur port série
    Par Iokanaan dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/05/2005, 14h50

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