Uso los componetes APRO 4.07, estoy haciendo una aplicación para recibir las llamadas de un conmutador, dicho conmutador tiene un cable serial que va conectado al cpu donde esta mi aplicación, les cuento en detalle que componentes uso para cachar las llamadas, tengo un TadTerminal para visualizar por pantalla los datos de la llamada recibida, en la propiedad ComPort del mismo TadTerminal tengo enlazado al componente TApdComPort, tambien en la propiedad Emulator tengo enlazado al componente AdVT100Emulator, tengo bien configurado las propiedades del TApdComPort, tambien tengo un TApdDataPacket donde lo enlazo al TApdComPort, al correr el programa se conecta al puerto COM1 y se pone en el estado de "escucha", al hacer una llamada la cacha y lo despliegar perfectamente bien en pantalla ( TadTerminal ), hasta aqui vamos bien, el problema radica cuando intento cachar la llamada para guardarla en una tabla de mi base de datos firebird, aqui lo hago en el evento OnTriggerAvail, el problema que tengo es que el conmutador no manda de un solo jalon los datos de la llamada, se recibe caracter por caracter, no encuentro la forma de ver cual es el caracter de comienzo y el caracter final, ya le puse una pausa dentro del evento Sleep(2); para que se detenga y tomar toda la cadena de un solo jalon:
//Recorremos contenido de llamada
for i := 1 to Count do
begin
c:= ApdComPort1.GetChar;
cadena := cadena + c;
end;
//Pausamos para tomar toda la línea
Sleep(2000);
A veces si me funciona, con la 1er llamada, pero al hacer la segunda no lo hace bien, es decir toma la llamada corta, es decir, el conmutador manda esta sintaxis, Extensión , num. telefono, duracion, fecha, hora
cuando digo que se recibe a veces mal es que nomas logro cachar de la extensión hasta la duracion, lo demas cae después del lapso de tiempo, el problema por lo regular se presenta apartir de la 2da llamada en adelante, la 1era siempre la cacho completa, las demas caen incompletas, siendo que en el TapdTerminal se mira bien todas las llamadas, alguien sabe como cachar la llamda en el TapdTerminal ????
Gracias....