Bonjour,

Alors avant tout : OUI, j'ai fait les recherches sur le forum et NON, j'ai pas la réponse qui colle.

Donc voilà, il est conseillé de faire une lecture asynchrone, en particulier sous Windows :
http://www.developpez.net/forums/d58...otocole-rs232/

Seulement, je dois contrôler mon temps d'exécution et en fait, si je reçois 5 infos dans mon port, seule la dernière m'est utile. Le port série est pas le pied pour ça mais je fais avec.
Il y a un topic qui en parle
http://www.developpez.net/forums/d57...rie-synchrone/
...mais c'est...un peu trop matériel.

Pour le moment, j'ai un programme de lecture/écriture du port série qui fonctionne sous Linux avec les outils Qt (QTimer, QextSerialPort)...comme décrit au dessus. Donc toutes les X millisecondes (enfin avec un seuil minimum quand même), je lis et écris dans mes ports.
Sous windows, j'ai le fameux problème du port bloquant...1minute au moins pour avoir le buffer plein.

Pour être précis, voilà la syntaxe du code :

Toutes les Xms
N=combien de bytes sont dispo sur le port
lire(Nbytes)
fin

...donc a priori, on ne bloque pas, on demande ce qu'on a...mais non, windows doit avoir un sur-contrôle. Car au moment de l'appel de la fonction de lecture QextSerialPort (QByteArray read(int size))...ça attend la minute.

Par contre, il est possible d'enchainer pleins de lecture sans attendre la minute après...on a le droit de vider le tampon donc

Si je dois attendre la minute, je perds le "temps-réel", si je passe aux threads, je suis pas couché et je maitrise plus mes débits.
Est-ce possible?

Merci d'avance.