Algumas perguntas:
Em ACBrECFNaoFiscal.pas... Por que precisamos proteger o método "Reset" em uma exceção muda ? Se ele falhar, o arquivo não será aberto, certo ? ou seja, o restante do código não funcionaria
A chamada aos eventos criados para a CAT52 deveria ser aplicada em ACBrECF.pas, e não em cada classe filha...
A propriedade Status não existiria em todos ECFs, na maioria o Status é enviado na composição do Frame do protocolo...
Se a ideia é agilizar o tempo TimeOut...porque não reduzir o mesmo ? Isso poderia ser feito dentro da classe da Bematech... tente mudar em:
try
{ espera ACK chegar na Porta por 4s }
try
fsACK := fpDevice.Serial.RecvByte( 4000 ) ;
except
end ; [/code]