Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
        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();
            }
        }