Ir para conteúdo
  • Cadastre-se

dev botao

ECF imprimindo 2 vezes linhas do relatório gerencial


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

Recommended Posts

Pessoal, boa tarde.

Tenho uma ECF Bematech MP 4000 TH FI.

Estou fazendo alguns testes para melhorar a impressão de alguns relatórios gerenciais, para enviar para a ECF várias linhas de uma vez. Atualmente envio uma de cada vez.

Só que minha ECF de desenvolvimento está imprimindo partes duplicadas. Veja no exemplo:

image.png.99167ca13ee07767d077c68108acad99.png

 

No log do ACBR Monitor Plugs, obtive estas linhas "estranhas" (note as linhas com XXX na frente):

-- 20/02 14:06:43:008 LinhaRelatorioGerencial( " BAIRRO - Timbo - SC                            [LF]================================================[LF]FORMAS DE PAGAMENTO[LF]------------------------------------------------[LF]Crediario                                 300,00[LF][LF]Numero          Valor                 Vencimento[LF]4.1             300,00                21/02/2019[LF]------------------------------------------------[LF]SUBTOTAL                                  300,00[LF]", 0 )
-- 20/02 14:06:43:008                 TX -> [STX][161][SOH][FS][20] BAIRRO - Timbo - SC                            [LF]================================================[LF]FORMAS DE PAGAMENTO[LF]------------------------------------------------[LF]Crediario                                 300,00[LF][LF]Numero          Valor                 Vencimento[LF]4.1             300,00                21/02/2019[LF]------------------------------------------------[LF]SUBTOTAL                                  300,00[LF][172]N
-- 20/02 14:06:43:407    14:06:43:407 RX <- ACK = 0 Falha: 0
-- 20/02 14:06:43:517                 TX -> [STX][161][SOH][FS][20] BAIRRO - Timbo - SC                            [LF]================================================[LF]FORMAS DE PAGAMENTO[LF]------------------------------------------------[LF]Crediario                                 300,00[LF][LF]Numero          Valor                 Vencimento[LF]4.1             300,00                21/02/2019[LF]------------------------------------------------[LF]SUBTOTAL                                  300,00[LF][172]N
-- 20/02 14:06:43:692    14:06:43:692 RX <- ACK = 6 Falha: 1
-- 20/02 14:06:43:810     RX <- [NUL][NUL][NUL][NUL]
XXX -- 20/02 14:06:43:810 LinhaRelatorioGerencial( "TROCO                                       0,00[LF]TOTAL GERAL                               300,00[LF][LF]     RECONHECO E PAGAREI A IMPORTANCIA ACIMA    [LF]     REFERENTE AO CUPOM FISCAL NUMERO: 7731     [LF][LF][LF][LF]         ______________________________         [LF]              ASSINATURA DO CLIENTE             [LF]", 0 )
XXX -- 20/02 14:06:43:811                 TX -> [STX].[SOH][FS][20]TROCO                                       0,00[LF]TOTAL GERAL                               300,00[LF][LF]     RECONHECO E PAGAREI A IMPORTANCIA ACIMA    [LF]     REFERENTE AO CUPOM FISCAL NUMERO: 7731     [LF][LF][LF][LF]         ______________________________         [LF]              ASSINATURA DO CLIENTE             [LF][232]<
XXX -- 20/02 14:06:44:161    14:06:44:161 RX <- ACK = 0 Falha: 0
XXX -- 20/02 14:06:44:263                 TX -> [STX].[SOH][FS][20]TROCO                                       0,00[LF]TOTAL GERAL                               300,00[LF][LF]     RECONHECO E PAGAREI A IMPORTANCIA ACIMA    [LF]     REFERENTE AO CUPOM FISCAL NUMERO: 7731     [LF][LF][LF][LF]         ______________________________         [LF]              ASSINATURA DO CLIENTE             [LF][232]<
XXX -- 20/02 14:06:44:393    14:06:44:393 RX <- ACK = 6 Falha: 1
XXX -- 20/02 14:06:44:419     RX <- [NUL][NUL][NUL][NUL]

* Em anexo o log completo

Estou achando que é um problema de hardware da ECF, mas queria confirmar com vocês. 

Obrigado.

 

ecf.log

Link para o comentário
Compartilhar em outros sites

Reformulando, estou utilizando o AcBR Monitor Plus para implementar a comunicação entre o meu programa JAVA com a ECF.

Ativei o log dos comandos da ecf dentro do AcBR Monitor Plus, e o resultado foi o abaixo. Note as linhas em verde e vermelho.

A linha amarela foi a que enviei para o AcBR Monitor Plus. As demais linhas foram o AcBR Monitor Plus que emitiram.

-- 20/02 14:06:43:810 LinhaRelatorioGerencial( "TROCO                                       0,00[LF]TOTAL GERAL                               300,00[LF][LF]     RECONHECO E PAGAREI A IMPORTANCIA ACIMA    [LF]     REFERENTE AO CUPOM FISCAL NUMERO: 7731     [LF][LF][LF][LF]         ______________________________         [LF]              ASSINATURA DO CLIENTE             [LF]", 0 )
-- 20/02 14:06:43:811                 TX -> [STX].[SOH][FS][20]TROCO                                       0,00[LF]TOTAL GERAL                               300,00[LF][LF]     RECONHECO E PAGAREI A IMPORTANCIA ACIMA    [LF]     REFERENTE AO CUPOM FISCAL NUMERO: 7731     [LF][LF][LF][LF]         ______________________________         [LF]              ASSINATURA DO CLIENTE             [LF][232]<
-- 20/02 14:06:44:161    14:06:44:161 RX <- ACK = 0 Falha: 0
-- 20/02 14:06:44:263                 TX -> [STX].[SOH][FS][20]TROCO                                       0,00[LF]TOTAL GERAL                               300,00[LF][LF]     RECONHECO E PAGAREI A IMPORTANCIA ACIMA    [LF]     REFERENTE AO CUPOM FISCAL NUMERO: 7731     [LF][LF][LF][LF]         ______________________________         [LF]              ASSINATURA DO CLIENTE             [LF][232]<
-- 20/02 14:06:44:393    14:06:44:393 RX <- ACK = 6 Falha: 1
-- 20/02 14:06:44:419     RX <- [NUL][NUL][NUL][NUL]

O que desconfio é que, a minha ECF está resultando em falhas de comunicação (recentemente ela travou e tivemos que enviar para a assistência, e desde lá ela começou a dar esses erros de comunicação).

O AcBR Monitor Plus envia o comando para a ECF. A ECF retorna erro de comunicação mas processa o comando (resultando na impressão das linhas enviadas). O AcBR Monitor Plus então recebe o erro da ECF e envia novamente o comando, o que resulta na duplicidade na impressão.

Acho que é isso, não?

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Realmente se o ECF não retorna o ACK, não há como saber se o comando foi corretamente interpretado...

Verifique se é possível diminuir a velocidade da porta Serial nesse ECF... isso poderia tornar a comunicação de dados um pouco mais segura

  • Curtir 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 para o comentário
Compartilhar em outros sites

  • Fundadores

Um possível POG, seria comentar as linhas no ACBrECFBematech.pas, que fazem a checagem do ACK...

  procedure AnalisaACK ;
  begin
     if fsACK = 0 then
        raise EACBrECFSemResposta.create( ACBrStr(
                 'Impressora '+fpModeloStr+' não responde (ACK = 0)'))
     else if fsACK = 21 then    { retorno em caracter 21d=15h=NAK }
        raise EACBrECFSemResposta.create( ACBrStr(
              'Impressora '+fpModeloStr+' não reconheceu o Comando'+
              sLineBreak+' (ACK = 21)'))
     else if not ACKValido(fsACK) then
        raise EACBrECFSemResposta.create( ACBrStr(
              'Erro. Resposta da Impressora '+fpModeloStr+' inválida'+
              sLineBreak+' (ACK = '+IntToStr(fsACK)+')')) ;
  end ;    

ECF está com os dias contados... em todo o Brasil...

  • Curtir 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 para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1861 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.

The popup will be closed in 10 segundos...