Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3266 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Bom dia,

Tenho usado o ACBr para ECF por muitos anos sem problemas.

Recentemente eu coloquei ele numa aplicacao, um rest server, onde eu crio uma thread para cada requisicao.

Tomei todos os cuidados para isolar a thread de qualquer outra, incluindo a main thread.

Compilei o ACBr ECF com a opcao NOGUI pois nao pode haver qualquer interacao com o usuario.

Tenho duas intalacoes onde uso a Bematech 4200THFI e funcionam muito bem. 

Porem em um caso estou usando a Bematech 2100THFi e acontece algumas coisas estranhas. O mesmo software com as mesmas regras.

Ele comeca a imprimir e para em um certo item, dali para frente comeca a dar uma exception I/O 105 e nao consegue mais se comunicar com a impressora.

Eu nao sei ao certo como abordar este problema, gostaria de alguma orientacao, visto que nas outras funcionam perfeitamente.

Um abraco.

 

Eduardo

  • Fundadores
Postado

parece ser problema na Porta Serial... é USB, COM fisica ?

Veja esse link: http://www.delphigroups.info/2/41/136093.html

Citar

I/O Error 105 is defined as "File not open for output."  The help file states

 

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.

Postado

Obrigado pela resposta,

Estou usando uma porta seria fisica, aquelas placas PCI adicionais. Na verdade é realmente uma placa nova e nao sei de antemao se ela realmente esta funcionando bem ou nao.

Parece que pequenos cupons, com 2 ou 3 itens ele imprime. Mas quando sao varios ele trava e nao vai mais dando este erro de I/O 5

Eduardo

Postado

Acabei descobrindo que NAO é porta serial. Talvez eu esteja fazendo errado.

Estou definindo forçado a IFDEF NOGUI, para que nao nenhum dialogo apareca, nao posso permitir pois a impressora esta sendo executada por um servidor rest que nao tem interacao com o usuario.

E verifiquei que a impressora esta gerando uma informacao de POUCO PAPEL, e quando acontece isto o ACBrECF tenta usar um writeln pensando que é console e isto causa o 105. O codigo eh o seguinte:

procedure TACBrECFClass.DoOnMsgPoucoPapel( Mensagem : String ) ;
begin
  if MsgPoucoPapel < 0 then exit;

  if now > IncSecond(fpUltimaMsgPoucoPapel, MsgPoucoPapel) then { Avisa ? }
  begin
     if Assigned( fsOnMsgPoucoPapel ) then
        fsOnMsgPoucoPapel( self )
     else
      begin
        if Mensagem = '' then
           Mensagem := cACBrECFDoOnMsgPoucoPapel;

        Mensagem := ACBrStr( Mensagem ) ;
        {$IFNDEF NOGUI}
          {$IFDEF FMX}
          MessageDlg(Mensagem, TMsgDlgType.mtError, [TMsgDlgBtn.mbOK],0);
          {$ELSE}
          MessageDlg( Mensagem ,mtError,[mbOk],0)  ;
          {$ENDIF}
        {$ELSE}
          writeln( Mensagem ) ;
        {$ENDIF}
      end ;

     fpUltimaMsgPoucoPapel := now ;
  end ;
end;

Aquele writeln( Mensagem ) deveria testar pelo IFDEF CONSOLE tambem, pois minha aplicacao nao usa GUI porem nao é console !

Gostaria de uma orienta de como evitar este problema, pois preciso que nenhuma mensagem apareca, e que tambem o ACBrECF nao queira usar nenhum writeln em geral.

Um abraco !

 

Eduardo

  • 4 semanas depois ...
  • Consultores
Postado
Em 29/11/2015 at 07:01, eelias disse:

Aquele writeln( Mensagem ) deveria testar pelo IFDEF CONSOLE tambem, pois minha aplicacao nao usa GUI porem nao é console !

Gostaria de uma orienta de como evitar este problema, pois preciso que nenhuma mensagem apareca, e que tambem o ACBrECF nao queira usar nenhum writeln em geral.

Um abraco !

 

Eduardo

Além da sugestão do Daniel, se achar isso em outros lugares e quiser propor uma alteração no ACBr, faça um update de todas as units, altere e depois anexe todos os arquivos alterados.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Este tópico foi criado há 3266 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.