Jump to content

Assista click.png tectoy.png

C6 chamada_c6.png botao.png

Verificar se a Porta Serial ESC POS está acessível


Go to solution Solved by Daniel Simoes,
  • Este tópico foi criado há 1142 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Boa tarde.

Gostaria de saber se é possível verificar antes do comando ativar se a porta serial onde a ESC POS estiver configurada, está acessível.

Estou tendo problemas com o erro : communication error 9997 timeout during operation

Em outro post descobri que é por que a porta serial não está acessível e o ACBrPosPrinter me retorna este erro, porém quero criar uma solução para verificar antes do envio para impressão se a porta está acessível, afim de instruir o usuário no procedimento para liberar a porta e armazenar a impressão para imprimir futuramente se der erro.

Existe alguma forma de verificar isso ?

tentei achar nos fontes, sem sucesso !!!

_____________________________________

Junior - Rhovanion Tecnologia

(11) 4224.6543

Link to comment
Share on other sites

  • Fundadores

O teste é esse mesmo...

Abrir a porta e verificar se não houve um exception...

Isso é feito no método AcharPortasSeriais de ACBrDevice 

  • Thanks 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

  • Membros Pro
21 minutos atrás, Daniel Simoes disse:

O teste é esse mesmo...

Abrir a porta e verificar se não houve um exception...

Isso é feito no método AcharPortasSeriais de ACBrDevice 

Ok mas como o componente dá um raised não tenho como dominar a mensagem, ela vai aparecer para o usuário, vou alterar direto no componente então, acheiq ue pudesse ter um método para verificar esta informação. 

Muito Obrigado !

_____________________________________

Junior - Rhovanion Tecnologia

(11) 4224.6543

Link to comment
Share on other sites

  • Fundadores
  • Solution

Basta usar um Try/Except...

Veja o exemplo no ACBrDevice

procedure TACBrDevice.AcharPortasSeriais(const AStringList : TStrings ;
   UltimaPorta : Integer) ;
var
   I     : Integer ;
   BS    : TBlockSerial ;
   UmaPorta : String ;
begin
   GravaLog('AcharPortasSeriais('+IntToStr(UltimaPorta)+')');
   AStringList.Clear;

   BS := TBlockSerial.Create;
   try
      For I := 1 to UltimaPorta do
      begin
        try
           UmaPorta := 'COM'+IntToStr(I) ;

           BS.Connect( UmaPorta );
           if BS.LastError <> 2 then
              AStringList.Add(UmaPorta) ;

           BS.CloseSocket;
        except
           // Except Mudo, impede que o Raise prossiga...      <---- AQUI
        end ;
      end ;
   finally
      BS.Free ;
   end ;
end ;  

 

  • Like 2
  • Thanks 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

  • Membros Pro
23 horas atrás, Daniel Simoes disse:

Basta usar um Try/Except...

Veja o exemplo no ACBrDevice

procedure TACBrDevice.AcharPortasSeriais(const AStringList : TStrings ;
   UltimaPorta : Integer) ;
var
   I     : Integer ;
   BS    : TBlockSerial ;
   UmaPorta : String ;
begin
   GravaLog('AcharPortasSeriais('+IntToStr(UltimaPorta)+')');
   AStringList.Clear;

   BS := TBlockSerial.Create;
   try
      For I := 1 to UltimaPorta do
      begin
        try
           UmaPorta := 'COM'+IntToStr(I) ;

           BS.Connect( UmaPorta );
           if BS.LastError <> 2 then
              AStringList.Add(UmaPorta) ;

           BS.CloseSocket;
        except
           // Except Mudo, impede que o Raise prossiga...      <---- AQUI
        end ;
      end ;
   finally
      BS.Free ;
   end ;
end ;  

 

Show. Funcionou perfeitamente... Muito Obrigado !!!!

  • Like 2

_____________________________________

Junior - Rhovanion Tecnologia

(11) 4224.6543

Link to comment
Share on other sites

  • Este tópico foi criado há 1142 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.