Ir para conteúdo
  • Cadastre-se

dev botao

Timeout Na Bematech Mp4000 Th Fi Com Porta Serial Virtual Usb


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

Recommended Posts

Bom dia.

 

Testei em alguns clientes a comunicação usando o driver virtual serial da bematech. Com a MP 2100 não tivemos reclamação, porém a MP 4000 tem apresentado alguns problemas principalmente na hora de imprimir um vinculado. Olhando nos logs temos alguns erros sempre após algumas operações como FecharCupom, LeituraX, Relatório Gerencial:

 

-- 12:24:39:279 FechaRelatorio
                TX -> [sTX][4][NUL][FS][NAK]1[NUL]
   12:24:39:404 VerificaFimImpressao: Pedindo o Status (19)
   12:24:39:841 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   12:24:40:044 VerificaFimImpressao: Pedindo o Status (19)
   12:24:40:201 VerificaFimImpressao: ACK = 6, OK... Aguardando ST1 e ST2
   12:24:40:576 VerificaFimImpressao: ACK = 6 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   12:24:40:779 VerificaFimImpressao: Pedindo o Status (19)
   12:24:41:216 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   12:24:41:419 VerificaFimImpressao: Pedindo o Status (19)
   12:24:41:544 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: EACBrECFErro ACK <> 6
   12:24:41:747 VerificaFimImpressao: Pedindo o Status (19)
   12:24:41:935 VerificaFimImpressao: ACK = 6, OK... Aguardando ST1 e ST2
   12:24:42:044 RX <- [NUL][NUL][NUL][NUL]
 
 
-- 12:30:43:326 FechaCupom( Val Aprox/Tributos R$28,61 (28,61%) Fonte:IBPT[LF]TQ3 BO3 BI5 EI 397109,323 EF 397142,690[LF][LF][LF][LF] )
                TX -> [sTX]^[NUL][FS]"Val Aprox/Tributos R$28,61 (28,61%) Fonte:IBPT[LF]TQ3 BO3 BI5 EI 397109,323 EF 397142,690[LF][LF][LF][LF].[22]
   12:30:43:513 VerificaFimImpressao: Pedindo o Status (19)
   12:30:43:826 VerificaFimImpressao: ACK = 6, OK... Aguardando ST1 e ST2
   12:30:44:201 VerificaFimImpressao: ACK = 6 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   12:30:44:404 VerificaFimImpressao: Pedindo o Status (19)
   12:30:44:841 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   12:30:45:044 VerificaFimImpressao: Pedindo o Status (19)
   12:30:45:263 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: EACBrECFErro ACK <> 6
   12:30:45:466 VerificaFimImpressao: Pedindo o Status (19)
   12:30:45:654 VerificaFimImpressao: ACK = 6, OK... Aguardando ST1 e ST2
   12:30:45:763 RX <- [NUL][NUL][NUL][NUL]
 
Alterei o Timeout do componente para 20s conforme recomendado em outro post (Originalmente estava 10s)
 
Testes efetuados com a porta serial em 9600 e 115200 bps.
 
Na MP2100 não ocorrem esses erros no log.
 
Alguem já passou por isso, ou tem alguma idéia do motivo dos erros?
 

 

Link para o comentário
Compartilhar em outros sites

Daniel, já havia testado algumas coisas desse post, como diminuir o buffer da serial, porém o problema persiste.

 

Lembrando que estou usando o driver da Bematech que cria uma serial virtual. Tenho 2 clientes MP-4000 com esses erros no log (Windows XP e Windows 7). E outros clientes com MP-2100 funcionando normalmente.

 

Eu acredito que seja algo com o driver deles e a MP-4000, ou senão algo no ACBr que não consegui detectar.

 

O que me chamou atenção é intervalo entre a resposta de ACK = 6 o erro:

 

12:30:43:826 VerificaFimImpressao: ACK = 6, OK... Aguardando ST1 e ST2
12:30:44:201 VerificaFimImpressao: ACK = 6 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
 
Cerca de 0,4 segundos.
 
Olhando nos fontes da classe da bematech, me parece que ela retorna ACK = 6, e acontece o timeout provavelmente na linha que define o RetCmd:
 
 
        if wACK = 6 then   // ECF Respondeu corretamente, portanto está trabalhando //
         begin
           GravaLog('   '+FormatDateTime('hh:nn:ss:zzz',now)+' VerificaFimImpressao: ACK = 6, OK... Aguardando ST1 e ST2' ) ;
           TempoLimite := IncSecond(now, TimeOut);
           fsFalhasFimImpressao := 0 ;
 
           // Aguarda ST1 e ST2 por mais 2 segundos //
           RetCmd := fpDevice.LeString( 2000, 2 ) ;
           Result := (Length( RetCmd ) >= 2) ;
         end
        else
           raise EACBrECFErro.Create( 'ACK <> 6' );
     except
       On E: Exception do
       begin
 

Porém esse timeout esta fixado em 2 segundos, e o erro acontece apos 0,4 segundos.

 

Minha teoria esta correta?

Link para o comentário
Compartilhar em outros sites

Inclui alguns logs no VerificaFimImpressao, e me parece que não está sendo respeitado os timeouts (ou está retornando algum lixo para o synaser e o mesmo dispara timeout) nas seguintes linhas:

 

        wACK := fpDevice.LeByte( 1500 ) ;
 
e
 
           RetCmd := fpDevice.LeString( 2000, 2 ) ;
 
Coloquei por ex um log antes e depois dessas linhas:
 
   10:44:11:014 VerificaFimImpressao: Pedindo o Status (19)
   10:44:11:014 VerificaFimImpressao: Limpou a serial
   10:44:11:077 VerificaFimImpressao: Enviou o comando 19 para a ECF
   10:44:11:077 VerificaFimImpressao: Vai ser o Byte com timeout de 1500
   10:44:11:452 VerificaFimImpressao: Erro = Communication error 9997: Timeout during operation
   10:44:11:452 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
 

Com os mesmos 0,4 segundos retornou erro de timeout no LeByte que foi chamado com timeout de 1500.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Você consegue verificar se a porta está marcada como serial no código?

Veja que no código do TACBrDevice.LeByte, ele acessa a propriedade IsSerialPort. Em caso negativo, pode ser algum problema no código da HookLeString.

 

Mas se essa propriedade IsSerialPort for verdadeira, ele chama o RecvByte. Essa parte do código daí pra frente já é de responsabilidade do projeto Synapse.

De qualquer forma, eu fui tentar dar uma olhada e o callstack após o LeByte que considera o TimeOut é mais ou menos esse:

function TACBrDevice.LeByte(ATimeOut: Integer): Byte;
function TBlockSerial.RecvByte(timeout: integer): byte;
function TBlockSerial.RecvPacket(Timeout: Integer): AnsiString; //É aqui que é chamado a Exception ESynaSerError Communication error 9997
function TBlockSerial.CanRead(Timeout: integer): boolean; // Quando essa função não retorna, gera o erro 9997
function TBlockSerial.CanEvent(Event: dword; Timeout: integer): boolean; //Usa o TimeOut para chamar a função abaixo:
WaitForSingleObject(Overlapped.hEvent, Timeout); //API do Windows;

Bom, exceto se eu tiver despercebido algo, no final das contas, a responsabilidade para verificar se o timeout foi alcançado é do WaitForSingleObject que é uma API do Windows em geral muito confiável. Seria bom verificar se essa parte do código está sendo chamada e o TimeOut está correto nela.

 

É importante lembrar que se estiver debugando, o tempo que Delphi para pra que você possa responder a esse tipo de exception é contado no TimeOut. Logo, se estiver debugando e essa exception for levantada e você não a responder rapidamente, isso vai gerar erro como se o ECF não tivesse respondido.

[]'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.
Link para o comentário
Compartilhar em outros sites

Testei aqui e esta retornando IsSerialPort mesmo.

 

Usamos a synapse aqui para comunicação serial direta com vários dispositivos e nunca me deparei com essa situação de retornar timeout antes do periodo especificado. Inclusive voltei uma versão antiga da synapse (38) para teste e ocorre a mesma coisa.

 

Seria interessante se alguem tiver contato com a Bematech, para testar essa situação no driver deles com a MP-4000, pois a MP-2100 me parece estar ok.

 

Se tirar uma simples LeituraX na 4000 ja loga esses erros.

 

Única coisa diferente aqui, é que setamos o ProcessMessages do device com False para evitar problemas com aguardando comando anterior na ECF.

Editado por EddieBR
Link para o comentário
Compartilhar em outros sites

  • Consultores

Única coisa diferente aqui, é que setamos o ProcessMessages do device com False para evitar problemas com aguardando comando anterior na ECF.

Isso não deveria fazer diferença. Pelo contrário, evitar o uso do ProcessMessages pode até corrigir alguns problemas relacionados com comandos paralelos mesmo.

 

Você consegue fazer um teste usando o demo em Delphi disponibilizado pela Bematech?

[]'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.
Link para o comentário
Compartilhar em outros sites

Usei como base para teste, os erros que logam ao emitir uma simples LeituraX.

 

Pelo ECFTeste, sem alterar nada nele, logou os mesmos erros:

 

-- 08:50:08:910 LeituraX
                TX -> [sTX][4][NUL][FS][ACK]"[NUL]
   08:50:09:035 RX <- ACK = 6 Falha: 0
   08:50:09:044 VerificaFimImpressao: Pedindo o Status (19)
   08:50:09:377 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   08:50:09:579 VerificaFimImpressao: Pedindo o Status (19)
   08:50:09:702 VerificaFimImpressao: ACK = 6, OK... Aguardando ST1 e ST2
   08:50:09:985 VerificaFimImpressao: ACK = 6 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   08:50:10:187 VerificaFimImpressao: Pedindo o Status (19)
   08:50:10:521 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   08:50:10:722 VerificaFimImpressao: Pedindo o Status (19)
   08:50:11:075 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   08:50:11:277 VerificaFimImpressao: Pedindo o Status (19)
   08:50:11:628 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   08:50:11:830 VerificaFimImpressao: Pedindo o Status (19)
   08:50:11:953 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: EACBrECFErro ACK <> 6
   08:50:12:161 VerificaFimImpressao: Pedindo o Status (19)
   08:50:12:283 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: EACBrECFErro ACK <> 6
 
Consegui também reproduzir um relatório gerencial que apresenta erro durante a impressão.
 
Porém com o aplicativo da bematech, que usa a DLL:
- A Leitura X é emitida normalmente assim como no ECFTeste, porém não mostrou nenhum erro de ST1/ST2 e aparentemente o aplicativo não tem um arquivo de Log.
- O relatório não consegui emitir por ele, acredito que tenha um limite na quantidade de linhas dentro dele. Retorna "Parametro Inválido" ao tentar enviar o mesmo texto.
 
Testei esse mesmo relatório imprimindo com o MaxLinhasBuffer=1 e o mesmo foi impresso sem erros. A Leitura X continua logando erros com o MaxLinhasBuffer.
Link para o comentário
Compartilhar em outros sites

  • Moderadores

A propriedade MaxLinhasBuffer afeta somente impressão de relatórios gerenciais, portanto, para leitura X não surtirá efeito.

 

Primeiro verifique se o driver está instalado corretamente:

- Vá no gerenciador de dispositivos;

- Clique com botão direito na porta virtual bematech, clique em propriedades;

- Em "target port settings", deve estar marcado USB e "model" deve estar "FISCAL".

 

Se tudo estiver correto, tente configurar o buffer da porta serial para o minimo possível:

- Vá no gerenciador de dispositivos;

- Clique com botão direito na porta virtual bematech, clique em propriedades;

- Vá até a aba "configurações de porta, clique no botão "avançado";

- Configure o buffer de recepção e transmissão para o mínimo possível, salve tudo;

- Reinicie o computador.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

O Driver está instalado corretamente.

 

Já havia alterado a configuração do buffer na porta no cliente, porém não havia feito aqui.

 

Segue os mesmos problemas mesmo após alterar o buffer e reiniciar o PC.

 

Exemplo de erro agora ao imprimir um relatório gerencial com o MaxLinhasBuffer = 0:

 

-- 14:12:01:496 
                TX -> [sTX]Q[sTX][FS][20]CIG HOLLYWOOD ORIGINAL BOX KS    1,00       6,00[LF]CIG MARLBORO GOLD BOX            2,00      13,50[LF]CIG MARLBORO GOLD MA[128]O           1,00       6,50[LF]CIG MARLBORO VERMELHO BOX        1,00       6,75[LF]CIG MINISTER SPECIAL KS          1,00       4,00[LF]PAPEL DE SEDA SMOKING KING SIZE  1,00       5,00[LF]------------------------------------------------[LF]                                        R$ 10,00[LF][LF]Departamento:                        ENERGETICOS[LF]------------------------------------------------[LF]Produto                         Quant Total (R$)[LF]------------------------------------------------[LF])t
   14:12:01:840 RX <- ACK = 0 Falha: 0
                TX -> [sTX]Q[sTX][FS][20]CIG HOLLYWOOD ORIGINAL BOX KS    1,00       6,00[LF]CIG MARLBORO GOLD BOX            2,00      13,50[LF]CIG MARLBORO GOLD MA[128]O           1,00       6,50[LF]CIG MARLBORO VERMELHO BOX        1,00       6,75[LF]CIG MINISTER SPECIAL KS          1,00       4,00[LF]PAPEL DE SEDA SMOKING KING SIZE  1,00       5,00[LF]------------------------------------------------[LF]                                        R$ 10,00[LF][LF]Departamento:                        ENERGETICOS[LF]------------------------------------------------[LF]Produto                         Quant Total (R$)[LF]------------------------------------------------[LF])t
   14:12:02:301 RX <- ACK = 0 Falha: 1
                TX -> [sTX]Q[sTX][FS][20]CIG HOLLYWOOD ORIGINAL BOX KS    1,00       6,00[LF]CIG MARLBORO GOLD BOX            2,00      13,50[LF]CIG MARLBORO GOLD MA[128]O           1,00       6,50[LF]CIG MARLBORO VERMELHO BOX        1,00       6,75[LF]CIG MINISTER SPECIAL KS          1,00       4,00[LF]PAPEL DE SEDA SMOKING KING SIZE  1,00       5,00[LF]------------------------------------------------[LF]                                        R$ 10,00[LF][LF]Departamento:                        ENERGETICOS[LF]------------------------------------------------[LF]Produto                         Quant Total (R$)[LF]------------------------------------------------[LF])t
   14:12:02:532 RX <- ACK = 6 Falha: 2
   14:12:02:633 RX <- [NUL][NUL][NUL][NUL]
-- 14:12:02:634 
                TX -> [sTX]R[sTX][FS][20]ENERGETICO TNT LATA 269ML        1,00       7,90[LF]------------------------------------------------[LF]                                         R$ 1,00[LF][LF]Departamento:                          MERCEARIA[LF]------------------------------------------------[LF]Produto                         Quant Total (R$)[LF]------------------------------------------------[LF]ACHOC TODDYNHO 200 ML            3,00       7,50[LF]BOLO ARLETE                      1,00       5,90[LF]COOKIES INTEGRAIS 40G CACAU AVEL 1,00       2,90[LF]------------------------------------------------[LF]                                         R$ 5,00[LF][LF][190]k
   14:12:02:977 RX <- ACK = 0 Falha: 0
                TX -> [sTX]R[sTX][FS][20]ENERGETICO TNT LATA 269ML        1,00       7,90[LF]------------------------------------------------[LF]                                         R$ 1,00[LF][LF]Departamento:                          MERCEARIA[LF]------------------------------------------------[LF]Produto                         Quant Total (R$)[LF]------------------------------------------------[LF]ACHOC TODDYNHO 200 ML            3,00       7,50[LF]BOLO ARLETE                      1,00       5,90[LF]COOKIES INTEGRAIS 40G CACAU AVEL 1,00       2,90[LF]------------------------------------------------[LF]                                         R$ 5,00[LF][LF][190]k
   14:12:03:439 RX <- ACK = 6 Falha: 1
   14:12:03:630 RX <- [NUL][NUL][NUL][NUL]
-- 14:12:03:631 
                TX -> [sTX]Q[sTX][FS][20]Departamento:                      REFRIGERANTES[LF]------------------------------------------------[LF]Produto                         Quant Total (R$)[LF]------------------------------------------------[LF]REFRIG COCA COLA 2L              1,00       6,90[LF]------------------------------------------------[LF]                                         R$ 1,00[LF][LF]Departamento:                           SALGADOS[LF]------------------------------------------------[LF]Produto                         Quant Total (R$)[LF]------------------------------------------------[LF]PAO DE QUEIJO REDONDO/ PALITO    1,00       2,00[LF][160]q
   14:12:03:974 RX <- ACK = 0 Falha: 0
                TX -> [sTX]Q[sTX][FS][20]Departamento:                      REFRIGERANTES[LF]------------------------------------------------[LF]Produto                         Quant Total (R$)[LF]------------------------------------------------[LF]REFRIG COCA COLA 2L              1,00       6,90[LF]------------------------------------------------[LF]                                         R$ 1,00[LF][LF]Departamento:                           SALGADOS[LF]------------------------------------------------[LF]Produto                         Quant Total (R$)[LF]------------------------------------------------[LF]PAO DE QUEIJO REDONDO/ PALITO    1,00       2,00[LF][160]q
   14:12:04:478 RX <- ACK = 6 Falha: 1
   14:12:04:579 RX <- [NUL][NUL][NUL][NUL]
-- 14:12:04:580 
                TX -> [sTX]R[sTX][FS][20]------------------------------------------------[LF]                                         R$ 1,00[LF][LF]------------------- Sangrias -------------------[LF]Usuario           Data/Hora           Valor (R$)[LF]LUCIA             10/06/2014 07:38:33  R$ 200,00[LF][LF]----------------- Recebimentos -----------------[LF]Dinheiro                               R$ 200,00[LF]Cielo - VISA Debito                    R$ 236,29[LF]Cielo - Mastercard Debito              R$ 213,34[LF]Cielo - VISA Credito                   R$ 231,26[LF]Cielo - Mastercard Credito             R$ 246,14[LF]Cielo - ELO Debito                      R$ 33,31[LF][ETX]z
   14:12:04:922 RX <- ACK = 0 Falha: 0
                TX -> [sTX]R[sTX][FS][20]------------------------------------------------[LF]                                         R$ 1,00[LF][LF]------------------- Sangrias -------------------[LF]Usuario           Data/Hora           Valor (R$)[LF]LUCIA             10/06/2014 07:38:33  R$ 200,00[LF][LF]----------------- Recebimentos -----------------[LF]Dinheiro                               R$ 200,00[LF]Cielo - VISA Debito                    R$ 236,29[LF]Cielo - Mastercard Debito              R$ 213,34[LF]Cielo - VISA Credito                   R$ 231,26[LF]Cielo - Mastercard Credito             R$ 246,14[LF]Cielo - ELO Debito                      R$ 33,31[LF][ETX]z
   14:12:05:386 RX <- ACK = 0 Falha: 1
                TX -> [sTX]R[sTX][FS][20]------------------------------------------------[LF]                                         R$ 1,00[LF][LF]------------------- Sangrias -------------------[LF]Usuario           Data/Hora           Valor (R$)[LF]LUCIA             10/06/2014 07:38:33  R$ 200,00[LF][LF]----------------- Recebimentos -----------------[LF]Dinheiro                               R$ 200,00[LF]Cielo - VISA Debito                    R$ 236,29[LF]Cielo - Mastercard Debito              R$ 213,34[LF]Cielo - VISA Credito                   R$ 231,26[LF]Cielo - Mastercard Credito             R$ 246,14[LF]Cielo - ELO Debito                      R$ 33,31[LF][ETX]z
   14:12:05:616 RX <- ACK = 21 Falha: 2
   14:12:05:617 RX <- 
----------------- ERRO -----------------
Impressora Bematech não reconheceu o Comando
 (ACK = 21)
----------------------------------------
 
Alguma outra ideia?
Link para o comentário
Compartilhar em outros sites

  • Consultores

 

Usei como base para teste, os erros que logam ao emitir uma simples LeituraX.

 

Pelo ECFTeste, sem alterar nada nele, logou os mesmos erros:

 

-- 08:50:08:910 LeituraX
                TX -> [sTX][4][NUL][FS][ACK]"[NUL]
   08:50:09:035 RX <- ACK = 6 Falha: 0
   08:50:09:044 VerificaFimImpressao: Pedindo o Status (19)
   08:50:09:377 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   08:50:09:579 VerificaFimImpressao: Pedindo o Status (19)
   08:50:09:702 VerificaFimImpressao: ACK = 6, OK... Aguardando ST1 e ST2
   08:50:09:985 VerificaFimImpressao: ACK = 6 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   08:50:10:187 VerificaFimImpressao: Pedindo o Status (19)
   08:50:10:521 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   08:50:10:722 VerificaFimImpressao: Pedindo o Status (19)
   08:50:11:075 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   08:50:11:277 VerificaFimImpressao: Pedindo o Status (19)
   08:50:11:628 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   08:50:11:830 VerificaFimImpressao: Pedindo o Status (19)
   08:50:11:953 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: EACBrECFErro ACK <> 6
   08:50:12:161 VerificaFimImpressao: Pedindo o Status (19)
   08:50:12:283 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: EACBrECFErro ACK <> 6
 
Consegui também reproduzir um relatório gerencial que apresenta erro durante a impressão.
 
Porém com o aplicativo da bematech, que usa a DLL:
- A Leitura X é emitida normalmente assim como no ECFTeste, porém não mostrou nenhum erro de ST1/ST2 e aparentemente o aplicativo não tem um arquivo de Log.
- O relatório não consegui emitir por ele, acredito que tenha um limite na quantidade de linhas dentro dele. Retorna "Parametro Inválido" ao tentar enviar o mesmo texto.

Daria pra reproduzir o cabeçalho do arquivo de log deste teste no ECFTeste? Informe outros parâmetros também (Intervalo entre comando, por exemplo). Parece que o timeout é pequeno.

[]'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.
Link para o comentário
Compartilhar em outros sites

Ja tentei colocar até 10, 20, 30, 60 segundos de timeout. Esse teste foi no ECFTeste com 3 segundos mesmo.

 

Não parece dar diferença mesmo. O Intervalo Após comandos também não afetou em nada. Testei agora com 0, 100 e 1000.

 

Segue log completo de agora no ECFTeste emitindo uma LeituraX. Só alterei mesmo o timeout para 10:

 

--------------------------------------------------------------------------------
ATIVAR - 10/06/14 15:47:29:323 - Modelo: Bematech - Porta: COM5 - TimeOut: 10
         Device: BAUD=9600 DATA=8 PARITY=N STOP=1 HANDSHAKE=RTS/CTS HARDFLOW MAXBANDWIDTH=0
--------------------------------------------------------------------------------
 
-- 15:47:29:330 
                TX -> [sTX][4][NUL][FS][19]/[NUL]
   15:47:29:480 RX <- ACK = 6 Falha: 0
   15:47:29:592 RX <- [NUL][NUL][NUL][NUL]
-- 15:47:29:593 
                TX -> [sTX][ENQ][NUL][FS]#)h[NUL]
   15:47:29:926 RX <- ACK = 0 Falha: 0
                TX -> [sTX][ENQ][NUL][FS]#)h[NUL]
   15:47:30:150 RX <- ACK = 6 Falha: 1
   15:47:30:251 RX <- [sOH][NUL][sTX][NUL][NUL][NUL][NUL][ACK][sOH][NUL][sTX]
-- 15:47:30:252 
                TX -> [sTX][ENQ][NUL][FS]#<{[NUL]
   15:47:30:374 RX <- ACK = 0 Falha: 0
                TX -> [sTX][ENQ][NUL][FS]#<{[NUL]
   15:47:30:659 RX <- ACK = 6 Falha: 1
   15:47:30:761 RX <- BEMATECH       MP-4000 TH FI       ECF-IF [NUL][NUL][NUL][NUL]
-- 15:47:30:762 
                TX -> [sTX][ENQ][NUL][FS]#[11]J[NUL]
   15:47:30:966 RX <- ACK = 6 Falha: 0
   15:47:31:078 RX <- [NUL][sOH][NUL][NUL][NUL][NUL]
-- 15:47:31:079 
                TX -> [sTX][ENQ][NUL][FS]#(g[NUL]
   15:47:31:264 RX <- ACK = 6 Falha: 0
   15:47:31:387 RX <- BE091410100011337244[NUL][NUL][NUL][NUL]
-- 15:47:31:388 Estado
                TX -> [sTX][ENQ][NUL][FS]#[WAK]P[NUL]
   15:47:31:570 RX <- ACK = 6 Falha: 0
   15:47:31:684 RX <- [16][NUL][NUL][NUL][NUL]
-- 15:47:31:685 
                TX -> [sTX][ENQ][NUL][FS]#A[128][NUL]
   15:47:31:869 RX <- ACK = 6 Falha: 0
   15:47:31:980 RX <- [NUL][NUL][NUL][NUL][NUL]
-- 15:47:31:981 
                TX -> [sTX][ENQ][NUL][FS]#[ESC]Z[NUL]
   15:47:32:165 RX <- ACK = 6 Falha: 0
   15:47:32:277 RX <- [NUL][NUL][NUL][NUL][NUL][NUL][NUL]
-- 15:47:32:283 Estado
                TX -> [sTX][ENQ][NUL][FS]#[WAK]P[NUL]
   15:47:32:466 RX <- ACK = 6 Falha: 0
   15:47:32:585 RX <- [16][NUL][NUL][NUL][NUL]
-- 15:47:32:586 
                TX -> [sTX][ENQ][NUL][FS]#A[128][NUL]
   15:47:32:921 RX <- ACK = 0 Falha: 0
                TX -> [sTX][ENQ][NUL][FS]#A[128][NUL]
   15:47:33:143 RX <- ACK = 6 Falha: 1
   15:47:33:255 RX <- [NUL][NUL][NUL][NUL][NUL]
-- 15:47:33:256 
                TX -> [sTX][ENQ][NUL][FS]#[ESC]Z[NUL]
   15:47:33:379 RX <- ACK = 0 Falha: 0
                TX -> [sTX][ENQ][NUL][FS]#[ESC]Z[NUL]
   15:47:33:662 RX <- ACK = 6 Falha: 1
   15:47:33:773 RX <- [NUL][NUL][NUL][NUL][NUL][NUL][NUL]
-- 15:47:44:711 LeituraX
                TX -> [sTX][4][NUL][FS][ACK]"[NUL]
   15:47:45:064 RX <- ACK = 6 Falha: 0
   15:47:45:162 VerificaFimImpressao: Pedindo o Status (19)
   15:47:45:536 VerificaFimImpressao: ACK = 6, OK... Aguardando ST1 e ST2
   15:47:45:817 VerificaFimImpressao: ACK = 6 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   15:47:46:018 VerificaFimImpressao: Pedindo o Status (19)
   15:47:46:351 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   15:47:46:552 VerificaFimImpressao: Pedindo o Status (19)
   15:47:46:903 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   15:47:47:104 VerificaFimImpressao: Pedindo o Status (19)
   15:47:47:455 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   15:47:47:657 VerificaFimImpressao: Pedindo o Status (19)
   15:47:48:009 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   15:47:48:218 VerificaFimImpressao: Pedindo o Status (19)
   15:47:48:341 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: EACBrECFErro ACK <> 6
   15:47:48:542 VerificaFimImpressao: Pedindo o Status (19)
   15:47:48:676 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: EACBrECFErro ACK <> 6
   15:47:48:876 VerificaFimImpressao: Pedindo o Status (19)
   15:47:48:998 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: EACBrECFErro ACK <> 6
   15:47:49:199 VerificaFimImpressao: Pedindo o Status (19)
   15:47:49:323 VerificaFimImpressao: ACK = 6, OK... Aguardando ST1 e ST2
   15:47:49:427 RX <- [NUL][NUL][NUL][NUL]
-- 15:47:49:428 NumCupom
                TX -> [sTX][4][NUL][FS][30]:[NUL]
   15:47:49:612 RX <- ACK = 6 Falha: 0
   15:47:49:731 RX <- [NUL][NUL]"[NUL][NUL][NUL][NUL]
-- 15:47:49:792 Estado
                TX -> [sTX][ENQ][NUL][FS]#[WAK]P[NUL]
   15:47:49:915 RX <- ACK = 6 Falha: 0
   15:47:50:034 RX <- [16][NUL][NUL][NUL][NUL]
-- 15:47:50:035 
                TX -> [sTX][ENQ][NUL][FS]#A[128][NUL]
   15:47:50:219 RX <- ACK = 6 Falha: 0
   15:47:50:342 RX <- [NUL][NUL][NUL][NUL][NUL]
-- 15:47:50:342 
                TX -> [sTX][ENQ][NUL][FS]#[ESC]Z[NUL]
   15:47:50:526 RX <- ACK = 6 Falha: 0
   15:47:50:638 RX <- [NUL][NUL][NUL][NUL][NUL][NUL][NUL]
Editado por EddieBR
Link para o comentário
Compartilhar em outros sites

  • Consultores

Olá EddieBr,

 

   Vou pedir para que você faça dois testes. Vou apontar onde você vai alterar no código e vamos ver o comportamento se melhora ok?

   Você deve fazer o seguinte.

   Faça uma alteração primeiro.

   Faça Build dos componentes.

   Faça o Build do ECFTeste.

   Faça o teste.

   Anexe o log.

 

   Faça a outra alteração.

   Faça Build dos componentes.

   Faça o Build do ECFTeste.

   Faça o teste.

   Anexe o log.

 

Aqui vão:

 

Arquivo ACBrECFClass.pas, método TACBrECFClass.DoLeResposta (por volta da linha 1851), aumente o timeout do fpDevice.LeString de 100 para 2000, conforme abaixo:

        Fim := True ;
        if not FimLeitura then
         begin
           Fim  := False ;
           try
              fpRespostaComando := fpRespostaComando + { Le conteudo da porta }
                                    fpDevice.LeString(2000) ; // ALTERADO AQUI !!!!!
//                                   fpDevice.LeString(100) ; // ESTAVA ASSIM!!!!!

Segunda e Terceira Alteração são no arquivo ACBrECFBematech.pas. Método TACBrECFBematech.VerificaFimImpressao, por volta da linha 1044. Veja abaixo:

     try
        GravaLog('   '+FormatDateTime('hh:nn:ss:zzz',now)+' VerificaFimImpressao: Pedindo o Status (19)' ) ;

        fpDevice.Serial.Purge ;           // Limpa buffer de Entrada e Saida //
        fpDevice.EnviaString( Cmd );         // Envia comando //

        // espera ACK chegar na Porta por 1,5s //
        wACK := fpDevice.LeByte( 3000 ) ; //ALTERADO AQUI !!!!
//        wACK := fpDevice.LeByte( 1500 ) ; //ESTAVA ASSIM !!!!

        if wACK = 6 then   // ECF Respondeu corretamente, portanto está trabalhando //
         begin
           GravaLog('   '+FormatDateTime('hh:nn:ss:zzz',now)+' VerificaFimImpressao: ACK = 6, OK... Aguardando ST1 e ST2' ) ;
           TempoLimite := IncSecond(now, TimeOut);
           fsFalhasFimImpressao := 0 ;

           // Aguarda ST1 e ST2 por mais 2 segundos //
           RetCmd := fpDevice.LeString( 4000, 2 ) ; // ALTERADO AQUI!!!!!
//           RetCmd := fpDevice.LeString( 2000, 2 ) ; // ESTAVA ASSIM !!!!
           Result := (Length( RetCmd ) >= 2) ;
         end
        else
           raise EACBrECFErro.Create( 'ACK <> 6' );

 

[]'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.
Link para o comentário
Compartilhar em outros sites

No VerifcaFimImpressao, eu havia alterado os timeouts do LeByte e LeString, inclusive criando alguns logs para ter certeza da alteração (conforme postei na primeira resposta do tópico).

 

Testei alterando no TACBrECFClass.DoLeResposta e persiste.

 

Realmente não consigo achar o motivo de dar timeout antes do tempo definido das 3 linhas nesses metodos.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bem, eu não tenho um ECF destes aqui para testar...

Por favor, faça as alterações que eu sugeri, faça o build e anexe o log depois de cada alteração. Tenha certeza de que só as alterações que eu sugeri estão no código.

[]'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.
Link para o comentário
Compartilhar em outros sites

  • Fundadores

Já testou verificar se é ago que ocorre apenas nessa máquina, ou com esse ECF ??

 

Veja: Centenas de programadores usam a Classe da Bematech como ela está hoje...

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

Daniel, problema ocorre apenas com a MP-4000 via USB usando o Driver Virtual Serial da Bematech. Com o cabo serial não há problema algum. Nos mesmos aqui temos mais de 100 ECFs dessa usando nossa automação com essa classe.

 

Foi testado em 3 maquinas com 3 ECFs diferentes.

 

Seria interessante alguem mais tiver acesso a uma MP-4000, instalar via USB com o driver virtual, emitir uma LeituraX com o ECFTeste e postar os logs para comparar.

 

Pois com as alterações que o Elton sugeriu, continua ocorrendo.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Não creio que seja algo que seja possível de ser "corrigido" do nosso lado...

 

Como você disse... parece ser um problema do driver...

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

  • Consultores

Infelizmente, sem as exatas alterações que eu pedi e sem os logs eu não tenho como aprofundar mais nesse problema até que consiga um ECF físico e tempo para testar...

[]'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.
Link para o comentário
Compartilhar em outros sites

  • Consultores

   Tive a oportunidade de pedir alguém para poder gerar para mim o teste de ativar o ECF e depois emitir uma Leitura X. A versão do ACBr é 7026 sem modificações.

   Os arquivos de log estão abaixo com as respectivas situações.

 

1) Emulador da MP-2100 TH FI usando o com0com:


--------------------------------------------------------------------------------
ATIVAR - 18/06/14 16:13:48:970 - Modelo: Bematech - Porta: COM5 - TimeOut: 17
         Device: BAUD=9600 DATA=8 PARITY=N STOP=1 HANDSHAKE=RTS/CTS HARDFLOW MAXBANDWIDTH=0
--------------------------------------------------------------------------------

-- 16:13:48:972 Estado
                TX -> [sTX][4][NUL][FS][19]/[NUL]
   16:13:49:040 RX <- ACK = 6 Falha: 0
   16:13:49:242 RX <- [NUL][NUL][NUL][NUL]
-- 16:13:49:242 
                TX -> [sTX][ENQ][NUL][FS]#)h[NUL]
   16:13:49:341 RX <- ACK = 6 Falha: 0
   16:13:49:542 RX <- [sOH][NUL][sOH][NUL][NUL][NUL][NUL]
-- 16:13:49:543 
                TX -> [sTX][ENQ][NUL][FS]#<{[NUL]
   16:13:49:643 RX <- ACK = 6 Falha: 0
   16:13:49:844 RX <- BEMATECH       MP-2100 TH FI       ECF-IF [NUL][NUL][NUL][NUL]
-- 16:13:49:845 
                TX -> [sTX][ENQ][NUL][FS]#[11]J[NUL]
   16:13:49:945 RX <- ACK = 6 Falha: 0
   16:13:50:146 RX <- [NUL][sOH][NUL][NUL][NUL][NUL]
-- 16:13:50:147 
                TX -> [sTX][ENQ][NUL][FS]#(g[NUL]
   16:13:50:247 RX <- ACK = 6 Falha: 0
   16:13:50:448 RX <- EMULADOR            [NUL][NUL][NUL][NUL]
-- 16:13:50:449 Estado
                TX -> [sTX][ENQ][NUL][FS]#[WAK]P[NUL]
   16:13:50:548 RX <- ACK = 6 Falha: 0
   16:13:50:750 RX <- [16][NUL][NUL][NUL][NUL]
-- 16:13:50:750 
                TX -> [sTX][ENQ][NUL][FS]#A[128][NUL]
   16:13:50:850 RX <- ACK = 6 Falha: 0
   16:13:51:051 RX <- [NUL][NUL][NUL][NUL][NUL]
-- 16:13:51:052 
                TX -> [sTX][ENQ][NUL][FS]#[ESC]Z[NUL]
   16:13:51:152 RX <- ACK = 6 Falha: 0
   16:13:51:353 RX <- [NUL][NUL][NUL][NUL][NUL][NUL][NUL]
-- 16:13:51:358 Estado
                TX -> [sTX][ENQ][NUL][FS]#[WAK]P[NUL]
   16:13:51:454 RX <- ACK = 6 Falha: 0
   16:13:51:655 RX <- [16][NUL][NUL][NUL][NUL]
-- 16:13:51:656 
                TX -> [sTX][ENQ][NUL][FS]#A[128][NUL]
   16:13:51:755 RX <- ACK = 6 Falha: 0
   16:13:51:957 RX <- [NUL][NUL][NUL][NUL][NUL]
-- 16:13:51:958 
                TX -> [sTX][ENQ][NUL][FS]#[ESC]Z[NUL]
   16:13:52:057 RX <- ACK = 6 Falha: 0
   16:13:52:258 RX <- [NUL][NUL][NUL][NUL][NUL][NUL][NUL]
-- 16:13:59:548 LeituraX
                TX -> [sTX][4][NUL][FS][ACK]"[NUL]
   16:13:59:601 RX <- ACK = 6 Falha: 0
   16:13:59:704 VerificaFimImpressao: Pedindo o Status (19)
   16:13:59:802 VerificaFimImpressao: ACK = 6, OK... Aguardando ST1 e ST2
   16:14:00:003 RX <- [NUL][NUL][NUL][NUL]
-- 16:14:00:004 NumCupom
                TX -> [sTX][4][NUL][FS][30]:[NUL]
   16:14:00:104 RX <- ACK = 6 Falha: 0
   16:14:00:305 RX <- [NUL][sOH][135][NUL][NUL][NUL][NUL]
-- 16:14:00:333 Estado
                TX -> [sTX][ENQ][NUL][FS]#[WAK]P[NUL]
   16:14:00:406 RX <- ACK = 6 Falha: 0
   16:14:00:607 RX <- [16][NUL][NUL][NUL][NUL]
-- 16:14:00:607 
                TX -> [sTX][ENQ][NUL][FS]#A[128][NUL]
   16:14:00:708 RX <- ACK = 6 Falha: 0
   16:14:00:909 RX <- [NUL][NUL][NUL][NUL][NUL]
-- 16:14:00:910 
                TX -> [sTX][ENQ][NUL][FS]#[ESC]Z[NUL]
   16:14:01:009 RX <- ACK = 6 Falha: 0
   16:14:01:210 RX <- [NUL][NUL][NUL][NUL][NUL][NUL][NUL]

2) ECF físico MP-4000 TH FI ligado na USB utilizando o driver Bematech (instalação para 64 bits):

--------------------------------------------------------------------------------
ATIVAR - 18/06/14 16:18:11:838 - Modelo: Bematech - Porta: COM7 - TimeOut: 17
         Device: BAUD=9600 DATA=8 PARITY=N STOP=1 HANDSHAKE=RTS/CTS HARDFLOW MAXBANDWIDTH=0
--------------------------------------------------------------------------------

-- 16:18:11:844 
                TX -> [sTX][4][NUL][FS][19]/[NUL]
   16:18:12:060 RX <- ACK = 6 Falha: 0
   16:18:12:162 RX <- [NUL][NUL][NUL][NUL]
-- 16:18:12:163 
                TX -> [sTX][ENQ][NUL][FS]#)h[NUL]
   16:18:12:351 RX <- ACK = 6 Falha: 0
   16:18:12:453 RX <- [sOH][NUL][sTX][NUL][NUL][NUL][NUL]
-- 16:18:12:454 
                TX -> [sTX][ENQ][NUL][FS]#<{[NUL]
   16:18:12:621 RX <- ACK = 6 Falha: 0
   16:18:12:814 RX <- BEMATECH       MP-4000 TH FI       ECF-IF [NUL][NUL][NUL][NUL]
-- 16:18:12:815 
                TX -> [sTX][ENQ][NUL][FS]#[11]J[NUL]
   16:18:12:958 RX <- ACK = 6 Falha: 0
   16:18:13:060 RX <- [NUL][sOH][NUL][NUL][NUL][NUL]
-- 16:18:13:061 
                TX -> [sTX][ENQ][NUL][FS]#(g[NUL]
   16:18:13:247 RX <- ACK = 6 Falha: 0
   16:18:13:348 RX <- BE09XXXXXXXXXXXXXXXX[NUL][NUL][NUL][NUL]
-- 16:18:13:348 Estado
                TX -> [sTX][ENQ][NUL][FS]#[WAK]P[NUL]
   16:18:13:481 RX <- ACK = 6 Falha: 0
   16:18:13:585 RX <- [4][NUL][NUL][NUL][NUL]
-- 16:18:13:586 
                TX -> [sTX][ENQ][NUL][FS]#A[128][NUL]
   16:18:13:752 RX <- ACK = 6 Falha: 0
   16:18:13:854 RX <- [NUL][NUL][NUL][NUL][NUL]
-- 16:18:13:854 
                TX -> [sTX][ENQ][NUL][FS]#[ESC]Z[NUL]
   16:18:13:983 RX <- ACK = 6 Falha: 0
   16:18:14:085 RX <- [NUL][NUL][NUL][NUL][NUL][NUL][NUL]
-- 16:18:14:098 Estado
                TX -> [sTX][ENQ][NUL][FS]#[WAK]P[NUL]
   16:18:14:272 RX <- ACK = 6 Falha: 0
   16:18:14:376 RX <- [4][NUL][NUL][NUL][NUL]
-- 16:18:14:377 
                TX -> [sTX][ENQ][NUL][FS]#A[128][NUL]
   16:18:14:563 RX <- ACK = 6 Falha: 0
   16:18:14:665 RX <- [NUL][NUL][NUL][NUL][NUL]
-- 16:18:14:665 
                TX -> [sTX][ENQ][NUL][FS]#[ESC]Z[NUL]
   16:18:14:789 RX <- ACK = 6 Falha: 0
   16:18:14:895 RX <- [NUL][NUL][NUL][NUL][NUL][NUL][NUL]
-- 16:18:42:864 LeituraX
                TX -> [sTX][4][NUL][FS][ACK]"[NUL]
   16:18:43:037 RX <- ACK = 6 Falha: 0
   16:18:43:129 VerificaFimImpressao: Pedindo o Status (19)
   16:18:43:467 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   16:18:43:669 VerificaFimImpressao: Pedindo o Status (19)
   16:18:43:793 VerificaFimImpressao: ACK = 6, OK... Aguardando ST1 e ST2
   16:18:44:097 VerificaFimImpressao: ACK = 6 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   16:18:44:300 VerificaFimImpressao: Pedindo o Status (19)
   16:18:44:638 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   16:18:44:839 VerificaFimImpressao: Pedindo o Status (19)
   16:18:45:198 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   16:18:45:399 VerificaFimImpressao: Pedindo o Status (19)
   16:18:45:759 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   16:18:45:960 VerificaFimImpressao: Pedindo o Status (19)
   16:18:46:083 VerificaFimImpressao: ACK = 0 - Falhas = 0 - Erro: EACBrECFErro ACK <> 6
   16:18:46:285 VerificaFimImpressao: Pedindo o Status (19)
   16:18:46:469 VerificaFimImpressao: ACK = 6, OK... Aguardando ST1 e ST2
   16:18:46:571 RX <- [NUL][NUL][NUL][NUL]
-- 16:18:46:572 NumCupom
                TX -> [sTX][4][NUL][FS][30]:[NUL]
   16:18:46:707 RX <- ACK = 6 Falha: 0
   16:18:46:814 RX <- [NUL][16]R[NUL][NUL][NUL][NUL]
-- 16:18:46:919 Estado
                TX -> [sTX][ENQ][NUL][FS]#[WAK]P[NUL]
   16:18:47:084 RX <- ACK = 6 Falha: 0
   16:18:47:188 RX <- [4][NUL][NUL][NUL][NUL]
-- 16:18:47:188 
                TX -> [sTX][ENQ][NUL][FS]#A[128][NUL]
   16:18:47:375 RX <- ACK = 6 Falha: 0
   16:18:47:479 RX <- [NUL][NUL][NUL][NUL][NUL]
-- 16:18:47:480 
                TX -> [sTX][ENQ][NUL][FS]#[ESC]Z[NUL]
   16:18:47:615 RX <- ACK = 6 Falha: 0
   16:18:47:721 RX <- [NUL][NUL][NUL][NUL][NUL][NUL][NUL]

3) ECF Físico MP-4000 TH FI ligado via CONVERSOR de porta Serial para USB.

--------------------------------------------------------------------------------
ATIVAR - 18/06/14 16:33:59:039 - Modelo: Bematech - Porta: COM9 - TimeOut: 17
         Device: BAUD=9600 DATA=8 PARITY=N STOP=1 HANDSHAKE=RTS/CTS HARDFLOW MAXBANDWIDTH=0
--------------------------------------------------------------------------------

-- 16:33:59:176 
                TX -> [sTX][4][NUL][FS][19]/[NUL]
   16:33:59:194 RX <- ACK = 6 Falha: 0
   16:33:59:300 RX <- [NUL][NUL][NUL][NUL]
-- 16:33:59:301 
                TX -> [sTX][ENQ][NUL][FS]#)h[NUL]
   16:33:59:315 RX <- ACK = 6 Falha: 0
   16:33:59:424 RX <- [sOH][NUL][sTX][NUL][NUL][NUL][NUL]
-- 16:33:59:425 
                TX -> [sTX][ENQ][NUL][FS]#<{[NUL]
   16:33:59:437 RX <- ACK = 6 Falha: 0
   16:33:59:595 RX <- BEMATECH       MP-4000 TH FI       ECF-IF [NUL][NUL][NUL][NUL]
-- 16:33:59:596 
                TX -> [sTX][ENQ][NUL][FS]#[11]J[NUL]
   16:33:59:608 RX <- ACK = 6 Falha: 0
   16:33:59:718 RX <- [NUL][sOH][NUL][NUL][NUL][NUL]
-- 16:33:59:719 
                TX -> [sTX][ENQ][NUL][FS]#(g[NUL]
   16:33:59:731 RX <- ACK = 6 Falha: 0
   16:33:59:863 RX <- BE09XXXXXXXXXXXXXXXX[NUL][NUL][NUL][NUL]
-- 16:33:59:864 Estado
                TX -> [sTX][ENQ][NUL][FS]#[WAK]P[NUL]
   16:33:59:875 RX <- ACK = 6 Falha: 0
   16:33:59:984 RX <- [4][NUL][NUL][NUL][NUL]
-- 16:33:59:985 
                TX -> [sTX][ENQ][NUL][FS]#A[128][NUL]
   16:33:59:996 RX <- ACK = 6 Falha: 0
   16:34:00:105 RX <- [NUL][NUL][NUL][NUL][NUL]
-- 16:34:00:105 
                TX -> [sTX][ENQ][NUL][FS]#[ESC]Z[NUL]
   16:34:00:117 RX <- ACK = 6 Falha: 0
   16:34:00:229 RX <- [NUL][NUL][NUL][NUL][NUL][NUL][NUL]
-- 16:34:00:235 Estado
                TX -> [sTX][ENQ][NUL][FS]#[WAK]P[NUL]
   16:34:00:247 RX <- ACK = 6 Falha: 0
   16:34:00:355 RX <- [4][NUL][NUL][NUL][NUL]
-- 16:34:00:356 
                TX -> [sTX][ENQ][NUL][FS]#A[128][NUL]
   16:34:00:367 RX <- ACK = 6 Falha: 0
   16:34:00:476 RX <- [NUL][NUL][NUL][NUL][NUL]
-- 16:34:00:477 
                TX -> [sTX][ENQ][NUL][FS]#[ESC]Z[NUL]
   16:34:00:488 RX <- ACK = 6 Falha: 0
   16:34:00:599 RX <- [NUL][NUL][NUL][NUL][NUL][NUL][NUL]
-- 16:34:03:928 LeituraX
                TX -> [sTX][4][NUL][FS][ACK]"[NUL]
   16:34:03:939 RX <- ACK = 6 Falha: 0
   16:34:03:957 VerificaFimImpressao: Pedindo o Status (19)
   16:34:04:460 VerificaFimImpressao: ACK = 6, OK... Aguardando ST1 e ST2
   16:34:06:461 VerificaFimImpressao: ACK = 6 - Falhas = 0 - Erro: ESynaSerError Communication error 9997: Timeout during operation
   16:34:07:141 VerificaFimImpressao: Pedindo o Status (19)
   16:34:07:155 VerificaFimImpressao: ACK = 6, OK... Aguardando ST1 e ST2
   16:34:07:260 RX <- [NUL][NUL][NUL][NUL]
-- 16:34:07:260 NumCupom
                TX -> [sTX][4][NUL][FS][30]:[NUL]
   16:34:07:270 RX <- ACK = 6 Falha: 0
   16:34:07:381 RX <- [NUL][16]S[NUL][NUL][NUL][NUL]
-- 16:34:07:467 Estado
                TX -> [sTX][ENQ][NUL][FS]#[WAK]P[NUL]
   16:34:07:479 RX <- ACK = 6 Falha: 0
   16:34:07:586 RX <- [4][NUL][NUL][NUL][NUL]
-- 16:34:07:586 
                TX -> [sTX][ENQ][NUL][FS]#A[128][NUL]
   16:34:07:598 RX <- ACK = 6 Falha: 0
   16:34:07:708 RX <- [NUL][NUL][NUL][NUL][NUL]
-- 16:34:07:708 
                TX -> [sTX][ENQ][NUL][FS]#[ESC]Z[NUL]
   16:34:07:719 RX <- ACK = 6 Falha: 0
   16:34:07:831 RX <- [NUL][NUL][NUL][NUL][NUL][NUL][NUL]

[]'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.
Link para o comentário
Compartilhar em outros sites

  • Consultores

Me ocorreu agora que há ainda outra opção que é a Plataforma Fiscal da Bematech. Alguém já fez algum teste utilizando ela?

[]'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.
Link para o comentário
Compartilhar em outros sites

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