Business - Automação Comercial

Comunicar com equipamentos Daruma em linguagens 16bits e DOS

Veja como utilizar o driver Observer2 para facilitar o acesso a DarumaFramework.dll em linguagens 16bits.

por Daruma Developer



Olá pessoal,
Hoje iremos conhecer um pouco melhor sobre o Observer2, que é uma ferramenta que facilita muito a vida dos desenvolvedores e que seu uso pode proporcionar um desenvolvimento mais rápido em plataformas 16bits.

Observer2 é um driver da Daruma voltado para as linguagens DOS/16 bits ou linguagens que não conseguem chamar a DarumaFramework.dll diretamente. Ele trabalha com a troca de arquivos que circulam pela sua pasta, e como o próprio nome diz, é um Observador da mesma.

Podemos dizer que esse driver é como uma “ponte” de comunicação entre sua aplicação e a DarumaFramework.dll.

É muito tranquilo criar um “arquivo.cmd” e salvar em um diretório específico, por isso o Observer2 se tornou principalmente para os programadores 16bits, uma ferramenta muito pratica e útil.

Por default o arquivo que criamos na pasta mapeada chama-se Daruma.cmd e o arquivo para recebimento da resposta destes comandos é o Daruma.ret, ambos também por default são escritos no diretório raiz C:\, porém os diretórios e os nomes dos arquivos mapeados são configuráveis.

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!



Figura 1.

Vamos ver na prática como o Observer2 funciona, abaixo é demonstrada a manipulação do arquivo Daruma.cmd em Clipper.


static function COMUNICA_COM_ECF(VAR_COMANDO_ECF)
/*A variável VAR_COMANDO_ECF é quem armazena o comando a ser enviado ao Daruma.cmd*/

Delete File("c:\DARUMA.CMD")
Delete File("c:\STATUS.TXT")
Delete File("c:\RETORNO.TXT")
Delete File("c:\DARUMA.RET")

/*Deleta arquivos antigos caso exista*/


/*Escreve comandos no Arquivo*/
   H_Handle := fcreate("c:\DARUMA.CMD" )
   FWrite( H_Handle , @VAR_COMANDO_ECF, Len( VAR_COMANDO_ECF) )
   FClose( H_Handle  )
   
   VAR_ESPERA:=1
/*Espera que o Arquivo de Resposta Seja Criado*/
   do while VAR_ESPERA > 0
	if File("c:\DARUMA.RET")
	   VAR_ESPERA :=0
	else
	   loop
	end if
   enddo	

   RET_TAM:=0
/*Espera o Arquivo ter um conteúdo*/
   do While RET_TAM = 0

   	H_Handle := Fopen("c:\DARUMA.RET")
   	RET_TAM =  FSeek( H_Handle, 0, FS_END )
   	Fclose(H_Handle)
	
   enddo


   H_Handle:= Fopen("c:\DARUMA.RET")

   POS_RET = 0
   VAR_RET_CMD=" "
   VAR_AUX =" "

   if RET_TAM > 0
      for POS_RET = 1 to RET_TAM - 1
         fread( H_Handle, @VAR_AUX, 1)
         if VAR_AUX <> chr(13)
           VAR_RET_CMD= VAR_RET_CMD + VAR_AUX
    	 end if
      next
   endif   
   fclose(H_Handle)
 	
   set color to n/bg
   @ 23,0 clear to 23,80
   @23,0 say "Comando Enviado: " + VAR_COMANDO_ECF
   @24,0 say "Retorno: " + VAR_RET_CMD
   VAR_BUFFER_RETORNO:=VAR_RET_CMD

   if VAR_ESPERARTECLA <> 1 
        inkey(0)
   end if	
  
return NIL
Para simplificar mais ainda, abaixo é demonstrada a criação do Daruma.cmd pelo DOS (Prompt de Comando).

Abra o Prompt de Comando clicando em: Iniciar> Executar: “cmd”.
Já na janela do Prompt digite o comando: “EDIT” em seguida aperte a tecla ENTER para que seja aberto o editor de texto.



Figura 2.

Quando aberto o editor de texto digite o comando ou a sequência de comandos desejada

Abaixo é demonstrada a sequência de comandos para a emissão de um Cupom Fiscal.

Os comandos podem ser enviados tanto através do índice quanto através do próprio nome da função, como é feito abaixo.

Figura 3.

Consulte o índice de cada função em nosso Help Online:
Clique aqui

O índice pode ser visualizado bem abaixo do nome de cada função.


Figura 4.

Após ter digitado o comando desejado, clique em FILE> SAVE AS...
Salve com o nome Daruma.cmd(padrão), ou conforme está a configuração de seu Observer2.



Figura 5.

Viu só como é simples?! Foi só criar o Daruma.cmd, salvar no diretório mapeado pelo Observer2, e pronto.

O Observer2 utiliza a DarumaFramework.dll para se comunicar com as Impressoras Fiscais, Mini-Impressoras, TA2000, e 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 Observer2 como abaixo.



Figura 6.

O Observer2 por trabalhar com a camada “darumaframework.dll” 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

Agora é só colocar em pratica!

Link do Observer2:
http://www.desenvolvedoresdaruma.com.br/home/downloads/Site_ 2011/Drivers/DarumaFrameworkObserver_Win.zip

Link da DarumaFramework(Atualizada):
http://www.desenvolvedoresdaruma.com.br/home/downloads/Site_ 2011/DLL_SO/DarumaFrameWork_DLL.zip

Um abraço, e até a próxima!
Daruma Developer

Daruma Developer