public IdentificarBiometriaHandler() { _nitgen = new NBioBSP(); _data = _nitgen.FPData; _indexSearch = _nitgen.IndexSearch; _mecanismosBusca = new List <NitgenBiometriaTaskSemCargaIndividual>(); }
static void Main(string[] args) { var corConsoleDefault = Console.ForegroundColor; var repositorio = new DigitaisRepositorio(); var handler = new IdentificarBiometriaHandler(); var numeroTotalBiometrias = repositorio.RecuperarNumeroTotalBiometrias(); var biometriasPorPagina = (numeroTotalBiometrias / 10) + 10; for (int pagina = 1; pagina <= 10; pagina++) { var biometriasRecuperadas = repositorio.RecuperarPagina(pagina, biometriasPorPagina); Console.WriteLine($"Thread {pagina} trabalhará com {biometriasRecuperadas.Count()} biometrias..."); handler.AdicionarMecanismoBuscaPara(biometriasRecuperadas); } var possoSair = false; while (!possoSair) { Console.WriteLine("Informe a digital"); var nitgen = new NBioBSP(); IFPData data = nitgen.FPData; IDevice device = nitgen.Device; IExtraction extraction = nitgen.Extraction; device.Open(255); extraction.Capture(); var template = extraction.FIR; device.Close(255); var relogio = new Stopwatch(); relogio.Start(); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Identificando....."); Console.ForegroundColor = corConsoleDefault; var resultado = handler.IdentificarBiometriaComCarga(template); relogio.Stop(); Console.ForegroundColor = ConsoleColor.Red; 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; } } }
public Task <int> CriarTaskParaIdentificacaoBiometrica(byte[] 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; Console.WriteLine($"{DateTime.Now} - {contexto.Id} - Localizando em {contexto.Biometrias.Count()} biometrias..."); if (token.IsCancellationRequested) { return 0; } var nitgenMainApi = new NBioBSP(); IIndexSearch nitgenSearchApi = nitgenMainApi.IndexSearch; foreach (var biometria in contexto.Biometrias) { nitgenSearchApi.AddFIR(biometria.TemplateFIR, biometria.Id); } Console.WriteLine($"{DateTime.Now} - {contexto.Id} - Iniciando identificação..."); var relogio = new Stopwatch(); relogio.Start(); nitgenSearchApi.IdentifyUser(template, 7); relogio.Stop(); Console.WriteLine($"{DateTime.Now} - {contexto.Id} - Localizado {nitgenSearchApi.UserID} em {relogio.Elapsed.TotalSeconds}"); return nitgenSearchApi.UserID; //if (nitgenSearchApi.UserID > 0 && nitgenSearchApi.ErrorCode == 0) //{ //} //Console.WriteLine($"ERRO NA IDENTIFICAÇÃO: {nitgenSearchApi.ErrorCode} - {nitgenSearchApi.ErrorDescription}"); //return 0; } catch (Exception ex) { Console.WriteLine(ex.Message); return 0; } }, contextoIdentificacao, token)); }
public static NitgenBiometriaTaskSemCargaIndividual Novo(IEnumerable <Biometria> biometrias) { var nitgenMainApi = new NBioBSP(); IIndexSearch MecanismoBusca = nitgenMainApi.IndexSearch; // Carrega as biometrias foreach (var biometria in biometrias) { MecanismoBusca.AddFIR(biometria.TemplateFIR, biometria.Id); } return(new NitgenBiometriaTaskSemCargaIndividual(Guid.NewGuid(), MecanismoBusca)); }