Ver Mensaje Individual
  #1  
Antiguo 02-10-2017
nicamarcos nicamarcos is offline
Registrado
NULL
 
Registrado: oct 2017
Posts: 3
Reputación: 0
nicamarcos Va por buen camino
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.
Responder Con Cita