Faire attendre un temps sans Sleep()
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:
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:
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