Ver Mensaje Individual
  #11  
Antiguo 24-05-2005
Avatar de Jure
Jure Jure is offline
Miembro
 
Registrado: may 2003
Ubicación: Valencia, Vzla.
Posts: 528
Reputación: 21
Jure Va por buen camino
Thumbs up ...a ver esto...

Hola G.A.R.S, veo el codigo VB que nos muestras, primero me parece un poco confuso, voy a darte un fracmento de codigo que utilizo recuperar datos de un caja registradora por el puerto serial:

Código Delphi [-]
    ....
if XComm1.OpenDevice then;  // Abres el puerto
begin    
    if XComm1.SendString(Comando) then // Envio la cadena comando
    begin
      Cadena := '';
      I := 0;
      while (I < 5) do // hago el ciclo para contar 4 despues de ETX
      begin
        XComm1.ReadByte(Caracter) then
        begin
          if (Caracter = 18) then // Este valor me indica que tengo que esperar
          begin                         
            Sleep(400); // Detengo la ejecución del programa por 400 msg
            Application.ProcessMessages;
          end else
          begin
              Cadena := Cadena + Char(Caracter); // hago la cadena 
              
              // ETX es una constante     

              If Caracter = ETX then I := 1; // despues de este caracter 
              if I > 0 then I := I + 1;          // empiezo el contador
          end;
        end;
      end;
    end else
    begin
      Codigo := 66;
      Cadena := 'Error de Comunicación 66';
    end;
    XComm1.CloseDevice;
    .....

Despues valido la cadena que recibo. Porque lo efectué de esta manera, porque no nunca se el tamaño exacto, solo se que la cadena que recibo despues del valor ETX tiene 4 caracteres que representan un valor hex del tamaño en caracteres de la cadena, con el cual verifico si esta bien. El codigo original es mucho mas largo porque recibo varias respuestas de acuerdo a los comandos que le mando, y tengo que hacer una serie de validaciones que no vienen al caso. Otra cosa a mi el equico me envia un byte valor 18 que significa que debo esperar por 400 msegs por el resto de la info. Creo que deberias leer bien el manual del protocolo de comunicacion de la balanza y adaptarlo a lo que necesitas.

Espero que te sirva.



Jure.
__________________

"Dios juzga al árbol por sus frutos, y no por sus raíces"


Como esta la sibidigua ???
Responder Con Cita