Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Olá,

Estou tentando capturar o status da impressora MP-4200 TH(Bematech) via comunicação serial, porém a impressora não responde ocasionando em um timeout, Utilizando a demo PosPrinterTest de vocês, a impressora responde normalmente. 

Estou utilizando o comando "DLE EOT n". É necessário alguma outra configuração para obter a resposta de status da impressora? Em anexo no tópico possui exemplo utilizado para tentar capturar o status da impressora.

Agradeço desde já a atenção.

ExemploBematechSerial.txt

  • Fundadores
Postado

Aparentemente você não está enviando a mesma instrução que o ACBrPosPrinter...

http://svn.code.sf.net/p/acbr/code/trunk2/Fontes/ACBrSerial/ACBrEscBematech.pas

rocedure TACBrEscBematech.LerStatus(var AStatus: TACBrPosPrinterStatus);
var
  B: Byte;
  Ret: AnsiString;
begin
  try
    Ret := fpPosPrinter.TxRx( GS + #248 + '1', 5, 500 );
    B := Ord(Ret[1]);

    if TestBit(B, 2) then
      AStatus := AStatus + [stImprimindo];  // Overrun
    if TestBit(B, 3) then
      AStatus := AStatus + [stOffLine];
    if TestBit(B, 4) then
      AStatus := AStatus + [stImprimindo];

    B := Ord(Ret[2]);
    if TestBit(B, 1) then
      AStatus := AStatus + [stPoucoPapel];
    if TestBit(B, 2) then
      AStatus := AStatus + [stSemPapel];
    if not TestBit(B, 4) then
      AStatus := AStatus + [stGavetaAberta];
    if TestBit(B, 5) then
      AStatus := AStatus + [stSemPapel];
    if TestBit(B, 6) then
      AStatus := AStatus + [stErro];
    if not TestBit(B, 7) then
      AStatus := AStatus + [stTampaAberta];
  except
    AStatus := AStatus + [stErroLeitura];
  end;
end;

 

  • Curtir 2
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

Creio que a instrução que eu estou enviando é ESC/POS. A Mesma instrução enviada para uma Bematech MP-4200 TH conexão via rede funciona e retorna o status, porém quando eu estou à utilizando como porta serial isso deixa de funcionar.

OBS: Os comandos de impressão funcionando corretamente no modo serial, somente os comandos onde eu preciso de resposta da impressora não funcionam. Ex: GS I n (Transmite Id da impressora), DLE EOT n (Transmite status da impressora).

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