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

Parceiros desenvolvedores, o escovando bits de hoje é sobre o inicio de desenvolvimento com o Modem Daruma. Para quem ainda não conhece o modem Daruma, vamos ter uma introdução do produto. O Min 210, modem Daruma, tem duas versões, Min 210 A - versão que utiliza comunicação serial e o Min 210 B - versão que utiliza USB como meio de comunicação. As duas versões( Min 210 A e B ) possuem duas bandejas quadriband para chips de operadoras, enviam e recebem sms, fazem comunicação GPRS, conexão Dial-up e conexão CSD. Resumo das funcionalidades:

Funcionalidades do Modem Daruma
  Min 210 A Min 210 B
Comunicação Serial USB
Bandeja 2 chips 2 chips
Quadriband Sim Sim
Envia SMS Sim Sim
Recebe SMS Sim Sim
GPRS Sim Sim
CSD Sim Sim
Dial-up Sim Sim

O modem Daruma é uma solução diferencial que pode ser integrada em seu PDV, isso mesmo o modem pode ser usado no PDV! Acompanhe os cases:

  • Case 1 de Integração PDV x Modem – Mensagens promocionais
    O cliente poderá receber sms com novidades e promoções do estabelecimento comercial. O modem Daruma consegue enviar sms a cada 4 segundos, rápido né?!
  • Case 2 de Integração PDV x Modem – Mensagens após o Cupom Fiscal
    Após a emissão do cupom fiscal, que já é feito pelo seu sistema hoje, o cliente receberá um sms com os detalhes do cupom fiscal. Qual o valor da compra, quantos itens foram vendidos ou qual o número do cupom, este detalhe é contigo.
  • Case 3 de Integração PDV x Modem – Emitindo Cupom Fiscal com o Modem Daruma
    Você pode dar uma excelente experiência a seu cliente, instrua-o a enviar sms para o modem. Desta maneira você desenvolvedor poderá receber este sms de seu cliente e emitir cupons fiscais através deste sms. Exemplo: Cliente envia a palavra “ECF” para o modem, sua aplicação interpreta este SMS e emite um cupom fiscal com o produto “Impressora Fiscal Urmet Daruma”.

As principais funcionalidades do modem são enviar e receber sms, neste escovando bits vamos aprender como comunicar com o modem, enviar e receber sms usando a DarumaFramework. Estas etapas serão feitas em Delphi, porém você pode fazer download dos exemplos em outras linguagens, veja:
Visual Basic 6: http://bit.ly/11lhaVP
C#.Net: http://bit.ly/170mDd7
VB.Net: http://bit.ly/11lh80a
Java: http://bit.ly/16kWLJp
Qt/C++: http://bit.ly/12cTmeq
PHP: http://bit.ly/10YegGv

Vamos lá!!

  • O primeiro passo é abrir a IDE de sua preferência. Vamos fazer com Delphi 7, afinal é a linguagem mais usada pelos escovadores de bits. No final do Escovando, será mostrado o código que usamos em Delphi 7 convertido para C#, Visual Basic 6, VB.Net e Java.
  • Após abrir a IDE, salve seu projeto na pasta de sua escolha. No exemplo, será salvo em “C:\Escovando\”.
  • Projeto salvo!
  • Clique aqui, faça o download da DarumaFramework e salve dentro da pasta recém criada, junto com o Projeto.
    Garanta que a DarumaFramework.dll está dentro da pasta de seu projeto.
  • Volte ao Delphi, pois agora vamos criar um botão chamado “Comunicação”.
    Veja como ficou:
  • Dê um duplo clique no botão e abra a source page.
    Veja o exemplo:
  • Abaixo de “implementation” coloque as declarações dos métodos que vamos usar.

Métodos:

//Busca a porta e a velocidade do modem de forma automática, ou seja, este método FAZ a comunicação acontecer.

function eBuscarPortaVelocidade_MODEM_DarumaFramework(): Integer; StdCall; External 'DarumaFramework.dll'

//Envia sms

function tEnviarSms_MODEM_DarumaFramework(sNumeroTelefone: String; sMensagem: String ): Integer; StdCall; External 'DarumaFrameWork.dll'

// Recebe o sms

function rReceberSms_MODEM_DarumaFramework(sIndiceSMS: String; sNumFone: String; sData: String; sHora: String; sMsg: String): Integer; StdCall; External 'DarumaFrameWork.dll'

  • Dentro do botão “procedure TForm1.Button1Click(Sender: TObject);”, insira o seguinte código:

Var

//Variável inteira para receber os retornos dos métodos.

iRetorno: Integer;

Veja como ficou:

  • Variável declarada. Agora faça a chamada do método eBuscarPortaVelocidade_MODEM_Daruma.
    Veja o exemplo:
  • O botão “Comunicação” está quase pronto, vamos colocar um “if” no código para saber o resultado da execução do método.

if(IntToStr(iRetorno) = '1')then
    begin
      ShowMessage('Comunicação com o modem establecida');
    end
else
    begin
      ShowMessage('Verifique seu modem, pois a comunicação nã foi feita.');
    end;

Veja como ficou:

  • Salve o projeto e execute-o. A tecla de atalho para executar é F9, use-a.
    Veja como ficou o projeto rodando:
  • Clique no botão “Comunicação” e veja a mágica acontecer.
    Veja a mensagem
  • Isso significa que a DarumaFramework encontrou a porta e velocidade do modem de forma automática, sem precisar definir parâmetros para o método.
  • Agora o modem já está comunicando. Saia do modo de execução e volte para o modo design. A tecla de atalho é Ctrl + F2.
  • Crie outro botão, desta vez o caption dele será “Envio de SMS”. - Aproveite para criar duas caixas de texto, uma para receber o número do celular e outra para receber a mensagem a ser enviada pelo modem.
    Veja como ficou:
  • Agora vamos pegar os valores da caixa de texto e em seguida passar como parâmetro no método tEnviarSms_MODEM_DarumaFramework.
  • Dentro do botão “procedure TForm1.Button2Click(Sender: TObject);” crie as variáveis.

var

//Variável inteira para receber os retornos dos métodos.

iRetorno: Integer;

//Variáveis string para receber os valores das caixas de texto

sTelefone: String;

sMensagem: String;

Veja como ficou:

  • Agora vamos inserir o código para obter os dados das caixas de texto e em seguida, enviar o sms.

//Variaveis recebendo dados da caixa de texto

sTelefone := Edit1.Text;

sMensagem := Edit2.Text;

//Enviando sms

iRetorno := tEnviarSms_MODEM_DarumaFramework(sTelefone, sMensagem);

Veja como ficou:

  • Vamos fazer um if, apenas para verificar o retorno e mostrar uma mensagem na tela, mostrando se a mensagem foi enviada ou não.

if(IntToStr(iRetorno) = '1')then
    begin
      ShowMessage('Comunicação com o modem establecida');
      end
else
    begin
      ShowMessage('Verifique seu modem, pois a comunicação nã foi feita.');
    end;

Veja como ficou:

  • Salve o projeto e rode-o. Ctrl + s para salvar e F9 para rodar.
  • Veja o projeto em execução:
  • Coloque seu celular no campo “Número do celular:”, no formato xx98765432. No campo “Mensagem de Texto:” digite uma mensagem para receber por sms.
  • Após preencher os campos, clique no botão “Envio de SMS” para enviar o sms.
  • Você receberá uma mensagem informando se a mensagem foi enviada ou não.
    Veja o exemplo:
  • Após brincar com a aplicação, pressione Ctrl + F2 para sair do modo de execução.
  • Agora é a hora de recebermos um sms usando o modem Daruma e nossa nova aplicação. Vamos lá!!
  • Vá para o modo design e crie um novo botão com o caption “Receber SMS”.
  • Após criar o botão, crie 5 caixas de texto para receber os dados do método rReceberSms_MODEM_DarumaFramework.
    Veja como ficou:
  • Dê um duplo clique no botão “Receber SMS” para abrir a source page.
  • Vamos criar variáveis para receber os dados do método rReceberSms_MODEM_DarumaFramework.
  • Crie as variáveis abaixo do botão “procedure TForm1.Button3Click(Sender: TObject);”

var

//Variável inteira para receber os retornos dos métodos.

iRetorno: Integer;

//Variáveis string para receber os valores das caixas de texto

sIndice: String;

sTelefone: String;

sData: String;

sHora: String;

sMensagem: String;

Veja como ficou:

Agora vamos definir tamanho para as variáveis do tipo String que nós criamos.

sIndice:= StringOFChar(#0,3);
sTelefone:= StringOFChar(#0,14);
sData:= StringOFChar(#0,9);
sHora:= StringOFChar(#0,9);
sMensagem:= StringOFChar(#0,140);

Veja como ficou.

  • O próximo passo é executar o método e em seguida mostrar os dados obtidos com ele nas caixas de texto criadas.

//Recebendo sms
iRetorno := rReceberSms_MODEM_DarumaFramework(sIndice, sTelefone, sData, sHora, sMensagem);
//Mostrando os dados nas caixas de texto
Edit3.Text := sIndice;
Edit4.Text := sTelefone;
Edit5.Text := sData;
Edit6.Text := sHora;
Edit7.Text := sMensagem;

Veja como ficou.

  • Salve o projeto e execute-o.
  • Envie um sms para seu chip que está no modem.
  • Aperte o botão “Receber SMS” e veja o resultado.
    Veja o exemplo abaixo:
  • Aplicação concluída!!! Agora vocês sabem como desenvolver uma aplicação com modem Daruma.

“... Eu não desenvolvo em Delphi, como vai ficar minha aplicação?”

  • Fique tranquilo escovador de bits!! Abaixo estão os códigos para os desenvolvedores de C#.Net,
    Visual basic 6, VB.Net e Java.

C#

//Declarações

[DllImport("DarumaFrameWork.dll")]
public static extern int eBuscarPortaVelocidade_MODEM_Daruma();
[DllImport("DarumaFrameWork.dll")]
public static extern int tEnviarSms_MODEM_DarumaFramework(System.String sNumeroTelefone, System.String sMensagem);
[DllImport("DarumaFrameWork.dll")]
public static extern int rReceberSms_MODEM_DarumaFramework(StringBuilder sIndiceSMS, StringBuilder sNumFone, StringBuilder sData, StringBuilder sHora, StringBuilder sMsg);

//Chamada de Métodos Comunicação

iRetorno = eBuscarPortaVelocidade_MODEM_Daruma();

//Chamada de Métodos Envio de sms

iRetorno = tEnviarSms_MODEM_DarumaFramework(“1298765432”,”Mensagem de texto”);

//Chamada de Métodos Recebimento de sms

StringBuilder sIndice= new StringBuilder();
StringBuilder sTelefone = new StringBuilder();
StringBuilder sData= new StringBuilder();
StringBuilder sHora = new StringBuilder();
StringBuilder sMensagem = new StringBuilder();
iRetorno = rReceberSms_MODEM_DarumaFramework(sIndice, sTelefone, sData, sHora, sMensagem);

Visual Basic 6

//Declarações

Public Declare Function eBuscarPortaVelocidade_MODEM_DarumaFramework Lib "DarumaFrameWork.dll" () As Integer
Public Declare Function tEnviarSms_MODEM_DarumaFramework Lib "DarumaFrameWork.dll" (ByVal sNumeroTelefone As String, ByVal sMensagem As String) As Integer
Public Declare Function rReceberSms_MODEM_DarumaFramework Lib "DarumaFrameWork.dll" (ByVal sIndiceSMS As String, ByVal sNumFone As String, ByVal sData As String, ByVal sHora As String, ByVal sMsg As String) As Integer

//Chamada de Métodos Comunicação

iRetorno = eBuscarPortaVelocidade_MODEM_Daruma()

//Chamada de Métodos Envio de sms

iRetorno = tEnviarSms_MODEM_DarumaFramework(“1298765432”,”Mensagem de texto”)

//Chamada de Métodos Recebimento de sms

sIndice = Space(4)
 sTelefone = Space(14)
 sData = Space(9)
 sHora = Space(9)
 sMensagem = Space(140)
iRetorno = rReceberSms_MODEM_DarumaFramework(sIndice, sTelefone, sData, sHora, sMensagem)

VB.Net

//Declarações

<DllImport("DarumaFrameWork.dll")> _
Public Shared Function eBuscarPortaVelocidade_MODEM_DarumaFramework() As Integer
End Function
<DllImport("DarumaFrameWork.dll")> _
Public Shared Function tEnviarSms_MODEM_DarumaFramework(sNumeroTelefone As System.String, sMensagem As System.String) As Integer
End Function
<DllImport("DarumaFrameWork.dll")> _
Public Shared Function rReceberSms_MODEM_DarumaFramework(ByVal sIndiceSMS As StringBuilder, ByVal sNumFone As StringBuilder, ByVal sData As StringBuilder, ByVal sHora As StringBuilder, ByVal sMsg As StringBuilder) As Integer
End Function

//Chamada de Métodos Comunicação

iRetorno = eBuscarPortaVelocidade_MODEM_Daruma()

//Chamada de Métodos Envio de sms

iRetorno = tEnviarSms_MODEM_DarumaFramework(“1298765432”,”Mensagem de texto”)

//Chamada de Métodos Recebimento de sms

Dim sIndice As New StringBuilder(4)
Dim sTelefone As New StringBuilder(14)
Dim sData As New StringBuilder(9)
Dim sHora As New StringBuilder(9)
Dim sMensagem As New StringBuilder(140)
iRetorno = rLerSmsConfirmacao_MODEM_DarumaFramework(StrDadosReducaoZ)

Java

//Importações

import br.com.daruma.jna.MODEM;

//Chamada de Métodos Comunicação

iRetorno = MODEM.eBuscarPortaVelocidade();

//Chamada de Métodos Envio de sms

iRetorno = MODEM.tEnviarSms(“1298765432”,”Mensagem de texto”);

//Chamada de Métodos Recebimento de sms

char[] sIndice = new char[4];
char[] sTelefone = new char[14];
char[] sData = new char[9];
char[] sHora = new char[9];
char[] sMensagem = new char[140];
iRetorno = MODEM.rReceberSms(sIndice, sTelefone, sData, sHora, sMensagem);

Escovadores de Bits, o que nós queríamos mostrar a vocês era isso. Conseguiu fazer tudo? Aposto que conseguiu!

Assista nosso vídeo, mostrando passo a passo como fazer iniciar o desenvolvimento com o modem Daruma:

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+