Escolar Documentos
Profissional Documentos
Cultura Documentos
MOP
Itautec Philco S. A.
1.1 - Requisitos
Linux Red Hat 9.0
Kernel versão 2.4.20-18.9
T_Serial.o
Operador.o / Elotouch.o
libRotOpera.so
libMop.so
tstMop
itautec.conf
1.2 - Drivers
Para utilização dos drivers devemos carregar antes o driver T_Serial, para depois carregar o driver
Mop (Operador ou Elotouch), para utilizar a biblioteca Mop com o periférico Elotouch deve-se utilizar
o driver Elotouch e para utilizar a biblioteca Mop com o módulo operador deve-se utilizar o driver
Operador.
1.2.1 - T_Serial.o
Este driver trata toda a comunicação serial com o periférico.
T_Serial.o - Driver
T_Serial.ini - Configurações das portas de comunicação
load_T_Serial - Script para inicialização do driver (insmod)
unload_T_Serial - Script para finalização do driver (rmmod)
itComxx="IO,IRQ"
opTrace=n
opDedicada=n
itCom01="3F8,4"
itCom02="2F8,3"
itCom03="3E8,5"
itCom04="2E8,15"
itCom05="278,10"
itCom06="268,11"
opTrace=1
opDedicada=0
Saída do comando:
Module Size Used by Not tainted
T_Serial 23024 0 (unused)
smbfs 38064 1 (autoclean)
ide-cd 32512 0 (autoclean)
cdrom 30272 0 (autoclean) [ide-cd]
Podemos ver que a saída do comando, indica que o driver T_Serial foi carregado corretamente...
1.2.2 - Operador.o
Este driver trata os módulos operadores Itautec, funcionabilidades de gravação e leitura da CMOS e
acesso da abertura de gaveta para placas específicas, interface com o driver T_Serial.
Operador.o - Driver
load_Operador - Script para inicialização do driver (insmod)
unload_Operador - Script para finalização do driver (rmmod)
Saída do comando:
Podemos ver que a saída do comando, indica que o driver Operador foi carregado
corretamente, e está em uso pela T_Serial.
1.2.3 - Elotouch.o
Este driver trata o periférico Elotouch (Elo Entuitive 1229L), funcionabilidades da leitora de cartão,
escrita/leitura da CMOS e acesso da abertura de gaveta para placas específicas, interface com o driver
T_Serial.
Elotouch.o - Driver
load_ Elotouch - Script para inicialização do driver (insmod)
unload_ Elotouch - Script para finalização do driver (rmmod)
6) Verificar se os arquivos load_ Elotouch e unload_ Elotouch está permitindo execução (rwx-r-xr-
x), caso contrário executar o comando:
[root@localhost /home/DIR]# chmod 775 <arquivo> (para os 2 arquivos)
Saída do comando:
1.3.1 - libRotOpera.so
Esta biblioteca deve ser utilizada para acesso as funções do driver Operador e Elotouch.
libRotOpera.so.1.2 - Biblioteca
1) Extrair o arquivo.
Obs: Podemos extrair as libs no diretório padrão do Linux (/usr/lib)
2) Criar links simbólicos para a biblioteca:
1.3.2 - libMop.so
1) Extrair os arquivos.
Obs: Podemos extrair as libs no diretório padrão do Linux (/usr/lib)
2) Criar links simbólicos para a biblioteca:
1.4.1 - tstMop
Programa de testes contendo menu de opções com todas as funções disponíveis pela API.
tstMop - Executável
itautec.conf - Arquivo de configurações
[root@localhost /home/teste_Mop]#
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/Diretorio_de_LIBS
[ItautecPOS\Elotouch]
Device=/dev/itElotouch1
CommSettings=itCom01:9600,e,8,1
CheckDSR=0
Trace=1
1.4.2 - itautec.conf
Abaixo temos alguns exemplos que podemos utilizar:
Para a configuração do dispositivo Elotouch:
[ItautecPOS\Elotouch]
Device=/dev/itElotouch1
CommSettings=itCom01:9600,e,8,1
CheckDSR=0
Trace=1
[ItautecPOS\ModuloOperador]
Device=/dev/itOperador1
CommSettings=itCom04:9600,e,8,1
CheckDSR=0
Trace=1
TipoPeriferico=Mod_Operador
[ItautecPOS\DisplayTorre]
Device=/dev/itOperador2
CommSettings=itCom03:9600,e,8,1
CheckDSR=0
Trace=1
TipoPeriferico=Disp_Torre
[ItautecPOS\MINIPOS]
Device=/dev/itOperador1
CommSettings=itCom05:9600,e,8,1
CheckDSR=0
Trace=1
TipoPeriferico=Mod_Operador
Protótipo:
em C:
int MopOpen (void);
Entradas:
Não existem.
Saídas:
Não existem.
Protótipo:
em C:
int MopClose (void);
Entradas:
Não existem.
Saídas:
Não existem.
Protótipo:
em C:
int MopEquipamento (char *confMop, char *confTorre, int *nFiscal)
Entradas:
Não existem.
Saídas:
confMop:- configuração do Módulo Operador:
bits 1,0 - teclado instalado
00 = não instalado (inválido)
01 = 55 teclas
10 = 100 teclas (inválido)
11 = livre
bit 2 - teclado PIN instalado
0 = não instalado
1 = instalado
bits 4,3 - display LCD instalado JP09 JP10
00 = não instalado (inválido)
01 = LCD 2x16
10 = LCD 2x40
11 = livre
bit 5 - caneta leitora instalada
0 = não instalado
1 = instalado
bits 7,6 - leitora de cartão instalada JP11 JP12
00 = não instalada
01 = trilhas 1 e 2
10 = trilhas 2 e 3
11 = trilha 2
Protótipo:
em C:
int MopMemoria (unsigned char **lpPointer, unsigned long *lpEndereco, unsigned *lpBytes,
unsigned *lpPagina, unsigned *lpOffset);
Entradas:
Não existem.
Saídas:
lpPointer:- endereço virtual da RAM não volátil mapeada (offset 0)
lpEndereco:- endereço físico da memória (modo real)
lpBytes:- total de RAM não volátil instalada
lpPagina:- tamanho da página de memória
lpOffset:- offset inicial para utilização é reservado 64 bytes de memória na página 0
Protótipo:
em C:
int MopTipoCursor (int nTipo);
Entradas:
nTipo:- Tipo do cursor:
0 - cursor normal
1 - cursor invisível
2 - piscante
Saídas:
Não existem.
Protótipo:
em C:
int MopAtributoDisplay (int nTipo);
Entradas:
nTipo:- Tipo do cursor:
0 - cursor normal
1 - cursor invisível
2 - piscante
Saídas:
Não existem.
Protótipo:
em C:
int MopCursor (int nTipo, int lin, int col);
Entradas:
nTipo:- Tipo do cursor:
1 - display LCD
2 - display TORRE
3 - display LCD e TORRE
lin:- Linha:
1 a 2 – linhas válidas
col:- Coluna:
1 a 40 – colunas válidas
Saídas:
Não existem.
Protótipo:
em C:
int MopPosicaoCursor (int nTipo, int *lin, int *col);
Entradas:
nTipo:- Tipo do cursor:
1 - display LCD
2 - display TORRE
3 - display LCD e TORRE
Saídas:
lin:- Linha:
1 a 2 – linhas válidas
col:- Coluna:
1 a 40 – colunas válidas
Protótipo:
em C:
int MopLimpaDisplay (int nTipo);
Entradas:
nTipo:- Tipo do cursor:
1 - display LCD
2 - display TORRE
3 - display LCD e TORRE
Saídas:
Não existem.
Protótipo:
em C:
int MopLeDisplay (int nTipo, int lin, int col, unsigned char *str, int nTm);
Entradas:
nTipo:- Tipo do cursor:
1 - display LCD
2 - display TORRE
3 - display LCD e TORRE
lin:- Linha:
1 a 2 – linhas válidas
col:- Coluna:
1 a 40 – colunas válidas
Saídas:
str:- string lida.
nTm:- tamanho da string lida.
Protótipo:
em C:
int MopEscreveCaracter (int nTipo, unsigned char c, int nTam);
Entradas:
nTipo:- Tipo do cursor:
1 - display LCD
2 - display TORRE
3 - display LCD e TORRE
c:- Caracter a ser escrito.
nTam:- Quantidade de vezes a ser escrito.
Saídas:
Não existem.
Protótipo:
em C:
int MopEscreveString (int nTipo, unsigned char *str, int nTam);
Entradas:
nTipo:- Tipo do cursor:
1 - display LCD
2 - display TORRE
3 - display LCD e TORRE
str:- String a ser escrito.
nTam:- Tamanho da string.
Saídas:
Não existem.
Protótipo:
em C:
int MopHabilitaTorre (void);
Entradas:
Não existem.
Saídas:
Não existem.
Protótipo:
em C:
int MopDesabilitaTorre (void);
Entradas:
Não existem.
Saídas:
Não existem.
Protótipo:
em C:
int MopModoEntrada (int nTipo, int nDesloca);
Entradas:
nTipo:- Tipo do cursor:
1 - display LCD
2 - display TORRE
3 - display LCD e TORRE
nDesloca:- Tipo do deslocamento do display:
0 - Esquerda sem deslocamento do display
1 - Esquerda com deslocamento do display (só para display LCD)
2 - Direita sem deslocamento do display
3 - Direita com deslocamento do display (só para display LCD)
Saídas:
Não existem.
Protótipo:
em C:
int MopStatusDisplay (int nTipo, int *lpDesloca, int *lpDisplay, int *lpTipoCursor);
Entradas:
nTipo:- Tipo do cursor:
1 - display LCD
2 - display TORRE
Saídas:
lpDesloca:- Tipo do deslocamento do display:
0 - Esquerda sem deslocamento do display
1 - Esquerda com deslocamento do display (só para display LCD)
2 - Direita sem deslocamento do display
3 - Direita com deslocamento do display (só para display LCD)
lpDisplay:- aponta variável inteira q. receberá status do display.
lpTipoCursor:- Tipo do cursor
0 - cursor normal
1 - cursor invisível
2 - piscante
Protótipo:
em C:
int MopLeTecla (unsigned char *nScanCode, int *nTam);
Entradas:
Não existem.
Saídas:
nScanCode:- Scancode da tecla.
nTam:- Tamanho do scancode devolvido.
Protótipo:
em C:
int MopVerifTecla (void);
Entradas:
Não existem.
Saídas:
Não existem.
Protótipo:
em C:
int MopLimpaTecla (void);
Entradas:
Não existem.
Saídas:
Não existem.
Protótipo:
em C:
int MopLeCartao (unsigned char *str, int *nTam);
Entradas:
Não existem.
Saídas:
str:- string lida.
nTam:- tamanho da string lida.
Protótipo:
em C:
int MopLeCartao (void);
Entradas:
Não existem.
Saídas:
Não existem.
Protótipo:
em C:
int MopLimpaCartao (void);
Entradas:
Não existem.
Saídas:
Não existem.
Protótipo:
em C:
int MopSelecionaTrilha (int nTrilhas);
Entradas:
nTrilhas:- Número correspondente a trilha a ser utilizada.
000 - inválida
001 - trilha 1
010 - trilha 2
011 - trilhas 1 e 2
100 - trilha 3
101 - inválida
110 - trilhas 2 e 3
111 - inválida
Saídas:
Não existem.
OBS: Esta função é suportada somente para o Modulo Operador / MiniPos, caso contrário será ignorada
e retornará sucesso.
Protótipo:
em C:
int MopLeCaneta (unsigned char *str, int *nTam);
Entradas:
Não existem.
Saídas:
str:- string lida.
nTam:- tamanho da string lida.
OBS: Esta função é suportada somente para o Modulo Operador / MiniPos, caso contrário será ignorada
e retornará sucesso.
Protótipo:
em C:
int MopVerifCaneta (void);
Entradas:
Não existem.
Saídas:
Não existem.
OBS: Esta função é suportada somente para o Modulo Operador / MiniPos, caso contrário será ignorada
e retornará sucesso.
Protótipo:
em C:
int MopLimpaCaneta (void);
Entradas:
Não existem.
Saídas:
Não existem.
OBS: Esta função é suportada somente para o Modulo Operador / MiniPos, caso contrário será ignorada
e retornará sucesso.
Protótipo:
em C:
int MopSelecionaCodigo (int nTipo);
Entradas:
nTipo:- Tipo do código de barras:
1 - EAN-13
2 - EAN-8
4 - Code39
8 - Interleave 2 e 5
Saídas:
Não existem.
Protótipo:
em C:
int MopAbreGaveta (void);
Entradas:
Não existem.
Saídas:
Não existem.
Protótipo:
em C:
int MopStatusGaveta (int *nStatus);
Entradas:
Não existem.
Saídas:
nStatus:- Devolve o status da gaveta:
0 – Gaveta fechada
1 – Gaveta aberta
OBS: Esta função é suportada somente para o Modulo Operador / MiniPos, caso contrário será ignorada
e retornará sucesso.
Protótipo:
em C:
int MopLeds (int nLeds, int acao);
Entradas:
nLeds:- Número do led a ser acionado:
1 - Led 1
2 - Led 2
4 - Led 3
Saídas:
Não existem.
OBS: Esta função é suportada somente para o Modulo Operador / MiniPos, caso contrário será ignorada
e retornará sucesso.
Protótipo:
em C:
int MopAcendeLeds (int nLeds);
Entradas:
nLeds:- Número do led a ser acionado:
1 - Led 1
2 - Led 2
4 - Led 3
Saídas:
Não existem.
OBS: Esta função é suportada somente para o Modulo Operador / MiniPos, caso contrário será ignorada
e retornará sucesso.
Protótipo:
em C:
int MopPiscaLeds (int nLeds);
Entradas:
nLeds:- Número do led a ser acionado:
1 - Led 1
2 - Led 2
4 - Led 3
Saídas:
Não existem.
OBS: Esta função é suportada somente para o Modulo Operador / MiniPos, caso contrário será ignorada
e retornará sucesso.
Protótipo:
em C:
int MopApagaLeds (int nLeds);
Entradas:
nLeds:- Número do led a ser acionado:
1 - Led 1
2 - Led 2
4 - Led 3
Saídas:
Não existem.
OBS: Esta função é suportada somente para o Modulo Operador / MiniPos, caso contrário será ignorada
e retornará sucesso.
Protótipo:
em C:
int MopStatusLeds (int nLeds, int *Status);
Entradas:
nLeds:- Número do led a ser acionado:
1 - Led 1
2 - Led 2
4 - Led 3
Saídas:
Não existem.
OBS: Esta função é suportada somente para o Modulo Operador / MiniPos, caso contrário será ignorada
e retornará sucesso.
Protótipo:
em C:
int MopAtivaBeep (int nTempo);
Entradas:
nTempo:- tempo em mili-segundos.
Saídas:
Não existem.
OBS: Esta função é suportada somente para o Modulo Operador / MiniPos, caso contrário será ignorada
e retornará sucesso.
Protótipo:
em C:
int MopDesativaBeep (void);
Entradas:
Não existem.
Saídas:
Não existem.
Protótipo:
em C:
int MopLeRAM (unsigned offset, unsigned char *str, unsigned tam);
Entradas:
offset:- Endereço inicial de memória.
tam:- Tamanho do buffer a ser lido.
Saídas:
str:- Ponteiro da string a ser lida.
Protótipo:
em C:
int MopEscreveRAM (unsigned offset, unsigned char *str, unsigned tam);
Entradas:
str:- Ponteiro da string a ser escrita.
offset:- Endereço inicial de memória.
tam:- Tamanho do buffer a ser lido.
Saídas:
Não existem.
Protótipo:
em C:
int MopMapeiaRAM (unsigned offset);
Entradas:
offset:- Endereço inicial de memória.
Saídas:
Não existem.
Nome
Operador.o / Elotouch.o
LibMop.so
Mop.h
A função MopOpen inicia a API lendo todas as configurações e parâmetros setados no arquivo de
configuração ./itautec.conf. Se alguns dos parâmetros não forem especificados ou inválidos, será retornado Erro
(EINVAL).
Com a função MopOpen em processo, todas as outras funções serão disponibilizadas.
Finalizado todos os processos, é executada a função MopClose, que finaliza toda a comunicação com o
periférico.