Business - Automação Comercial

Conhecendo a BemaSB32.dll

Agora, vamos conhecer a interface que iremos utilizar na comunicação do microterminal FIT Básico Bematech em nosso aplicativo.

por Iohannes Nakatani



Agora, vamos conhecer a interface que iremos utilizar na comunicação do microterminal FIT Básico Bematech em nosso aplicativo. Ao longo desta edição de nosso Flash-Tip, iremos entender a dll BemaSB32, sua configuração e suas principais funções.

Antes de qualquer implementação, é importante sabermos o que é a BemaSB32.dll, principalmente para quem ainda esta iniciando no desenvolvimento de microterminais para Automação Comercial.

A BemaSB32 é uma dll de alto-nível que foi desenvolvida para facilitar e dar rapidez na implementação e na comunicação com o microterminal FIT Básico Bematech.

As funções que estão na dll são para o controle do microterminal, permitindo trabalhar com mensagens em seu display, receber informações do teclado e periféricos que estejam conectados nas portas seriais dele.

Configurando a BemaSB32.dll

A BemaSB32.dll possui um arquivo de configuração chamado BemaSB32.ini, onde nos dá algumas opções de configuração:

Seção
Chave
Significado
[FIT] Protocolo= Esta chave possui o valor 0 (zero) como default. Nela podemos configurar o protocolo no qual a BemaSB32.dll irá enviar os comandos ao microterminal. O valor 0 é para deixar o protocolo em VT100-STX/ETX e o valor 1 para o protocolo em VT100-ESC.
[Terminais] Porta= Estabelece a porta para a conexão dos microterminais. O número da porta deverá ser o mesmo que colocamos na configuração de hardware do FIT Básico.
(n=) "n" é um número de identificação do microterminal. Essa identificação será usada por algumas funções da dll durante a comunicação. O número da identificação pode variar de 0 a 128. Esta identificação deverá ser seguida do endereço IP do microterminal.

Importante: A BemaSB32.dll somente está disponível para o microterminal FIT Basico em modo "Client", conforme as configurações apresentadas no Flash-tip anterior. Ela deverá ficar na pasta do aplicativo, juntamente com seu arquivo de configuração BemaSB32.ini.

Exemplo de conteúdo do arquivo BemaSB32.ini:

[FIT]
Protocolo=0

[Terminais]
Porta=9100
0=10.10.101.116
1=10.10.101.120
2=10.10.101.121

Funções da BemaSB32.dll

A dll possui funções para o controle do microterminal FIT Básico. Estas funções nos dá a possibilidade de controlar todo o hardware, como enviar mensagens ao display, alem das informações capturas do teclado e dos equipamentos conectados em suas portas seriais.

Vamos conhecê-las:

Função Significado
Bematech_FIT_IniciaComunicacao Com esta função iremos iniciar os sockets de comunicação para envio e recebimento de informações entre o microterminal e nosso aplicativo.

Protótipo:
int Bematech_FIT_IniciaComunicacao ( void )

Parâmetros:
Nenhum

Valores de retorno:
1: OK

Observação: Esta função obtém a identificação dos microterminais através do arquivo BemaSB32.ini.
Bematech_FIT_FechaComunicacao Esta função encerra os sockets de comunicação entre o microterminal e nosso aplicativo.

Protótipo:
int Bematech_FIT_FechaComunicacao ( void )

Parâmetros:
Nenhum

Valores de retorno:
1: OK.
0: Erro.
Bematech_FIT_SelecionaProtocolo Seleciona o protocolo de comunicação que deseja usar.

Protótipo:
int Bematech_FIT_SelecionaProtocolo ( int iProtocolo )

Parâmetros:
0 para VT100-STX/ETX ou 1 para VT100-ESC.

Valores de retorno:
1: OK.
-2: Parâmetro inválido.

Observação: O protocolo deve ser idêntico ao configurado nos micro-terminais.
Bematech_FIT_LimpaDisplay Esta função é para limpar o display do microterminal e posicionar o cursor na primeira linha e primeira coluna.

Protótipo:
int Bematech_FIT_LimpaDisplay ( char cTerminal )

Parâmetros:
char: Identificação do microterminal que deseja executar a função.

Valores de retorno:
1: OK.
Bematech_FIT_EscreveDisplay Escreve a mensagem no display do microterminal.

Protótipo:
int Bematech_FIT_EscreveDisplay ( char cTerminal, char *cMensagem )

Parâmetros:
char: Identificação do microterminal que deseja executar a função.
char*: Mensagem a ser escrita no display.

Valores de retorno:
1: OK.
Bematech_FIT_PosicionaCursor Posiciona o cursor no display na linha e coluna informadas. O texto do display não será apagado durante o posicionamento.

Protótipo:
int Bematech_FIT_PosicionaCursor ( char cTerminal, char cLinha, char cColuna )

Parâmetros:
char: Identificação do micro-terminal que deseja enviar o comando.
char: Linha.
char: Coluna.

Valores de retorno:
1: OK.
Bematech_FIT_LerBuffer Recebe um byte enviado pelo microterminal, podendo este byte ser das portas seriais, comandos executados que retornam dados ou uma tecla pressionada (incluindo teclas de funções).

Protótipo:
int Bematech_FIT_LerBuffer ( char cTerminal )

Parâmetros:
char: Identificação do microterminal ao que deseja executar a função.

Valores de retorno:
0: Caso não haja nenhum dado a recebido.
byte: Caso tenha recebido algum byte do microterminal.
Bematech_FIT_EnviaSerial Envia byte para as portas seriais do microterminal.

Protótipo:
int Bematech_FIT_EnviaSerial ( char cTerminal, char cDados, char cSerial )

Parâmetros:
char: Identificação do microterminal que deseja executar a função.
char: Byte a ser enviado.
char: Seleção da porta serial "S" ou "R".

Valores de retorno:
0: Erro.
1: OK.
Bematech_FIT_ApagaLinha Apaga texto do display a partir da posição atual do cursor até o final da linha.

Protótipo:
int Bematech_FIT_ApagaLinha ( char cTerminal )

Parâmetros:
char: Identificação do microterminal que deseja executar a função.

Valores de retorno:
1: OK.

Observação: Esta função será executada somente se o protocolo for VT100-ESC.
Bematech_FIT_DeslocaCursorCima Desloca cursor da linha onde se encontra para cima e na mesma coluna. O texto do display não será apagado durante o deslocamento.

Protótipo:
int Bematech_FIT_DeslocaCursorCima ( char cTerminal )

Parâmetros:
char: Identificação do microterminal que deseja executar a função.

Valores de retorno:
1: OK.

Observação: Esta função será executada somente se o protocolo for VT100-ESC.
Bematech_FIT_DeslocaCursorDireita Desloca o cursor para próxima coluna à direita de onde se encontra.

Protótipo:
int Bematech_FIT_DeslocaCursorDireita ( char cTerminal )

Parâmetros:
char: Identificação do microterminal que deseja executar a função.

Valores de retorno:
1: OK.

Observação: Esta função será executada somente se o protocolo for VT100-ESC.
Bematech_FIT_VersaoFirmware Solicita ao microterminal que envie a sua versão de firmware.

Protótipo:
int Bematech_FIT_VersaoFirmware ( char cTerminal )

Parâmetros:
char: Identificação do microterminal que deseja executar a função.

Valores de retorno:
1: OK.

Observação: O recebimento da informação será feita pela função Bematech_FIT_LerBuffer, que irá retornar byte a byte no formato "<STX> + <dados> + <ETX>".
Bematech_FIT_ComandoGenerico Envia um comando genérico para o display do micro-terminal.

Protótipo:
int Bematech_FIT_ComandoGenerico ( char cTerminal, char cComando )

Parâmetros:
char: Identificação do microterminal que deseja executar a função.
char, onde:
00: Limpa display.
06: Desliga display sem apagar o conteúdo.
07: Liga display sem apagar o conteúdo.
16: Cursor volta uma posição sem apagar.
20: Cursor avança uma posição sem apagar.
12: Apaga cursor.
14: Cursor Normal.
15: Cursor Piscante.

Valores de retorno:
1: OK.

Observação: Esta função será executada somente se o protocolo for VT100-STX-ETX
Bematech_FIT_LeituraCodigoBarras Solicita ao microterminal que envie o código de barras lido no módulo LCB + CMC7.

Protótipo:
int Bematech_FIT_LeituraCodigoBarras ( char cTerminal )

Parâmetros:
char: Identificação do microterminal que deseja executar a função.

Valores de retorno:
1: OK.
Bematech_FIT_EnviaComando Envia comando ao microterminal.

Protótipo:
int Bematech_FIT_EnviaComando ( char cComando )

Parâmetros:
char*: O comando possui a seguinte estrutura.
OxFEnnxzzz

Onde:
OxFE - é um dado fixo.
nn - é a identificação do microterminal.
X - é o comando a ser executado no micro-terminal.
zzz - são os parâmetros caso existam.

1- Posicionameto do cursor.
0xFEnnClcc

Onde:
OxFE - é um dado fixo.
nn - é a identificação do microterminal.
C - é o comando de posicionamento do cursor.
l - é a linha para posicionamento (1 byte) entre 0 e 3.
cc - é a coluna para posicionamento entre 00 e 19.

Retorno:
1: OK.

2- Leitura do buffer.
0xFEnnK

Onde:
OxFE - é um dado fixo.
Nn - é a identificação do microterminal.
K - é o comando de leitura do buffer.

Retorno:
0x00: caso não haja caracteres no buffer.
Dados: qualquer outro valor representam dados enviados pelo micro-terminal.
1: OK.

3- Escreve byte no display.
0xFEnnDb

Onde:
OxFE - é um dado fixo.
nn - é a identificação do microterminal.
D - é o comando de escrita no buffer.
b - é o byte a ser enviado para o display.

Retorno:
1: OK.

4- Limpa display.
0xFEnnL

Onde:
OxFE - é um dado fixo.
nn - é a identificação do microterminal.
L - é o comando de limpeza do display.

Retorno:
1: OK.

5- Envia byte Serial identificada como "S".
0xFEnnSb

Onde:
OxFE - é um dado fixo.
nn - é a identificação do microterminal.
S - é o comando a ser enviado para a serial "S".
b - é o byte a ser enviado para a serial "S".

Retorno:
Para protocolo VT100-ESC: sempre 1.
Para protocolo VT100-STX/ETX: 1 sucesso no envio ou 0 erro.

6- Envia byte Serial identificada como "R".
0xFEnnRb

Onde:
OxFE - é um dado fixo.
nn - é a identificação do microterminal.
S - é o comando a ser enviado para a serial "R".
b - é o byte a ser enviado para a serial "R".

Retorno:
Para protocolo VT100-ESC: sempre 1.
Para protocolo VT100-STX/ETX: 1 sucesso no envio ou 0 erro.

Iohannes Nakatani

Iohannes Nakatani - Analista de Suporte. Bematech - Marketing de Parcerias.
Visite o site:
http://www.bematech.com.br.