Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-08-2011
trex2000 trex2000 is offline
Miembro
 
Registrado: may 2003
Posts: 240
Poder: 21
trex2000 Va por buen camino
Retraso al leer datos de una bascula

Saludos a todos.

Estoy haciendo una aplicacion que lee los datos de una bascula por medio del puerto serial, utilizo los componentes AsyncPro, en especifico ApdComport, AdTerminal y un Emulator de la misma suite, lo que pasa es que si me pone los datos en la terminal pero al querer pasarlo a un Label y de ahi a un StringGrid los manda con retreso osea siempre un moviemineto anterior y no el actual, ¿alguien me podria decir a que se debe esto y como corregirlo?

Espero haberme dado a entender.

De antemano muchas gracias
Responder Con Cita
  #2  
Antiguo 27-08-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
En principio haría falta que pongas el código que usas
Responder Con Cita
  #3  
Antiguo 28-08-2011
trex2000 trex2000 is offline
Miembro
 
Registrado: may 2003
Posts: 240
Poder: 21
trex2000 Va por buen camino
Gracias por la respuesta el codigo que utilizo en ese boton es el siguente:
Código Delphi [-]
procedure TFMov.CoolBtn_PesoClick(Sender: TObject);
Var
  I, G, L,iRenglonTerminal : Integer;
  sValRen, sCaracter, sPeso : String;
begin
  L:=1;
  If Not ApdComport1.Open Then
   ApdComport1.Open := True;
  AdTerminal1.Clear;
  AdTerminal1.ClearAll;
  ApdComport1.Output := 'P';
  I:=sGridMovtos.RowCount-1;
  iRenglonTerminal := 1;
  sValRen := AdTerminal1.Line[iRenglonTerminal];

  CoolLabel20.Caption := Trim(AdTerminal1.Line[0]);

    Application.ProcessMessages;

    If CoolLabel20.Caption <> '' Then
     Begin
      sGridMovtos.Cells[0,I]:=IntToStr(I);//Ticket
      sGridMovtos.Cells[1,I]:=txtbtn_CodProd.Text;//Codigo del producto
      sGridMovtos.Cells[2,I]:=coolLabel20.caption;//Peso Bruto
      sGridMovtos.Cells[3,I]:=IntToStr(0);//Tara
      sGridMovtos.Cells[4,I]:=coollabel20.caption;//Peso Neto
      sGridMovtos.Cells[5,I]:=IntToStr(txtLoteNumJul.AsInteger);//Lote
      sGridMovtos.Cells[6,I]:=IntToStr(txtTarima.AsInteger);//Tarima
      sGridMovtos.RowCount:=(sGridMovtos.RowCount+1);

     End
    Else
     ShowMessage('HAY UN ERRROR');

end;

Espero me puedan ayudar.

De antemano muchas gracias.
Responder Con Cita
  #4  
Antiguo 29-08-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
No he entendido bien tu pregunta, pero creo que lo que puede estar pasando es que no se espera suficiente tiempo para que el puerto COM responda.
Tu le envías un caracter 'P'. Luego tienes que darle unos momentos para que la báscula reciba la petición, genere la respuesta, te la envíe y luego tu la recibas.
En este caso, yo probaría poniendo una pausa entre el envio de 'P' y la recepción;
Código Delphi [-]
procedure TFMov.CoolBtn_PesoClick(Sender: TObject);
Var
  I, G, L,iRenglonTerminal : Integer;
  sValRen, sCaracter, sPeso : String;
  BucleEspera : Integer;
begin
...
  {Envia 'P' a la báscula}
  ApdComport1.Output := 'P';
  I:=sGridMovtos.RowCount-1;
  iRenglonTerminal := 1;
  sValRen := AdTerminal1.Line[iRenglonTerminal];

  {Se llama a ProcessMessages unas cuantas veces, emulando una espera}
  for BucleEspera := 1 to 10 do
      Application.ProcessMessages;

  {Ahora se supone que el mensaje ya ha llegado}
  CoolLabel20.Caption := Trim(AdTerminal1.Line[0]);

    Application.ProcessMessages;

    If CoolLabel20.Caption <> '' Then
...

Prueba con diferentes valores en el bucle de espera...
Responder Con Cita
  #5  
Antiguo 29-08-2011
trex2000 trex2000 is offline
Miembro
 
Registrado: may 2003
Posts: 240
Poder: 21
trex2000 Va por buen camino
Muchas gracias por la respuesta, voy a probarlo y cometo como me fue.
Responder Con Cita
Respuesta



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Puerto COM1 y bascula digital jjha79 Providers 13 05-05-2011 17:18:24
Cable sencillo para bascula trex2000 Varios 1 03-03-2009 10:06:53
ayuda para leer bascula por el puerto serial COM Rom@n Varios 2 19-12-2008 20:14:29
Bascula en punto de venta trex2000 Varios 2 18-11-2008 10:20:32
programar un punto de venta que use una bascula pollo_c Varios 10 06-08-2007 23:48:15


La franja horaria es GMT +2. Ahora son las 19:36:19.


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
Copyright 1996-2007 Club Delphi