Ao usar a balança modelo Genérica, a função FACBrBAL.LePeso() sempre retorna -1, pois está faltando o Result na condicional (fpModeloStr = 'Generica').
Código atual:
unit ACBrBALClass;
function TACBrBALClass.LePeso(MillisecTimeOut: Integer): Double;
begin
Result := -1;
if (fpModeloStr = 'Generica') then
begin
AguardarRespostaPeso(MillisecTimeOut, True);
Exit;
end;
SolicitarPeso;
Sleep(200);
LeSerial(MillisecTimeOut);
Result := fpUltimoPesoLido;
end;
Deveria ser:
function TACBrBALClass.LePeso(MillisecTimeOut: Integer): Double;
begin
Result := -1;
if (fpModeloStr = 'Generica') then
begin
Result := AguardarRespostaPeso(MillisecTimeOut, True);
Exit;
end;
SolicitarPeso;
Sleep(200);
LeSerial(MillisecTimeOut);
Result := fpUltimoPesoLido;
end;
Diante desse bug, a única maneira de ler o peso para balança Genérica, é através do evento OnLePeso();