GESTION DU PORT SÉRIE AVEC SURVEILLANCE DES PAQUETS POUR QT

samoura969 Messages postés 7 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 15 juin 2010 - 15 juin 2010 à 16:13
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
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51915-gestion-du-port-serie-avec-surveillance-des-paquets-pour-qt

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 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
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.
fil1234 Messages postés 2 Date d'inscription samedi 13 mars 2010 Statut Membre Dernière intervention 20 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és 7 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 15 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és 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
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és 7 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 15 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és 7 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 15 juin 2010
15 juin 2010 à 16:13
Il est plus detaille dans le zip/
Rejoignez-nous