Caso não consiga ver as imagens deste e-mail, clique aqui.

Olá escovadores de bits, hoje nosso escovando será um pouco diferente, vamos analisar o hardware da impressora fiscal. Analisaremos o sensor de papel da ECF para entender como a impressora identifica que a bobina está próxima do fim ou não.

Muitos parceiros nos procuram com duvidas sobre o sensor de papel, nos questionam se o retorno dado pela ECF está correto mesmo ou não. Uma frase de exemplo: “A impressora está retornando papel acabando, mas a minha bobina está cheia! O que faço?”. Este escovando é especial para estes parceiros, pois vamos mostrar de duas formas quando é que o papel realmente está acabando.

Hardware – Vamos identificar onde é o mágico sensor de pouco papel e de sem papel. Imagens ilustrativas da impressora fiscal irão ajudá-los na identificação.

Software – Nesta etapa vamos testar se o que está na impressora(hardware) condiz com o retorno recebido. Simularemos pouco papel e sem papel na ECF.

Escovadores de Bits, acho que agora vocês entenderam que o tema de hoje será bastante usado por vocês né?! Acompanhem este rápido e importante escovando bits.

“...Daruma Social Developer, como identifico o sensor de papel da Impressora Fiscal?”

  • A primeira etapa é pegar sua impressora fiscal e abrir a tampa da mesma.
  • Se houver bobina, retire-a.
    Veja o exemplo:
  • Mantenha a impressora de “frente” para você, ou seja, com os botões do painel voltados para sua frente.
    Veja como ficou:
  • Explore o interior da ECF. Linda não é verdade?!
  • Já encontraram o sensor de papel?! Não? Fiquem tranquilos, vou ajudar vocês agora.
  • O sensor de papel está localizado do lado esquerdo do interior da ECF.
    Veja onde está o sensor:
  • Existem dois estados para o sensor: “pouco papel” e “sem papel”.
    Veja o exemplo:
  • Agora vocês já sabem quase tudo sobre sensor de papel!! “...Como faço para minha impressora informar que está com pouco papel?”
  • Simples. Vamos executar um comando para que isso se torne ativo na aplicação.
  • Antes de executarmos o comando, deixe a impressora com uma bobina pequena, ou seja, com pouco papel.
    Veja o exemplo:
  • Clique aqui e faça download do executável em Delphi 7.
  • Extraia o pacote, abra a pasta e execute o “DarumaFramework_Delphi.exe”.
  • Uma janela será aberta com várias opções, clique em “Impressoras Fiscal”.
    Veja o exemplo:
  • Uma nova janela foi aberta, clique no menu “Registry” -> submenu “ECF” -> “Método regAlterarValor_Daruma”.
    Veja como ficou:
  • Na nova janela, digite a chave “ECF\RetornarAvisoErro”.
    Veja o exemplo:
  • Pressione “OK”.
  • Após pressionar “OK”, digite “1” para ativar o retorno de Aviso e Erro.
    Veja como ficou:
  • Pressione “OK” novamente para que o método seja executado.
  • Um retorno será mostrado na tela.
    Veja o exemplo:
  • Retorno de Aviso e Erro está ativo! Agora vamos imprimir uma Leitura X para receber a mensagem de pouco papel.
  • No exemplo em Delphi7, clique no menu “Relatórios Fiscais” -> submenu “Leitura X” -> “Método iLeituraX_ECF_Daruma”.
    Veja o exemplo:
  • Foi mostrada na tela uma mensagem de retorno, informando se a ECF está ou não com pouco papel. Vejam:
  • Viram só como é simples de checar se há pouco papel ou não?

“...A mensagem de pouco papel será mostrada toda vez que eu imprimir na ECF?”

  • Com as configurações atuais, SIM! Porém existe uma opção de não informar a mensagem de pouco papel e continuar recebendo aviso e erro nos retornos.
  • Como fazer isso? Vamos aprender agora.
  • Volte ao executável em Delphi 7.
  • Procure pelo menu “Registry” -> submenu “ECF” -> “Método regAlterarValor_Daruma”.
    Veja o exemplo:
  • Uma nova janela será aberta, digite a chave do xml que você deseja alterar. Neste caso será “ECF\NaoAvisarPoucoPapel”.
    Veja como ficou:
  • Pressione “OK” e preencha o próximo campo com o valor “1”.
    Veja o exemplo:
  • Será exibido o retorno do método, confira-o e clique em “OK”.
    Veja o exemplo:
  • Pronto! Agora você receberá os retornos de Aviso e Erro que nós ativamos anteriormente e NÃO receberá as mensagens de pouco papel. Show né?!

“...Há um meio de testar que a ECF está sem papel?”

  • Claro!!! Usando as configurações que nós fizemos acima, isso já será possível. Vamos testar!
  • Antes de testar, retire o papel da ECF e feche a tampa.
  • Reparem que o led vermelho da impressora ficará “piscando” e um “beep” será dado. Isso é normal, pois a ECF está em erro.
  • De toda forma, ela irá nos avisar que está sem papel. Acompanhem.
  • Abra o executável em Delphi 7 novamente e clique no menu “Relatórios Fiscais” -> submenu “Leitura X” -> “Método iLeituraX_ECF_Daruma”.
    Veja o exemplo:
  • Após a execução do método será mostrado na tela um retorno.
    Veja o exemplo:
  • Viram só?! A ECF nos avisou que está sem papel, fantástico né?!

“...Social, como codifico tudo isso na minha aplicação?”

  • Follow me! Vamos aprender como codificar o retorno de aviso e erro, não avisar quando o papel estiver acabando e imprimir uma leitura X.

Delphi

//Declarações

function regAlterarValor_Daruma(pszPathChave:string;pszValor:string):Integer; StdCall; External 'DarumaFramework.dll';
function iLeituraX_ECF_Daruma: Integer; StdCall; External 'DarumaFramework.dll';

//Chamada de Métodos

iRetorno := regAlterarValor_Daruma(‘ECF\RetornarAvisoErro’, ‘1’);
iRetorno := regAlterarValor_Daruma(‘ECF\NaoAvisarPoucoPapel’, ‘1’);
iRetorno := iLeituraX_ECF_Daruma();

C#

//Declarações

[DllImport("DarumaFrameWork.dll")]
public static extern int iLeituraX_ECF_Daruma();
[DllImport("DarumaFrameWork.dll")]
public static extern int regAlterarValor_Daruma(string pszChave, string pszValor);

//Chamada de Métodos

iRetorno = regAlterarValor_Daruma(“ECF\RetornarAvisoErro”, “1”);
iRetorno = regAlterarValor_Daruma(“ECF\NaoAvisarPoucoPapel”, “1”);
iRetorno = iLeituraX_ECF_Daruma();

Visual Basic 6

//Declarações

Public Declare Function regAlterarValor_Daruma Lib "DarumaFrameWork.dll" (ByVal pszChave As String, ByVal pszValor As String) As Integer
Public Declare Function iLeituraX_ECF_Daruma Lib "DarumaFrameWork.dll" () As Integer

//Chamada de Métodos

iRetorno = regAlterarValor_Daruma(“ECF\RetornarAvisoErro”, “1”)
iRetorno = regAlterarValor_Daruma(“ECF\NaoAvisarPoucoPapel”, “1”)
iRetorno = iLeituraX_ECF_Daruma()

VB.Net

//Declarações

<DllImport("DarumaFrameWork.dll")> _
Public Shared Function regAlterarValor_Daruma(ByVal pszChave As String, ByVal pszValor As String) As Integer
End Function
<DllImport("DarumaFrameWork.dll")> _
Public Shared Function iLeituraX_ECF_Daruma() As Integer
End Function

//Chamada de Métodos

iRetorno = regAlterarValor_Daruma(“ECF\RetornarAvisoErro”, “1”)
iRetorno = regAlterarValor_Daruma(“ECF\NaoAvisarPoucoPapel”, “1”)
iRetorno = iLeituraX_ECF_Daruma()

Java

//Importações

import br.com.daruma.jna.ECF;
import br.com.daruma.jna.UTIL;

//Chamada de Métodos

iRetorno = UTIL.regAlterarValor(“ECF\\RetornarAvisoErro”, “1”);
iRetorno = UTIL.regAlterarValor(“ECF\\NaoAvisarPoucoPapel”, “1”);
iRetorno = ECF.iLeituraX();

PHP

//Declarações

function regAlterarValor_Daruma($path, $valor){};
function iLeituraX_ECF_Daruma(){};

//Chamada de Métodos

$retorno = regAlterarValor_Daruma(“ECF\RetornarAvisoErro”, “1”);
$retorno = regAlterarValor_Daruma(“ECF\NaoAvisarPoucoPapel”, “1”);
$retorno = iLeituraX_ECF_Daruma();

Escovando Bits concluído! Agora vocês sabem tudo sobre sensor de papel.

Assistam nosso vídeo mostrando todos os segredos sobre o sensor de papel da ECF.

Channel 9

Se tiver alguma dúvida e/ou dificuldade, entre em contato com a nossa equipe de suporte ao desenvolvedor.

E-mails:
daruma.desenvolvedores@daruma.com.br
ddc.suporte@daruma.com.br

suporte.ddc@daruma.com.br
desenvolvedores.suporte@daruma.com.br
suporte.desenvolvedores@daruma.com.br
desenvolvedores.daruma@daruma.com.br
suporte@daruma.com.br
suporte.alexandre@daruma.com.br
claudenir@daruma.com.br
Skypes:
daruma.desenvolvedores
ddc_suporte_daruma
suporte_ddc_daruma
desenvolvedores_suporte_daruma
suporte_desenvolvedores_daruma
desenvolvedores_daruma
suporte_daruma
suporte_alexandre_daruma
claudenir_andrade
Desenvolvedores Daruma Twitter facebook Linkedln Youtube Google+