Bonjour à tous !
Je débute en programmation et j'aimerai faire un code propre et fiable.


J'utilise l'objet "serialport" dans ma fonction, elle ne fonctionne mais pas tout le temps


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub bActualiser_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bActualiser.Click
 
        SerialPort1.Write("u")    'envoie d'une requete sur le port
        While SerialPort1.BytesToRead < 0  'attente de byte dans le buffer
        bActualiser.Text = "attente..."
        End While
 
 
       tTrame.Text = SerialPort1.ReadLine()
 
 
        bActualiser.Text = "Actualiser"
 
    End Sub

Je crois avoir identifier le problème, ma boucle while "bloque" la procédure jusqu'a ce qu'il y ai au moins 1 byte dans le buffer mais déclanche parfois la lecture de la ligne avant que celle ci n'ai été transmise ... d'ou un plantage sur SerialPort1.ReadLine

J'aimerai donc trouver un "déclencheur" autre que SerialPort1.BytesToRead < 0, genre serialport1."linetoread" < 0
J'ajoute que le nombre de byte reçu est variable.
J'espere avoir été suffisament clair.
Merci d'avance.