Você está na página 1de 58

TRIX Tecnologia Ltda.

Módulo Finger

FINGER
Manual do leitor biométrico
(MÓDULO FINGER)

 2002 – TRIX  Tecnologia Ltda. - Todos os direitos reservados.

Versão: 1.1 - revisão: 10/03


Part #: 07185

Manual de Programação 1
TRIX Tecnologia Ltda. Módulo Finger

Manual de Programação 2
TRIX Tecnologia Ltda. Módulo Finger

Este manual está disponível no site:


www.trixtec.com.br
(Clique em “Download” no menu “Suporte”)

As informações aqui contidas são de caráter técnico - informativo e poderão


ser alteradas ou complementadas sempre que necessário, sem aviso prévio.
A TRIX Tecnologia Ltda. se isenta de quaisquer responsabilidades, diretas ou
indiretas, por danos ocasionados pela má utilização ou inabilidade no uso do
produto ou de sua documentação.
Nenhuma parte desta documentação poderá ser reproduzida total ou
parcialmente ou transmitida sob quaisquer formas, sem o consentimento
prévio, por escrito, da TRIX Tecnologia Ltda.

Manual de Programação 3
TRIX Tecnologia Ltda. Módulo Finger

SUMÁRIO

1. INTRODUÇÃO .................................................................6

2. APRESENTAÇÃO............................................................6

3. ROTINAS EM XPBASIC ..................................................7

3.1. Rotina de Inicialização.......................................................................... 7

3.2. Rotina de Verificação da Digital de uma Pessoa ................................ 9

3.3. Rotina de Cadastramento de uma Pessoa ......................................... 11

4. UTILIZANDO AS ROTINAS DO MÓDULO FINGER .....14

4.1. Utilizando a Rotina de Inicialização .................................................. 16

4.2. Utilizando a Rotina de Verificação .................................................... 17

5. LISTAGEM DOS PROGRAMAS....................................21

5.1. Listagem da Rotina INICIALIZACAO.bas...................................... 21

5.2. Listagem da Rotina VERIFICACAO.bas ......................................... 23

5.3. Listagem da Rotina CADASTRAMENTO.bas ................................ 26

5.4. Listagem do programa exemplo FINGER.bas ................................. 33

Manual de Programação 4
TRIX Tecnologia Ltda. Módulo Finger

6. PROGRAMA FINGER.EXE ........................................... 44


6.1. Instalação..............................................................................................44

6.2. Menu de Operação...............................................................................45


6.2.1. Barra de Status ...............................................................................45
6.2.2. Opção Arquivo...............................................................................46
6.2.2.1. Comando Sair ............................................................................46
6.2.3. Opção Status ..................................................................................46
7.2.3.1. Status do ID Módulo .....................................................................46
7.2.3.2. Status da Memória Flash do ID Módulo .......................................47
7.2.3.3. Status do Canal Serial do PC .....................................................47
7.2.4. Opção Configurar..............................................................................48
7.2.4.1. Obter Configuração do ID Módulo ...............................................48
7.2.4.2. Alterar Configuração do ID Módulo..........................................48
7.2.4.3. Obter Configuração do Canal Serial do PC ...............................49
7.2.4.4. Alterar Configuração do Canal Serial do PC .............................49
7.2.5. Opção Cadastrar.............................................................................49
7.2.5.1. Cadastrar Pessoa ........................................................................49
7.2.5.2. Alterar Cadastro da Pessoa ........................................................51
7.2.5.3. Excluir Pessoa............................................................................51
7.2.5.4. Status da Pessoa .........................................................................52
7.2.6. Opção Identificar ..............................................................................52
7.2.6.1 Identificar Pessoa ...........................................................................52
7.2.6.2. Verificar Pessoa .........................................................................53
7.2.7. Opção Dados....................................................................................53
7.2.7.1. Ler Arquivo de Dados do ID Módulo ........................................53
7.2.7.2. Gravar Arquivo de Dados no ID Módulo ..................................53
7.2.7.3. Apagar Arquivo de Dados do Módulo Finger..............................54
7.2.8. Opção Testar .....................................................................................54
7.2.9. Opção Sobre...................................................................................55
7.2.9.1. Software Finger..........................................................................55

8. CABO DE COMUNICAÇÃO MÓDULO FINGER .......... 56

Manual de Programação 5
TRIX Tecnologia Ltda. Módulo Finger

1. INTRODUÇÃO

Este manual apresenta como utilizar o módulo FINGER em


aplicações XPBASIC e com o software FINGER.EXE .

Primeiramente será apresentado as três rotinas básicas do


módulo finger:
• Rotina de Inicialização
• Rotina de verificação
• Rotina de cadastramento / exclusão

Logo após será exposto um programa exemplo , em XPBASIC


e o programa FINGER.EXE para cadastrar , salvar e carregar
cadastro de usuários .

Finalmente será apresentado a pinagem do cabo PC para o


módulo FINGER .

2. APRESENTAÇÃO

O leitor biométrico FINGER é utilizado para a identificação de


usuários para marcação de ponto e/ou acesso .
Um número é associado ao usuário que pode ser digitado ou
apresentar um cartão de proximidade , código de barras ou
magnético e compara a digital apresentada com o arquivo
biométrico do usuário .
Para cada módulo FINGER o número máximo de usuários
cadastrados será de 400.

Manual de Programação 6
TRIX Tecnologia Ltda. Módulo Finger

3. ROTINAS EM XPBASIC

Para que o Módulo Finger possa ser controlado pelo XTM-


Compact em aplicações XPBasic, foram desenvolvidas três
rotinas básicas.
Uma rotina de Inicialização do Módulo Finger, uma rotina de
Verificação da Digital de uma pessoa e uma rotina de
Cadastramento ou exclusão de uma pessoa no Módulo
Finger.
Estas rotinas foram desenvolvidas em XPBasic e portanto,
devem ser incorporadas a aplicações em XPBasic que venham
a utilizar o XTM-Compact com o Módulo Finger.
Estas rotinas estão descritas abaixo assim como a forma de
incorporá-las em uma aplicação XPBasic já existente.

3.1. Rotina de Inicialização

A rotina de Inicialização executa basicamente os seguintes


procedimentos:

- Aciona o modo de operação TURBO do coletor.

- Inicializa variáveis do tipo matriz.

- Força um desligamento do Módulo Finger (instrução FINGER 0


do XPBasic).

- Temporiza 120mseg.

- Seleciona o canal serial secundário do coletor.

Manual de Programação 7
TRIX Tecnologia Ltda. Módulo Finger

- Inicializa o canal serial secundário do coletor com a


configuração : 9600bps, 8 bits, sem paridade, 1 stop bit.

- Religa o Módulo Finger (instrução FINGER 1 do XPBasic).


Com isto estaremos forçando um RESET do Módulo Finger o
que provocará o envio de um comando de ACK (acknowledge)
se o Módulo estiver funcionando corretamente.

- Limpa os buffers de recepção e transmissão do canal serial


secundário.

- Temporiza 120mseg para que dê tempo do Módulo Finger se


inicializar e enviar o comando de ACK.

- Inicializa variáveis.

- Chama rotina que verifica de recebimento do comando de


ACK.

- Conforme resultado da rotina anterior seja positivo ou


negativo, sinaliza dois ou três acionamentos do beep do coletor
respectivamente.

- Chama rotina de acionamento do beep do coletor.

- Seleciona canal serial principal do coletor.

- Retorna.

Manual de Programação 8
TRIX Tecnologia Ltda. Módulo Finger

3.2. Rotina de Verificação da Digital de uma Pessoa

A rotina de Verificação da Digital de uma Pessoa executa


basicamente os seguintes procedimentos:

- Recebe o código numérico da pessoa a ser identificada na


variável string WC$, considerando apenas os 5 digitos mais a
direita da variável.

- Verifica se o código passado é menor ou igual a 65000.

- Chama rotina de esvaziamento do buffer do teclado.

- Exibe mensagem no display para colocar o dedo no sensor e


pressionar a tecla "#".

- Aguarda por 5 segundos até que o usuário tecle "#".

- Caso ocorra o time-out de 5 segundos seleciona o canal serial


principal e retorna.

- O usuário teclou "#", esvazia os buffers de recepção e


transmissão e exibe a mensagem de "Aguarde ..." no display.

- Prepara parâmetros e envia o comando de verificação da


digital para o Módulo Finger (comando On Line Verify ID).

- Aguarda por 100 mseg a transmissão do comando.

Manual de Programação 9
TRIX Tecnologia Ltda. Módulo Finger

- Caso ocorra time-out, sinaliza erro (variável WE% diferente de


zero). Esvazia buffer de transmissão, seleciona canal serial
principal e retorna.

- Caso comando foi enviado com sucesso, chama rotina de


recebimento e verificação do comando de ACK do Módulo
Finger.

- Caso tenha sido recebido o comando ACK com erro (variável


WE% <> 0), chama rotina de reinicialização do Módulo Finger e
retorna.

- Caso comando de ACK foi recebido com sucesso, aguarda


recebimento do comando sinalizando que verificação foi mal
sucedida (comando Return Status) ou bem sucedida (Return
Result Verify).

- Sinaliza resultado da operação por meio da variável WE%.


Se WE% = 0, a verificação foi bem sucedida, caso contrário
a pessoa não foi identificada corretamente.

Manual de Programação 10
TRIX Tecnologia Ltda. Módulo Finger

3.3. Rotina de Cadastramento de uma Pessoa

A rotina de Cadastramento de uma Pessoa executa


basicamente os seguintes procedimentos:

- Caso a rotina de Cadastramento esteja instalada, ao se ligar o


XTM-Compact ela exibe no display do coletor as opções de
entrar na aplicação do coletor ou entrar na rotina de
Cadastramento.

- Caso não se faça nenhuma opção em 6 segundos


aproximadamente, o controle é transferido para a aplicação em
XPBasic existente no coletor.

- Escolhida a opção "1. Aplicativo", a rotina não mais será


executada, transferindo-se o comando para a aplicação do
coletor.

- Caso a opção escolhida seja a opção "2. Cadastramento" a


rotina pede uma senha de entrada.

- A senha inicialmente programada pode ser alterada.


Inicialmente ela foi programada para a sequência: "1234".

- O fornecimento da senha correta também é temporizado e se


não ocorrer em até 10 segundos após o início da execução da
rotina de Cadastramento, o controle retorna para o programa de
aplicação do coletor.

Manual de Programação 11
TRIX Tecnologia Ltda. Módulo Finger

- Digitada a senha correta exibe-se no display as opções da


rotina de Cadastramento.

- As opções são: "1. Cadastra", "2. Senha" e "3. Fim".

- Escolhida a opção "1. Cadastra", pode-se em seguida escolher


entre as opções "1. Cadastra" e "2. Exclui".

- Escolhida a opção "1. Cadastra", pede-se a definição da mão


a ser utilizada no cadastramento da pessoa.

- Definida a mão, pede-se a definição do dedo a ser utilizado no


cadastramento. Para tanto exibe-se os dedos da mão com seus
respectivos números de identificação para que se possa
escolher um deles.

- Escolhido o dedo e a mão exibe-se a mão e o dedo escolhido


no display. Em seguida pede-se o código da pessoa.

- Este código deve ser um número de 1 a 65000. Pode ser


definido pelo teclado, por leitura de um cartão de código de
barras, magnético ou de proximidade.

- Digitado o código pede-se uma confirmação.

- Confirmadas as informações para cadastramento, e após uma


breve mensagem de ''Aguarde... ", pede-se para colocar o dedo
no sensor para a primeira amostragem.

- Normalmente o número de amostragens pedidas é de três,


mas dependendo da digital da pessoa podem ser solicitadas
mais amostragens, este fato é normal.

Manual de Programação 12
TRIX Tecnologia Ltda. Módulo Finger

- No final das amostragens e caso o cadastramento tenha sido


concluído com sucesso o display exibe a mensagem de
"Cadastro OK!" mais po número de código da pessoa
cadastrada.

- Retorna-se então ao menu inicial com as opções de Cadastro,


alteração de Senha e fim.

- Opção "Senha". Esta opção permite alterar a senha original.


Vale lembrar que caso o coletor seja desligado ou sua bateria se
esgote, a senha que foi alterada se perde e volta-se a senha
inicial.

- Opção "Fim". Esta opção retorna ao menu onde pode-se


escolher entre executar a Aplicação do coletor ou a rotina de
Cadastramento. Caso seja transcorrido um intervalo de
aproximadamente 6 segundos sem escolha, a opção "1.
Aplicativo" é automaticamente ativada.

Manual de Programação 13
TRIX Tecnologia Ltda. Módulo Finger

4. UTILIZANDO AS ROTINAS DO MÓDULO FINGER

As rotinas do Módulo Finger podem ser incorporadas a uma


aplicação XPBasic já existente de uma forma bastante simples.

Basicamente são três rotinas. Uma rotina de inicialização,


chamada INICIALIZAÇÃO.bas, uma rotina de verificação de
uma digital, chamada VERIFICAÇÃO.bas e uma rotina de
cadastramento e exclusão de pessoas no Módulo Finger,
chamada CADASTRAMENTO.bas.

Desde que se utilize o Módulo Finger no XTM-Compact deve-se


chamar a rotina de Inicialização no início da aplicação em
XPBasic.

Desde que se utilize o Módulo Finger no XTM-Compact deve-se


chamar a rotina de Verificação digital para que se possa validar
uma digital.

A rotina de Cadastramento é opcional, com ela pode-se


cadastrar novas pessoas no Módulo Finger assim como excluir
pessoas anteriormente cadastradas. Caso ela não seja utilizada
no coletor pode-se cadastrar ou excluir pessoas por meio do
programa Finger.exe descrito no capítulo seguinte.

Existem algumas condições para utilização das rotinas acima no


programa XPBasic de controle de acesso ou ponto já existente.

Manual de Programação 14
TRIX Tecnologia Ltda. Módulo Finger

Embora o programa XPBasic para Windows possua funções de


realocação das linhas de programa para qualquer posição de 1
a 65000, as rotinas do Módulo Finger foram escritas a partir da
linha 64000. E serão tratadas com estes números de linhas em
todo este manual. Caso seja necessário alterar esta numeração
basta utilizar as funções existentes no programa XPBasic para
Windows.

Todas as variáveis utilizadas nas rotinas do Módulo Finger


começam com a letra “W”.

Aconselhamos que ao serem utilizadas as rotinas do Módulo


Finger em seus aplicativos, tomar o cuidado de não definir
variáveis que comecem com a letra “W”.

Através da função “Substituir Texto” do XPBasic pode-se fazer


as alterações de nomes de variáveis se assim for preciso.

Neste mesmo capítulo temos uma descrição detalhada do que


cada uma destas funções faz assim como a forma de inseri-las
numa aplicação em XPBasic já existente.

Manual de Programação 15
TRIX Tecnologia Ltda. Módulo Finger

4.1. Utilizando a Rotina de Inicialização

No início do programa XPBasic do usuário deve-se fazer uma


chamada para a rotina de Inicialização.

Esta chamada deve ser do tipo: GOSUB.

O endereço de chamada proposto é: 64000.

Portanto, teríamos na linha 1 do programa do usuário a seguinte


instrução em XPBasic:

1 GOSUB 64000

Inserir o texto da rotina de Inicialização após o final do


aplicativo.

Manual de Programação 16
TRIX Tecnologia Ltda. Módulo Finger

4.2. Utilizando a Rotina de Verificação

Nos programas de controle de acesso/ponto existe uma


condição onde o código do funcionário foi verificado e validado.
É neste ponto que deve-se chamar a rotina de Verificação.

Como já foi dito anteriormente o código a ser verificado deve


estar contido em uma variável do tipo string.

Vamos supor que esta variável seja chamada de CO$.

Nesta posição do programa deve-se fazer uma chamada para a


rotina de VERIFICAÇÃO DIGITAL do código lido ou digitado.

Deve-se então copiar o valor da variável do usuário que contém


o código a ser verificado para uma variável string com o nome
WC$.

Esta chamada deve ser do tipo GOSUB.

O endereço de chamada proposto é: 64100.

Portanto, teríamos na linha do programa do usuário a seguinte


instrução em Xpbasic:

1402 WC$ = CO$


1403 GOSUB 64100

A rotina de Verificação da Digital (GOSUB 64100) retorna uma


variável do tipo inteira indicando se a verificação digital foi bem
sucedida ou não.

Manual de Programação 17
TRIX Tecnologia Ltda. Módulo Finger

Caso a variável inteira WE% retorne da rotina de Verificação


Digital com o valor zero (WE% = 0), o código passado para a
rotina de Verificação Digital foi verificado com sucesso.
Libera-se o acesso.

Caso contrário deve-se considerar o acesso proibido.

Um exemplo de chamada da rotina de Verificação Digital seria o


seguinte:

1402 WC$=CO$
1403 GOSUB 64100
1404 IF WE%<>0 THEN 2000
1410 REM TRATAMENTO DE CODIGO OK
...

2000 REM TRATAMENTO DE CODIGO NAO OK


2010 CLD
2021 BEEP 1,8
2032 DISP 1,1,"CODIGO: ":DISP 1,9,CO$
2043 DISP 2,1,"*NAO REGISTRADO*"

Inserir o texto da rotina VERIFICACAO.bas após o texto da


rotina de Inicialização.Utilizando a Rotina de Cadastramento

A rotina de Cadastramento deve ser chamada logo após a rotina


de Inicialização.

Sua chamada é do tipo GOTO.

Esta rotina começa no endereço 64600. Portanto uma chamada


como a descrita abaixo poderia ser inserida no programa do
aplicativo existente no coletor.

Manual de Programação 18
TRIX Tecnologia Ltda. Módulo Finger

1 REM INICIALIZACAO DO MODULO FINGER


2 GOSUB 64000
3 REM ROTINA DE CADASTRAMENTO
4 GOTO 64100
10 REM LINHA DE RETORNO
11 REM INICIO DA APLICACAO

A linha de número 10 deve estar presente pois é a linha de


retorno da rotina de Cadastramento. Ela pode coincidir com o
inicio do programa aplicativo.

Um Inserir o texto da rotina CADASTRAMENTO.bas após o


texto da rotina de Verificação.

Como pode-se verificar pelo exposto acima, a inclusão de


chamadas destas três rotinas é bastante simples. Em caso de
dúvida consulte nosso suporte técnico. Programa exemplo
Finger.bas

O programa FINGER.bas é um programa exemplo para a


utilização das rotinas de interface do Módulo Finger com uma
aplicação XPBasic já existente.

Desde que se utilize o Módulo Finger no XTM-Compact deve-se


chamar a rotina de Inicialização no início da aplicação em
XPBasic.

Desde que se utilize o Módulo Finger no XTM-Compact deve-se


chamar a rotina de Verificação Digital para que se possa validar
uma digital.

A rotina de Cadastramento é opcional, com ela pode-se


cadastrar novas pessoas no Módulo Finger assim como excluir
pessoas anteriormente cadastradas.

Manual de Programação 19
TRIX Tecnologia Ltda. Módulo Finger

Existem algumas condições para utilização das rotinas acima no


programa exemplo em XPBasic denominado FINGER.bas.

Embora o programa XPBasic para Windows possua funções de


realocação das linhas de programa para qualquer posição de 1
a 65000, as rotinas do Módulo Finger foram escritas a partir da
linha 64000. E serão tratadas com estes números de linhas.
Caso seja necessário alterar esta numeração basta utilizar as
funções existentes no programa XPBasic para Windows.

Todas as variáveis utilizadas nas rotinas do Módulo Finger


começam com a letra “W”.

Aconselhamos o usuário das rotinas do Módulo Finger a tomar o


cuidado de não definir variáveis em seu programa que comecem
com a letra “W”.

Através da função “Substituir Texto” do XPBasic pode-se fazer


as alterações de nomes de variáveis se assim for preciso.

Nos itens deste capítulo pode-se ler, em detalhe, o que cada


uma destas funções faz assim como a forma de inseri-las numa
aplicação em XPBasic já existente.

Manual de Programação 20
TRIX Tecnologia Ltda. Módulo Finger

5. LISTAGEM DOS PROGRAMAS

5.1. Listagem da Rotina INICIALIZACAO.bas

64000 REM ########## ULTIMA ALTERACAO: 21/11/2001##########


64001 REM ########## INICIALIZACAO ##########
64002 TURBO "ON":DIM W$(25):DIM WD$(9)
64003 FINGER 0 :GOSUB 64015:COM 2:SERIAL 9600,8,0,0:FINGER 1:W1%=RXBUF(0)
64004 W1%=TXBUF(0):GOSUB 64015:W$(0)=CHR$(85):W$(1)=CHR$(32)
64005 W$(2)=CHR$(1):W$(3)=CHR$(1):W$(7)=CHR$(0):W$(8)=CHR$(0):W$(9)=CHR$(0)
64006 W$(10)=CHR$(0):W$(11)=CHR$(0):W$(12)=CHR$(0):W$(13)=CHR$(170)
64007 WD$(0)="(0)MINDINHO M.E.":WD$(1)="(1)ANULAR M.E."
64008 WD$(2)="(2)MEDIO M.E.":WD$(3)="(3)INDICADOR M.E"
64009 WD$(4)="(4)POLEGAR M.E.":WD$(5)="(5)POLEGAR M.D."
64010 WD$(6)="(6)INDICADOR M.D":WD$(7)="(7)MEDIO M.D."
64011 WD$(8)="(8)ANULAR M.D.":WD$(9)="(9)MINDINHO M.D."
64012 GOSUB 64021:IF WE%=0 THEN 64013:W2%=3:GOTO 64014
64013 W2%=2
64014 GOSUB 64018:WE%=10:COM 1:RETURN
64015 REM ########## TEMPO DE 120 MSEG. ##########
64016 W1%=TIMER(0)
64017 IF TIMER(1)>61 THEN RETURN ELSE 64017
64018 REM ########## BEEP POR W2% VEZES ##########
64019 BEEP 1,1:GOSUB 64016
64020 W2%=W2%-1:IF W2%=0 THEN RETURN ELSE 64019
64021 REM ########## RECEBE ACK ##########
64022 W$(4)=CHR$(0):W$(5)=CHR$(48):W$(6)=CHR$(2):W$(14)=CHR$(86)
64023 W$(15)=CHR$(187):W1%=TIMER(0)
64024 IF RXBUF>=20 THEN 64028
64025 IF TIMER(1)<151 THEN 64024
64026 WE%=4
64027 RETURN
64028 IF RXDATA$(1)<>W$(0) THEN 64024
64029 WI%=1
64030 IF WI%=16 THEN 64033
64031 IF RXDATA$(1)<>W$(WI%) THEN 64024

Manual de Programação 21
TRIX Tecnologia Ltda. Módulo Finger

64032 WI%=WI%+1:GOTO 64030


64033 W3$=RXDATA$(1)
64034 W4$=RXDATA$(1)
64035 W5$=RXDATA$(1)
64036 W6$=RXDATA$(1)
64037 IF (W3$=W5$) AND (W4$=W6$) THEN 64038 ELSE 64026
64038 IF (W3$=CHR$(0)) AND (W4$=CHR$(0)) THEN 64040
64039 WE%=5:GOTO 64027
64040 WE%=0:GOTO 64027
64041 REM #################################################

Manual de Programação 22
TRIX Tecnologia Ltda. Módulo Finger

5.2. Listagem da Rotina VERIFICACAO.bas

64100 REM ########## ULTIMA ALTERACAO: 21/11/2001##########


64101 REM ########## VERIFICACAO ##########
64102 WC$=RIGHT$(WC$,5):WI=VAL(WC$)
64103 IF WI<=65000 THEN 64104:WE%=8:RETURN
64104 GOSUB 64164
64105 CLD:DISP 1,1,"COLOQUE DEDO NO ":DISP 2,1,"SENSOR E TECLE #":GOSUB
64156
64106 IF WE%<>0 THEN 64120:COM 2:W1%=RXBUF(0):W1%=TXBUF(0):CLD
64107 DISP 1,1,"AGUARDE ... "
64108 WD=INT(WI/4096):WI=WI-(WD*4096):WC=INT(WI/256):WI=WI-(WC*256)
64109 WB=INT(WI/16):WA=WI-(WB*16):W2%=(WD*16)+WC:W1%=(WB*16)+WA
64110 TXDATA CHR$(85):TXDATA CHR$(32):TXDATA CHR$(1):TXDATA CHR$(1)
64111 TXDATA CHR$(17):TXDATA CHR$(18):TXDATA CHR$(8):TXDATA CHR$(0)
64112 TXDATA CHR$(0): TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0)
64113 TXDATA CHR$(0):TXDATA CHR$(170):TXDATA CHR$(77):TXDATA CHR$(153)
64114 TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0)
64115 TXDATA CHR$(W1%):TXDATA CHR$(W2%):TXDATA CHR$(10):TXDATA
CHR$(0)
64116 W1%=W1% XOR 10:TXDATA CHR$(W1%):TXDATA CHR$(W2%):W1%=TIMER(0)
64117 IF TXBUF=0 THEN 64121
64118 IF TIMER(1)<51 THEN 64117
64119 WE%=9:W1%=TXBUF(0)
64120 COM 1:RETURN
64121 GOSUB 64167:IF WE%<>0 THEN 64124:W1%=TIMER(0)
64122 IF RXBUF<6 THEN 64123 ELSE 64125
64123 IF TIMER(1)<4501 THEN 64122
64124 GOSUB 64187:GOTO 64120
64125 IF RXDATA$(1)<>W$(0) THEN 64122
64126 WI%=1
64127 IF WI%=4 THEN 64130
64128 IF RXDATA$(1)<>W$(WI%) THEN 64122
64129 WI%=WI%+1:GOTO 64127
64130 W3$=RXDATA$(1):W4$=RXDATA$(1)
64131 IF (W3$=CHR$(0)) AND (W4$=CHR$(32)) THEN 64134
64132 IF (W3$=CHR$(17)) AND (W4$=CHR$(34)) THEN 64136
64133 GOTO 64122
64134 W1%=16:GOSUB 64138:IF WE%<>0 THEN 64120
64135 GOSUB 64145:WE%=1:GOTO 64120
64136 W1%=18:GOSUB 64138:IF WE%<>0 THEN 64120

Manual de Programação 23
TRIX Tecnologia Ltda. Módulo Finger

64137 GOSUB 64145:GOTO 64120


64138 REM ### RECEBE RET.STATUS OU RET.RESULT VERIFY ####
64139 IF RXBUF<W1% THEN 64140 ELSE 64144
64140 IF TIMER(1)<2000 THEN 64139
64141 WE%=11
64142 W1%=RXBUF(0)
64143 RETURN
64144 WE%=0:GOTO 64142
64145 REM ########## ENVIA ACK ##########
64146 TXDATA CHR$(85):TXDATA CHR$(32):TXDATA CHR$(1):TXDATA CHR$(1)
64147 TXDATA CHR$(0):TXDATA CHR$(48):TXDATA CHR$(2):TXDATA CHR$(0)
64148 TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0)
64149 TXDATA CHR$(0):TXDATA CHR$(170):TXDATA CHR$(86):TXDATA CHR$(187)
64150 TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0):TXDATA
CHR$(0):W1%=TIMER(0)
64151 IF TXBUF<>0 THEN 64153
64152 WE%=0:GOTO 64155
64153 IF TIMER(1)<51 THEN 64151
64154 WE%=6:W1%=TXBUF(0)
64155 RETURN
64156 REM ########## ESPERA "#" POR 5 SEG. ##########
64157 W1%=TIMER(0)
64158 IF SKEY THEN 64159 ELSE 64161
64159 IF KEY$<>CHR$(13) THEN 64161
64160 WE%=0:GOTO 64163
64161 IF TIMER(1)<2501 THEN 64158
64162 WE%=7
64163 RETURN
64164 REM ########## LIMPA BUF.TECLADO ##########
64165 IF SKEY THEN 64166 ELSE RETURN
64166 W1$=KEY$:GOTO 64165
64167 REM ########## RECEBE ACK ##########
64168 W$(4)=CHR$(0):W$(5)=CHR$(48):W$(6)=CHR$(2):W$(14)=CHR$(86)
64169 W$(15)=CHR$(187):W1%=TIMER(0)
64170 IF RXBUF>=20 THEN 64174
64171 IF TIMER(1)<151 THEN 64170
64172 WE%=4
64173 RETURN
64174 IF RXDATA$(1)<>W$(0) THEN 64170
64175 WI%=1
64176 IF WI%=16 THEN 64179
64177 IF RXDATA$(1)<>W$(WI%) THEN 64170
64178 WI%=WI%+1:GOTO 64176
64179 W3$=RXDATA$(1)
64180 W4$=RXDATA$(1)
64181 W5$=RXDATA$(1)

Manual de Programação 24
TRIX Tecnologia Ltda. Módulo Finger

64182 W6$=RXDATA$(1)
64183 IF (W3$=W5$) AND (W4$=W6$) THEN 64184 ELSE 64172
64184 IF (W3$=CHR$(0)) AND (W4$=CHR$(0)) THEN 64186
64185 WE%=5:GOTO 64173
64186 WE%=0:GOTO 64173
64187 REM ########## REINICIALIZACAO ##########
64188 FINGER 0:GOSUB 64193:COM 2:SERIAL 9600,8,0,0:FINGER 1:W1%=RXBUF(0)
64189 W1%=TXBUF(0):GOSUB 64193
64190 GOSUB 64167:IF WE%=0 THEN 64191:W2%=3:GOTO 64192
64191 W2%=2
64192 GOSUB 64196:WE%=10:COM 1:RETURN
64193 REM ########## TEMPO DE 120 MSEG. ##########
64194 W1%=TIMER(0)
64195 IF TIMER(1)>61 THEN RETURN ELSE 64195
64196 REM ########## BEEP POR W2% VEZES ##########
64197 BEEP 1,1:GOSUB 64193
64198 W2%=W2%-1:IF W2%=0 THEN RETURN ELSE 64197
64199 REM #################################################

Manual de Programação 25
TRIX Tecnologia Ltda. Módulo Finger

5.3. Listagem da Rotina CADASTRAMENTO.bas

64600 REM ########## ULTIMA ALTERACAO: 22/11/2001##########


64601 REM ########## CADASTRAMENTO ##########
64602 GOSUB 64774:W1%=TIMER(0)
64603 CLD:DISP 1,1,"1. APLICATIVO ":DISP 2,1,"2. CADASTRAMENTO"
64604 IF TIMER(1)>3000 THEN 64606:IF SKEY THEN 64605 ELSE 64604
64605 W1$=KEY$:IF W1$="1" THEN 64606:IF W1$="2" THEN 64607 ELSE 64604
64606 CLD:GOTO 10
64607 CLD:DISP 1,1,"DIGITE A SENHA:":DISP 2,1
64611 W1%=0:W1$="":IF LEN(WS$)=0 THEN WS$="1234" ELSE 64612
64612 IF TIMER(1)>5000 THEN 64606:IF SKEY THEN 64613 ELSE 64612
64613 W1$=W1$+KEY$:W1%=W1%+1:DISP "*":IF W1%<>4 THEN 64612
64614 IF W1$=WS$ THEN 64617
64615 CLD:BEEP 1,5:DISP 1,1," SENHA NAO ":DISP 2,1," CONFERE!"
64616 GOSUB 64788:GOTO 64603
64617 REM ########## MENU DE OPCOES ##########
64618 CLD:DISP 1,1,"1. CADASTRA":DISP 2,1,"2. SENHA 3. FIM"
64619 IF SKEY THEN 64620 ELSE 64619
64620 W1$=KEY$:IF W1$="1" OR W1$="2" OR W1$="3" THEN 64621 ELSE 64619
64621 W1%=VAL(W1$):ON W1% GOTO 64622,64777,64600
64622 REM ########## CADASTRO ##########
64623 CLD:DISP 1,1,"1. CADASTRA ":DISP 2,1,"2. EXCLUI "
64624 IF SKEY THEN 64625 ELSE 64624
64625 W1$=KEY$:IF W1$="1" THEN 64665
64626 IF W1$="2" THEN 64627 ELSE 64624
64627 REM ########## EXCLUI CODIGO ##########
64628 GOSUB 64760:IF W1%=0 THEN 64617:IF WI<=65000 AND WI<>0 THEN 64630
64629 CLD:BEEP 1,5:DISP 1,1,"CODIGO INVALIDO":GOSUB 64788:GOTO 64617
64630 CLD:DISP 1,1,"AGUARDE ... ":COM 2:W1%=RXBUF(0):W1%=TXBUF(0)
64631 WD=INT(WI/4096):WI=WI-(WD*4096):WC=INT(WI/256):WI=WI-(WC*256)
64632 WB=INT(WI/16):WA=WI-(WB*16):W2%=(WD*16)+WC:W1%=(WB*16)+WA
64633 TXDATA CHR$(85):TXDATA CHR$(32):TXDATA CHR$(1):TXDATA CHR$(1)
64634 TXDATA CHR$(19):TXDATA CHR$(20):TXDATA CHR$(6):TXDATA CHR$(0)
64635 TXDATA CHR$(0): TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0)
64636 TXDATA CHR$(0):TXDATA CHR$(170):TXDATA CHR$(65):TXDATA CHR$(159)
64637 TXDATA CHR$(W1%):TXDATA CHR$(W2%):TXDATA CHR$(10):TXDATA
CHR$(0)
64638 TXDATA CHR$(0):TXDATA CHR$(0)
64639 W1%=W1% XOR 10:TXDATA CHR$(W1%):TXDATA CHR$(W2%):W1%=TIMER(0)

Manual de Programação 26
TRIX Tecnologia Ltda. Módulo Finger

64640 IF TXBUF=0 THEN 64644


64641 IF TIMER(1)<51 THEN 64640
64642 WE%=14:W1%=TXBUF(0):CLD:GOTO 64663
64643 CLD:IF WE%=0 THEN 64661 ELSE 64663
64644 GOSUB 64866:IF WE%<>0 THEN 64648:W$(4)=CHR$(0):W$(5)=CHR$(32)
64645 W$(6)=CHR$(4):W$(14)=CHR$(80):W$(15)=CHR$(171):W1%=TIMER(0)
64646 IF RXBUF<22 THEN 64647 ELSE 64649
64647 IF TIMER(1)<200 THEN 64646
64648 WE%=16:GOSUB 64854:GOTO 64643
64649 IF RXDATA$(1)<>W$(0) THEN 64646
64650 WI%=1
64651 IF WI%=16 THEN 64654
64652 IF RXDATA$(1)<>W$(WI%) THEN 64646
64653 WI%=WI%+1:GOTO 64651
64654 W1$=RXDATA$(1):W2$=RXDATA$(1):W3$=RXDATA$(1):W4$=RXDATA$(1)
64655 W5$=RXDATA$(1):W6$=RXDATA$(1):WE%=0
64656 IF W1$=CHR$(0) AND W2$=CHR$(0) THEN 64657 ELSE 64659
64657 IF W3$=CHR$(0) AND W4$=CHR$(0) THEN 64658 ELSE 64659
64658 IF W5$=CHR$(0) AND W6$=CHR$(0) THEN 64660
64659 GOSUB 64791:WE%=15:GOTO 64643
64660 GOSUB 64791:GOTO 64643
64661 BEEP 1,2:DISP 1,1,"CODIGO: ":DISP WC$:DISP 2,1," EXCLUIDO!!! "
64662 GOSUB 64789:GOTO 64618
64663 BEEP 1,5:DISP 1,1," ERRO! COMANDO ":DISP 2,1," NAO EXECUTADO "
64664 GOSUB 64789:GOTO 64618
64665 REM ########## CADASTRA ##########
64666 CLD:WP%=0:DISP 1,1,"ESCOLHA A MAO: ":DISP 2,1,"(1)DIR. (2)ESQ. "
64667 IF SKEY THEN 64668 ELSE 64667
64668 W1$=KEY$:IF W1$="1" THEN WM$="DIREITA"
64669 IF W1$="2" THEN WM$="ESQUERDA":IF W1$<>"1" AND W1$<>"2" THEN 64667
64670 CLD:DISP 1,1,"ESCOLHA O DEDO: ":W2%=0
64671 IF W2%=10 THEN W2%=0
64672 DISP 2,1,WD$(W2%):GOSUB 64788:W2%=W2%+1
64673 IF SKEY THEN 64674 ELSE 64671
64674 W2$=KEY$:WD%=VAL(W2$):IF W2$>="0" AND W2$<="9" THEN 64675 ELSE
64670
64675 CLD:DISP 1,1,"MAO: ":DISP WM$:DISP 2,1,"DEDO: ":DISP MID$(WD$(WD%),4,9)
64676 GOSUB 64788:GOSUB 64788:WZ%=0
64677 GOSUB 64760:IF W1%=0 THEN 64618:IF WI<=65000 AND WI<>0 THEN 64679
64678 CLD:BEEP 1,5:DISP 1,1,"CODIGO INVALIDO":GOSUB 64788:GOTO 64618
64679 CLD:DISP 1,1,"AGUARDE ... ":COM 2:W1%=RXBUF(0):W1%=TXBUF(0)
64680 WD=INT(WI/4096):WI=WI-(WD*4096):WC=INT(WI/256):WI=WI-(WC*256)
64681 WB=INT(WI/16):WA=WI-(WB*16):WH%=(WD*16)+WC:WL%=(WB*16)+WA
64682 TXDATA CHR$(85):TXDATA CHR$(32):TXDATA CHR$(1):TXDATA CHR$(1)
64683 TXDATA CHR$(1):TXDATA CHR$(20):TXDATA CHR$(4):TXDATA CHR$(0)
64684 TXDATA CHR$(0): TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0)

Manual de Programação 27
TRIX Tecnologia Ltda. Módulo Finger

64685 TXDATA CHR$(0):TXDATA CHR$(170):TXDATA CHR$(81):TXDATA CHR$(159)


64686 TXDATA CHR$(WL%):TXDATA CHR$(WH%):TXDATA CHR$(WD%):TXDATA
CHR$(0)
64687 W1%=WL% XOR WD%:TXDATA CHR$(W1%):TXDATA
CHR$(WH%):W1%=TIMER(0)
64688 IF TXBUF=0 THEN 64692
64689 IF TIMER(1)<100 THEN 64688
64690 WE%=17:W1%=TXBUF(0):CLD:GOTO 64715
64691 CLD:IF WE%=0 THEN 64713 ELSE 64715
64692 GOSUB 64866:IF WE%=0 THEN 64694
64693 WE%=18:GOSUB 64855:GOTO 64691
64694 W1%=TIMER(0)
64695 IF RXBUF<6 THEN 64696 ELSE 64697
64696 IF TIMER(1)<500 THEN 64695
64697 IF RXDATA$(1)<>W$(0) THEN 64695
64698 WI%=1
64699 IF WI%=4 THEN 64702
64700 IF RXDATA$(1)<>W$(WI%) THEN 64695
64701 WI%=WI%+1:GOTO 64699
64702 W3$=RXDATA$(1):W4$=RXDATA$(1)
64703 IF (W3$=CHR$(0)) AND (W4$=CHR$(32)) THEN 64707
64704 IF (W3$=CHR$(2)) AND (W4$=CHR$(36)) THEN 64711
64705 IF (W3$=CHR$(3)) AND (W4$=CHR$(36)) THEN 64709
64706 GOTO 64695
64707 GOSUB 64735:IF WE%<>0 THEN 64693
64708 GOSUB 64791:GOTO 64713
64709 W1%=10:GOSUB 64847:IF WE%<>0 THEN 64693
64710 GOSUB 64791:IF WE%<>0 THEN 64693 ELSE 64750
64711 W1%=14:GOSUB 64847:IF WE%<>0 THEN 64693
64712 GOSUB 64791:IF WE%<>0 THEN 64693 ELSE 64717
64713 BEEP 1,2:DISP 1,1,"CODIGO: ":DISP WC$:DISP 2,1,"CADASTR0 OK!!! "
64714 GOSUB 64788:GOTO 64618
64715 BEEP 1,5:DISP 1,1," ERRO! COMANDO ":DISP 2,1," NAO EXECUTADO "
64716 GOSUB 64788:GOSUB 64788:GOTO 64618
64717 CLD:BEEP 1,2:DISP 1,1,"COLOQUE DEDO NO ":DISP 2,1,"SENSOR E TECLE #"
64718 IF SKEY THEN 64719 ELSE 64718
64719 IF KEY$<>CHR$(13) THEN 64718
64720 CLD:DISP 1,1,"AGUARDE...":GOSUB 64722
64721 IF (WE%<>0) OR (WZ%>6) THEN 64715 ELSE 64692
64722 REM ########## ENVIA RESUME ENROLL FINGER ##########
64723 TXDATA CHR$(85):TXDATA CHR$(32):TXDATA CHR$(1):TXDATA CHR$(1)
64724 TXDATA CHR$(2):TXDATA CHR$(20):TXDATA CHR$(4):TXDATA CHR$(0)
64725 TXDATA CHR$(0): TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0)
64726 TXDATA CHR$(0):TXDATA CHR$(170):TXDATA CHR$(82):TXDATA CHR$(159)
64727 IF WZ%<6 THEN 64730
64728 TXDATA CHR$(1):TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0)

Manual de Programação 28
TRIX Tecnologia Ltda. Módulo Finger

64729 TXDATA CHR$(1):TXDATA CHR$(0):W1%=TIMER(0):WZ%=WZ%+1:GOTO 64732


64730 TXDATA CHR$(1):TXDATA CHR$(0):TXDATA CHR$(1):TXDATA CHR$(0)
64731 TXDATA CHR$(0):TXDATA CHR$(0):W1%=TIMER(0):WZ%=WZ%+1
64732 IF TXBUF=0 THEN RETURN
64733 IF TIMER(1)<100 THEN 64732
64734 REM ########## RETURN STATUS COMPLETO ##########
64735 W$(6)=CHR$(4):W$(14)=CHR$(80):W$(15)=CHR$(171):W1%=TIMER(0)
64736 IF RXBUF<16 THEN 64737 ELSE 64738
64737 IF TIMER(1)<1000 THEN 64736 ELSE 64693
64738 WI%=6
64739 IF WI%=16 THEN 64742
64740 IF RXDATA$(1)<>W$(WI%) THEN 64736
64741 WI%=WI%+1:GOTO 64739
64742 W1$=RXDATA$(1):W2$=RXDATA$(1):W3$=RXDATA$(1):W4$=RXDATA$(1)
64743 W5$=RXDATA$(1):W6$=RXDATA$(1):WE%=0
64744 IF W1$=CHR$(0) AND W2$=CHR$(0) THEN 64745 ELSE 64747
64745 IF W3$=CHR$(0) AND W4$=CHR$(0) THEN 64746 ELSE 64747
64746 IF W5$=CHR$(0) AND W6$=CHR$(0) THEN 64748
64747 GOSUB 64791:WE%=15:GOTO 64691
64748 GOSUB 64791:WE%=0:GOTO 64691
64749 REM ########## ENVIA RESUME ENROLL PERSON ##########
64750 TXDATA CHR$(85):TXDATA CHR$(32):TXDATA CHR$(1):TXDATA CHR$(1)
64751 TXDATA CHR$(3):TXDATA CHR$(20):TXDATA CHR$(128):TXDATA CHR$(0)
64752 TXDATA CHR$(0): TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0)
64753 TXDATA CHR$(0):TXDATA CHR$(170):TXDATA CHR$(215):TXDATA CHR$(159)
64754 TXDATA CHR$(WL%):TXDATA CHR$(WH%):W1%=0:TXDATA CHR$(0):TXDATA
CHR$(0)
64755 TXDATA "BBAAAAA":TXDATA "AAAAAAAA":TXDATA
"AAAAAAAA":TXDATA "AAAAAACC"
64756 W1%=W1%+1:IF W1%<>4 THEN 64755
64757 TXDATA CHR$(WL%):TXDATA CHR$(WH%):W1%=TIMER(0)
64758 IF TXBUF=0 THEN 64692
64759 IF TIMER(1)<3000 THEN 64758 ELSE 64693
64760 REM ########## OBTEM CODIGO ##########
64761 CLD:DISP 1,1,"CODIGO: ":WC$=""
64762 IF SKEY THEN INPUT WC$ AS 5
64763 IF WC$<>"" THEN 64769
64764 WC$=RBAR$
64765 IF WC$<>"" THEN 64768
64766 WC$=RMAG$
64767 IF WC$="" THEN 64762
64768 DISP WC$
64769 IF WC$<>CHR$(13) THEN 64770
64770 WI=VAL(WC$):DISP 2,1,"CONFIRMA (#)=SIM":GOSUB 64774
64771 IF SKEY THEN 64772 ELSE 64771
64772 IF KEY$=CHR$(13) THEN W1%=1 ELSE W1%=0

Manual de Programação 29
TRIX Tecnologia Ltda. Módulo Finger

64773 RETURN
64774 REM ########## LIMPA BUF.TECLADO ##########
64775 IF SKEY THEN 64776 ELSE RETURN
64776 W1$=KEY$:GOTO 64775
64777 REM ########## SENHA ##########
64778 CLD:DISP 1,1,"NOVA SENHA:":DISP 2,1:W1%=0:W1$=""
64779 IF SKEY THEN 64780 ELSE 64779
64780 W1$=W1$+KEY$:W1%=W1%+1:DISP "*":IF W1%<>4 THEN 64779
64781 CLD:DISP 1,1,"CONFIRME SENHA:":DISP 2,1:W1%=0:W2$=""
64782 IF SKEY THEN 64783 ELSE 64782
64783 W2$=W2$+KEY$:W1%=W1%+1:DISP "*":IF W1%<>4 THEN 64782
64784 IF W1$=W2$ THEN 64787
64785 CLD:BEEP 1,5:DISP 1,1," SENHA NAO ":DISP 2,1," CONFERE!"
64786 GOSUB 64788:GOTO 64617
64787 WS$=W1$:GOTO 64617
64788 REM ########## TEMPO DE 1 SEG. ##########
64789 W1%=TIMER(0)
64790 IF TIMER(1)<500 THEN 64790 ELSE RETURN
64791 REM ########## ENVIA ACK ##########
64792 TXDATA CHR$(85):TXDATA CHR$(32):TXDATA CHR$(1):TXDATA CHR$(1)
64793 TXDATA CHR$(0):TXDATA CHR$(48):TXDATA CHR$(2):TXDATA CHR$(0)
64794 TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0)
64795 TXDATA CHR$(0):TXDATA CHR$(170):TXDATA CHR$(86):TXDATA CHR$(187)
64796 TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0):TXDATA
CHR$(0):W1%=TIMER(0)
64797 IF TXBUF<>0 THEN 64799
64798 WE%=0:GOTO 64801
64799 IF TIMER(1)<51 THEN 64797
64800 WE%=6:W1%=TXBUF(0)
64801 RETURN
64802 REM ########## ESPERA "#" 5 SEG. ##########
64803 W1%=TIMER(0)
64804 IF SKEY THEN 64805 ELSE 64807
64805 IF KEY$<>CHR$(13) THEN 64807
64806 WE%=0:GOTO 64809
64807 IF TIMER(1)<2501 THEN 64804
64808 WE%=7
64809 RETURN
64810 REM ########## ENVIA ON LINE VERIFY ID ##########
64811 WC$=RIGHT$(WC$,5):WI=VAL(WC$)
64812 IF WI<=65000 THEN 64813:WE%=8:RETURN
64813 GOSUB 64775
64814 CLD:DISP 1,1,"COLOQUE DEDO NO ":DISP 2,1,"SENSOR E TECLE #":GOSUB
64802
64815 IF WE%<>0 THEN 64829:COM 2:W1%=RXBUF(0):W1%=TXBUF(0):CLD
64816 DISP 1,1,"AGUARDE ... "

Manual de Programação 30
TRIX Tecnologia Ltda. Módulo Finger

64817 WD=INT(WI/4096):WI=WI-(WD*4096):WC=INT(WI/256):WI=WI-(WC*256)
64818 WB=INT(WI/16):WA=WI-(WB*16):W2%=(WD*16)+WC:W1%=(WB*16)+WA
64819 TXDATA CHR$(85):TXDATA CHR$(32):TXDATA CHR$(1):TXDATA CHR$(1)
64820 TXDATA CHR$(17):TXDATA CHR$(18):TXDATA CHR$(8):TXDATA CHR$(0)
64821 TXDATA CHR$(0): TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0)
64822 TXDATA CHR$(0):TXDATA CHR$(170):TXDATA CHR$(77):TXDATA CHR$(153)
64823 TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0)
64824 TXDATA CHR$(W1%):TXDATA CHR$(W2%):TXDATA CHR$(10):TXDATA
CHR$(0)
64825 W1%=W1% XOR 10:TXDATA CHR$(W1%):TXDATA CHR$(W2%):W1%=TIMER(0)
64826 IF TXBUF=0 THEN 64830
64827 IF TIMER(1)<51 THEN 64826
64828 WE%=9:W1%=TXBUF(0)
64829 COM 1:RETURN
64830 GOSUB 64866:IF WE%<>0 THEN 64833:W1%=TIMER(0)
64831 IF RXBUF<6 THEN 64832 ELSE 64834
64832 IF TIMER(1)<4501 THEN 64831
64833 GOSUB 64855:GOTO 64829
64834 IF RXDATA$(1)<>W$(0) THEN 64831
64835 WI%=1
64836 IF WI%=4 THEN 64839
64837 IF RXDATA$(1)<>W$(WI%) THEN 64831
64838 WI%=WI%+1:GOTO 64836
64839 W3$=RXDATA$(1):W4$=RXDATA$(1)
64840 IF (W3$=CHR$(0)) AND (W4$=CHR$(32)) THEN 64843
64841 IF (W3$=CHR$(17)) AND (W4$=CHR$(34)) THEN 64845
64842 GOTO 64831
64843 W1%=16:GOSUB 64847:IF WE%<>0 THEN 64829
64844 GOSUB 64791:WE%=1:GOTO 64829
64845 W1%=18:GOSUB 64847:IF WE%<>0 THEN 64829
64846 GOSUB 64791:GOTO 64829
64847 REM ########## RECEBE RET.STATUS ##########
64848 IF RXBUF<W1% THEN 64849 ELSE 64853
64849 IF TIMER(1)<2000 THEN 64848
64850 WE%=11
64851 W1%=RXBUF(0)
64852 RETURN
64853 WE%=0:GOTO 64851
64854 REM ########## REINICIALIZACAO ##########
64855 FINGER 0:GOSUB 64860:COM 2:SERIAL 9600,8,0,0:FINGER 1:W1%=RXBUF(0)
64856 W1%=TXBUF(0):GOSUB 64860
64857 GOSUB 64866:IF WE%=0 THEN 64858:W2%=3:GOTO 64859
64858 W2%=2
64859 GOSUB 64863:WE%=10:COM 1:RETURN
64860 REM ########## TEMPO DE 120 MSEG. ##########
64861 W1%=TIMER(0)

Manual de Programação 31
TRIX Tecnologia Ltda. Módulo Finger

64862 IF TIMER(1)>61 THEN RETURN ELSE 64862


64863 REM ########## BEEP POR W2% VEZES ##########
64864 BEEP 1,1:GOSUB 64860
64865 W2%=W2%-1:IF W2%=0 THEN RETURN ELSE 64864
64866 REM ########## RECEBE ACK ##########
64867 W$(4)=CHR$(0):W$(5)=CHR$(48):W$(6)=CHR$(2):W$(14)=CHR$(86)
64868 W$(15)=CHR$(187):W1%=TIMER(0)
64869 IF RXBUF>=20 THEN 64873
64870 IF TIMER(1)<151 THEN 64869
64871 WE%=4
64872 RETURN
64873 IF RXDATA$(1)<>W$(0) THEN 64869
64874 WI%=1
64875 IF WI%=16 THEN 64878
64876 IF RXDATA$(1)<>W$(WI%) THEN 64869
64877 WI%=WI%+1:GOTO 64875
64878 W3$=RXDATA$(1)
64879 W4$=RXDATA$(1)
64880 W5$=RXDATA$(1)
64881 W6$=RXDATA$(1)
64882 IF (W3$=W5$) AND (W4$=W6$) THEN 64883 ELSE 64871
64883 IF (W3$=CHR$(0)) AND (W4$=CHR$(0)) THEN 64885
64884 WE%=5:GOTO 64872
64885 WE%=0:GOTO 64872
64886 REM #################################################

Manual de Programação 32
TRIX Tecnologia Ltda. Módulo Finger

5.4. Listagem do programa exemplo FINGER.bas


1 REM #####################################################
2 REM ########## ULTIMA ALTERACAO: 22/11/2001 ##########
3 REM ########## PROCEDIMENTO DE INICIALIZACAO ##########
4 GOSUB 64000
5 REM ########## PROCEDIMENTO DE CADASTRAMENTO ##########
6 GOTO 64600
10 REM
30 REM ----- COLETA DE PONTO -----
40 REM
1000 REM ---- ABRE ARQUIVO -------
1010 REM
1020 OPEN 1,CO$=16,DT$=8,HR$=5
1030 REM
1200 REM ---- LOOP DE LEITURA ----
1210 CO$="":DISP 1,1," "+MID$(TIME$,1,5)+" "+MID$(DATE$,5,8)
1211 IF SKEY THEN GOSUB 3000
1213 IF CO$<>"" THEN 1400
1214 CO$=RBAR$
1230 IF CO$<>"" THEN 1400
1240 CO$=RMAG$
1250 IF CO$="" THEN 1200
1260 REM
1400 REM ---- AJUSTA CODIGO ------
1401 REM ########## ROTINA DE VERIFICACAO ##########
1402 WC$=CO$
1403 GOSUB 64100
1404 IF WE%<>0 THEN 2000
1405 REM ##################################################
1410 CO$=CO$+" "
1420 CO$=LEFT$(CO$,16)
1430 REM
1600 REM ---- REGISTRA CODIGO ----
1610 DT$=RIGHT$(DATE$,8)
1620 HR$=LEFT$(TIME$,5)
1630 APPEND
1640 REM
1800 REM ---- COD. REGISTRADO ----
1810 CLD
1815 BEEP 1,1
1820 DISP 1,1,"CODIGO: ":DISP 1,9,WC$
1830 DISP 2,1,"** REGISTRADO **"
1835 A%=TIMER(0)

Manual de Programação 33
TRIX Tecnologia Ltda. Módulo Finger

1840 IF TIMER(1)<400 THEN 1840


1900 CLD
1910 GOTO 1200
2000 REM -- COD. NAO REGISTRADO --
2010 CLD
2021 BEEP 1,8
2032 DISP 1,1,"CODIGO: ":DISP 1,9,CO$
2043 DISP 2,1,"*NAO REGISTRADO*"
2053 A%=TIMER(0)
2064 IF TIMER(1)<400 THEN 2064
2070 CLD
2080 GOTO 1200
3000 DISP 2,1,"CODIGO: "
3010 INPUT CO$ AS 5
3020 DISP 2,1," "
3060 RETURN
3061 REM
3062 REM ########## ROTINAS DO MODULO FINGER ##########
3063 REM
3064 REM #################################################
64000 REM ########## ULTIMA ALTERACAO: 21/11/2001##########
64001 REM ########## INICIALIZACAO ##########
64002 TURBO "ON":DIM W$(25):DIM WD$(9)
64003 FINGER 0:GOSUB 64015:COM 2:SERIAL 9600,8,0,0:FINGER 1:W1%=RXBUF(0)
64004 W1%=TXBUF(0):GOSUB 64015:W$(0)=CHR$(85):W$(1)=CHR$(32)
64005 W$(2)=CHR$(1):W$(3)=CHR$(1):W$(7)=CHR$(0):W$(8)=CHR$(0):W$(9)=CHR$(0)
64006 W$(10)=CHR$(0):W$(11)=CHR$(0):W$(12)=CHR$(0):W$(13)=CHR$(170)
64007 WD$(0)="(0)MINDINHO M.E.":WD$(1)="(1)ANULAR M.E."
64008 WD$(2)="(2)MEDIO M.E.":WD$(3)="(3)INDICADOR M.E"
64009 WD$(4)="(4)POLEGAR M.E.":WD$(5)="(5)POLEGAR M.D."
64010 WD$(6)="(6)INDICADOR M.D":WD$(7)="(7)MEDIO M.D."
64011 WD$(8)="(8)ANULAR M.D.":WD$(9)="(9)MINDINHO M.D."
64012 GOSUB 64021:IF WE%=0 THEN 64013:W2%=3:GOTO 64014
64013 W2%=2
64014 GOSUB 64018:WE%=10:COM 1:RETURN
64015 REM ########## TEMPO DE 120 MSEG. ##########
64016 W1%=TIMER(0)
64017 IF TIMER(1)>61 THEN RETURN ELSE 64017
64018 REM ########## BEEP POR W2% VEZES ##########
64019 BEEP 1,1:GOSUB 64016
64020 W2%=W2%-1:IF W2%=0 THEN RETURN ELSE 64019
64021 REM ########## RECEBE ACK ##########
64022 W$(4)=CHR$(0):W$(5)=CHR$(48):W$(6)=CHR$(2):W$(14)=CHR$(86)
64023 W$(15)=CHR$(187):W1%=TIMER(0)
64024 IF RXBUF>=20 THEN 64028
64025 IF TIMER(1)<151 THEN 64024

Manual de Programação 34
TRIX Tecnologia Ltda. Módulo Finger

64026 WE%=4
64027 RETURN
64028 IF RXDATA$(1)<>W$(0) THEN 64024
64029 WI%=1
64030 IF WI%=16 THEN 64033
64031 IF RXDATA$(1)<>W$(WI%) THEN 64024
64032 WI%=WI%+1:GOTO 64030
64033 W3$=RXDATA$(1)
64034 W4$=RXDATA$(1)
64035 W5$=RXDATA$(1)
64036 W6$=RXDATA$(1)
64037 IF (W3$=W5$) AND (W4$=W6$) THEN 64038 ELSE 64026
64038 IF (W3$=CHR$(0)) AND (W4$=CHR$(0)) THEN 64040
64039 WE%=5:GOTO 64027
64040 WE%=0:GOTO 64027
64041 REM #################################################
64100 REM ########## ULTIMA ALTERACAO: 21/11/2001##########
64101 REM ########## VERIFICACAO ##########
64102 WC$=RIGHT$(WC$,5):WI=VAL(WC$)
64103 IF WI<=65000 THEN 64104:WE%=8:RETURN
64104 GOSUB 64164
64105 CLD:DISP 1,1,"COLOQUE DEDO NO ":DISP 2,1,"SENSOR E TECLE #":GOSUB
64156
64106 IF WE%<>0 THEN 64120:COM 2:W1%=RXBUF(0):W1%=TXBUF(0):CLD
64107 DISP 1,1,"AGUARDE ... "
64108 WD=INT(WI/4096):WI=WI-(WD*4096):WC=INT(WI/256):WI=WI-(WC*256)
64109 WB=INT(WI/16):WA=WI-(WB*16):W2%=(WD*16)+WC:W1%=(WB*16)+WA
64110 TXDATA CHR$(85):TXDATA CHR$(32):TXDATA CHR$(1):TXDATA CHR$(1)
64111 TXDATA CHR$(17):TXDATA CHR$(18):TXDATA CHR$(8):TXDATA CHR$(0)
64112 TXDATA CHR$(0): TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0)
64113 TXDATA CHR$(0):TXDATA CHR$(170):TXDATA CHR$(77):TXDATA CHR$(153)
64114 TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0)
64115 TXDATA CHR$(W1%):TXDATA CHR$(W2%):TXDATA CHR$(10):TXDATA
CHR$(0)
64116 W1%=W1% XOR 10:TXDATA CHR$(W1%):TXDATA CHR$(W2%):W1%=TIMER(0)
64117 IF TXBUF=0 THEN 64121
64118 IF TIMER(1)<51 THEN 64117
64119 WE%=9:W1%=TXBUF(0)
64120 COM 1:RETURN
64121 GOSUB 64167:IF WE%<>0 THEN 64124:W1%=TIMER(0)
64122 IF RXBUF<6 THEN 64123 ELSE 64125
64123 IF TIMER(1)<4501 THEN 64122
64124 GOSUB 64187:GOTO 64120
64125 IF RXDATA$(1)<>W$(0) THEN 64122
64126 WI%=1
64127 IF WI%=4 THEN 64130

Manual de Programação 35
TRIX Tecnologia Ltda. Módulo Finger

64128 IF RXDATA$(1)<>W$(WI%) THEN 64122


64129 WI%=WI%+1:GOTO 64127
64130 W3$=RXDATA$(1):W4$=RXDATA$(1)
64131 IF (W3$=CHR$(0)) AND (W4$=CHR$(32)) THEN 64134
64132 IF (W3$=CHR$(17)) AND (W4$=CHR$(34)) THEN 64136
64133 GOTO 64122
64134 W1%=16:GOSUB 64138:IF WE%<>0 THEN 64120
64135 GOSUB 64145:WE%=1:GOTO 64120
64136 W1%=18:GOSUB 64138:IF WE%<>0 THEN 64120
64137 GOSUB 64145:GOTO 64120
64138 REM ### RECEBE RET.STATUS OU RET.RESULT VERIFY ####
64139 IF RXBUF<W1% THEN 64140 ELSE 64144
64140 IF TIMER(1)<2000 THEN 64139
64141 WE%=11
64142 W1%=RXBUF(0)
64143 RETURN
64144 WE%=0:GOTO 64142
64145 REM ########## ENVIA ACK ##########
64146 TXDATA CHR$(85):TXDATA CHR$(32):TXDATA CHR$(1):TXDATA CHR$(1)
64147 TXDATA CHR$(0):TXDATA CHR$(48):TXDATA CHR$(2):TXDATA CHR$(0)
64148 TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0)
64149 TXDATA CHR$(0):TXDATA CHR$(170):TXDATA CHR$(86):TXDATA CHR$(187)
64150 TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0):TXDATA
CHR$(0):W1%=TIMER(0)
64151 IF TXBUF<>0 THEN 64153
64152 WE%=0:GOTO 64155
64153 IF TIMER(1)<51 THEN 64151
64154 WE%=6:W1%=TXBUF(0)
64155 RETURN
64156 REM ########## ESPERA "#" POR 5 SEG. ##########
64157 W1%=TIMER(0)
64158 IF SKEY THEN 64159 ELSE 64161
64159 IF KEY$<>CHR$(13) THEN 64161
64160 WE%=0:GOTO 64163
64161 IF TIMER(1)<2501 THEN 64158
64162 WE%=7
64163 RETURN
64164 REM ########## LIMPA BUF.TECLADO ##########
64165 IF SKEY THEN 64166 ELSE RETURN
64166 W1$=KEY$:GOTO 64165
64167 REM ########## RECEBE ACK ##########
64168 W$(4)=CHR$(0):W$(5)=CHR$(48):W$(6)=CHR$(2):W$(14)=CHR$(86)
64169 W$(15)=CHR$(187):W1%=TIMER(0)
64170 IF RXBUF>=20 THEN 64174
64171 IF TIMER(1)<151 THEN 64170
64172 WE%=4

Manual de Programação 36
TRIX Tecnologia Ltda. Módulo Finger

64173 RETURN
64174 IF RXDATA$(1)<>W$(0) THEN 64170
64175 WI%=1
64176 IF WI%=16 THEN 64179
64177 IF RXDATA$(1)<>W$(WI%) THEN 64170
64178 WI%=WI%+1:GOTO 64176
64179 W3$=RXDATA$(1)
64180 W4$=RXDATA$(1)
64181 W5$=RXDATA$(1)
64182 W6$=RXDATA$(1)
64183 IF (W3$=W5$) AND (W4$=W6$) THEN 64184 ELSE 64172
64184 IF (W3$=CHR$(0)) AND (W4$=CHR$(0)) THEN 64186
64185 WE%=5:GOTO 64173
64186 WE%=0:GOTO 64173
64187 REM ########## REINICIALIZACAO ##########
64188 FINGER 0:GOSUB 64193:COM 2:SERIAL 9600,8,0,0:FINGER 1:W1%=RXBUF(0)
64189 W1%=TXBUF(0):GOSUB 64193
64190 GOSUB 64167:IF WE%=0 THEN 64191:W2%=3:GOTO 64192
64191 W2%=2
64192 GOSUB 64196:WE%=10:COM 1:RETURN
64193 REM ########## TEMPO DE 120 MSEG. ##########
64194 W1%=TIMER(0)
64195 IF TIMER(1)>61 THEN RETURN ELSE 64195
64196 REM ########## BEEP POR W2% VEZES ##########
64197 BEEP 1,1:GOSUB 64193
64198 W2%=W2%-1:IF W2%=0 THEN RETURN ELSE 64197
64199 REM #################################################
64600 REM ########## ULTIMA ALTERACAO: 22/11/2001##########
64601 REM ########## CADASTRAMENTO ##########
64602 GOSUB 64774:W1%=TIMER(0)
64603 CLD:DISP 1,1,"1. APLICATIVO ":DISP 2,1,"2. CADASTRAMENTO"
64604 IF TIMER(1)>3000 THEN 64606:IF SKEY THEN 64605 ELSE 64604
64605 W1$=KEY$:IF W1$="1" THEN 64606:IF W1$="2" THEN 64607 ELSE 64604
64606 CLD:GOTO 10
64607 CLD:DISP 1,1,"DIGITE A SENHA:":DISP 2,1
64611 W1%=0:W1$="":IF LEN(WS$)=0 THEN WS$="1234" ELSE 64612
64612 IF TIMER(1)>5000 THEN 64606:IF SKEY THEN 64613 ELSE 64612
64613 W1$=W1$+KEY$:W1%=W1%+1:DISP "*":IF W1%<>4 THEN 64612
64614 IF W1$=WS$ THEN 64617
64615 CLD:BEEP 1,5:DISP 1,1," SENHA NAO ":DISP 2,1," CONFERE!"
64616 GOSUB 64788:GOTO 64603
64617 REM ########## MENU DE OPCOES ##########
64618 CLD:DISP 1,1,"1. CADASTRA":DISP 2,1,"2. SENHA 3. FIM"
64619 IF SKEY THEN 64620 ELSE 64619
64620 W1$=KEY$:IF W1$="1" OR W1$="2" OR W1$="3" THEN 64621 ELSE 64619
64621 W1%=VAL(W1$):ON W1% GOTO 64622,64777,64600

Manual de Programação 37
TRIX Tecnologia Ltda. Módulo Finger

64622 REM ########## CADASTRO ##########


64623 CLD:DISP 1,1,"1. CADASTRA ":DISP 2,1,"2. EXCLUI "
64624 IF SKEY THEN 64625 ELSE 64624
64625 W1$=KEY$:IF W1$="1" THEN 64665
64626 IF W1$="2" THEN 64627 ELSE 64624
64627 REM ########## EXCLUI CODIGO ##########
64628 GOSUB 64760:IF W1%=0 THEN 64617:IF WI<=65000 AND WI<>0 THEN 64630
64629 CLD:BEEP 1,5:DISP 1,1,"CODIGO INVALIDO":GOSUB 64788:GOTO 64617
64630 CLD:DISP 1,1,"AGUARDE ... ":COM 2:W1%=RXBUF(0):W1%=TXBUF(0)
64631 WD=INT(WI/4096):WI=WI-(WD*4096):WC=INT(WI/256):WI=WI-(WC*256)
64632 WB=INT(WI/16):WA=WI-(WB*16):W2%=(WD*16)+WC:W1%=(WB*16)+WA
64633 TXDATA CHR$(85):TXDATA CHR$(32):TXDATA CHR$(1):TXDATA CHR$(1)
64634 TXDATA CHR$(19):TXDATA CHR$(20):TXDATA CHR$(6):TXDATA CHR$(0)
64635 TXDATA CHR$(0): TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0)
64636 TXDATA CHR$(0):TXDATA CHR$(170):TXDATA CHR$(65):TXDATA CHR$(159)
64637 TXDATA CHR$(W1%):TXDATA CHR$(W2%):TXDATA CHR$(10):TXDATA
CHR$(0)
64638 TXDATA CHR$(0):TXDATA CHR$(0)
64639 W1%=W1% XOR 10:TXDATA CHR$(W1%):TXDATA CHR$(W2%):W1%=TIMER(0)
64640 IF TXBUF=0 THEN 64644
64641 IF TIMER(1)<51 THEN 64640
64642 WE%=14:W1%=TXBUF(0):CLD:GOTO 64663
64643 CLD:IF WE%=0 THEN 64661 ELSE 64663
64644 GOSUB 64866:IF WE%<>0 THEN 64648:W$(4)=CHR$(0):W$(5)=CHR$(32)
64645 W$(6)=CHR$(4):W$(14)=CHR$(80):W$(15)=CHR$(171):W1%=TIMER(0)
64646 IF RXBUF<22 THEN 64647 ELSE 64649
64647 IF TIMER(1)<200 THEN 64646
64648 WE%=16:GOSUB 64854:GOTO 64643
64649 IF RXDATA$(1)<>W$(0) THEN 64646
64650 WI%=1
64651 IF WI%=16 THEN 64654
64652 IF RXDATA$(1)<>W$(WI%) THEN 64646
64653 WI%=WI%+1:GOTO 64651
64654 W1$=RXDATA$(1):W2$=RXDATA$(1):W3$=RXDATA$(1):W4$=RXDATA$(1)
64655 W5$=RXDATA$(1):W6$=RXDATA$(1):WE%=0
64656 IF W1$=CHR$(0) AND W2$=CHR$(0) THEN 64657 ELSE 64659
64657 IF W3$=CHR$(0) AND W4$=CHR$(0) THEN 64658 ELSE 64659
64658 IF W5$=CHR$(0) AND W6$=CHR$(0) THEN 64660
64659 GOSUB 64791:WE%=15:GOTO 64643
64660 GOSUB 64791:GOTO 64643
64661 BEEP 1,2:DISP 1,1,"CODIGO: ":DISP WC$:DISP 2,1," EXCLUIDO!!! "
64662 GOSUB 64789:GOTO 64618
64663 BEEP 1,5:DISP 1,1," ERRO! COMANDO ":DISP 2,1," NAO EXECUTADO "
64664 GOSUB 64789:GOTO 64618
64665 REM ########## CADASTRA ##########
64666 CLD:WP%=0:DISP 1,1,"ESCOLHA A MAO: ":DISP 2,1,"(1)DIR. (2)ESQ. "

Manual de Programação 38
TRIX Tecnologia Ltda. Módulo Finger

64667 IF SKEY THEN 64668 ELSE 64667


64668 W1$=KEY$:IF W1$="1" THEN WM$="DIREITA"
64669 IF W1$="2" THEN WM$="ESQUERDA":IF W1$<>"1" AND W1$<>"2" THEN 64667
64670 CLD:DISP 1,1,"ESCOLHA O DEDO: ":W2%=0
64671 IF W2%=10 THEN W2%=0
64672 DISP 2,1,WD$(W2%):GOSUB 64788:W2%=W2%+1
64673 IF SKEY THEN 64674 ELSE 64671
64674 W2$=KEY$:WD%=VAL(W2$):IF W2$>="0" AND W2$<="9" THEN 64675 ELSE
64670
64675 CLD:DISP 1,1,"MAO: ":DISP WM$:DISP 2,1,"DEDO: ":DISP MID$(WD$(WD%),4,9)
64676 GOSUB 64788:GOSUB 64788:WZ%=0
64677 GOSUB 64760:IF W1%=0 THEN 64618:IF WI<=65000 AND WI<>0 THEN 64679
64678 CLD:BEEP 1,5:DISP 1,1,"CODIGO INVALIDO":GOSUB 64788:GOTO 64618
64679 CLD:DISP 1,1,"AGUARDE ... ":COM 2:W1%=RXBUF(0):W1%=TXBUF(0)
64680 WD=INT(WI/4096):WI=WI-(WD*4096):WC=INT(WI/256):WI=WI-(WC*256)
64681 WB=INT(WI/16):WA=WI-(WB*16):WH%=(WD*16)+WC:WL%=(WB*16)+WA
64682 TXDATA CHR$(85):TXDATA CHR$(32):TXDATA CHR$(1):TXDATA CHR$(1)
64683 TXDATA CHR$(1):TXDATA CHR$(20):TXDATA CHR$(4):TXDATA CHR$(0)
64684 TXDATA CHR$(0): TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0)
64685 TXDATA CHR$(0):TXDATA CHR$(170):TXDATA CHR$(81):TXDATA CHR$(159)
64686 TXDATA CHR$(WL%):TXDATA CHR$(WH%):TXDATA CHR$(WD%):TXDATA
CHR$(0)
64687 W1%=WL% XOR WD%:TXDATA CHR$(W1%):TXDATA
CHR$(WH%):W1%=TIMER(0)
64688 IF TXBUF=0 THEN 64692
64689 IF TIMER(1)<100 THEN 64688
64690 WE%=17:W1%=TXBUF(0):CLD:GOTO 64715
64691 CLD:IF WE%=0 THEN 64713 ELSE 64715
64692 GOSUB 64866:IF WE%=0 THEN 64694
64693 WE%=18:GOSUB 64855:GOTO 64691
64694 W1%=TIMER(0)
64695 IF RXBUF<6 THEN 64696 ELSE 64697
64696 IF TIMER(1)<500 THEN 64695
64697 IF RXDATA$(1)<>W$(0) THEN 64695
64698 WI%=1
64699 IF WI%=4 THEN 64702
64700 IF RXDATA$(1)<>W$(WI%) THEN 64695
64701 WI%=WI%+1:GOTO 64699
64702 W3$=RXDATA$(1):W4$=RXDATA$(1)
64703 IF (W3$=CHR$(0)) AND (W4$=CHR$(32)) THEN 64707
64704 IF (W3$=CHR$(2)) AND (W4$=CHR$(36)) THEN 64711
64705 IF (W3$=CHR$(3)) AND (W4$=CHR$(36)) THEN 64709
64706 GOTO 64695
64707 GOSUB 64735:IF WE%<>0 THEN 64693
64708 GOSUB 64791:GOTO 64713
64709 W1%=10:GOSUB 64847:IF WE%<>0 THEN 64693

Manual de Programação 39
TRIX Tecnologia Ltda. Módulo Finger

64710 GOSUB 64791:IF WE%<>0 THEN 64693 ELSE 64750


64711 W1%=14:GOSUB 64847:IF WE%<>0 THEN 64693
64712 GOSUB 64791:IF WE%<>0 THEN 64693 ELSE 64717
64713 BEEP 1,2:DISP 1,1,"CODIGO: ":DISP WC$:DISP 2,1,"CADASTR0 OK!!! "
64714 GOSUB 64788:GOTO 64618
64715 BEEP 1,5:DISP 1,1," ERRO! COMANDO ":DISP 2,1," NAO EXECUTADO "
64716 GOSUB 64788:GOSUB 64788:GOTO 64618
64717 CLD:BEEP 1,2:DISP 1,1,"COLOQUE DEDO NO ":DISP 2,1,"SENSOR E TECLE #"
64718 IF SKEY THEN 64719 ELSE 64718
64719 IF KEY$<>CHR$(13) THEN 64718
64720 CLD:DISP 1,1,"AGUARDE...":GOSUB 64722
64721 IF (WE%<>0) OR (WZ%>6) THEN 64715 ELSE 64692
64722 REM ########## ENVIA RESUME ENROLL FINGER ##########
64723 TXDATA CHR$(85):TXDATA CHR$(32):TXDATA CHR$(1):TXDATA CHR$(1)
64724 TXDATA CHR$(2):TXDATA CHR$(20):TXDATA CHR$(4):TXDATA CHR$(0)
64725 TXDATA CHR$(0): TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0)
64726 TXDATA CHR$(0):TXDATA CHR$(170):TXDATA CHR$(82):TXDATA CHR$(159)
64727 IF WZ%<6 THEN 64730
64728 TXDATA CHR$(1):TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0)
64729 TXDATA CHR$(1):TXDATA CHR$(0):W1%=TIMER(0):WZ%=WZ%+1:GOTO 64732
64730 TXDATA CHR$(1):TXDATA CHR$(0):TXDATA CHR$(1):TXDATA CHR$(0)
64731 TXDATA CHR$(0):TXDATA CHR$(0):W1%=TIMER(0):WZ%=WZ%+1
64732 IF TXBUF=0 THEN RETURN
64733 IF TIMER(1)<100 THEN 64732
64734 REM ########## RETURN STATUS COMPLETO ##########
64735 W$(6)=CHR$(4):W$(14)=CHR$(80):W$(15)=CHR$(171):W1%=TIMER(0)
64736 IF RXBUF<16 THEN 64737 ELSE 64738
64737 IF TIMER(1)<1000 THEN 64736 ELSE 64693
64738 WI%=6
64739 IF WI%=16 THEN 64742
64740 IF RXDATA$(1)<>W$(WI%) THEN 64736
64741 WI%=WI%+1:GOTO 64739
64742 W1$=RXDATA$(1):W2$=RXDATA$(1):W3$=RXDATA$(1):W4$=RXDATA$(1)
64743 W5$=RXDATA$(1):W6$=RXDATA$(1):WE%=0
64744 IF W1$=CHR$(0) AND W2$=CHR$(0) THEN 64745 ELSE 64747
64745 IF W3$=CHR$(0) AND W4$=CHR$(0) THEN 64746 ELSE 64747
64746 IF W5$=CHR$(0) AND W6$=CHR$(0) THEN 64748
64747 GOSUB 64791:WE%=15:GOTO 64691
64748 GOSUB 64791:WE%=0:GOTO 64691
64749 REM ########## ENVIA RESUME ENROLL PERSON ##########
64750 TXDATA CHR$(85):TXDATA CHR$(32):TXDATA CHR$(1):TXDATA CHR$(1)
64751 TXDATA CHR$(3):TXDATA CHR$(20):TXDATA CHR$(128):TXDATA CHR$(0)
64752 TXDATA CHR$(0): TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0)
64753 TXDATA CHR$(0):TXDATA CHR$(170):TXDATA CHR$(215):TXDATA CHR$(159)
64754 TXDATA CHR$(WL%):TXDATA CHR$(WH%):W1%=0:TXDATA CHR$(0):TXDATA
CHR$(0)

Manual de Programação 40
TRIX Tecnologia Ltda. Módulo Finger

64755 TXDATA "BBAAAAA":TXDATA "AAAAAAAA":TXDATA


"AAAAAAAA":TXDATA "AAAAAACC"
64756 W1%=W1%+1:IF W1%<>4 THEN 64755
64757 TXDATA CHR$(WL%):TXDATA CHR$(WH%):W1%=TIMER(0)
64758 IF TXBUF=0 THEN 64692
64759 IF TIMER(1)<3000 THEN 64758 ELSE 64693
64760 REM ########## OBTEM CODIGO ##########
64761 CLD:DISP 1,1,"CODIGO: ":WC$=""
64762 IF SKEY THEN INPUT WC$ AS 5
64763 IF WC$<>"" THEN 64769
64764 WC$=RBAR$
64765 IF WC$<>"" THEN 64768
64766 WC$=RMAG$
64767 IF WC$="" THEN 64762
64768 DISP WC$
64769 IF WC$<>CHR$(13) THEN 64770
64770 WI=VAL(WC$):DISP 2,1,"CONFIRMA (#)=SIM":GOSUB 64774
64771 IF SKEY THEN 64772 ELSE 64771
64772 IF KEY$=CHR$(13) THEN W1%=1 ELSE W1%=0
64773 RETURN
64774 REM ########## LIMPA BUF.TECLADO ##########
64775 IF SKEY THEN 64776 ELSE RETURN
64776 W1$=KEY$:GOTO 64775
64777 REM ########## SENHA ##########
64778 CLD:DISP 1,1,"NOVA SENHA:":DISP 2,1:W1%=0:W1$=""
64779 IF SKEY THEN 64780 ELSE 64779
64780 W1$=W1$+KEY$:W1%=W1%+1:DISP "*":IF W1%<>4 THEN 64779
64781 CLD:DISP 1,1,"CONFIRME SENHA:":DISP 2,1:W1%=0:W2$=""
64782 IF SKEY THEN 64783 ELSE 64782
64783 W2$=W2$+KEY$:W1%=W1%+1:DISP "*":IF W1%<>4 THEN 64782
64784 IF W1$=W2$ THEN 64787
64785 CLD:BEEP 1,5:DISP 1,1," SENHA NAO ":DISP 2,1," CONFERE!"
64786 GOSUB 64788:GOTO 64617
64787 WS$=W1$:GOTO 64617
64788 REM ########## TEMPO DE 1 SEG. ##########
64789 W1%=TIMER(0)
64790 IF TIMER(1)<500 THEN 64790 ELSE RETURN
64791 REM ########## ENVIA ACK ##########
64792 TXDATA CHR$(85):TXDATA CHR$(32):TXDATA CHR$(1):TXDATA CHR$(1)
64793 TXDATA CHR$(0):TXDATA CHR$(48):TXDATA CHR$(2):TXDATA CHR$(0)
64794 TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0)
64795 TXDATA CHR$(0):TXDATA CHR$(170):TXDATA CHR$(86):TXDATA CHR$(187)
64796 TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0):TXDATA
CHR$(0):W1%=TIMER(0)
64797 IF TXBUF<>0 THEN 64799
64798 WE%=0:GOTO 64801

Manual de Programação 41
TRIX Tecnologia Ltda. Módulo Finger

64799 IF TIMER(1)<51 THEN 64797


64800 WE%=6:W1%=TXBUF(0)
64801 RETURN
64802 REM ########## ESPERA "#" 5 SEG. ##########
64803 W1%=TIMER(0)
64804 IF SKEY THEN 64805 ELSE 64807
64805 IF KEY$<>CHR$(13) THEN 64807
64806 WE%=0:GOTO 64809
64807 IF TIMER(1)<2501 THEN 64804
64808 WE%=7
64809 RETURN
64810 REM ########## ENVIA ON LINE VERIFY ID ##########
64811 WC$=RIGHT$(WC$,5):WI=VAL(WC$)
64812 IF WI<=65000 THEN 64813:WE%=8:RETURN
64813 GOSUB 64775
64814 CLD:DISP 1,1,"COLOQUE DEDO NO ":DISP 2,1,"SENSOR E TECLE #":GOSUB
64802
64815 IF WE%<>0 THEN 64829:COM 2:W1%=RXBUF(0):W1%=TXBUF(0):CLD
64816 DISP 1,1,"AGUARDE ... "
64817 WD=INT(WI/4096):WI=WI-(WD*4096):WC=INT(WI/256):WI=WI-(WC*256)
64818 WB=INT(WI/16):WA=WI-(WB*16):W2%=(WD*16)+WC:W1%=(WB*16)+WA
64819 TXDATA CHR$(85):TXDATA CHR$(32):TXDATA CHR$(1):TXDATA CHR$(1)
64820 TXDATA CHR$(17):TXDATA CHR$(18):TXDATA CHR$(8):TXDATA CHR$(0)
64821 TXDATA CHR$(0): TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0)
64822 TXDATA CHR$(0):TXDATA CHR$(170):TXDATA CHR$(77):TXDATA CHR$(153)
64823 TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0):TXDATA CHR$(0)
64824 TXDATA CHR$(W1%):TXDATA CHR$(W2%):TXDATA CHR$(10):TXDATA
CHR$(0)
64825 W1%=W1% XOR 10:TXDATA CHR$(W1%):TXDATA CHR$(W2%):W1%=TIMER(0)
64826 IF TXBUF=0 THEN 64830
64827 IF TIMER(1)<51 THEN 64826
64828 WE%=9:W1%=TXBUF(0)
64829 COM 1:RETURN
64830 GOSUB 64866:IF WE%<>0 THEN 64833:W1%=TIMER(0)
64831 IF RXBUF<6 THEN 64832 ELSE 64834
64832 IF TIMER(1)<4501 THEN 64831
64833 GOSUB 64855:GOTO 64829
64834 IF RXDATA$(1)<>W$(0) THEN 64831
64835 WI%=1
64836 IF WI%=4 THEN 64839
64837 IF RXDATA$(1)<>W$(WI%) THEN 64831
64838 WI%=WI%+1:GOTO 64836
64839 W3$=RXDATA$(1):W4$=RXDATA$(1)
64840 IF (W3$=CHR$(0)) AND (W4$=CHR$(32)) THEN 64843
64841 IF (W3$=CHR$(17)) AND (W4$=CHR$(34)) THEN 64845
64842 GOTO 64831

Manual de Programação 42
TRIX Tecnologia Ltda. Módulo Finger

64843 W1%=16:GOSUB 64847:IF WE%<>0 THEN 64829


64844 GOSUB 64791:WE%=1:GOTO 64829
64845 W1%=18:GOSUB 64847:IF WE%<>0 THEN 64829
64846 GOSUB 64791:GOTO 64829
64847 REM ########## RECEBE RET.STATUS ##########
64848 IF RXBUF<W1% THEN 64849 ELSE 64853
64849 IF TIMER(1)<2000 THEN 64848
64850 WE%=11
64851 W1%=RXBUF(0)
64852 RETURN
64853 WE%=0:GOTO 64851
64854 REM ########## REINICIALIZACAO ##########
64855 FINGER 0:GOSUB 64860:COM 2:SERIAL 9600,8,0,0:FINGER 1:W1%=RXBUF(0)
64856 W1%=TXBUF(0):GOSUB 64860
64857 GOSUB 64866:IF WE%=0 THEN 64858:W2%=3:GOTO 64859
64858 W2%=2
64859 GOSUB 64863:WE%=10:COM 1:RETURN
64860 REM ########## TEMPO DE 120 MSEG. ##########
64861 W1%=TIMER(0)
64862 IF TIMER(1)>61 THEN RETURN ELSE 64862
64863 REM ########## BEEP POR W2% VEZES ##########
64864 BEEP 1,1:GOSUB 64860
64865 W2%=W2%-1:IF W2%=0 THEN RETURN ELSE 64864
64866 REM ########## RECEBE ACK ##########
64867 W$(4)=CHR$(0):W$(5)=CHR$(48):W$(6)=CHR$(2):W$(14)=CHR$(86)
64868 W$(15)=CHR$(187):W1%=TIMER(0)
64869 IF RXBUF>=20 THEN 64873
64870 IF TIMER(1)<151 THEN 64869
64871 WE%=4
64872 RETURN
64873 IF RXDATA$(1)<>W$(0) THEN 64869
64874 WI%=1
64875 IF WI%=16 THEN 64878
64876 IF RXDATA$(1)<>W$(WI%) THEN 64869
64877 WI%=WI%+1:GOTO 64875
64878 W3$=RXDATA$(1)
64879 W4$=RXDATA$(1)
64880 W5$=RXDATA$(1)
64881 W6$=RXDATA$(1)
64882 IF (W3$=W5$) AND (W4$=W6$) THEN 64883 ELSE 64871
64883 IF (W3$=CHR$(0)) AND (W4$=CHR$(0)) THEN 64885
64884 WE%=5:GOTO 64872
64885 WE%=0:GOTO 64872
64886 REM #################################################

Manual de Programação 43
TRIX Tecnologia Ltda. Módulo Finger

6. PROGRAMA FINGER.EXE

O programa Finger.exe e a DLL Xpcom32.dll são programas


desenvolvidos para ambiente Windows e que possibilitam trocar
uma série de informações com o Módulo Finger instalado no
coletor XTM-Compact.

Para que se possa utilizar este programa deve-se conectar com


cabo apropriado uma porta do PC e a interface de manutenção
do Módulo Finger que está disponível no conector DB9 macho
(P14 - Barra 2) da placa do XTM-Compact.

Uma vez conectado o cabo deve-se ligar o coletor e o PC e


executar no ambiente Windows o programa Finger.exe.

A seguir faremos uma descrição sobre a instalação e as funções


do programa Finger.exe

6.1. Instalação

Para instalar o programa Finger.exe basta copiar em uma pasta


do seu disco fixo os arquivos Finger.exe e Xpcom32.dll que
estão no disquete que acompanha o Módulo Finger.

Embora NÃO aconselhável, o programa pode ser executado do


próprio disquete que acompanha o Módulo Finger, dispensando
assim sua instalação.

Manual de Programação 44
TRIX Tecnologia Ltda. Módulo Finger

6.2. Menu de Operação

Ao ser executado, o programa exibe uma tela inicial enquanto


executa procedimentos de inicialização.

Em seguida é mostrado um menu com as diversas funções


disponíveis.

Vamos explorar cada uma delas abaixo.

6.2.1. Barra de Status

A barra de status que aparece na parte inferior do menu aponta


o canal de comunicação que está sendo utilizado do PC
assim como a velocidade de comunicação com o Módulo Finger.

Manual de Programação 45
TRIX Tecnologia Ltda. Módulo Finger

6.2.2. Opção Arquivo

6.2.2.1. Comando Sair

Este comando finaliza a execução do programa Finger.exe.

6.2.3. Opção Status

7.2.3.1. Status do ID Módulo

Uma vez executada esta opção pode-se visualizar as seguintes


informações:

- Estado operacional de alguns componentes do ID Módulo


- Versões e palavra de identificação do ID Módulo.

Manual de Programação 46
TRIX Tecnologia Ltda. Módulo Finger

7.2.3.2. Status da Memória Flash do ID Módulo

Uma vez executada esta opção pode-se visualizar as seguintes


informações:

- Número de bytes disponíveis na memória flash do ID Módulo.


- Número de bytes utilizados na memória flash do ID Módulo
- Número de pessoas cadastradas no ID Módulo
- Número de referências cadastradas no ID Módulo.

Aqui cabe uma explicação sobre o termo referência. Referência


cadastrada é igual a um dedo cadastrado de uma pessoa. Pode-
se ter para uma mesma pessoa cadastrada até 10 referências
desta pessoa, equivalendo cada uma delas a um dos dedos da
pessoa.

7.2.3.3. Status do Canal Serial do PC

Uma vez executado este comando pode-se visualizar o canal


utilizado no PC e seu estado. Normalmente o canal deve estar
com estado = "ABERTO".

Manual de Programação 47
TRIX Tecnologia Ltda. Módulo Finger

7.2.4. Opção Configurar

7.2.4.1. Obter Configuração do ID Módulo

Uma vez executado este comando pode-se visualizar:

- Configuração do arquivo de dados do ID Módulo


- Configuração do sensor
- Configuração do modo de segurança
- Configuração do modo de identificação
- Configuração dos canais seriais do ID Módulo
- Configuração dos parâmetros de gerenciamento de energia
- Configuração das linhas de indicação do ID Módulo

7.2.4.2. Alterar Configuração do ID Módulo

Esta opção basicamente permite redefinir as configurações


citadas no item anterior.

Manual de Programação 48
TRIX Tecnologia Ltda. Módulo Finger

7.2.4.3. Obter Configuração do Canal Serial do PC

Uma vez executada esta opção pode-se visualizar como a porta


serial do PC está configurada.

7.2.4.4. Alterar Configuração do Canal Serial do PC

Esta opção permite redefinir um canal de comunicação do PC


com o Módulo Finger assim como sua velocidade de
comunicação.

7.2.5. Opção Cadastrar

7.2.5.1. Cadastrar Pessoa

A função Cadastrar Pessoa permite o cadastramento de novas


pessoas ou mesmo o recadastramento de pessoas já existentes
o arquivo do ID Módulo.

No caso de um recadastramento é importante que o dedo a ser


cadastrado seja diferente do anteriormente cadastrado. O
recadastramento de um mesmo dedo não é possível a menos
que se exclua a pessoa cadastrada antes de se executar o
recadastramento da mesma.

Manual de Programação 49
TRIX Tecnologia Ltda. Módulo Finger

A tela de cadastramento mostra no lado superior direito o


número de pessoas já cadastradas e o primeiro ID livre.

Nós já sabemos que o Módulo Finger pode cadastrar algo em


torno de 500 pessoas.

Estas pessoas são identidicadas por um número, possivelmente


seu número de registro na companhia em que trabalha.

Sabemos que este número pode variar de 1 a 65000 quando


utilizamos o Módulo Finger.

Em muitas situações do programa Finger.exe este número é


citado como o ID da Pessoa, ou seja, o número de identificação
da pessoa.

A ordem de cadastramento não é importante. Por exemplo


poderemos ter as pessoas 1, 100, 1001, 1004 e 60000
cadastradas.

A tela de cadastramento mostra uma série de campos cujo


prenchimento não é obrigatório, mas aconselhável,
principalmente o nome da pessoa que está sendo cadastrada.

O botão de nome Limpar coloca brancos nos campos de


preenchimento.

Uma vez executada esta função siga as instruções da tela.

Manual de Programação 50
TRIX Tecnologia Ltda. Módulo Finger

7.2.5.2. Alterar Cadastro da Pessoa

Esta função altera os campos digitados na execução da função


de cadastramento de uma pessoa.

Caso se tenha errado o nome ou qualquer outro dado da pessoa


por meio desta função pode-se alterar a informação.

Importante, é necessário que se preencha todos os campos


novamente antes de executar esta função, pois os campos em
branco serão copiados como brancos no arquivo de dados da
pessoa.

7.2.5.3. Excluir Pessoa

Esta função possibilita escluir uma pessoa do arquivo do ID


Módulo. Caso a pessoa não exista uma mensagem de erro é
apresentada na tela.

Ao excluir uma pessoa são excluídas todas as suas referências


(dedos cadastrados anteriormente) assim como os dados
informados no cadastramento (nome, endereço, ...).

Manual de Programação 51
TRIX Tecnologia Ltda. Módulo Finger

7.2.5.4. Status da Pessoa

Nesta função podemos ler os dados cadastrais de uma pessoa,


as referências (dedos) que já foram cadastradas.

Podemos ver também o número de bytes de informação


necessários para armazenar as informações cadastrais (dados
específicos) e as imagens digitais desta pessoa (dados
biométricos).

7.2.6. Opção Identificar

7.2.6.1 Identificar Pessoa

Esta função possibilita identificar junto ao arquivo de dados do


ID Módulo uma determinada impressão digital.

Este processo pode demorar alguns segundos pois esta


identificação depende do número de pessoas cadastradas no
arquivo de dados do ID Módulo.

Caso a operação seja bem sucedida é exibido o ID da pessoa


identificada.

Manual de Programação 52
TRIX Tecnologia Ltda. Módulo Finger

7.2.6.2. Verificar Pessoa

Esta função pede o número de identificação de uma pessoa (ID)


e então verifica se esta pessoa está cadastrada e se seu
cadastro coincide com a impressão digital presente no sensor
do Módulo Finger.

7.2.7. Opção Dados

7.2.7.1. Ler Arquivo de Dados do ID Módulo

Esta opção possibilita salvar em um arquivo os dados das


pessoas já cadastradas no ID Módulo.

O arquivo gerado terá sempre a terminação ".fin"

7.2.7.2. Gravar Arquivo de Dados no ID Módulo

Esta opção possibilita ler e enviar para o ID Módulo um arquivo


com os dados de pessoas já cadastradas no ID Módulo.

O arquivo a ser gravado no ID Módulo deve ter sido gerado pelo


próprio ID Módulo e ter sido salvo anteriormente.

O arquivo a ser gravado no ID Módulo terá sempre a terminação


".fin"

Manual de Programação 53
TRIX Tecnologia Ltda. Módulo Finger

7.2.7.3. Apagar Arquivo de Dados do Módulo Finger

Esta operação apaga o arquivo de dados do ID Módulo, isto


equivale a dizer que todas as pessoas cadastradas são
excluídas.

Para que esta operação seja feita com segurança é importante


saber se o arquivo a ser excluído já está salvo em outra mídia.

Caso as informações no arquivo de dados do ID Módulo não


sejam relevantes a consideração acima não se aplica.

7.2.8. Opção Testar

7.2.8.1. Testar ID Módulo

Nesta função podemos testar os diversos componentes que


compõem o ID Módulo.

7.2.8.2. Testar Sensor

Nesta função podemos testar o Sensor do Módulo Finger.

Manual de Programação 54
TRIX Tecnologia Ltda. Módulo Finger

7.2.9. Opção Sobre

7.2.9.1. Software Finger

Esta função exibe a versão do programa Finger.exe entre outras


informações.

Manual de Programação 55
TRIX Tecnologia Ltda. Módulo Finger

8. CABO DE COMUNICAÇÃO MÓDULO FINGER

Este cabo de comunicação serve para a comunicação do PC


com o módulo Finger .
Para ligar no XTM Finger é utilizado o conector P15 (DB9
macho)

Manual de Programação 56
TRIX Tecnologia Ltda. Módulo Finger

Marcas Registradas

IBM PC é marca registrada da International Bussines Machines Corporation.


MS-DOS™, Windows™, Windows’95™, Windows’98™ e Windows’NT™ são
marcas registradas da Microsoft Corporation.
As demais marcas citadas são propriedade de seus respectivos donos.

Manual de Programação 57
TRIX Tecnologia Ltda. Módulo Finger

TRIX Tecnologia Ltda.


Rua da Paz, 1957 - São Paulo - SP - CEP 04713 - 002
Fone (0 xx 11) 3365 - 2000
Fax (0 xx 11) 3365 - 2070
e – mail : trix@trixtec.com.br
URL: http//www.trixtec.com.br
Sugestões e Reclamações: 0800 - 1130

Manual de Programação 58

Você também pode gostar