Trabalhando com Impressoras Fiscais em Linguagens 16bits/DOS

Fórum sobre ferramentas de apoio à programação (Clipper/[x]Harbour)

Moderador: Moderadores

daruma developer
Usuário Nível 2
Usuário Nível 2
Mensagens: 51
Registrado em: 26 Ago 2011 11:51
Localização: São José dos Campos - SP

Trabalhando com Impressoras Fiscais em Linguagens 16bits/DOS

Mensagem por daruma developer »

Olá Pessoal,
Hoje venho falar para vocês sobre Observer2, que é uma ferramenta que facilita muito a vida dos desenvolvedores, e que seu uso pode proporcionar um desenvolvimento mais rápido em plataformas diversas.
Observer2 é um driver da Daruma voltado para as linguagens DOS/ 16 bits ou Linguagens que não conseguem chamar a DarumaFramework.dll diretamente.
Podemos dizer que o Observer2 é como se fosse uma “ponte” de comunicação entre sua aplicação e a DarumaFramework.dll.
O Observer2 trabalha com a troca de arquivos que circulam pela sua pasta, e como o próprio nome diz, o mesmo é um Observador desta pasta.
É muito tranquilo criar um “arquivo.cmd” e salvar em um diretório, por isso o Observer2 se tornou principalmente para os programadores 1bits, uma ferramenta muito pratica e útil.
Por default o arquivo para o envio de comandos para a pasta mapeada, chama-se Daruma.cmd e o arquivo para recebimento de resposta é Daruma.ret, ambos também por default são escritos no diretório raiz C:\, porem os diretórios e os nomes dos arquivos mapeados é algo configurável.
Lembrando que o Observer2 deve ser minimizado e constar na barra de tarefas em perfeita execução para que possa mapear a pasta do arquivo de entrada!

Imagem

Vamos ver na prática como o Observer2 funciona:

C#:
Criação do Daruma.cmd (Leitura X)

private void button1_Click(object sender, EventArgs e)
{


string nome_arquivo = "C:/Daruma.tmp";
string nome_arquivo2 = "C:/Daruma.cmd";
//Criei 2 variáveis uma com nome temporário, e outra para for atribuir para o .cmd

if (!System.IO.File.Exists(nome_arquivo))
System.IO.File.Create(nome_arquivo).Close();
//verifico se já existe algum arquivo com este nome criado

System.IO.TextWriter arquivo = System.IO.File.AppendText(nome_arquivo);
arquivo.WriteLine("1072;");

//abro o arquivo tmp e em seguida insiro o comando da Leitura X.
arquivo.Close();

//fecho o arquivo

System.IO.File.Copy(nome_arquivo, nome_arquivo2);
// transformo o arquivo tmp, e um arquivo .cmd


System.IO.File.Delete(nome_arquivo);
System.IO.File.Delete(nome_arquivo);
//Deleto o arquivo temporário

}
}
}

Leitura dos retornos (Daruma.ret)


private void button1_Click(object sender, EventArgs e)
{
string nome_arquivo = "C:/Daruma.ret";
//Criei o uma veriavel amazenando o nome do arquivo
System.IO.StreamReader arquivo = new System.IO.StreamReader(nome_arquivo);

string linha = "";

while (true)
{
linha = arquivo.ReadLine();
if (linha != null)
{
string[] DadosColetados = linha.Split(';');
GridView1.DataSource = DadosColetados;
}
else
break;
}
//Nos trecho acima fiz a leitura do daruma.ret que foi criado pelo observer2 e joguei em uma caixa de lista.

}
}

}

Viram como é simples, foi só criar o Daruma.cmd e salvar no diretório mapeado pelo Observer2, e pronto.

Exemplo de um Daruma.cmd que emitirá um cupom fiscal:

1002; Abre Cupom(Padrão)
1005;N1;250;78960037045;Bolacha; Vende Item
1005;N1;250;78960037045;Bolacha; Vende Item
1005;N1;250;78960037045;Bolacha; Vende Item
1017; Totalizar (Padrão)
1022; Efetuar Forma Pgto (Padrão)
1025; Encerrar Cupom (Padrão)

O Observer2 utiliza a darumaframework.dll para se comunicar com o ECF, Impressora DUAL, TA2000, e o Modem.
É isto ai! Ela trabalha também com os demais produtos, para testarmos e termos como base os comandos podemos utilizar o “Testar Observer” que é uma aba no próprio aplicativo do Observer como abaixo.

Imagem

O Observer2 por trabalhar com a camada “darumaframework.dll” e utiliza também o “darumaframework.xml” que é o registro onde a dll busca informações operacionais, como por exemplo: Velocidade, Porta, Arredondar/Truncar.
Saiba Mais: http://bit.ly/pIbCLR

Agora é só colocar em pratica!

Link do Observer2:
http://www.desenvolvedoresdaruma.com.br ... er_Lin.zip

Link da DarumaFramework(Atualizada):
http://www.desenvolvedoresdaruma.com.br ... rk_DLL.zip

Ai vai a dica!
Um abraço, e até a próxima!
Editado pela última vez por Toledo em 05 Set 2011 15:30, em um total de 1 vez.
Razão: O presente tópico foi movido da seção CA-Clipper, uma vez que seu conteúdo não tem relação com os objetivos daquela seção, onde só podem constar dúvidas técnicas de programação diretamente relacionadas com o Clipper.
Social Daruma Developer Network | Integração e Desenvolvimento - Daruma Developers Community | Integração com a Comunidade de Desenvolvedores | Daruma nas Redes Sociais |
Twitter: @darumadeveloper | Facebook: http://www.facebook.com/pages/Daruma-De ... 0316809400 | LinkedIn: http://linkd.in/oNXnN4 | Nosso Site: www.desenvolvedoresdaruma.com.br | Channel9: http://www.youtube.com/darumadeveloper
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Trabalhando com Impressoras Fiscais em Linguagens 16bits/DOS

Mensagem por fladimir »

Agradecemos a colaboração....
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Responder