private void IdentifyThread() { while (!reset) { Fid fid = null; if (!CaptureFinger(ref fid)) { //break; } if (objReader == null) { objReader = objDeviceReader.IndexDevice(); objDeviceReader.InitializeDevice(ref objReader); } if (fid == null) { continue; } DataResult <Fmd> resultConversion = FeatureExtraction.CreateFmdFromFid(fid, Constants.Formats.Fmd.ANSI); if (resultConversion.ResultCode != Constants.ResultCode.DP_SUCCESS) { //break; if (objReader != null) { objReader.Dispose(); objReader = null; } return; } int thresholdScore = DPFJ_PROBABILITY_ONE * 1 / 100000; Fmd aux = resultConversion.Data; Fmd temp; foreach (Clases.Persona item in listPersons) { temp = Fmd.DeserializeXml(item.huella); CompareResult identifyResult = Comparison.Compare(aux, 0, temp, 0); if (identifyResult.ResultCode != Constants.ResultCode.DP_SUCCESS) { break; } if (identifyResult.Score < thresholdScore) { SendMessage("Identificado"); MessageBox.Show("Identificado"); Thread.Sleep(3000); SendMessage("Buscando..."); break; } } } if (objReader != null) { objReader.Dispose(); } }
private void IdentifyThread() { while (!reset) { Fid fid = null; if (!CaptureFinger(ref fid)) { //break; } if (objReader == null) { objReader = objDeviceReader.IndexDevice(); objDeviceReader.InitializeDevice(ref objReader); } if (fid == null) { continue; } DataResult <Fmd> resultConversion = FeatureExtraction.CreateFmdFromFid(fid, Constants.Formats.Fmd.ANSI); if (resultConversion.ResultCode != Constants.ResultCode.DP_SUCCESS) { //break; if (objReader != null) { objReader.Dispose(); objReader = null; } return; } int thresholdScore = DPFJ_PROBABILITY_ONE * 1 / 100000; Fmd aux = resultConversion.Data; Fmd temp; foreach (Clases.Persona item in listPersons) { try { temp = Fmd.DeserializeXml(item.huella); CompareResult identifyResult = Comparison.Compare(aux, 0, temp, 0); if (identifyResult.ResultCode != Constants.ResultCode.DP_SUCCESS) { break; } if (identifyResult.Score < thresholdScore) { List <Datos.membresia> mem = new Negocios.Nmembresia().ListarMembresia(item.id); //guardar la asistencia en la base de datos try { //insertamos en la base de datos string cs = ConfigurationManager.ConnectionStrings["saffron.GYM.GYM2"].ConnectionString; SqlConnection conexion = new SqlConnection(cs); conexion.Open(); SqlCommand query = new SqlCommand("INSERT INTO GYM.asistencias VALUES (" + item.id + ", GETDATE())", conexion); query.ExecuteNonQuery(); conexion.Close(); } catch (Exception err) { MessageBox.Show(err.Message); } if (mem.Count > 0) { string membresia = ""; DateTime fecha_i = DateTime.Now; DateTime fecha_f = DateTime.Now; foreach (var m in mem) { //sacamos el tipo de membresia switch (m.tipo_membresia) { case "G": membresia = "Gimnasio"; break; case "Z": membresia = "Zumba"; break; case "C": membresia = "Crossfit"; break; } //sacamos la fecha inicial } // Difference in days, hours, and minutes. TimeSpan ts = fecha_f - DateTime.Now; // Difference in days. int differenceInDays = ts.Days; SendMessage("Cliente identificado: ", item.Nombre, membresia, fecha_i.ToShortDateString(), fecha_f.ToShortDateString(), differenceInDays.ToString()); } else { SendMessage("Cliente identificado: ", item.Nombre, "Sin Membresia Activa", "", "", ""); } Thread.Sleep(10000); SendMessage("Coloque el dedo en el checador...", "", "", "", "", ""); menuPrincipal.Dispatcher.BeginInvoke(new Action(delegate() { menuPrincipal.lblMembresia.Content = ""; menuPrincipal.lbl_inicio.Content = ""; menuPrincipal.lbl_fin.Content = ""; menuPrincipal.lbl_resto.Content = ""; })); break; } /*else * { * SendMessage("No se encuentra registrada la huella capturada", "", "", "","",""); * Thread.Sleep(2000); * SendMessage("Coloque el dedo en el checador...", "", "", "", "",""); * break; * }*/ } catch (Exception error) { MessageBox.Show(error.Message); } } } if (objReader != null) { objReader.Dispose(); } }