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:

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.

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>.
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:
- Edição 34 – Realizando a primeira transação TEF Caro Parceiro, Agora que já conhecemos um pouco sobre a...
- Transferência Eletrônica de Fundos (T.E.F.) – Discado – Passo 5/10 Cancelando uma transação TEF No passo anterior, vimos as rotinas...
- 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,...
- Edição 64 – Rateio no ECF Prezado parceiro, Dando continuidade a série de edições de nossos...
- Edição 83 – Analisando os Flags Fiscais Caro Partner e Desenvolvedor Bematech, Nesta edição de nosso Flash...
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