Ver Mensaje Individual
  #1  
Antiguo 10-05-2024
javicho_villa javicho_villa is offline
Miembro
 
Registrado: feb 2005
Ubicación: Lima - Perú
Posts: 111
Reputación: 22
javicho_villa Va por buen camino
Smile Extraer peso de balanza por puerto com

Buenas tardes amigos:

Ante todo muchas gracias por leer este hilo y quisiera pedirles que me apoyen en resolver este problema que tengo y estoy dando vueltas en círculos y no logro entender muchas cosas. bueno les detallo:

Quiero extraer de una balanza por el puerto com el peso, actualmente tengo lectura de la balanza a través del Hyper Terminal, y lo lee sin problema alguno.

he probado 2 cosas, que puede encontrar en este foro:

(1) La Clase TRS232 que encontré en un hilo de este foro, lamentablemente no lo se usar y no se que parámetros tengo que poner

Código Delphi [-]
   TRS232 = class
     private
        sPuerto: string;
        hCommFile: THandle;
     public
        function LeerBuffer: string;
        procedure EscribirBuffer(lsMensaje: string);
        constructor Create(lsPuerto: string; liBanda: Cardinal; liByteSize, liParidad, liBitParada: Byte);
   end;

por ejemplo para usar esta clase pongo las siguientes lineas:

Código Delphi [-]
var MiBalanza:TRS232;
begin
  MiBalanza := TRS232.Create('COM4',9600,8,NOPARITY,1);
  self.lbDisplay.Caption := MiBalanza.LeerBuffer;

me sale un montón de errores, que he comentado en la implementación de la clase para que pueda correr pero al final cuando ya va a votar el resultado no lee esta linea:

Código Delphi [-]
function TRS232.LeerBuffer: string;
var
  sTmp: string;
  c1: integer;
  chBuffer: array[0..255] of char;
  NumberOfBytesRead: dword;
begin
  if hCommFile=INVALID_HANDLE_VALUE then
    Exit;
  if not ReadFile(hCommFile, chBuffer,
    sizeof(chBuffer), NumberOfBytesRead, nil) then
      raise Exception.Create('Imposible leer datos desde el puerto');
  for c1:= 0 to NumberOfBytesRead - 1 do
    sTmp:= sTmp+chBuffer[c1];
  result:=sTmp;
end;

sale del código y no da ningún resultado

(2) La opción que probé es el uso de un componente que descarge e instalé , por siacaso estoy usando XE8, este componente TComPort, que tiene todas las propiedades que tiene el HyperTerminal, las pongo pero no sale nada y tampoco puedo conectarme oca les paso el código:

Código Delphi [-]

  self.ComPort1.BaudRate    := br9600;
  self.ComPort1.StopBits    := sbOneStopBit;
  self.ComPort1.DataBits    := dbEight;
  self.ComPort1.Parity.Bits := prNone;

  self.ComPort1.Timeouts.ReadInterval         := 100;
  self.ComPort1.Timeouts.ReadTotalConstant    := 0;
  self.ComPort1.Timeouts.ReadTotalMultiplier  := 0;
  self.ComPort1.Timeouts.WriteTotalConstant   := 250;
  self.ComPort1.Timeouts.WriteTotalMultiplier := 1;

  //self.ComPort1.Open;    ESTAS LINEA DA ERROR
  //self.ComPort1.Connected := true;  ESTA LINEA DA ERROR

Quiero agradecerles de antemano su tiempo e interés, por ayudarme muchas gracias.

Atentamente,

Javier Villa - PERU
__________________
Javier Villa Sánchez
[email protected]
Responder Con Cita