Bonjour à tous,
je suis en train de m'amuser avec le QSerialPort, et je remarque certaines choses que je ne comprends pas.
Le contexte, je reçois des données sur ma ligne série, que j'enregistre dans un fichier.
J'utilise la fonction "read", et la première question qui vient est, pourquoi devoir rentrer le nombre d'octets lus:
serial.read(dataSerial, 10);
Que se passe-t-il si le nombre d'octet envoyé est inférieur ou supérieur à 10 pour notre exemple ?
Il y a-t-il un timeout, en gros comment ça marche ?
Autre point, je suis dans un boucle infinie ou les données lues sont directement enregistrées dans un fichier, et je me suis aperçu de la chose suivante:
Si je mets serial.read(dataSerial, 1000); j'ai presque toutes les données d'enregistrées (mais pas tout, manque les dernières données envoyées)
Si je mets serial.read(dataSerial, 50); je n'ai environ que la moitié des données envoyées (il manque la moitié des données finales).
Pourquoi ? parce que même si les données ne sont plus envoyées sur la ligne série, le programme tourne toujours et devrait enregistrer les dernières.
Ou ma méthode n'est pas bonne et il faut que je fasse différemment.
Merci de m'avoir lu
Partager