Índice: Nitgen do Brasil www.nitgen.com.br



Documentos relacionados
Capítulo 4. Programação em ASP

enbsp - NBioBSP NITGEN Biometric Service Provider SDK Manual do Desenvolvedor SDK version 4.xx

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

Display de 7. PdP. Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Manual de operação. BS Ponto Versão 5.1

Entradas Digitais. PdP. Autores: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 27/12/2005 Última versão: 18/12/2006

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES I PROFESSOR RAFAEL BARRETO

Instalando o software Access Manager Configurando o terminal NAC Configurando o software Access Manager e registrando o NAC

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - MILLENNIUM

Aplicativo da Manifestação do Destinatário. Manual

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Autor: Tiago Lone Nível: Básico Criação: 19/12/2005 Última versão: 18/12/2006. PdP. Pesquisa e Desenvolvimento de Produtos

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO

Manual. ID REP Config Versão 1.0

Parte 5 LibreOffice Base

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - SLIM

Para começarmos as configurações, primeiramente vamos habilitar o DVR Veicular para o acesso. Clique em Menu e depois entre em Geral.

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Modo Estrutura é o ambiente de definição e estruturação dos campos, tipos de dados, descrição e propriedades do campo.

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI FORMULÁRIO COM ABAS E BUSCAS DE REGISTROS

GRRF GUIA DE RECOLHIMENTO RESCISÓRIA DO FGTS PROCEDIMENTOS NA FOLHA CONSISA SGRH

Controle Patrimonial WEB

Placa Acessório Modem Impacta

Procedimentos para Reinstalação do Sisloc

Cartilha da Nota Fiscal Eletrônica 2.0 Hábil Empresarial PROFISSIONAL & Hábil Enterprise

Programação para Android. Aula 07: Persistência de dados Shared Preferences, Internal e External Storage

Manual Captura S_Line

Docas do Pará - Guia de Instalação

Java e JavaScript. Krishna Tateneni Tradução: Lisiane Sztoltz

Capture Pro Software. Guia de referência. A-61640_pt-br

1. Escritório Virtual Atualização do sistema Instalação e ativação do sistema de Conexão...5

LOGs e ALERTAS de DESEMPENHO

Para participar de um mapa colaborativo usando o Cmap Tools

U3 Sistemas Análise e Desenvolvimento de Softwares ===== Manual de Rede Interna ===== Manual. Rede Interna

Manual. ID REP Config Versão 1.0

Treinamento. Módulo. Escritório Virtual. Sistema Office. Instruções para configuração e utilização do módulo Escritório Virtual do sistema Office

BR DOT COM SISPON: MANUAL DO USUÁRIO

Criação de Formatos para detalhamento. Ambiente de trabalho no SOLIDWORKS

Modelo R02 - Volume 2 - Operacional

Manual do Desenvolvedor Criptografia de Arquivos do WebTA

Procedimento para instalação do OMNE-Smartweb em Raio-X

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS SERVIÇOS IMPRESSÃO. Professor Carlos Muniz

Sistemas Operacionais

Manual Integra S_Line

Google Drive. Passos. Configurando o Google Drive

ROTINAS PADRÕES DO SISTEMAS

Gerenciador de Referências. EndNote. Nonato Ribeiro Biblioteca de Ciências e Tecnologia (UFC)

JSP - ORIENTADO A OBJETOS

Administração do Windows Server 2003

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.

MANUAL DE INSTRUÇÕES

Escritório Virtual Administrativo

No Fedora, instalamos os pacotes "mysql" e "mysql-server", usando o yum:

MANUAL DE INSTALAÇÃO DO GERENCIADOR DO TOKEN

Manual de Administração

Figura 1: Interface 3G Identech

Cadastro Avaliação 2013 Manual de Instruções

Conteúdo BIOTRONIC PLUS

V 1.0 LINAEDUCA - GUIA DE USO

Aula 1: Noção Básica e Criação de Tabelas.

Novell. Novell Teaming 1.0. novdocx (pt-br) 6 April 2007 EXPLORAR O PORTLET BEM-VINDO DESCUBRA SEU CAMINHO USANDO O NOVELL TEAMING NAVIGATOR

MAN - Manual de Instalação e Utilização do CAT. CAT - Controle de Aula Teórica

PÉGASUS (ETHERNET POCKET) STUDIO V1.00 MANUAL DE INSTALAÇÃO E OPERAÇÃO

Manual do Usuário CFCWeb BA

Março Como o Eye-Fi funciona Fluxogramas da visão geral

Guia Site Empresarial

Boletim Técnico. Criação de formulário dinâmico para o módulo WEB. Produto : TOTVS Web,

Guia Rápido. Copyright Todos os direitos reservados.

Como funciona? SUMÁRIO

Guia de atualização. Guia de atualização do SonicOS 6.2

IFTO TÉCNICO EM INFORMÁTICA DESENVOLVIMENTO DE SISTEMAS AULA 01

Manual de Administração

Config. do módulo MSA com dispositivos REP.

MANUAL DE UTILIZAÇÃO - VISÃO DE EMPRESAS. Todos os direitos reservados à Softbox

Programando Jogos com Delphi (LÓGICA, ANIMAÇÃO, CONTROLE) Autor: Antônio Sérgio de Sousa Vieira

Microsoft Office PowerPoint 2007

Motorola Phone Tools. Início Rápido

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente

Saída do sistema do Servidor FTP do Capture Pro Software

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

COMO INSTALAR O CATÁLOGO

Podemos agora ver no IDE do Morfik os objetos que já incorporamos ao nosso projeto :

AP_ Conta Aplicativo para digitação e envio de contas médicas no padrão TISS

Comunicação USB com o PIC Vitor Amadeu Souza Parte II vitor@cerne-tec.com.br

Microsoft Access: Criar consultas para um novo banco de dados. Vitor Valerio de Souza Campos

Manual de Instalação EDIÇÃO 1.0

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

Ajuda das opções Fiery 1.3 (servidor)

PROG. DE COMPUTADORES II SI Arquivos

Procedimentos para Instalação do Sisloc

BARRA DE PROGRESSO EM VBA

MANUAL AGENDADOR DE TAREFAS LOGIX

Manual de Instalação e Configuração do Primeiro Backup Versão PRO

Android e Bancos de Dados

Manual do Sistema "Vida Controle de Contatos" Editorial Brazil Informatica

Usando o Conference Manager do Microsoft Outlook

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

Instruções de operação

Transcrição:

Índice: CAPÍTULO 3. PROGRAMAÇÃO EM DELPHI...2 3.1 INICIALIZANDO E FECHANDO O MÓDULO...2 3.1.1 Inicializando o módulo...2 3.1.2 Fechar o módulo após o uso...2 3.2 RELACIONANDO OS SENSORES NA PROGRAMAÇÃO...2 3.2.1 Fechar o módulo após o uso...2 3.2.2 Inicializando o dispositivo...3 3.2.3 Fechando o dispositivo...4 3.3 FINGERPRINT ENROLLMEN...4 3.4 FINGERPRINT VERIFICATION...5 3.5 AMBIENTE CLIENT/SERVER...6 3.5.1 Fingerprint enrollment...6 3.5.2 Fingerprint verification...6 3.6 UTILIZANDO O PAYLOAD...7 3.6.1 Inserindo um payload dentro de um FIR...8 3.6.2 Extrair um payload de um template...8 3.7 MUDANDO A INTERFACE DE USUÁRIO DO NBIOAPI...9 3.8 FINGERPRINT IDENTIFICATION...10 3.9 ATIVAR O AUTO-ON...10

Capítulo 3. Programação em Delphi Este capítulo veremos programação em Delphi no qual usa o módulo NBioBSP COM. O módulo NBioBSP COM é designado a facilitar a integração do NBioBSP para desenvolvedores que utilizam ferramentas RAD e desenvolvimento Web. O módulo NBioBSP COM não suporta todas as funções do módulo NBioBSP. Quando o desenvolvimento for para Web, os dados da impressão digital devem ser controlados no formato texto. Estes dados podem ser controlados no formato texto ou binário, para desenvolvimento em Visual Basic ou em Delphi. *É aconselhável a leitura do arquivo: Introdução - Guia de desenvolvimento enbsp SDK (Português) para melhor entendimento deste material. Para mais informações veja o guia completo: Guia completo de desenvolvimento enbsp SDK (Inglês). 3.1 Inicializando e fechando o módulo 3.1.1 Inicializando o módulo Use a função CreatObject() para iniciar o módulo NBioBSP.COM. objnbiobsp : variant; // Declarando NBioBSP Object objnbiobsp := CreateOleObject('NBioBSPCOM.NBioBSP'); 3.1.2 Fechar o módulo após o uso Declare um objeto livre quando for fechar a aplicação. objnbiobsp := 0; // Free NBioBSPCOM object 3.2 Relacionando os sensores na programação O dispositivo deve ser aberto antes para que possa utilizá-lo. Use o método Enumerate para determinar qual dispositivo está ligado ao sistema. 3.2.1 Fechar o módulo após o uso Antes de abrir o dispositivo, use o método Enumerate para determinar o número e o tipo dos dispositivos listados no computador. Uma vez ativado, o número de dispositivos

listados no computador irá aparecer na propriedade do EnumCount e o ID de cada dispositivo irá aparecer na propriedade do EnumDeviceID. EnumDeviceID é um array do tipo LONG. EnumDeviceID é composto dos nomes de dispositivo e os números de exemplo deles. DeviceID = Instance Number + Device Name Se existe apenas um dispositivo para cada sistema, o número de exemplo será 0. Neste caso, o nome do dispositivo terá o mesmo valor que o ID do dispositivo. Para mais informação, consulte o NBioBSP SDK Programmer s Manual. Segue um exemplo de como utilizar o método Enumerate. Todos os dispositivos encontrados neste método irão aparecer dentro de um combo box, combodevice. objdevice = objnbiobsp.device; objdevice.enumerate; for DeviceNumber := 0 To objdevice.enumcount - 1 do Case objdevice.enumdeviceid[devicenumber] of 1 : combodevice.items.append( FDU04 ); 2 : combodevice.items.append( FDU14 ); End; end; O EnumDeviceID é o número de dispositivos encontrados nas propriedades DeviceNumber do DeviceID. Por exemplo, EnumDeviceID[0] irá mostrar o DeviceID do primeiro dispositivo. 3.2.2 Inicializando o dispositivo

O método Open é usado para iniciar o dispositivo para o NBioBSP.COM. A inicialização do dispositivo deve ser feita antes dele exercer suas funções, como registro, captura e verificação. Para essas funções funcionarem corretamente deve se executar primeiramente o método Open. Se você não tem certeza de qual dispositivo está instalado, utilize o método Enumerate para determinar qual dispositivo está previamente instalado. DeviceID := NBioBSP_DEVICE_FDU01_0; objdevice := objnbiobsp.device; objdevice.open(deviceid); If objdevice.errorcode = NBioBSPERROR_NONE Then //Dispositivo aberto com sucesso // Falha ao abrir o dispositivo O dispositivo pode ser detectado automaticamente usando o NBioBSP_DEVICE_ID_AUTO_DETECT. *Recomedável. ObjDevice.Open(NBioBSP_DEVICE_ID_AUTO_DETECT) NBioBSP_DEVICE_ID_AUTO_DETECT usa o último dispositivo detectado no computador. 3.2.3 Fechando o dispositivo O método close deve ser usado para fechar o dispositivo. O mesmo DeviceID, usado para chamar o método Open, deve ser usado novamente para chamar o método Close. DeviceID := NBioBSP_DEVICE_ID_FDU01_0; objdevice := objnbiobsp.device objdevice.close(deviceid); If objdevice.errorcode = NBioBSPERROR_NONE Then // Dispositivo fechado com sucesso // Falha ao fechar o dispositivo O atual dispositivo deve ser fechado ao abrir outro dispositivo. 3.3 Fingerprint Enrollment O método Enroll é usado para registrar as impressões digitais. Este método deve ser usado após declarar o extraction object. Todos os dados das impressões digitais são usados no formato binário ou um texto codificado encontrado no módulo NBioBSP. Os dados da impressão digital serão armazenados no FIR ou no TextEncoedFIR, para então registrado-los. O TextEncoedFIR tem o valor do tipo String.

szfirtextdata : widestring; objextraction := objnbiobsp.extraction; objextraction.enroll(szuserid, null); If objextraction.errorcode = NBioBSPERROR_NONE Then // Registrado com sucesso szfirtextdata : = objnbiobsp.textencodedfir; // Grava o FIR no DB. // Falha no registro Os dados das impressões digitais são armazenado como TextEncoedFIR quando utilizar um Banco de dados. Os dados das impressões digitais também podem ser salvos com o formato binário como segue o exemplo: bifir : array of byte; len : Integer; bifir := nil; len := objextraction.firlength; SetLength(biFIR, len); BiFIR := objextraction.fir; 3.4 Fingerprint verification O método Verify executa uma validação de impressão digital, usando os dados de uma impressão digital previamente cadastrada, através da comparação. Este método deve ser usado após declarar o Matching object. O resultado é salvo como um valor nas propriedades do MatchingResult no qual retorna o valor 1 para sucesso e 0 para falha na verificação. storedfirtextdata : widestring; //Ler um FIR do DB. objmatching := objnbiobsp.matching; objmatching.verify(storedfirtextdata); If objmatching.matchingresult = NBioBSP_TRUE then // Verificado com sucesso If objmatching.existpayload = NBioBSP_TRUE then // Payload existente szpayload := objmatching.textencodedpayload end // Falha na verificação

3.5 Ambiente Client/Server Em ambientes Client/Server, o enrollment das impressões digitais e os matchings se encontram em diferentes locais. As impressões digitais são geralmente registradas pelo cliente e depois encaminhadas no Server. O método Enroll registra as impressões digitais enquanto método Capture verifica as digitais. 3.5.1 Fingerprint enrollment Use o método Enroll para registrar as impressões digitais no Client. szfirtextdata : widestring; objextraction := objnbiobsp.extraction; objextraction.enroll(szpayload, null); If objextraction.errorcode = NBioBSPERROR_NONE Then // Registrado com sucesso szfirtextdata : = objnbiobsp.textencodedfir; // Grava o FIR no DB. //Falha ao registrar 3.5.2 Fingerprint verification Use o método Capture para registrar a impressão digital no Client. Enquanto o método Enroll permite armazenar diversas digitais em um único FIR o método Capture registra apenas uma digital. O método Capture deve ser usado após declarar o Extraction Object. Insira qual o propósito da captura no parâmetro. O valor para o propósito, definido no header é variável, mas esse método permite somente NBioAPI_FIR_PURPOSE_VERIFY como valor. szfirtextdata : widestring; objextraction := objnbiobsp.extraction; objextraction.capture(nbioapi_fir_purpose_verify); If objextraction.errorcode = NBioBSPERROR_NONE Then // Captura efetuada com sucesso

szfirtextdata : = objnbiobsp.textencodedfir; // // Grava o FIR no DB. //Captura incorreta O método VerifyMatch utiliza dois FIRs, um determinado FIR transmitido pela rede e um outro FIR previamente registrado. Confira a propriedade do MatchingResult para checar o resultado; 1 para realizado com sucesso e 0 para verificação incorreta. Após a verificação, o método retorna o payload. O método VerifyMatch parte as impressões digitais armazenadas no servidor. Veja as propriedades do IsMatched para checar os resultados. var storedfirtextdata : String; processedfirtextdata : String; // Utiliza um FIR previamente capturado e um FIR gravado no DB. objmatching := objnbiobsp.matching; objmatching.verifymatch(processedfirtextdata, storedfirtextdata); if objmatching.matchingresult = NBioAPI_TRUE then // Verificado com sucesso If objmatching.existpayload = NBioAPI_TRUE then // Exist szpayload := objmatching.textencodedpayload End if // Verificação falhou. 3.6 Utilizando o payload

Outras informações dentro dos dados fingerprint são chamados de payload. Somente dados do tipo texto codificado podem ser usados no módulo NBioBsP como payload. 3.6.1 Inserindo um payload dentro de um FIR Quando for registrar uma impressão digital, use o método Enroll para incluir um payload nos dados da impressão digital. O método CreatTemplate pode ser usado para inserir um payload dentro de um FIR já existente. O método Enroll irá usar um dado da impressão digital para prover um parâmetro de comparação. szfirtextdata : widestring; objextraction := objnbiobsp.extraction; objextraction.enroll(szpayload, null); if objextraction.errorcode = NBioBSPERROR_NONE Then // Registro efetuado com sucesso szfirtextdata: = objnbiobsp.textencodedfir; // Grava o FIR no DB. else // Falha ao registrar Use o método CreateTemplate para inserir um payload em um dado de impressão digital já existente. O método CreateTemplate pode também adicionar um novo FIR dentro de um FIR já existente. Da mesma maneira que o método Enroll, o novo dado da impressão digital será inserido dentro das propriedades do TextEncodedFIR. Esse método deve ser executado antes de declarar um FPData object. storedfirtextdata : String; newfirtextdata : String; szpayload := Your Payload Data ; objfpdata := objnbiobsp.fpdata; objfpdata.createtemplate(storedfirtextdata, null, szpayload); if objfpdata.errorcode = NBioBSPERROR_NONE Then // CreateTemplate success newfirtextdata := objnbiobsp.textencodedfir; // Grava o FIR no DB. else // Falha ao registrar 3.6.2 Extrair um payload de um template O payload nos registros de identificação das impressões digitais (dados registrados) somente será extraído se partir usando o método Verify ou o método VerifyMatch retornar true.

Checar a propriedade IsPayload depois de incluir para verificar se existe um payload. Se o IsPayload é true, o payload será mostrado nas propriedades do PayLoadData. storedfirtextdata : String; // Ler os dados FIRText do banco de dados. objmatching := objnbiobsp.matching; objmatching.verify(storedfirtextdata); if objmatching.matchingresult = NBioBSP_TRUE Then // Verificado com sucesso if objmatching.existpayload = NBioBSP_TRUE Then // Payload existente szpayload : = objnbiobsp.textencodedpayload; end else // Falha na verificação Extraindo os payloads usando o método VerifyMatch é a mesma operação usando o método Verify. Ao executar VerifyMatch, como primeiro parâmetro, use os dados de modo comparativo e como segundo parâmetro, use os dados armazenados (Template registrado). Os dados do payload podem somente ser extraídos de um dado FIR em segundo parâmetro (enrolledfirtextdata). Embora o dado FIR em primeiro parâmetro inclui payload, o mesmo não é recobrado. 3.7 Mudando a interface de usuário do NBioAPI O módulo NBioBSP.COM oferece recursos para customização da UI (user interface) básica. Use o método SetSkinResource para carregar os recursos da UI (Pop-Up) em diversas línguas. szskinfilename : String if OpenDialog1.Execute then szskinfilename := OpenDialog1.FileName; // Set skin resource ret := objnbiobsp.setskinresource(szskinfilename) ; end Para que o mesmo Skin (Pop-UP) seja utilizado, incluía somente a linha abaixo no código especificando o local da DLL. // Set skin resource objnbiobsp.setskinresource( C:\Arquivos de programas\nitgen enbsp\sdk\skins\ NBSP2Por.dll ) ;

3.8 FingerPrint Identification Use o método IndexSearch para armazenar e identificar os templates. No objeto IndexSearch criado, devem ser adicionados o template (impressão digital) e o id dos usuários. Se estes dados estiverem armazenados em um DB, então devem ser carregado no IndexSearch através de uma rotina de repetição, até que todos os templates e IDs do banco forem adicionados. O processo de identificação ocorrerá diretamente com os dados armazenados neste objeto (na memória) e não no DB, é este processo que torna a busca instantânea. O resultado da identificação será o ID do template identificado. Adicionando no IndexSearch : nuserid: integer; ID do User. szfir: widestring; Template do User... while not dmdados.adotbcontatos.eof do szfir:=dmdados.adotbcontatos.fieldbyname('template').asstring; nuserid:=dmdados.adotbcontatos.fieldbyname('userid').asinteger; objindexsearch.addfir(szfir, nuserid); dmdados.adotbcontatos.next; end; Identificando: objdevice.open(nbioapi_device_id_auto_detect) ; objextraction.capture(nbioapi_fir_purpose_verify); objdevice.close(nbioapi_device_id_auto_detect); szfir := objextraction.textencodefir; objindexsearch.identifyuser(szfir, 6); //Faz a identificação do usuário. 1º Parametro: String capturada a identificar. 2º Parametro: Nível de segurança (ia de 1 à 9). If objindexsearch.errorcode <> NBioAPIERROR_NONE then User não identificado else 'User identificado com sucesso User_id:= objindexsearch.userid; objindexsearch.userid irá retornar o ID do user identificado. Com este valor deve-se fazer a busca no Database dos demais dados do usuário. end; 3.9 Ativar o Auto-On Use o método CheckFinger para ativar o auto-on ou auto-captura, ou seja, a captura é efetuada automaticamente pelo sensor biométrico quando o dedo é posicionado pelo mesmo. Esta característica é existente apenas no modelo do Hamster II. O método CheckFinger retorna o valor 0 ou 1, sendo 1 para indicar uma impressão digital presente. Este método deve ser obrigatoriamente utilizado em uma estrutura de repetição.

procedure Timer(Sender: TObject); Timer.Interval := 3000; Timer.Enabled := True; objdevice.open(nbioapi_device_id_auto_detect) ; //Captura sem Pop-up objextraction.windowstyle := NBioAPI_WINDOW_STYLE_INVISIBLE; end; //Verifica se existe um dedo posicionado no sensor if objdevice.checkfinger <> 0 then //Tempo de captura objextraction.defaulttimeout := 1500; objextraction.capture(nbioapi_fir_purpose_verify); end;