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!
Vamos ver na prática como o Observer2 funciona:
Criação do Daruma.cmd
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.
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.