TMS Async32 (Builder c++ o Delphi)
Buenas noches, es un placer formar parte de esta comunidad.
Mi primer post es una duda que tengo en el uso del componente Async32 de TMS.
Tengo el siguiente escenario:
Un interface RS232 conectado a mi puerto serie con las lineas Tx y Rx conectadas entre si los fines de enviar una trama al puerto e inmediatamente recibirla.
Mi proposito es enviar tramas largas de String en el puerto usando los metodos WriteText() y ReadText(). Estoy trabajando a una velocidad de 4800bps.
Realicé un programa muy basico y es el siguiente:
void __fastcall TForm2::Button1Click(TObject *Sender)
{
AnsiString Texto_rx;
Comm3->Open();
Memo1->Text= "Enviando una trama lo suficientemente larga al puerto serie";
Comm3->WriteText(Memo1->Text);
Sleep (100);
Texto_rx= Comm3->ReadText();
Memo2->Text= Texto_rx;
Comm3->Close();
}
Cuando hago click sobre Button 1, sobre Memo2 tengo sólo una parte del string enviado: "Enviando una trama lo suficientemente larga al"
Si aumento el tiempo de sleep a 200 mS obtengo la trama completa enviada ("Enviando una trama lo suficientemente larga al puerto serie").
Mi pregunta es la siguiente: Como podria detectar el fin de la trama a los fines de no usar un Sleep y obtener en el buffer de recepcion la trama completa enviada sin que sea truncada?, tal vez el disparo de algun evento?.
Desde ya agradezco infinitamente alguna idea o ayuda al respecto, incluso con Delphi.
|