private string CompararDigital(string Digital)
        {
            uint    ret;
            bool    result;
            NBioAPI m_NBioAPI = new NBioAPI();

            NBioAPI.Type.HFIR           hCapturedFIR = new NBioAPI.Type.HFIR();
            NBioAPI.Type.FIR_TEXTENCODE m_textFIR    = new NBioAPI.Type.FIR_TEXTENCODE();
            NBioAPI.Type.FIR_PAYLOAD    myPayload    = new NBioAPI.Type.FIR_PAYLOAD();

            m_textFIR.TextFIR = Digital.ToString();

            m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO);
            m_NBioAPI.Capture(out hCapturedFIR);

            ret = m_NBioAPI.VerifyMatch(hCapturedFIR, m_textFIR, out result, myPayload);


            if (result == true)
            {
                return("OK");
            }
            else
            {
                return("");
            }
        }
 internal NitgenBiometriaTask(Guid id, NBioAPI mecanismoBusca, NBioAPI.Export conversor, IList <Biometria> biometrias)
 {
     Id             = id;
     MecanismoBusca = mecanismoBusca;
     Conversor      = conversor;
     Biometrias     = biometrias;
 }
Beispiel #3
0
 public SdkNitgen()
 {
     _api          = new NBioAPI();
     _apiConversor = new NBioAPI.Export(_api);
     _apiBusca     = new NBioAPI.IndexSearch(_api);
     _apiBusca.InitEngine();
 }
        public static NitgenBiometriaTask Novo(IList <Biometria> biometrias)
        {
            var nitgenMainApi = new NBioAPI();
            var conversor     = new NBioAPI.Export(nitgenMainApi);

            return(new NitgenBiometriaTask(Guid.NewGuid(), nitgenMainApi, conversor, biometrias));
        }
        static void Main(string[] args)
        {
            try
            {
                var corConsoleDefault = Console.ForegroundColor;
                var repositorio       = new DigitaisRepositorio();
                var handler           = new IdentificarBiometriaHandler();

                var numeroTotalBiometrias = repositorio.RecuperarNumeroTotalBiometrias();
                var biometriasPorPagina   = (numeroTotalBiometrias / Environment.ProcessorCount) + 10;
                for (int pagina = 1; pagina <= Environment.ProcessorCount; pagina++)
                {
                    var biometriasRecuperadas = repositorio.RecuperarPagina(pagina, biometriasPorPagina);
                    handler.AdicionarMecanismoBuscaPara(biometriasRecuperadas);
                }

                // Captura da digital (trocar para o que vem da catraca posteriormente)
                var nitgenMainApi = new NBioAPI();

                var possoSair = false;
                while (!possoSair)
                {
                    Console.WriteLine("Informe a digital");

                    NBioAPI.Type.HFIR template;
                    var window = new NBioAPI.Type.WINDOW_OPTION();
                    nitgenMainApi.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO);
                    nitgenMainApi.Capture(out template, 0, window);
                    nitgenMainApi.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO);

                    var relogio = new Stopwatch();
                    relogio.Start();
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("Identificando.....");
                    Console.ForegroundColor = corConsoleDefault;
                    var resultado = handler.IdentificarBiometria(template);
                    relogio.Stop();
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine($"Id digital encontrada {resultado} em {relogio.Elapsed.TotalSeconds} segundos");
                    Console.ForegroundColor = corConsoleDefault;

                    Console.WriteLine();

                    Console.WriteLine("\nCapturar nova digital?");
                    var tecla = Console.ReadKey();
                    if (tecla.Key == ConsoleKey.N)
                    {
                        possoSair = true;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine($"ERRO {ex.Message} - {ex.StackTrace}");
                throw;
            }
        }
        private DigitalTask Create(NBioAPI.Type.HFIR template, IEnumerable <Biometria> biometrias)
        {
            var nitgenMainApi   = new NBioAPI();
            var nitgenSearchApi = new NBioAPI.IndexSearch(nitgenMainApi);

            nitgenSearchApi.InitEngine();
            var nitgenConvertApi      = new NBioAPI.Export(nitgenMainApi);
            var contextoIdentificacao = BiometriaIndentificacaoContexto.Novo(nitgenSearchApi, nitgenConvertApi);

            contextoIdentificacao.TemplateLido = template;
            var cancellationToken = new CancellationTokenSource();
            var token             = cancellationToken.Token;

            foreach (var biometria in biometrias)
            {
                NBioAPI.Type.HFIR             handle;
                NBioAPI.IndexSearch.FP_INFO[] nitgenBiometria;
                nitgenConvertApi.FDxToNBioBSPEx(biometria.TemplateISO, (uint)biometria.TemplateISO.Length,
                                                NBioAPI.Type.MINCONV_DATA_TYPE.MINCONV_TYPE_ISO, NBioAPI.Type.FIR_PURPOSE.ENROLL_FOR_IDENTIFICATION_ONLY,
                                                out handle);

                nitgenSearchApi.AddFIR(handle, (uint)biometria.Id, out nitgenBiometria);
            }

            var task = new Task <int>((parametroState) =>
            {
                var contexto = parametroState as BiometriaIndentificacaoContexto;
                Console.WriteLine($"{contexto.Id} - Iniciado ");

                if (token.IsCancellationRequested)
                {
                    token.ThrowIfCancellationRequested();
                }

                // Faz o Index Search
                var cbInfo = new NBioAPI.IndexSearch.CALLBACK_INFO_0();
                NBioAPI.IndexSearch.FP_INFO nitgenBiometria;
                var relogio = new Stopwatch();
                Console.WriteLine($"{contexto.Id} - Localizando biometria...");
                relogio.Start();
                var retorno = nitgenSearchApi.IdentifyData(contexto.TemplateLido, NBioAPI.Type.FIR_SECURITY_LEVEL.HIGH,
                                                           out nitgenBiometria, cbInfo);
                relogio.Stop();
                Console.WriteLine($"{contexto.Id} - Localizado {nitgenBiometria.ID} em {relogio.Elapsed.TotalSeconds}");

                if (token.IsCancellationRequested)
                {
                    token.ThrowIfCancellationRequested();
                }

                Console.WriteLine($"{contexto.Id} - Finalizado ");
                return((int)nitgenBiometria.ID);
            }, contextoIdentificacao, token);

            return(new DigitalTask(contextoIdentificacao.Id, task, cancellationToken));
        }
 public ContextoParaIndentificacaoBiometrica(Guid id, NBioAPI mecanismoBusca, NBioAPI.IndexSearch mecanismoConfirmacao,
                                             NBioAPI.Export conversor, NBioAPI.Type.HFIR templateLido, IEnumerable <Biometria> biometrias)
 {
     Id                   = id;
     MecanismoBusca       = mecanismoBusca;
     TemplateLido         = templateLido;
     Biometrias           = biometrias;
     MecanismoConfirmacao = mecanismoConfirmacao;
     Conversor            = conversor;
 }
        public IdentificarBiometriaHandler()
        {
            _repositorio     = new DigitaisRepositorio();
            _mecanismosBusca = new List <NitgenBiometriaTask>();
            var nitgenMainApi = new NBioAPI();

            _mecanismoConfirmacao = new NBioAPI.IndexSearch(nitgenMainApi);
            _mecanismoConfirmacao.InitEngine();
            _dataUltimaBusca = DateTime.Now;
        }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            filldrop();
        }

        m_NBioAPI     = new NBioAPI();
        m_IndexSearch = new NBioAPI.IndexSearch(m_NBioAPI);
        //con.Open();
        table_creater();
    }
        private dynamic buscar(dynamic dados)
        {
            JObject objJson;


            //string url = "http://localhost:3200/api/biometrico";

            //var json = new WebClient().DownloadString(url);
            // dynamic m = JsonConvert.DeserializeObject( dados );

            uint    ret;
            bool    result;
            NBioAPI m_NBioAPI = new NBioAPI();

            NBioAPI.Type.HFIR           hCapturedFIR = new NBioAPI.Type.HFIR();
            NBioAPI.Type.FIR_TEXTENCODE m_textFIR    = new NBioAPI.Type.FIR_TEXTENCODE();
            NBioAPI.Type.FIR_PAYLOAD    myPayload    = new NBioAPI.Type.FIR_PAYLOAD();

            //m_textFIR.TextFIR = Digital.ToString();

            m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO);
            m_NBioAPI.Capture(out hCapturedFIR);
            dynamic retorno      = "-";
            int     idx          = -1;
            int     idxEncontrou = -1;

            foreach (dynamic obj in dados)
            {
                idx++;
                m_textFIR.TextFIR = obj.digital;
                ret = m_NBioAPI.VerifyMatch(hCapturedFIR, m_textFIR, out result, myPayload);
                if (result == true)
                {
                    idxEncontrou = idx;
                    break;
                }
            }
            if (idxEncontrou > -1)
            {
                string str1 = "{status: true, msg: 'Digital encontrada', indice: " + idxEncontrou + "}";
                objJson = JObject.Parse(str1);
                return(objJson);
            }
            string str = "{status: false, msg: 'Digital não encontrada'}";

            objJson = JObject.Parse(str);
            return(objJson);



            //return m;
        }
        private void buttonAdv1_Click(object sender, EventArgs e)
        {
            LeitorBiometrico leitor = new LeitorBiometrico();

            NBioAPI.Type.HFIR           teste = leitor.Capturar();
            NBioAPI.Type.FIR_TEXTENCODE teste2;
            NBioAPI m_NBioAPI = new NBioAPI();

            m_NBioAPI.GetTextFIRFromHandle(teste, out teste2, true);
            string teste3 = teste2.TextFIR;

            MessageBox.Show(teste3);
        }
Beispiel #12
0
        public Form1()
        {
            InitializeComponent();

            m_NBioAPI = new NBioAPI();
            m_Export  = new NBioAPI.Export(m_NBioAPI);

            NBioAPI.Type.VERSION ver;

            m_NBioAPI.GetVersion(out ver);

            this.Text = "NExportRawToISO Test[eNBioBS SDK Ver: " + ver.Major + "." + ver.Minor + "]";
        }
Beispiel #13
0
        public Form1()
        {
            InitializeComponent();

             m_NBioAPI = new NBioAPI();
             m_Export = new NBioAPI.Export(m_NBioAPI);

             NBioAPI.Type.VERSION ver;

             m_NBioAPI.GetVersion(out ver);

             this.Text = "NExportRawToISO Test[eNBioBS SDK Ver: " + ver.Major + "." + ver.Minor + "]";
        }
        private static void CarregarBiometriasParaNitgen(NBioAPI nitgenMainApi, NBioAPI.IndexSearch nitgenSearchApi, IEnumerable <Biometria> biometrias)
        {
            foreach (var biometria in biometrias)
            {
                var biometriaNitgen = new NBioAPI.Type.FIR_TEXTENCODE
                {
                    TextFIR = biometria.TemplateISOText
                };

                NBioAPI.IndexSearch.FP_INFO[] informacaoBiometria;
                nitgenSearchApi.AddFIR(biometriaNitgen, (uint)biometria.Id, out informacaoBiometria);
            }
        }
        public string Identificar(string Digital)
        {
            NBioAPI m_NBioAPI = new NBioAPI();

            NBioAPI.Type.FIR_TEXTENCODE m_textFIR = new NBioAPI.Type.FIR_TEXTENCODE();
            //NBioAPI.Type.HFIR NewFIR;
            NBioAPI.IndexSearch           m_IndexSearch = new NBioAPI.IndexSearch(m_NBioAPI);
            NBioAPI.Type.HFIR             hCapturedFIR;
            NBioAPI.IndexSearch.FP_INFO[] fpInfo;


            NBioAPI.Type.WINDOW_OPTION m_WinOption = new NBioAPI.Type.WINDOW_OPTION();
            m_WinOption.WindowStyle = (uint)NBioAPI.Type.WINDOW_STYLE.NO_WELCOME;

            uint ID = 1;

            m_textFIR.TextFIR = Digital;
            m_IndexSearch.AddFIR(m_textFIR, ID, out fpInfo);

            uint dataCount;

            m_IndexSearch.GetDataCount(out dataCount);

            m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO);
            uint ret = m_NBioAPI.Capture(out hCapturedFIR);

            if (ret != NBioAPI.Error.NONE)
            {
                //DisplayErrorMsg(ret);
                m_NBioAPI.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO);
                m_NBioAPI.GetTextFIRFromHandle(hCapturedFIR, out m_textFIR, true);
            }

            m_NBioAPI.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO);


            NBioAPI.IndexSearch.FP_INFO         fpInfo2;
            NBioAPI.IndexSearch.CALLBACK_INFO_0 cbInfo0 = new NBioAPI.IndexSearch.CALLBACK_INFO_0();
            cbInfo0.CallBackFunction = new NBioAPI.IndexSearch.INDEXSEARCH_CALLBACK(myCallback);

            // Identify FIR to IndexSearch DB
            ret = m_IndexSearch.IdentifyData(hCapturedFIR, NBioAPI.Type.FIR_SECURITY_LEVEL.NORMAL, out fpInfo2, cbInfo0);
            if (ret != NBioAPI.Error.NONE)
            {
                //DisplayErrorMsg(ret);
                //return fpInfo2.ID.ToString();
                return(m_textFIR.TextFIR);
            }

            return("");
        }
        public static NitgenBiometriaTask Novo(IEnumerable <Biometria> biometrias)
        {
            var nitgenMainApi   = new NBioAPI();
            var nitgenSearchApi = new NBioAPI.IndexSearch(nitgenMainApi);
            var retorno         = nitgenSearchApi.InitEngine();

            if (retorno != NBioAPI.Error.NONE)
            {
                throw new Exception($"Erro inicializando mecanismo de busca. Erro: {retorno} - {NBioAPI.Error.GetErrorDescription(retorno)}");
            }

            CarregarBiometriasParaNitgen(nitgenMainApi, nitgenSearchApi, biometrias);
            return(new NitgenBiometriaTask(Guid.NewGuid(), nitgenSearchApi));
        }
        public Form1()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            //
            // TODO: Add any constructor code after InitializeComponent call
            //

            // Create NBioBSP object
            m_NBioAPI     = new NBioAPI();
            m_IndexSearch = new NBioAPI.IndexSearch(m_NBioAPI);
        }
        public Form1()
        {
            InitializeComponent();


            this.bt_converter.Enabled   = false;
            this.pathfilename.Enabled   = false;
            this.button1.Enabled        = false;
            this.txt_textencode.Enabled = false;
            this.button2.Enabled        = false;

            //inveção de dependências
            nBioAPI  = new NBioAPI();
            m_Export = new NBioAPI.Export(nBioAPI);
        }
        public Task <int> CriarTaskParaIdentificacaoBiometrica(NBioAPI.Type.HFIR template, IEnumerable <Biometria> biometrias)
        {
            var contextoIdentificacao = new ContextoParaIndentificacaoBiometrica(Id, biometrias, template);

            CancellationSource = new CancellationTokenSource();
            var token = CancellationSource.Token;

            return(new Task <int>((parametroState) =>
            {
                try
                {
                    var contexto = parametroState as ContextoParaIndentificacaoBiometrica;
                    if (token.IsCancellationRequested)
                    {
                        return 0;
                    }

                    var nitgenMainApi = new NBioAPI();
                    var nitgenSearchApi = new NBioAPI.IndexSearch(nitgenMainApi);
                    nitgenSearchApi.InitEngine();
                    foreach (var biometria in contexto.Biometrias)
                    {
                        var biometriaNitgen = new NBioAPI.Type.FIR_TEXTENCODE {
                            TextFIR = biometria.TemplateISOText
                        };
                        NBioAPI.IndexSearch.FP_INFO[] informacaoBiometria;
                        nitgenSearchApi.AddFIR(biometriaNitgen, (uint)biometria.Id, out informacaoBiometria);
                    }

                    var cbInfo = new NBioAPI.IndexSearch.CALLBACK_INFO_0();
                    cbInfo.CallBackFunction = new NBioAPI.IndexSearch.INDEXSEARCH_CALLBACK(Callback);
                    NBioAPI.IndexSearch.FP_INFO nitgenBiometria;
                    var relogio = new Stopwatch();
                    relogio.Start();
                    var retorno = nitgenSearchApi.IdentifyData(contexto.TemplateLido, NBioAPI.Type.FIR_SECURITY_LEVEL.HIGH,
                                                               out nitgenBiometria, cbInfo);
                    relogio.Stop();
                    Console.WriteLine($"{contexto.Id} - Localizado {nitgenBiometria.ID} em {relogio.Elapsed.TotalSeconds}");

                    return (int)nitgenBiometria.ID;
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    return 0;
                }
            }, contextoIdentificacao, token));
        }
        public interfaceBiometria()
        {
            //Inicializa leitor e ja pega uma conexão com o banco
            m_NBioAPI        = new NBioAPI();
            m_OpenedDeviceID = NBioAPI.Type.DEVICE_ID.NONE;
            m_IndexSearch    = new NBioAPI.IndexSearch(m_NBioAPI);
            defineDispositivo();

            //Inicia o sistema de busca de digitais cadastradas.
            m_IndexSearch.InitEngine();

            //Inicializa o módulo para captura da Digital
            //Inicializa a variável da opção da janela, e define a janela de captura como invisivel
            m_WinOption             = new NBioAPI.Type.WINDOW_OPTION();
            m_WinOption.WindowStyle = NBioAPI.Type.WINDOW_STYLE.INVISIBLE;
        }
        public CadastraDigitalForm()
        {
            InitializeComponent();

            //Inicializa leitor e ja pega uma conexão com o banco
            m_NBioAPI        = new NBioAPI();
            m_OpenedDeviceID = NBioAPI.Type.DEVICE_ID.NONE;
            m_IndexSearch    = new NBioAPI.IndexSearch(m_NBioAPI);
            SqlConnection conn = new ConnectionFactory().getConnection();

            //Inicializa o módulo para captura da Digital
            defineDispositivo();
            fechaDispositivo();
            abreDispositivo();
            cadastraDigital();
        }
        public interfaceBiometria()
        {
            //Inicializa leitor e ja pega uma conexão com o banco
            m_NBioAPI = new NBioAPI();
            m_OpenedDeviceID = NBioAPI.Type.DEVICE_ID.NONE;
            m_IndexSearch = new NBioAPI.IndexSearch(m_NBioAPI);
            defineDispositivo();

            //Inicia o sistema de busca de digitais cadastradas.
            m_IndexSearch.InitEngine();

            //Inicializa o módulo para captura da Digital
            //Inicializa a variável da opção da janela, e define a janela de captura como invisivel
            m_WinOption = new NBioAPI.Type.WINDOW_OPTION();
            m_WinOption.WindowStyle = NBioAPI.Type.WINDOW_STYLE.INVISIBLE;
        }
        public string Capturar()
        {
            NBioAPI m_NBioAPI = new NBioAPI();

            NBioAPI.Type.HFIR           hCapturedFIR = new NBioAPI.Type.HFIR();
            NBioAPI.Type.FIR_TEXTENCODE texto        = new NBioAPI.Type.FIR_TEXTENCODE();
            // Get FIR data

            m_NBioAPI.OpenDevice(255);

            m_NBioAPI.Capture(out hCapturedFIR);
            m_NBioAPI.GetTextFIRFromHandle(hCapturedFIR, out texto, true);


            return(texto.TextFIR);
        }
Beispiel #24
0
        public Form1()
        {
            InitializeComponent();

            //inicializa variáveis Necessárias para NBIOBSP.

            m_NBioAPI   = new NBioAPI();
            m_WinOption = new NBioAPI.Type.WINDOW_OPTION();
            m_Export    = new NBioAPI.Export(m_NBioAPI);
            utils       = new Utils(m_NBioAPI);

            if (string.IsNullOrWhiteSpace(richTextBox1.Text))
            {
                richTextBox1.Text = "insira o Template aqui";
            }
        }
        public CadastraDigitalForm()
        {
            InitializeComponent();

            //Inicializa leitor e ja pega uma conexão com o banco
            m_NBioAPI = new NBioAPI();
            m_OpenedDeviceID = NBioAPI.Type.DEVICE_ID.NONE;
            m_IndexSearch = new NBioAPI.IndexSearch(m_NBioAPI);
            SqlConnection conn = new ConnectionFactory().getConnection();

            //Inicializa o módulo para captura da Digital
            defineDispositivo();
            fechaDispositivo();
            abreDispositivo();
            cadastraDigital();
        }
        static void Main(string[] args)
        {
            var repositorio       = new DigitaisRepositorio();
            var nitgenMainApi     = new NBioAPI();
            var handler           = new IdentificarBiometriaHandler();
            var corConsoleDefault = Console.ForegroundColor;

            var biometrias = repositorio.RecuperarPagina(1, 8000);

            Console.WriteLine($"{biometrias.Count()} biometrias recuperadas...");
            handler.CarregarBiometrias(biometrias);

            var possoSair = false;

            while (!possoSair)
            {
                Console.WriteLine("Informe a digital");

                NBioAPI.Type.HFIR template;
                var window = new NBioAPI.Type.WINDOW_OPTION();
                nitgenMainApi.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO);
                nitgenMainApi.Capture(out template, 0, window);
                nitgenMainApi.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO);

                var relogio = new Stopwatch();
                relogio.Start();
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("Identificando.....");
                Console.ForegroundColor = corConsoleDefault;
                var resultado = handler.IdentificarBiometria(template);
                relogio.Stop();
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine($"Id digital encontrada {resultado} em {relogio.Elapsed.TotalSeconds} segundos");
                Console.ForegroundColor = corConsoleDefault;

                Console.WriteLine();

                Console.WriteLine("\nCapturar nova digital?");
                var tecla = Console.ReadKey();
                if (tecla.Key == ConsoleKey.N)
                {
                    possoSair = true;
                }
            }
        }
Beispiel #27
0
        private uint ConvertISO4ToISO2(byte[] ISOBuf, out NBioAPI.Export.EXPORT_DATA exportData)
        {
            NBioBSPISO4.NIMPORTRAWSET ImportRawSet;
             string szTemp;

             listRet.Items.Add("ISO 19794-2 data creation start...");

             exportData = new NBioAPI.Export.EXPORT_DATA();

             uint nRet = NBioBSPISO4.ImportISOToRaw(ISOBuf, out ImportRawSet);

             if (nRet == NBioAPI.Error.NONE)
             {
            NBioAPI.Type.HFIR hProcessedFIR;

            nRet = MakeFIRFromRawSet(ImportRawSet, out hProcessedFIR);

            if (nRet == NBioAPI.Error.NONE)
            {
               // Make ISO 19794-2 Data
               nRet = m_Export.NBioBSPToFDx(hProcessedFIR, out exportData, NBioAPI.Type.MINCONV_DATA_TYPE.MINCONV_TYPE_ISO);

               if (nRet != NBioAPI.Error.NONE)
               {
                  szTemp = "NBioBSPToFDx Error: " + nRet;
                  listRet.Items.Add(szTemp);
               }

               hProcessedFIR.Dispose();
            }
             }
             else
             {
            szTemp = "ImportISOToRaw Error: " + nRet;
            listRet.Items.Add(szTemp);
             }

             return nRet;
        }
        public string Enroll(int id)
        {
            NBioAPI m_NBioAPI = new NBioAPI();

            NBioAPI.Type.FIR_TEXTENCODE m_textFIR;
            NBioAPI.Type.HFIR           NewFIR;
            NBioAPI.IndexSearch         m_IndexSearch = new NBioAPI.IndexSearch(m_NBioAPI);


            NBioAPI.Type.WINDOW_OPTION m_WinOption = new NBioAPI.Type.WINDOW_OPTION();
            m_WinOption.WindowStyle = (uint)NBioAPI.Type.WINDOW_STYLE.NO_WELCOME;

            string Retorno = "";

            m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO);
            uint ret = m_NBioAPI.Enroll(out NewFIR, null);

            //uint ret = m_NBioAPI.Enroll(null, out NewFIR, null, NBioAPI.Type.TIMEOUT.DEFAULT, null, m_WinOption);


            if (ret != NBioAPI.Error.NONE)
            {
                m_NBioAPI.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO);
            }

            if (NewFIR != null)
            {
                m_NBioAPI.GetTextFIRFromHandle(NewFIR, out m_textFIR, true);


                if (m_textFIR.TextFIR != null)
                {
                    m_NBioAPI.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO);
                    Retorno = m_textFIR.TextFIR.ToString();
                }
            }
            return(Retorno);
        }
        public Byte[] Capturar(int id)
        {
            NBioAPI m_NBioAPI = new NBioAPI();

            NBioAPI.Type.INIT_INFO_0 initInfo0;
            uint ret = m_NBioAPI.GetInitInfo(out initInfo0);

            Console.WriteLine("passeiaqui");
            if (ret == NBioAPI.Error.NONE)
            {
                initInfo0.EnrollImageQuality = Convert.ToUInt32(50);
                initInfo0.VerifyImageQuality = Convert.ToUInt32(30);
                initInfo0.DefaultTimeout     = Convert.ToUInt32(10000);
                initInfo0.SecurityLevel      = (int)NBioAPI.Type.FIR_SECURITY_LEVEL.NORMAL - 1;
            }

            NBioAPI.IndexSearch         m_IndexSearch = new NBioAPI.IndexSearch(m_NBioAPI);
            NBioAPI.Type.HFIR           hCapturedFIR;
            NBioAPI.Type.HFIR           AuditData = new NBioAPI.Type.HFIR();
            NBioAPI.Type.FIR_TEXTENCODE texto;
            // Get FIR data
            m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO);
            m_NBioAPI.Capture(NBioAPI.Type.FIR_PURPOSE.DENTIFY, out hCapturedFIR, -1, AuditData, null);
            //Console.WriteLine(Encoding.Default.GetString(getfingerImage(AuditData)));

            try
            {
                if (hCapturedFIR != null)
                {
                    return(getfingerImage(AuditData));
                }
                return(null);
            }
            catch (Exception ex)
            {
                throw new Exception("ERRO:... " + ex.Message);
            }
        }
        public Byte[] getfingerImage(NBioAPI.Type.HFIR Fir_toImage)
        {
            NBioAPI m_NBioAPI = new NBioAPI();

            NBioAPI.Export.EXPORT_AUDIT_DATA exportData;
            NBioAPI.Export m_Export = new NBioAPI.Export(m_NBioAPI);

            m_Export.NBioBSPToImage(Fir_toImage, out exportData);
            Bitmap bmp;
            int    nWidth  = (int)exportData.ImageWidth;
            int    nHeight = (int)exportData.ImageHeight;

            {     // bmp image save...
                bmp = new Bitmap(nWidth, nHeight, PixelFormat.Format8bppIndexed);
                BitmapData data = bmp.LockBits(new Rectangle(0, 0, nWidth, nHeight), ImageLockMode.WriteOnly, PixelFormat.Format8bppIndexed);

                System.Runtime.InteropServices.Marshal.Copy(exportData.AuditData[0].Image[0].Data, 0, data.Scan0, nWidth * nHeight);
                bmp.UnlockBits(data);
                ColorPalette GrayscalePalette = bmp.Palette;
                for (int i = 0; i < 256; i++)
                {
                    GrayscalePalette.Entries[i] = Color.FromArgb(i, i, i);
                }

                bmp.Palette = GrayscalePalette;

                // bmp.Save("RollImage.bmp");
            }

            //Image img = bmp;
            MemoryStream stream = new MemoryStream();

            bmp.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp);
            Byte[] bytes = stream.ToArray();


            return(bytes);
        }
        public string Capturar(int id)
        {
            NBioAPI m_NBioAPI = new NBioAPI();

            NBioAPI.Type.INIT_INFO_0 initInfo0;
            uint ret = m_NBioAPI.GetInitInfo(out initInfo0);

            if (ret == NBioAPI.Error.NONE)
            {
                initInfo0.EnrollImageQuality = Convert.ToUInt32(50);
                initInfo0.VerifyImageQuality = Convert.ToUInt32(30);
                initInfo0.DefaultTimeout     = Convert.ToUInt32(10000);
                initInfo0.SecurityLevel      = (int)NBioAPI.Type.FIR_SECURITY_LEVEL.NORMAL - 1;
            }

            NBioAPI.IndexSearch         m_IndexSearch = new NBioAPI.IndexSearch(m_NBioAPI);
            NBioAPI.Type.HFIR           hCapturedFIR;
            NBioAPI.Type.FIR_TEXTENCODE texto;
            // Get FIR data
            m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO);
            m_NBioAPI.Capture(out hCapturedFIR);

            try
            {
                if (hCapturedFIR != null)
                {
                    m_NBioAPI.GetTextFIRFromHandle(hCapturedFIR, out texto, true);
                    return(texto.TextFIR);
                }
                return(null);
            }
            catch (Exception ex)
            {
                throw new Exception("ERRO:... " + ex.Message);
            }
        }
Beispiel #32
0
        private uint MakeFIRFromRawSet(NBioBSPISO4.NIMPORTRAWSET RawSet, out NBioAPI.Type.HFIR hProcessedFIR)
        {
            hProcessedFIR = null;

             if (RawSet.nDataCount < 1)
            return NBioAPI.Error.FUNCTION_FAIL;

             uint nRet;
             int i, j, k;
             ushort nWidth = RawSet.ImportRawData[0].nImgWidth;
             ushort nHeight = RawSet.ImportRawData[0].nImgHeight;
             const int FINGER_ID_MAX = 11;
             byte[] arSampleCnt = new byte[FINGER_ID_MAX];
             byte nSampleCnt = 0;
             string szTemp;

             listRet.Items.Add("NITGEN FIR creation start...");

             for (i = 0; i < FINGER_ID_MAX; i++)
            arSampleCnt[i] = 0;

             // Image size check
             for (i = 0; i < RawSet.nDataCount; i++)
             {
            if (nWidth != RawSet.ImportRawData[i].nImgWidth || nHeight != RawSet.ImportRawData[i].nImgHeight)
               return NBioAPI.Error.FUNCTION_FAIL;

            arSampleCnt[RawSet.ImportRawData[i].nFingerID]++;
             }

             // Sample per finger check
             for (i = 0; i < FINGER_ID_MAX; i++)
             {
            if (nSampleCnt == 0)
               nSampleCnt = arSampleCnt[i];
            else
            {
               if (arSampleCnt[i] != 0 && nSampleCnt != arSampleCnt[i])
                  return NBioAPI.Error.FUNCTION_FAIL;
            }
             }

             if (nSampleCnt < 1 || nSampleCnt > 2)
            return NBioAPI.Error.FUNCTION_FAIL;

             // Make NBioAPI_EXPORT_AUDIT_DATA
             NBioAPI.Export.EXPORT_AUDIT_DATA exportAuditData;

             exportAuditData = new NBioAPI.Export.EXPORT_AUDIT_DATA();

             exportAuditData.FingerNum = (byte)(RawSet.nDataCount / nSampleCnt);
             exportAuditData.SamplesPerFinger = nSampleCnt;
             exportAuditData.ImageWidth = nWidth;
             exportAuditData.ImageHeight = nHeight;
             exportAuditData.AuditData = new NBioAPI.Export.AUDIT_DATA[exportAuditData.FingerNum];

             for (i = 0; i < exportAuditData.FingerNum; i++)
             {
            exportAuditData.AuditData[i].Image = new NBioAPI.Export.IMAGE_DATA[exportAuditData.SamplesPerFinger];

            for (j = 0; j < FINGER_ID_MAX; j++)
            {
               if (arSampleCnt[j] != 0)
               {
                  exportAuditData.AuditData[i].FingerID = (byte)j;
                  arSampleCnt[j] = 0;
                  break;
               }
            }

            for (j = 0, k = 0; j < RawSet.nDataCount; j++)
            {
               if (exportAuditData.AuditData[i].FingerID == RawSet.ImportRawData[j].nFingerID)
               {
                  exportAuditData.AuditData[i].Image[k].Data = new byte[RawSet.ImportRawData[j].RawData.Length];
                  exportAuditData.AuditData[i].Image[k++].Data = RawSet.ImportRawData[j].RawData;
               }
            }
             }

             // Make Image handle
             NBioAPI.Type.HFIR hAuditFIR;

             nRet = m_Export.ImageToNBioBSP(exportAuditData, out hAuditFIR);

             if (nRet == NBioAPI.Error.NONE)
             {
            // Make FIR handle
            nRet = m_NBioAPI.Process(hAuditFIR, out hProcessedFIR);

            if (nRet != NBioAPI.Error.NONE)
            {
               szTemp = "Process Error: " + nRet;
               listRet.Items.Add(szTemp);
            }

            hAuditFIR.Dispose();
             }
             else
             {
            szTemp = "ImageToNBioBSP Error: " + nRet;
            listRet.Items.Add(szTemp);
             }

             return nRet;
        }
Beispiel #33
0
 //injeção de dependência
 public Utils(NBioAPI m_NBioAPI)
 {
     this.m_NBioAPI = m_NBioAPI;
     m_Export       = new NBioAPI.Export(m_NBioAPI);
 }
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                var contextosIdentificacao = new List <BiometriaIndentificacaoContexto>();
                _tasks = new ConcurrentBag <DigitalTask>();

                // Captura da digital (trocar para o que vem da catraca posteriormente)
                var nitgenMainApi = new NBioAPI();
                NBioAPI.Type.HFIR template;
                var window = new NBioAPI.Type.WINDOW_OPTION();
                nitgenMainApi.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO);
                nitgenMainApi.Capture(out template, 0, window);
                nitgenMainApi.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO);

                var repositorio      = new DigitalRepositorio();
                var digitaisIniciais = repositorio.RecuperarPrimeirosRegistros();
                var digitaisFinais   = repositorio.RecuperarUltimosRegistros();

                var task1 = Create(template, digitaisIniciais);
                var task2 = Create(template, digitaisFinais);

                _tasks.Add(task1);
                _tasks.Add(task2);

                task1.Task.Start();
                Thread.Sleep(500);
                task2.Task.Start();

                var relogio = new Stopwatch();
                relogio.Start();

                var         possoSair = false;
                DigitalTask resultado;
                while (!possoSair)
                {
                    if (_tasks.Any(t => t.Task.IsCompleted))
                    {
                        var completadas = _tasks.Where(t => t.Task.IsCompleted);
                        resultado = completadas.FirstOrDefault(c => c.Task.Result > 0);

                        if (resultado != null)
                        {
                            foreach (var task in _tasks.Where(t => t.Id != resultado.Id))
                            {
                                task.CancellationSource.Cancel();
                            }
                            possoSair = true;
                        }
                    }

                    if (_tasks.All(t => t.Task.IsCompleted))
                    {
                        possoSair = true;
                    }

                    Thread.Sleep(10);
                }

                relogio.Stop();
                MessageBox.Show($"Terminou em {relogio.Elapsed.TotalSeconds}");
            }
            catch (OperationCanceledException ex)
            {
                foreach (var task in _tasks)
                {
                    task.CancellationSource.Dispose();
                }
            }
        }
Beispiel #35
0
        private void btnCadastrar_Click(object sender, EventArgs e)
        {
            userC = new UserController();
            user  = new User();

            if (txtUsuario.Text == "")
            {
                MessageBox.Show("Favor, preencher o campo de usuário", "Projeto Biometria", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtUsuario.Focus();
            }
            else if (txtNome.Text == "")
            {
                MessageBox.Show("Favor, preencher o campo de nome", "Projeto Biometria", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtNome.Focus();
            }
            else if (txtEmail.Text == "")
            {
                MessageBox.Show("Favor, preencher o campo de email", "Projeto Biometria", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtEmail.Focus();
            }
            else if (txtSenha.Text == "")
            {
                MessageBox.Show("Favor, preencher o campo de senha", "Projeto Biometria", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtSenha.Focus();
            }
            else
            {
                NBioAPI.Type.FIR heFIR = new NBioAPI.Type.FIR();

                m_NBioAPI = new NBioAPI();
                NBioAPI.Type.HFIR NewFIR;

                uint reta = m_NBioAPI.OpenDevice(NBioAPI.Type.DEVICE_ID.AUTO);

                // m_NBioAPI.Enroll(out NewFIR,  null);
                uint ret = m_NBioAPI.Capture(NBioAPI.Type.FIR_PURPOSE.VERIFY, out NewFIR, NBioAPI.Type.TIMEOUT.DEFAULT, null, null);
                if (ret == NBioAPI.Error.NONE)
                {
                    if (NewFIR != null)
                    {
                        m_NBioAPI.GetFIRFromHandle(NewFIR, out m_biFIR);

                        user.NomeCompleto = txtNome.Text;
                        user.Usuario      = txtUsuario.Text;
                        user.Senha        = txtSenha.Text;
                        user.Email        = txtEmail.Text;
                        user.NivelAcesso  = 3;
                        user.Digital      = m_biFIR.Data;
                        user.Imagem       = m_biFIR.Data;
                        user.Format       = Convert.ToInt32(m_biFIR.Format.ToString());
                        user.DataLength   = Convert.ToInt32(m_biFIR.Header.DataLength.ToString());
                        user.DataType     = Convert.ToInt32(m_biFIR.Header.DataType.ToString());
                        user.Purpose      = Convert.ToInt32(m_biFIR.Header.Purpose.ToString());
                        user.Length       = Convert.ToInt32(m_biFIR.Header.Length.ToString());
                        user.Quality      = Convert.ToInt32(m_biFIR.Header.Quality.ToString());
                        user.Reserved     = Convert.ToInt32(m_biFIR.Header.Reserved.ToString());
                        user.Version      = Convert.ToInt32(m_biFIR.Header.Version.ToString());

                        userC.insertUser(user);

                        MessageBox.Show("Usuário Administrador cadastrado com sucesso!", "Projeto Biometria", MessageBoxButtons.OK, MessageBoxIcon.Information);

                        frmLogin login = new frmLogin();
                        this.Hide();
                        this.ShowIcon      = false;
                        this.ShowInTaskbar = false;
                        login.ShowDialog();
                        Application.Exit();
                    }
                }
                else
                {
                    MessageBox.Show("Erro ao cadastrar digital, tente novamente!", "Projeto Biometria", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                m_NBioAPI.CloseDevice(NBioAPI.Type.DEVICE_ID.AUTO);
            }
        }