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. |
bump, nadie? :(
|
Bienvenido a clubdelphi, como siempre aconsejamos a los nuevos, no olvides leer nuestra guía de estilo, gracias por tu colaboración :)
Y recuerda poner los tags al código fuente, ejemplo: Gracias :) |
Gracias Casimiro, así lo haré. Pero no encuentro el boton "Editar" para modificar mi mensaje.:confused:
|
Solo tenlo en cuenta para otras consultas que hagas.
Y ¡Bienvenido! ^\||/ |
La franja horaria es GMT +2. Ahora son las 00:15:42. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi