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 :
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");
 
 
                }
Derriere cela j'ai un timer qui interroge tout les 50ms le buffer pour récuper les données

Code de mon timer
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);
                }
Si quelqu'un peut m'aider a résoudre mon probleme...
Merci d'avance

Ps: Je boss sous C++ Builder 6 Pro