Leito Biométrico Nitgen

6 respostas
T

Pessoal, estou tentando implementar um sistema simples de leitura biométrica. Estou usando o leitor da Nitgen Hamster II DX.
Está funcionando corretamente, só que gostaria de saber se é possível usar o leitor sem aquela interface própria do produto.
Gostaria de usar a minha própria interface.

Abraços

6 Respostas

F

Sim é possível.
Ela vem só para poder testar a comunicação.

[]s

T

Saberia me dar uma direção?
Estou tentando mas toda vez abre aquela tela.

O método que chamo é esse:

bsp.Enroll(hSavedFIR, null);

Não consegui encontrar nenhuma outra forma.

K

Cara ano passado fiz um projeto utilizando este leitor biométrico.... onde fazia a varredura de um funcionário que enviava as informações de uma fechadura biométrica.... Para realizar a comparação eu usava este código na parte do servidor....

import com.nitgen.SDK.BSP.NBioBSPJNI;
import com.nitgen.SDK.BSP.NBioBSPJNI.IndexSearch;
import java.util.List;
import modelo.Digital;
/**
 *
 * @author Ulisses
 */
public class LeitorBiometrico {
    
    private static NBioBSPJNI bsp;
    private NBioBSPJNI.IndexSearch IndexSearchEngine;
    private NBioBSPJNI.FIR_TEXTENCODE textSavedFIRBD;
    private NBioBSPJNI.FIR_TEXTENCODE textSavedFIRMC;
    private NBioBSPJNI.FIR_HANDLE hFIR;
    private NBioBSPJNI.INPUT_FIR inputFIRBD;
    private NBioBSPJNI.INPUT_FIR inputFIRMC;
    private NBioBSPJNI.IndexSearch.SAMPLE_INFO sampleInfo;
    
    public LeitorBiometrico() {

        bsp = new NBioBSPJNI();
        if (CheckError()) {
            return;
        }
        
        IndexSearchEngine = bsp.new IndexSearch();
        if (CheckError()){
            return;
        }
       
        bsp.OpenDevice();
        if (CheckError()) {
            return;
        }
        
        System.err.println("Dispositivo Iniciado com Sucesso");

    }
    
    public void dispose() {
        if (IndexSearchEngine != null) {
            IndexSearchEngine.dispose();
            IndexSearchEngine = null;
        }
        
        if (bsp != null) {
            bsp.CloseDevice();
            bsp.dispose();
            bsp = null;
        }
        

        if (textSavedFIRBD != null) {
            textSavedFIRBD = null;
        }
        
        if (textSavedFIRMC != null) {
            textSavedFIRMC = null;
        }

        if (hFIR != null) {
            hFIR.dispose();
            hFIR = null;
        }

        if (inputFIRBD != null) {
            inputFIRBD = null;
        }
        
        if (inputFIRMC != null) {
            inputFIRMC = null;
        }

        if (sampleInfo != null) {
            sampleInfo = null;
        }

    }

    private Boolean CheckError() {
        if (bsp.IsErrorOccured()) {
            //labelStatus.setText("NBioBSP Error Occured [" + bsp.GetErrorCode() + "]");
            return true;
        }

        return false;
    }

    public void Closing() {
        dispose();
    }
    
    void populaIndexEngine(List<Digital> lista){
        //Instancia o Handle para receber a digital
        textSavedFIRBD = bsp.new FIR_TEXTENCODE();
        inputFIRBD = bsp.new INPUT_FIR();
        
        //Percorre a lista de Digitais e popula a SerchEngine com o ID do funcionário
        for (int i=0;i<lista.size();i++){
            System.out.println(lista.get(i).getIddigital() +" "+lista.get(i).getBiometria());
            textSavedFIRBD.TextFIR = lista.get(i).getBiometria();
            inputFIRBD.SetTextFIR(textSavedFIRBD);
            IndexSearchEngine.AddFIR(inputFIRBD, lista.get(i).getIdfuncionario().getIdfuncionario(), sampleInfo);
        }
    }
    
    int verificaDigital(String digitalMicro){
        //Recebendo String do Microcontrolador e convertendo
        textSavedFIRMC = bsp.new FIR_TEXTENCODE();
        textSavedFIRMC.TextFIR = digitalMicro;
        inputFIRMC = bsp.new INPUT_FIR();
        inputFIRMC.SetTextFIR(textSavedFIRMC);
        //Instanciando TIPO: resultado da busca
        NBioBSPJNI.IndexSearch.FP_INFO fpInfo = IndexSearchEngine.new FP_INFO();
        //Realizando pesquisa com a digital recebida do microcontrolador
        IndexSearchEngine.Identify(inputFIRMC, 5, fpInfo);
        
        //Retorna o ID do funcionário (0 = Não encontrado)
        return fpInfo.ID;
        
    }
    
    
}
Na parte web... utilizei a própria interface para cadastramento dos funcionário que facilitava muito a vida...
package controle.digital;


import com.nitgen.SDK.BSP.NBioBSPJNI;
/**
 *
 * @author Ulisses
 */
public class LeitorBiometrico {
    
    private static NBioBSPJNI bsp;
    private NBioBSPJNI.IndexSearch IndexSearchEngine;
    private NBioBSPJNI.FIR_TEXTENCODE textSavedFIR;
    private NBioBSPJNI.FIR_HANDLE hFIR;
    private NBioBSPJNI.INPUT_FIR inputFIR;
    private NBioBSPJNI.IndexSearch.SAMPLE_INFO sampleInfo;
    
    public LeitorBiometrico() {

        bsp = new NBioBSPJNI();
        if (CheckError()) {
            return;
        }
        
        IndexSearchEngine = bsp.new IndexSearch();
        if (CheckError()){
            return;
        }
       
        bsp.OpenDevice();
        if (CheckError()) {
            return;
        }
        
        System.err.println("Dispositivo Iniciado com Sucesso");

    }
    
    public void dispose() {
        if (IndexSearchEngine != null) {
            IndexSearchEngine.dispose();
            IndexSearchEngine = null;
        }
        
        if (bsp != null) {
            bsp.CloseDevice();
            bsp.dispose();
            bsp = null;
        }
        

        if (textSavedFIR != null) {
            textSavedFIR = null;
        }

        if (hFIR != null) {
            hFIR.dispose();
            hFIR = null;
        }

        if (inputFIR != null) {
            inputFIR = null;
        }

        if (sampleInfo != null) {
            sampleInfo = null;
        }

    }

    private Boolean CheckError() {
        if (bsp.IsErrorOccured()) {
            //labelStatus.setText("NBioBSP Error Occured [" + bsp.GetErrorCode() + "]");
            return true;
        }

        return false;
    }

    public void Closing() {
        dispose();
    }

    // registra a digital do usuario
    public String registrarDigital() {

        //Registrar
        hFIR = bsp.new FIR_HANDLE();
        bsp.Enroll(hFIR, null);
        
        // transforma od dados da digital em texto
        if (bsp.IsErrorOccured() == false) {
            textSavedFIR = bsp.new FIR_TEXTENCODE();
            bsp.GetTextFIRFromHandle(hFIR, textSavedFIR);
            String sDigital = textSavedFIR.TextFIR;
            Closing();
            return sDigital;
        } else {
            Closing();
            return null;
        }

    }

    public void inserirDigital(int codigo, String digital){
        //Recebendo a digital gravada no BD
        textSavedFIR = bsp.new FIR_TEXTENCODE();
        textSavedFIR.TextFIR = digital;
        inputFIR = bsp.new INPUT_FIR();
        inputFIR.SetTextFIR(textSavedFIR);

        //indexando a digital e o ID do usuario extraídos do BD na memória
        IndexSearchEngine.AddFIR(inputFIR, codigo, sampleInfo);
        if (CheckError()) {
            Closing();
        }

    }

    public boolean verificarDigital(int codigo, String digital) {
        //Recebendo a digital gravada no BD
        textSavedFIR = bsp.new FIR_TEXTENCODE();
        textSavedFIR.TextFIR = digital;
        inputFIR = bsp.new INPUT_FIR();
        inputFIR.SetTextFIR(textSavedFIR);

        //indexando a digital e o ID do usuario extraídos do BD na memória
        IndexSearchEngine.AddFIR(inputFIR, codigo, sampleInfo);
        if (CheckError()) {
            Closing();
            return false;
        }
        //Capturando a digital do usuario
        NBioBSPJNI.FIR_HANDLE hCapture = bsp.new FIR_HANDLE();
        bsp.Capture(hCapture);
        if (CheckError()) {
            return false;
        }
        NBioBSPJNI.INPUT_FIR inputFIR1;
        inputFIR1 = bsp.new INPUT_FIR();
        inputFIR1.SetFIRHandle(hCapture);
        NBioBSPJNI.IndexSearch.FP_INFO fpInfo = IndexSearchEngine.new FP_INFO();

        //identificado a digital capturada com a que foi indexada
        IndexSearchEngine.Identify(inputFIR1, 5, fpInfo);
        if (CheckError()) {
            Closing();
            return false;
        } else {
            Closing();
            return true;
        }
    }
    
}

Boa sorte ai brother...

P

boa tarde kiwoxox,

estou iniciando o desenvolvimento com Java e um dispositivo da Nitgen, porém estou com dificuldades para conseguir a SDK para começar. Gostaria de saber se poderia me informar como posso adquirir.

obrigado!

D

Nesta página tem o SDK e outros arquivos dos equipamentos NitGEN

http://www.bioenabletech.com/downloads/SDK/

M

Bom Dia, estou começando mexer em um leitor da Nitgen e queria uma informação, que tipo de parametro ele retorna, para salvar no banco de dados.

Obrigado

Criado 27 de outubro de 2013
Ultima resposta 3 de abr. de 2014
Respostas 6
Participantes 6