GESTION DU PORT SÉRIE AVEC SURVEILLANCE DES PAQUETS POUR QT
samoura969
Messages postés7Date d'inscriptionlundi 17 mai 2010StatutMembreDernière intervention15 juin 2010
-
15 juin 2010 à 16:13
CodeSteph
Messages postés4Date d'inscriptionmardi 11 octobre 2011StatutMembreDernière intervention25 octobre 2011
-
20 oct. 2011 à 00:31
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
CodeSteph
Messages postés4Date d'inscriptionmardi 11 octobre 2011StatutMembreDernière intervention25 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és7Date d'inscriptionlundi 17 mai 2010StatutMembreDernière intervention15 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és3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 21 juin 2010 à 09:50
fil1234
Messages postés2Date d'inscriptionsamedi 13 mars 2010StatutMembreDernière intervention20 juin 2010 20 juin 2010 à 23:03
Ca m'interesse d'avoir ton test avec le bouton
samoura969
Messages postés7Date d'inscriptionlundi 17 mai 2010StatutMembreDernière intervention15 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.
fil1234
Messages postés2Date d'inscriptionsamedi 13 mars 2010StatutMembreDernière intervention20 juin 2010 20 juin 2010 à 19:11
C'est déjà bien. As tu un exemple avec l'affichage d'un graphe y=f(x) (qui utilise QWT) qui affiche en temps réel les valeurs numériques retournées par la RS232, si par exemple elle est connectée à une balance.
Merci
samoura969
Messages postés7Date d'inscriptionlundi 17 mai 2010StatutMembreDernière intervention15 juin 2010 19 juin 2010 à 17:57
je tiendrais compte de se que tus dis, j'ai fait pas mal de C pour mes etudes, mais encore peu de C++, j'ai des reflexes à prendre.
Il es tvrai que j'aurai pu faire ça avec les API, il faut encore que je me renseigne sur comment faire.
Ici le tout s'incorpore dans une interface graphique, c'est pourquoi j'ai pris QT, je ne connais pas trop les enum, si tu as un lien expliquant bien se que s'est je suis prenneur.
Merci de tes remarques, j'en tiendrais compte pour améliorer mon code.
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 18 juin 2010 à 17:38
Étant sous Linux, impossible de tester ton code, mais ce n'est pas ma question.
En fait, je m'interroge sur le choix des technos. QT a été pensé pour être multiplateforme, donc c'est un peu étrange de mettre quelque chose de très spécifique à Windows avec QT.
D'après ce que j'ai compris, tu utilises QT pour faire du threading. Si tu es sur de ne faire que du Windows, alors c'est très très lourd d'incorporer du QT juste pour ça. Autant directement utiliser les API Windows pour faire le threading.
Juste au niveau du code:
- En C++, on préfère très largement du std::string à du char* (et donc du const std::string& en argument)
- Si tu veux utiliser des types pour un choix, utilise un enum plutôt qu'une chaîne de caractères ! (Ex: Parite devrait être un enum)
- En C++, on préfère les std::stringstream au sprintf.
- Si du C est nécessaire, alors on inclue les headers avec un "c" devant. Ex: #include <stdio.h> => #include <cstdio>
- Si ton buffer est de taille fixe, inutile de faire un new. Ex: "inBuffer = new ..." devrait être "inBuffer[TAILLE];", ainsi que "Message"
samoura969
Messages postés7Date d'inscriptionlundi 17 mai 2010StatutMembreDernière intervention15 juin 2010 17 juin 2010 à 18:06
Je serai curieux d'avoir des feedbacks, ça marche pour ceux qui ont téléchargé?
Si ce n'est pas le cas, sites le moi.
samoura969
Messages postés7Date d'inscriptionlundi 17 mai 2010StatutMembreDernière intervention15 juin 2010 15 juin 2010 à 16:13
20 oct. 2011 à 00:31
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
22 juin 2010 à 15:29
21 juin 2010 à 09:50
http://www.pps.jussieu.fr/~rifflet/enseignements/LC4/cours2.html
http://c.developpez.com/cours/bernard-cassagne/node92.php
20 juin 2010 à 23:03
20 juin 2010 à 19:51
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.
20 juin 2010 à 19:11
Merci
19 juin 2010 à 17:57
Il es tvrai que j'aurai pu faire ça avec les API, il faut encore que je me renseigne sur comment faire.
Ici le tout s'incorpore dans une interface graphique, c'est pourquoi j'ai pris QT, je ne connais pas trop les enum, si tu as un lien expliquant bien se que s'est je suis prenneur.
Merci de tes remarques, j'en tiendrais compte pour améliorer mon code.
18 juin 2010 à 17:38
En fait, je m'interroge sur le choix des technos. QT a été pensé pour être multiplateforme, donc c'est un peu étrange de mettre quelque chose de très spécifique à Windows avec QT.
D'après ce que j'ai compris, tu utilises QT pour faire du threading. Si tu es sur de ne faire que du Windows, alors c'est très très lourd d'incorporer du QT juste pour ça. Autant directement utiliser les API Windows pour faire le threading.
Juste au niveau du code:
- En C++, on préfère très largement du std::string à du char* (et donc du const std::string& en argument)
- Si tu veux utiliser des types pour un choix, utilise un enum plutôt qu'une chaîne de caractères ! (Ex: Parite devrait être un enum)
- En C++, on préfère les std::stringstream au sprintf.
- Si du C est nécessaire, alors on inclue les headers avec un "c" devant. Ex: #include <stdio.h> => #include <cstdio>
- Si ton buffer est de taille fixe, inutile de faire un new. Ex: "inBuffer = new ..." devrait être "inBuffer[TAILLE];", ainsi que "Message"
17 juin 2010 à 18:06
Si ce n'est pas le cas, sites le moi.
15 juin 2010 à 16:13