Ver Mensaje Individual
  #1  
Antiguo 15-07-2005
tutuk tutuk is offline
Miembro
 
Registrado: may 2003
Posts: 42
Reputación: 0
tutuk Va por buen camino
componentes tpapro (celulares GSM)

hola como estan?

el problema es el siguiente :

utilizo los componentes tpapro para hacer una aplicacion que reciba mensajes SMS, los procese y los conteste al celular desde el que fue enviado.

ultilizo delphi 6 - winxp

cuando ejecuto el programa en mi pc todo marcha bien pero cuando instalo en otro pc al no .
explico mas o menos como funciona :

con un timer chequeo cada 3 segundos si hay un mensaje nuevo recibido en el telefono (lo tengo conectado al puerto usb), si llega uno lo desarmo al mensaje y asi obtengo el remitente y el cuerpo del mensaje

Código Delphi [-]
 procedure TForm1.comTriggerAvail(CP: TObject; Count: Word);
 var
   I : Word;
   C : Char;
   S : String;
   linea:tstringlist;
 begin
   S := '';
   for I := 1 to count do begin
     C := com.GetChar;  {C de carga con un caracter enviado por el puerto COM}
     S := S + C; {se almacenan en S solo los caracteres que deseo}
       {De esta manera me queda en S una cadena a mi gusto}
   end;
   linea:=tstringlist.Create;
   linea.CommaText :=s;
   if chescuchar.Checked =True then
   begin
     if linea[0]='+CMGL:' then
     begin
       {agrego el mensaje a los recibidos}
       table1.Append;
       table1.FieldByName('fecha').value:=date;
       table1.FieldByName('hora').value:=time;
       table1.FieldByName('nmens').value:=strtoint(linea[1]);
       table1.FieldByName('remitente').value:=linea[3];
       table1.FieldByName('mensaje').value:=linea[4];
       table1.Post;
       if table2.FindKey([strtoint(linea[4])]) then
       begin
         memo1.Lines.Add('Encontrado ... '+linea[4]+' = ' + table2.fieldbyname('datos').value);
         tel.SMSAddress:=linea[3];
         tel.SMSMessage:=linea[4]+'='+table2.fieldbyname('datos').value;
         tel.SendMessage;
       end
       else
       begin
         memo1.Lines.Add(linea[4]+'=No Encotrado');
         tel.SMSAddress:=linea[3];
         tel.SMSMessage:=linea[4]+'=No Encotrado';
         tel.SendMessage;
       end;
     end;
   end;
 end;
pero en otro pc parece ser que cuando chequeo el mensaje la respuesta del puerto no es "rapida" o algo asi porque me toma una x cantidad de caracteres y no todo completo. en mi pc anda todo bien.

hay alguna forma de hacer esperar a recibir la cadena completa.

espero haberme hecho entender

gracias por su tiempo

Última edición por dec fecha: 05-09-2005 a las 16:41:55. Razón: (Encerrar el código fuente en la etiqueta DELPHI)
Responder Con Cita