Bonjour
Je vous explique mon problème : je dois recevoir plusieurs trames différentes sur le même ComPort. Voici mon code :
J'appuie sur des boutons pour lire ce que je veux et j'ai donc mit des booléen afin de savoir quelle partie je dois traité selon ce que j'attends de recevoir.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer); begin if(lect = true) then begin while(ComPort1.InputCount>0) do begin ComPort1.ReadStr(rep,Count); //programme de traitement end; end; if(prog = true) then begin while(ComPort1.InputCount>0) do begin ComPort1.Read(rep,Count); //programme de traitement end; end; if(lect_err = true) then begin while(ComPort1.InputCount>0) do begin ComPort1.Read(rep,Count); //programme de traitement end; end; end;
Le problème est que ça ne marche que pour le premier. Pour les suivants, mon programme reste bloqué à la fin du while :il ne reboucle pas ou il ne sort pas de la boucle (j'ai également essayé de faire le traitement après la boucle while mais ça pose le même soucis).
Je n'arrive pas à comprendre pourquoi, si quelqu'un peut m'éclairer
Merci !
Partager