Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-07-2005
tutuk tutuk is offline
Miembro
 
Registrado: May 2003
Posts: 42
Poder: 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 15:41:55. Razón: (Encerrar el código fuente en la etiqueta DELPHI)
Responder Con Cita
  #2  
Antiguo 15-07-2005
islu islu is offline
Miembro
 
Registrado: Jun 2003
Posts: 111
Poder: 16
islu Va por buen camino
Wink

Yo ahe utilizado estas librerias en varias ocasiones, y no se si tendrás el mismo problema que tuve yo en una ocasión, pero los sintomas son similares. En mi caso fue con una pístola de EAN, leyendo EAN128 ( bastante largos ), lo que hice fue, simplemente esperar el ASCII #13 ( o #10 ), es decir :

Código Delphi [-]
 {...}
 Completo : boolean; //->Completo es una variable global a la clase
 Status : string; //->Variable global también
 {...}
 
 procedure TFormEjemplo.PuertoTriggerAvail(CP: TObject; Count: Word);
 var
   i : integer;
   c : char;
 begin
   for i := 0 to Count - 1 do
   begin
     c := Puerto.GetChar;
     if( (c > #47) and (c < #91) ) then
       Status := Status + c;
 
     if( c = #13 ) then Completo := true;
   end;
 
   if( Completo ) then
   begin
     Completo := false;
     {...}
     {}
     {...}
     Status := '';
   end;
 end;
No se si tendrás algún carácter que te indique el fin, o que el SMS esta completo. Puedes provar con una cadena, o algo por el estilo.

Yo solo encontré esta solución, y ahora esta funcionando perfectamente casi 2 años....

Espero haberte ayudado....

Última edición por dec fecha: 05-09-2005 a las 15:39:39. Razón: (Encerrar el código fuente en la etiqueta DELPHI)
Responder Con Cita
  #3  
Antiguo 18-07-2005
tutuk tutuk is offline
Miembro
 
Registrado: May 2003
Posts: 42
Poder: 0
tutuk Va por buen camino
gracias intentare por ahi a ver que pasa
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 07:17:10.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi