Bonjour,
Je programme une application qui dialogue avec le port serie.
Mon probleme est que je dois récupéré une donnée par le port serie en reponse a celle que j'ai envoyé...
J'envoi une trame ":RDD00500" et la je dois attendre environ une seconde avant de pouvoir récupérer la donnée...
J'ai essayé de faire patienter avec Sleep() mais il me bloque l'application et par conséquent je n'arrive pas a récupéré la donnée
Mon code :
Derriere cela j'ai un timer qui interroge tout les 50ms le buffer pour récuper les données
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 void Test_EPROM(void) { Adresse=""; Application->ProcessMessages();// sencer ne pas bloquer l'application ComPort1->ClearBuffer(true, true); Sleep(100); ComPort1->WriteStr(":RDD00500"); Sleep(1000); if(Adresse=="3117") ListBox_Recap->Items->Add("EPROM OK"); else ListBox_Recap->Items->Add("EPROM KO"); }
Code de mon timer
Si quelqu'un peut m'aider a résoudre mon probleme...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 AnsiString Buffer; ComPort1->ReadStr(Buffer, ComPort1->InputCount()); if(Buffer!="") { Adresse=Buffer.SubString(4,4); Octet=Buffer.SubString(8,2); }
Merci d'avance
Ps: Je boss sous C++ Builder 6 Pro
Partager