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

Olá Escovadores de Bits,

Hoje vamos aprender todos os passos para iniciar uma aplicação JAVA usando a DarumaFrameworkJNA, uma camada alto nível usada para integrar sua aplicação com a DarumaFramework.dll (para Windows)/DarumaFrameWork.so (Para Linux). O motivo da existência do wrapper DFW JNA é claro, sem ele não conseguiríamos acessar a DarumaFramework.dll (para Windows)/DarumaFrameWork.so (Para Linux).

E de que adianta ter uma dll para Windows, ter um JNI ou JNA, mas quando vai pra Linux os métodos são diferentes, os comandos são diferentes? NADA! Absolutamente nada, pois é esperado que quando se programa em Java, você deseja rodar em Windows e Linux, certo? Muito bem! Pra isso acontecer nada de “IF” no código, codifique uma vez só. Isso só é possível quando o baixo nível da dll e so forem idênticas. Em nosso caso, Daruma, são idênticas porque foi tudo escrito em C/C++ ANSI Multiplataforma, e o JNA já é Multiplataforma por natureza.

Muitos desenvolvedores tem em mente que o desenvolvimento com a camada JNA é um processo complicado, difícil ou propício a erros, mas na boa mesmo? É muito fácil! Diria que é mais fácil desenvolver com esta camada do que desenvolver com Delphi. Acredite, é bem simples. Delphi está sendo usado como exemplo para as linguagens que chamam dll diretamente, o que não é o caso do Java, por isso é necessário o wrapper JNA.

Para melhor entendimento, veja o esquema abaixo mostrando o funcionamento da aplicação com JNA.

Apesar da solução JAVA possui um caminho a mais, isso não dificulta em nada o processo de desenvolvimento e é exatamente isso que vamos ver hoje, o quão fácil é o desenvolvimento com a camada JNA. Notem que este escovando fala somente de Windows, o escovando seguinte será só sobre Linux. A ideia é a seguinte:

  • Iniciamos o desenvolvimento com JNA no Windows
  • Levamos o projeto para uma máquina Linux
  • Configuramos e executamos o mesmo projeto.

Você não entendeu errado!!! O seu projeto Windows irá rodar perfeitamente no Linux, sem a necessidade de compilar novamente, esse é o conceito adotado pela DarumaFramework: Multiplataforma.

Isso provará mais uma vez que a Daruma provê soluções multiplataforma. Acompanhem Escovadores!!!

Configuração DarumaFramework.dll
  • Vamos configurar a DarumaFramework.dll(Hyperlink para este endereço http://bit.ly/10oartG) no diretório padrão exigido pela camada JNA.
  • Clique aqui e faça o download do pacote da DarumaFramework.dll.
  • Após extrair, copie os arquivos “DarumaFramework.dll”, “lebin.dll” e “LeituraMFDBin.dll”.
  • Abra o diretório “C:\Windows\System32\” e cole as dlls.
  • Pronto! DLLs no diretório correto, agora basta usá-las.
Iniciando o projeto Java
  • Abra a IDE de sua preferencia para iniciarmos a aplicação com JNA. Os exemplos dados serão feitos com Netbeans.
  • Clique no menu “Arquivo” -> submenu “Novo Projeto”.
  • Na janela que foi aberta selecione a categoria “Java” e em projetos selecione “Aplicação Java”.
    Exemplo:
  • Após clicar no botão “Próximo”, preencha o campo “Nome do Projeto:” e se desejar, altere o caminho de gravação no campo “Localização do Projeto:”.
    Exemplo
  • Clique no botão “Finalizar” para criar o projeto. Importando a camada JNA
  • Seu projeto será usado até o final deste escovando. Clique aqui e faça o download da camada JNA!
  • Após extrair o pacote JNA, abra a pasta “JNA”, copie os três .jars e cole dentro da pasta de seu projeto recém criado.
    Exemplo
  • Clique com o botão direito em cima da pasta “Bibliotecas” que está localizada dentro de seu projeto e vá na opção “Adicionar JAR/Pasta”.
    Exemplo
  • Uma nova janela será aberta, vá até o diretório de seu projeto e selecione os três .jars que nós colamos recentemente. Jars: DarumaFrameworkJNA.jar, jna.jar e platform.jar.
    Exemplo
  • Clique no botão “Abrir” para adicionar os arquivos ao projeto.
  • DarumaFrameworkJNA importada!
Iniciando a escovação de bits
  • Em sua IDE, abra o arquivo .java dentro dos “Pacotes de Códigos-Fonte”.
    Exemplo
  • Agora vamos importar o módulo de ECF e Modem em nosso projeto. Isso não quer dizer que você não pode trabalhar com outros módulos, pelo contrário, use todos que precisar.
    Código:
    import br.com.daruma.jna.ECF;
    Import br.com.daruma.jna.MODEM;

    Exemplo
  • Agora insira os comandos dentro do “main”. Clique aqui para fazer o download do Manual DarumaFramework com todos os comandos.
    Estabelecer comunicação com Impressora Fiscal.
    Comando:
    int iRetorno = ECF.eBuscarPortaVelocidade();
    Exemplo
  • Imprimir Cupom fiscal.
    Comandos:
    iRetorno = ECF.iCFAbrirPadrao();
    iRetorno = ECF.iCFVenderResumido("FF", "10,00", "0123456789", "Estojo");
    iRetorno = ECF.iCFTotalizarCupomPadrao();
    iRetorno = ECF.iCFEfetuarPagamentoPadrao();
    iRetorno = ECF.iCFEncerrarPadrao();

    Exemplo
  • Estabelecendo comunicação com o modem.
    Código:
    iRetorno = MODEM.eBuscarPortaVelocidade();
    Exemplo
  • Envia SMS.
    Código:
    iRetorno = MODEM.tEnviarSms("12998765432", "Obrigado por Escovar Bits com a Daruma!");
    Exemplo
  • Aplicação pronta! Não se esqueça de conectar a Impressora fiscal e o modem para testarmos. Testando a aplicação
  • Chegou a grande hora, vamos testar!!
  • O projeto está pronto, lembre-se de conectar sua impressora fiscal e o modem, isso é vital para o funcionamento.
  • Agora vamos compilar. Pressione a tecla de atalho Shift + F11.
    Exemplo
  • Aguarde alguns segundos para concluir a compilação.
  • Execute a aplicação pressionando F6.
    Exemplo
  • O cupom fiscal foi impresso e o sms chegou certo?!

Curtiram o escovando? Aguardem que a continuação dele mostrará a mesma aplicação Java no ambiente Linux.

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+