Gestion du port série avec surveillance des paquets pour qt

0/5 (10 avis)

Vue 9 941 fois - Téléchargée 885 fois

Description

Bonjour bonjour,

Ca fait un moment que je cherche une bonne bibliothèque pour gérer le port série avec QT.
N'en ayant pas trouvée, je l'ai faite moi même.
Pour ceux qui n'ont pas envie de se prendre la tête, ou ceux qui veulent améliorer, et pour tout le monde
en général, voici le fruit de mon travail.

Par contre, je vous demande une chose, si vous la modifiez (en mieux) mettez le header à jour et faites moi en part,
ainsi que tout le monde. Se serai vraiment sympa.

Si il y a des choses à améliorer je suis là.

PS : Si certains ne veulent pas de QT J'ai aussi, mais y'a plus le thread

++

Source / Exemple :


#ifndef _RS232
#define _RS232

#include <windows.h>
#include <QThread>
#include <QMutex>
#include <QWaitCondition>

//ATTENTION : Toutes les lectures retournent un pointeur vers un signed char

class RS232 : public QThread
{
    Q_OBJECT
private:
    //Variables de la communication
    DCB configuration;
    HANDLE port_handle;
    COMMTIMEOUTS temps_attente;

    //var des threads
    QMutex mutex;
    QMutex fini;
    int sortir;

    int taille_donnee;      //taille maximale de la donnee un octets

public:

    int creation_ok;

    RS232(char *Port="COM1",char *Parite="Aucune",int Vitesse=9600,int Data=8,char *StopBit="1",int TimeOut=500);
    ~RS232(){CloseHandle(port_handle);}
    int envoi_chaine(char *Chaine,char *EolChar = "$");
		
    int envoi(unsigned int nombre);
		
    int recevoir(char *ChaineRecue);

    virtual void run();

    void fin_thread();

signals:
    void event_new(char *reception);
};
#endif

Codes Sources

A voir également

Ajouter un commentaire Commentaires
CodeSteph Messages postés 4 Date d'inscription mardi 11 octobre 2011 Statut Membre Dernière intervention 25 octobre 2011
20 oct. 2011 à 00:31
Salut,
J'ai un probleme de avec le signal, qui ne me connect pas à mon slot.
A la reception d'un octet, je tombe bien dans le thread je passe dans le if(nBytesRead) (point d'arret) mais quand je mets un point d'arret dans le slot qui est connecté au signal.... ben j'y tombe jamais. Je precise que je debute sur QT donc il est probable que l'erreur soit dans mon code, mais un peu de support me ferait du bien
samoura969 Messages postés 7 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 15 juin 2010
22 juin 2010 à 15:29
J'ai regardé le type enum, intéressant. Je vais voir comment m'en servir...
cptpingu Messages postés 3835 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 1 novembre 2022 124
21 juin 2010 à 09:50
fil1234 Messages postés 2 Date d'inscription samedi 13 mars 2010 Statut Membre Dernière intervention 20 juin 2010
20 juin 2010 à 23:03
Ca m'interesse d'avoir ton test avec le bouton
samoura969 Messages postés 7 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 15 juin 2010
20 juin 2010 à 19:51
Euh, non j'ai pas, pour le tester, je sélectionne une valeur, je l'envoie sur le port, de l'autre coté j'ai un pic qui me renvoie la valeur lorsque j'appuie sur un bouton.

Je suis pas trop connaisseur en QT, je pense que tu devrais regarder sur leur site, toutes les possibilités et les fonctions sont explicitées.
Afficher les 10 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.