Bematech Software Partners

 
  • ago 07 2009

    Edição 47 – Acessando Periféricos – Leitor de Código de Barras

    Caro parceiro,

    Na edição anterior de nosso Flash Tip, vimos como realizar a comunicação do microterminal utilizando uma impressora não fiscal, na qual emitimos algumas linhas de texto através da porta serial COM1. Vimos também como enviar mensagens ao display do cliente (Customer Display), através da porta serial COM2, usando as bibliotecas <NFPrint.h> e <CDisplay.h>, respectivamente.

    Nesta edição, faremos um pequeno complemento da edição anterior. O objetivo será mostrar a captura do código de barras através do leitor, utilizando a biblioteca <Barcode.h>.

    Então, vamos lá!

    Configurando o projeto

    Antes de iniciarmos nosso exemplo, devemos inserir em nosso projeto a biblioteca que irá interpretar as funções do leitor de código de barras. Então, basta inserirmos no início do nosso código a biblioteca #include <Barcode.h>. Precisamos também entrar nas propriedades do projeto e inserimos o vinculo aos recursos da <Barcode.h> – BarcodeReader, conforme sequência ilustrada abaixo:

    img_prop

    A janela abaixo, está dividida em três colunas, na primeira coluna selecionamos a opção: C/C++ Build, na coluna do meio clicamos duas vezes sobre a opção: libraries, em seguida clicamos na opção: Add da terceira coluna.

    Em seguida será exibida uma nova janela para inserção da biblioteca BarcodeReader, simplesmente digitamos na lacuna (conforme ilustrado) e pressione OK nas janelas para confirmar a alteração.

    fig_barcode

    Não podemos esquecer que, para este nosso exemplo, também precisamos inserir a biblioteca para Display do Usuário e a biblioteca Allegro, que irá habilitar os recursos do teclado. Para o uso destas bibliotecas, basta inserirmos no início do nosso código os respectivos includes: #include <UDisplay.h> e #include <allegro.h>. 

    fig_proj

    Após as configurações do projeto, basta copiarmos e colarmos o código abaixo, sendo que temos comentários dentro do código para um melhor entendimento.

    #include <allegro.h>
    #include <UDisplay.h>
    #include <stdio.h>
    #include <Barcode.h>

    int main(void)
    {

      /* instrução necessário para inicializar o a biblioteca allegro */
      if (allegro_init() != 0)
        return 1;

      /* Instala o teclado */
      install_keyboard();

      // Inicializar o display do usuario
      UserDisplayInit();

      // Limpa o display do usario 
      UserDisplayClearAll();

      if (keypressed())
        readkey(); // Flush

      // string usada para armazenar o código de barras, máximo 19 caracteres.
      char codeBuffer[20];

      // Atribui 0 para variável bclength 
      size_t bclength = 0;

      // Realiza a abertura da porta de comunicação.
      if (BarcodeConfig(“SERIAL1″) != BS_SUCCESS) 
        return EXIT_FAILURE;

      // inicializa funções do código de barras 
      BarcodeInit();

      // Resumes the Barcode Reader
      // NOTE: BarcodeInit() must be called before doing this
      BarcodeResume();

      while (1)
      {
        UserDisplayClearAll();

        UserDisplayPrint(1, 1, “Leia o produto:”);
        UserDisplayPrint(2, 1, “Cod:”);

        // Início do Do While, irá sempre monitor código oriundo da porta serial
        do
        {
          // Captura informação da serial – Código que será lido
          memset(codeBuffer,0,sizeof(codeBuffer));
          BarcodeGetCode(codeBuffer, 20,5, &bclength);

          // Irá entrar no if se o valor de codeBuffer for maior que 0 
          if (strlen(codeBuffer) > 0)
          
            // motra código na tela
            UserDisplayPrint(2, 6, codeBuffer);

            // inicializa bclength para que loop continue infinito
            bclength=strlen(codeBuffer);

            // Pausa na impressão 
            readkey();
            UserDisplayClearAll();
          }
        }
        while (bclength == 0);
      }
    }

    Após a compilação de nosso código, e o projeto devidamente alocado no microterminal, teremos o resultado como o exemplo abaixo:

    Leia o produto:
    Cod:

    Na prática, ao passar o produto no leitor de código de barras, automaticamente será apresentado no visor do microterminal o código lido, exemplo:

    Leia o produto:
    Cod:7898907590112

    E, ao pressionarmos <ENTER> no microterminal, teremos as informações do display remontadas aguardando nova leitura de produto, e assim, sucessivamente.

    Com isso, finalizamos mais uma edição de nosso Flash Tip, com Flash-Tip que irão lhe auxiliar nas rotinas de leitura de código de barras no microterminal FIT Integra Bematech.

    Próxima edição:

    Na próxima edição, finalizamos nossa sequência de Flash Tips sobre o FIT Integra, acessando o microterminal remotamente.

    Não perca!

    Até lá e boas implementações!

    Related posts:

    1. Edição 34 – Realizando a primeira transação TEF Caro Parceiro, Agora que já conhecemos um pouco sobre a...
    2. Transferência Eletrônica de Fundos (T.E.F.) – Discado – Passo 5/10 Cancelando uma transação TEF No passo anterior, vimos as rotinas...
    3. Bematech FlashTip – 20a. Edição – Conhecendo a BIOS, BOOT, Segmentos de Memória, SDK e o VisualSDK Builder Caro parceiro, Como este é o primeiro Flash-Tip do ano,...
    4. Edição 64 – Rateio no ECF Prezado parceiro, Dando continuidade a série de edições de nossos...
    5. Edição 83 – Analisando os Flags Fiscais Caro Partner e Desenvolvedor Bematech,  Nesta edição de nosso Flash...

     

1 Comentário

  • 19 de fevereiro de 2010 às 1:22

    Comentário by Marcelo

    Realmente esse site esta de parabéns. Este topico ajudou bastante.

    Novamente parabéns pela qualidade do topico.

    Abraços

Deixe um comentário