[Escovando Bits] 3 maneiras de comunicar com ECF Daruma

20/05/2013

0

[url]http://www.desenvolvedoresdaruma.com.br/dde/htmls/dde031_2013.html[/url]

3 maneiras de comunicar com a ECF Daruma

Pessoal, quem já não passou pela experiência de perder as configurações da porta serial no pc? Ou então receber uma ligação de cliente dizendo que o sistema não comunica mais, de uma hora para outra? Outra situação ainda, é quando o cliente diz que o conversor ou a multiserial mudou as configurações?
Todos já tivemos situações assim. Os suportes de comunicação ainda são os campeões em nosso 0800, por isso vamos desvendar este “mistério” e deixar sua impressora comunicando.

Existem 3 meios de testar a comunicação com a impressora fiscal. Se sua necessidade é apenas testar a comunicação, escolha uma das etapas e prossiga no passo a passo. Veja:
- Teste manual

- Teste com a DarumaFramework.dll manualmente

- Teste com a DarumaFramework.dll automático



Teste Manual
Nesta etapa usaremos apenas as ferramentas do Windows, como gerenciador de dispositivos e prompt de comandos.

- Conecte a impressora fiscal no pc, pode ser serial ou USB. Caso tenha duvidas de como instalar o driver USB acesse o link abaixo:
http://www.desenvolvedoresdaruma.com.br/home/downloads/Site_2011/STKs/Instalando_impressoras_fiscais_USB.pdf

- Abra o gerenciador de dispositivos do Windows. ( Botão Iniciar -> Painel de Controle -> Sistema -> Gerenciador de Dispositivos);

- Vá em Portas COM&LPT e veja as portas instaladas; Veja o exemplo na imagem abaixo:


- Identificamos as portas existentes, COM1 e COM2. Guarde esta informação do lado esquerdo do cérebro, pois já vamos usá-la;
- Desligue a impressora e ligue com o botão avanço pressionado;
Observação: Caso esteja utilizando uma FS600 desligue e ligue com o botão linha e avanço pressionado.

- Um menu será impresso, veja um exemplo na imagem abaixo:


* Vantagem Daruma: Este recurso de visualizar e alterar a velocidade pelo painel da impressora só a Daruma tem! Foi um feedback dado pela comunidade de desenvolvedores no ano de 2006. Isso começou com o modelo FS600.

- No trecho destacado mostra a velocidade de 9.600, vamos usar esta velocidade para configurar nossa impressora;

- Após a verificação desligue a impressora, aguarde 3 segundos e ligue-a;
Observação: Caso você use o cabo USB da impressora, a velocidade será sempre 115.200 e não tem como alterar.

- Agora vamos descobrir em qual porta está nossa impressora, na COM1 ou na COM2. Lembra delas?!

- Abra o prompt de comandos ou DOS, como alguns dizem. Para abrir siga os passos, Botão Iniciar -> Executar -> digite “cmd”(sem aspas) e pressione enter ou Ok;

- Após abrir o prompt, digite o comando: mode com1:9600,n,8,1(Enter). Este comando irá alterar a velocidade da porta serial, neste caso COM1;

- Depois de alterar a velocidade da porta, digite o comando: dir >com1(Enter). Se estiver conectada na COM1, a impressora deverá avançar o papel No meu caso avançou. Veja abaixo como ficou o prompt de comandos;










- Feito! Agora sabemos a porta e a velocidade da impressora. Caso não tenha funcionado na primeira porta, fique tranquilo, basta fazer os passos acima( que usam o prompt de comandos) usando a outra porta existente em seu computador;



Teste com a DarumaFramework.dll manualmente
Agora iremos alterar o xml de acordo com as configurações encontradas na porta e velocidade da impressora., como descrito no passo acima. Caso sua aplicação use DarumaFramework.dll, você pode fazer os passos abaixo usando o SEU DarumaFramework.xml.
Vou mostrar como fazer essas alterações no xml por linha de código também, usando diferentes linguagens de programação.

- Baixe o exemplo em Delphi, disponível neste link:
http://www.desenvolvedoresdaruma.com.br/home/downloads/Site_2011/Exemplos/DarumaFramework_Delphi7exe.zip

- Com o exemplo baixado, execute-o e em seguida feche-o. Isso mesmo, apenas execute-o e depois feche. O motivo disso é a criação do arquivo de configurações da DarumaFramework.dll chamado DarumaFramework.xml ,vulgo DFW.xml;

- O arquivo DarumaFramework.xml será criado;

- Abra o DFW.xml com algum editor e procure a chave <ECF>

- Após, procure a chave <PortaSerial>

- Altere o conteúdo desta chave para a porta encontrada nos passos acima, ficando assim desta maneira: <PortaSerial>COM1</PortaSerial>

- Procure a chave <Velocidade>

- Altere o conteúdo da chave para a velocidade mostrada no menu da impressora, de acordo com os procedimentos anteriores(procedimentos feitos com o Menu da ECF). No meu caso ficou desta maneira: <Velocidade>9600</Velocidade>

- Depois das alterações, salve e feche o arquivo DFW.xml;

- Agora execute o executável em Delphi que baixamos a alguns passos anteriores;

- Clique em Impressora Fiscal;

- Na tela com vários menus, siga os passos: Menu Relatórios Fiscais -> Leitura X -> Método iLeituraX_ECF_Daruma. Veja a imagem de exemplo abaixo:


- Se você recebeu uma mensagem dizendo “Operação Realizada com sucesso”, sua Leitura X foi impressa. Caso contrário, siga os passos anteriores, pois faltou algum detalhe. Veja abaixo, a mensagem dada quando a Leitura X é impressa:


Configurando o xml via programação:
- Para alterar a chave porta e velocidade usando métodos da DFW.dll você deve fazer assim:

Delphi
//Declaração
function
regAlterarValor_Daruma(pszPathChave:string, pszValor:string):Integer; StdCall; External ''DarumaFramework.dll'';

//Chamada de Métodos
iRetorno := regAlterarValor_Daruma(''ECF\PortaSerial'',''COM1'');
iRetorno := regAlterarValor_Daruma(''ECF\Velocidade'',''9600'');



C#
//Declaração
[DllImport("DarumaFrameWork.dll")]
public static extern int regAlterarValor_Daruma(string pszChave, string pszValor);

//Chamada de Métodos
iRetorno = regAlterarValor_Daruma(@"ECF\PortaSerial", “COM1”);
iRetorno = regAlterarValor_Daruma(@"ECF\Velocidade", “9600”);


Visual Basic 6
//Declaração
Public Declare Function regAlterarValor_Daruma Lib "DarumaFrameWork.dll" (ByVal pszChave As String, ByVal pszValor As String) As Integer

//Chamada de Métodos
iRetorno = regAlterarValor_Daruma("ECF\PortaSerial", “COM1”)
iRetorno = regAlterarValor_Daruma("ECF\Velocidade ", “9600”)


Teste com a DarumaFramework.dll automático
Por fim, iremos usar o executável em Delphi para testar a comunicação através de comandos apenas. Vou aproveitar para mostrar por linha de código como fazer essas configurações usando diferentes linguagens de programação.

- Baixe o exemplo em Delphi, disponível neste link:
http://www.desenvolvedoresdaruma.com.br/home/downloads/Site_2011/Exemplos/DarumaFramework_Delphi7exe.zip

- Extraia e execute-o;

- Clique no botão Impressoras Fiscais, provavelmente você receberá a mensagem de Impressora Desligada. Fique tranquilo!

- Se aparecer a mensagem clique em OK e prossiga, se não aparecer significa que sua impressora já está comunicando;

- Clique no Menu Retornos e Status do ECF;

- Na janela que abriu, siga os passos: Clique em Métodos Especiais -> Método eBuscarPortaVelocidade_ECF_Daruma;

- Aguarde o retorno do método, se mostrar impressora Desligada revise os passos do Teste Manual e certifique-se de que está funcionando por ele. Caso tenha mostrado “Operação Realizada com Sucesso”, basta prosseguir.

- Na tela com vários menus, siga os passos: Menu Relatórios Fiscais -> Leitura X -> Método iLeituraX_ECF_Daruma. Veja a imagem de exemplo abaixo:





- Feito! Sua impressora está comunicando e a Leitura X foi impressa. Caso não tenha funcionado, revise os passos do Teste Manual.

Equalizando as velocidades via programação:
- Abaixo estão os exemplos de como programar usando este método “mágico” da DarumaFramework;

Delphi
//Declaração
function eBuscarPorta_ECF_Daruma(): Integer; StdCall; External ''DarumaFramework.dll'';

//Chamada de Métodos
Int_Retorno := eBuscarPortaVelocidade_ECF_Daruma();

C#
//Declaração
[DllImport("DarumaFrameWork.dll")]
public static extern int eBuscarPortaVelocidade_ECF_Daruma();

//Chamada de Métodos
iRetorno = eBuscarPortaVelocidade_ECF_Daruma();

Visual Basic 6
//Declaração
Public Declare Function eBuscarPortaVelocidade_MODEM_DarumaFramework Lib "DarumaFrameWork.dll" () As Integer

//Chamada de Métodos
iRetorno = eBuscarPortaVelocidade_ECF_Daruma()





Dicas
Caso você tenha feito os procedimentos acima e mesmo assim não teve sucesso na comunicação, siga as dicas abaixo:
- Não usar porta serial na porta fisco;

- Não deixar o número da porta superior a COM5. Sendo assim, use COM1, COM2, COM3, COM4 ou COM5;

- Não conectar o cabo do conversor direto na impressora fiscal Daruma;

- Verificar se o cabo serial é da Daruma;

- Dar preferência para as entradas USB’s da parte de trás do pc, pois são conectadas diretamente na placa e não são extensão.
Daruma Developer

Daruma Developer

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar