示例#1
0
        private EventTransItem OnFingerGet()
        {
            EventTransItem evitem = new EventTransItem();

            evitem.result = 100;
            //传送图像
            MemoryStream ms = new MemoryStream();

            try
            {
                BitmapFormat.GetBitmap(FPBuffer, fpInstance.imageWidth, fpInstance.imageHeight, ref ms);
                //Bitmap bmp = new Bitmap(ms);
                //evitem.Transitem = bmp;
                evitem.Transitem = ms;
            }
            catch (Exception ex) { }
            evitem.EventType = "指纹仪获得图像";

            //this._eventAggregator.GetEvent<HardWareControlEvent>().Publish(evitem);

            int ret = zkfp.ZKFP_ERR_OK;
            int fid = 0, score = 0;

            ret = fpInstance.Identify(CapTmp, ref fid, ref score);
            switch (SensorStates)
            {
            case (1):
            {
                if (zkfp.ZKFP_ERR_OK == ret)
                {
                    evitem.EventType = "这个手指指纹已经被注册为 " + fid + "号!";
                    evitem.result    = 10;
                    break;
                }
                if (RegisterCount > 0 && fpInstance.Match(CapTmp, RegTmps[RegisterCount - 1]) <= 0)
                {
                    evitem.EventType = "请不要更换手指!!!";
                    evitem.result    = 10;
                    break;
                }
                Array.Copy(CapTmp, RegTmps[RegisterCount], cbCapTmp);
                RegisterCount++;
                if (RegisterCount >= REGISTER_FINGER_COUNT)
                {
                    RegisterCount = 0;
                    if (zkfp.ZKFP_ERR_OK == (ret = fpInstance.GenerateRegTemplate(RegTmps[0], RegTmps[1], RegTmps[2], RegTmp, ref cbRegTmp))
                        // &&zkfp.ZKFP_ERR_OK == (ret = fpInstance.AddRegTemplate(iFid, RegTmp))
                        )
                    {
                        string temp = string.Empty;
                        if (zkfp.Blob2Base64String(RegTmp, RegTmp.Length, ref temp) > 0)
                        {
                            //指纹注册成功,返回模板
                            evitem.Transitem = temp;
                            evitem.EventType = "指纹注册完成";
                            evitem.result    = 100;
                        }
                        else
                        {
                            evitem.EventType = "指纹注册失败,错误代码" + ret;
                            evitem.result    = 100;
                        }
                    }
                    else
                    {
                        evitem.EventType = "指纹注册失败,错误代码" + ret;
                        evitem.result    = 100;
                    }
                    break;
                }
                else
                {
                    evitem.EventType = "请继续按压相同的指纹" + (REGISTER_FINGER_COUNT - RegisterCount) + "次!";
                    evitem.result    = 10;
                    break;
                }
            }

            case (2):
            {
                ret = fpInstance.Identify(CapTmp, ref fid, ref score);
                if (zkfp.ZKFP_ERR_OK == ret)
                {
                    evitem.Transitem = _userList.SingleOrDefault(a => a.FingerNo == fid);
                    evitem.EventType = "指纹识别成功";
                    evitem.result    = 100;
                    break;
                }
                else
                {
                    evitem.EventType = "识别失败,错误代码= " + ret;
                    evitem.result    = 100;
                    break;
                }
            }

            case (3):
            {
                ret = fpInstance.Match(CapTmp, RegTmp);
                if (0 < ret)
                {
                    evitem.Transitem = _userList.SingleOrDefault(a => a.FingerNo == fid);
                    evitem.EventType = "指纹识别成功";
                    evitem.result    = 100;
                    break;
                }
                else
                {
                    evitem.EventType = "识别失败,错误代码= " + ret;
                    evitem.result    = 100;
                    break;
                }
            }
            }
            return(evitem);
        }
        protected override void DefWndProc(ref Message m)
        {
            switch (m.Msg)
            {
            case MESSAGE_CAPTURED_OK:
            {
                #region casoMach

                if (textBox1.Text == "")
                {
                    textBox1.Text = "0";
                }

                int CEDULA = int.Parse(textBox1.Text);         // Can be the users unique ID

                Person = SqliteDataAccess.BuscaCedula(CEDULA);

                byte[] regTemplate = zkfp.Base64String2Blob(Person[0].HUELLA);

                int ret2 = fpInstance.Match(CapTmp, regTemplate);         // MACH CASE REVISAR ###########################
                if (0 < ret2)
                {
                    textBox2.Text = Person[0].NOMBRE;
                    textBox3.Text = Person[0].FECHA_INSC;
                    DisplayFingerPrintImage();
                    MessageBox.Show("SI HACE MACHT FUNCIONA");
                    DisplayMessage(MessageManager.msg_FP_machtcase, true);

                    return;
                }
                else
                {
                    MessageBox.Show("NO HACE MACHT");
                }


                #endregion

                parentForm.statusBar.Visible = false;
                DisplayFingerPrintImage();

                if (IsRegister)
                {
                    #region -------- IF REGISTERED FINGERPRINT --------

                    int ret = zkfp.ZKFP_ERR_OK;
                    int fid = 0, score = 0;
                    ret = fpInstance.Identify(CapTmp, ref fid, ref score);
                    if (zkfp.ZKFP_ERR_OK == ret)
                    {
                        int deleteCode = fpInstance.DelRegTemplate(fid);           // <---- REMOVE FINGERPRINT
                        if (deleteCode != zkfp.ZKFP_ERR_OK)
                        {
                            DisplayMessage(MessageManager.msg_FP_CurrentFingerAlreadyRegistered + fid, false);
                            return;
                        }
                    }
                    if (RegisterCount > 0 && fpInstance.Match(CapTmp, RegTmps[RegisterCount - 1]) <= 0)
                    {
                        DisplayMessage("Please press the same finger " + REGISTER_FINGER_COUNT + " times for enrollment", true);

                        return;
                    }
                    Array.Copy(CapTmp, RegTmps[RegisterCount], cbCapTmp);


                    if (RegisterCount == 0)
                    {
                        btnEnroll.Enabled = false;
                    }

                    RegisterCount++;
                    if (RegisterCount >= REGISTER_FINGER_COUNT)
                    {
                        RegisterCount = 0;
                        ret           = GenerateRegisteredFingerPrint(); // <--- GENERATE FINGERPRINT TEMPLATE

                        if (zkfp.ZKFP_ERR_OK == ret)
                        {
                            ret = AddTemplateToMemory();                //  <--- LOAD TEMPLATE TO MEMORY
                            if (zkfp.ZKFP_ERR_OK == ret)                // <--- ENROLL SUCCESSFULL
                            {
                                MessageBox.Show(RegTmp.ToString());
                                string fingerPrintTemplate = string.Empty;
                                zkfp.Blob2Base64String(RegTmp, regTempLen, ref fingerPrintTemplate);

                                Utilities.EnableControls(true, btnVerify, btnIdentify);
                                Utilities.EnableControls(false, btnEnroll);


                                // GET THE TEMPLATE HERE : fingerPrintTemplate
                                string HUELLA    = fingerPrintTemplate;
                                int    CEDU      = int.Parse(textBox1.Text);
                                string NOMBRE    = textBox2.Text;
                                int    STATUS    = 0;
                                string FEHA_INSC = textBox3.Text;
                                string TIPO_INSC = "GF";

                                SqliteDataAccess.CargaHuella(CEDU, NOMBRE, HUELLA, STATUS, FEHA_INSC, TIPO_INSC);

                                MessageBox.Show("INSCRIPCION EXITOSA!!");

                                textBox1.Text = "";
                                textBox2.Text = "";
                                textBox3.Text = "";
                                textBox4.Text = "";

                                checkBox1.Checked = false;


                                DisplayMessage(MessageManager.msg_FP_EnrollSuccessfull, true);

                                DisconnectFingerPrintCounter();
                            }
                            else
                            {
                                DisplayMessage(MessageManager.msg_FP_FailedToAddTemplate, false);
                            }
                        }
                        else
                        {
                            DisplayMessage(MessageManager.msg_FP_UnableToEnrollCurrentUser + ret, false);
                        }

                        IsRegister = false;
                        return;
                    }
                    else
                    {
                        int remainingCont = REGISTER_FINGER_COUNT - RegisterCount;
                        lblFingerPrintCount.Text = remainingCont.ToString();
                        string message = "Please provide your fingerprint " + remainingCont + " more time(s)";

                        DisplayMessage(message, true);
                    }
                    #endregion
                }
                else
                {
                    #region ------- IF RANDOM FINGERPRINT -------
                    // If unidentified random fingerprint is applied

                    if (regTempLen <= 0)
                    {
                        DisplayMessage(MessageManager.msg_FP_UnidentifiedFingerPrint, false);
                        return;
                    }


                    if (bIdentify)
                    {
                        int ret = zkfp.ZKFP_ERR_OK;
                        int fid = 0, score = 0;
                        ret = fpInstance.Identify(CapTmp, ref fid, ref score);
                        if (zkfp.ZKFP_ERR_OK == ret)
                        {
                            DisplayMessage(MessageManager.msg_FP_IdentificationSuccess + ret, true);
                            return;
                        }
                        else
                        {
                            DisplayMessage(MessageManager.msg_FP_IdentificationFailed + ret, false);
                            return;
                        }
                    }
                    else
                    {
                        int ret = fpInstance.Match(CapTmp, RegTmp);         // MACH CASE REVISAR ###########################
                        if (0 < ret)
                        {
                            DisplayMessage(MessageManager.msg_FP_MatchSuccess + ret, true);
                            return;
                        }
                        else
                        {
                            DisplayMessage(MessageManager.msg_FP_MatchFailed + ret, false);
                            return;
                        }
                    }
                    #endregion
                }
            }
            break;

            default:
                base.DefWndProc(ref m);
                break;
            }
        }
示例#3
0
        protected override void DefWndProc(ref Message m)
        {
            ExAttDBRepo exAttDBRepo = new ExAttDBRepo();

            switch (m.Msg)
            {
            case MESSAGE_CAPTURED_OK:
            {
                parentForm.statusBar.Visible = false;

                if (!bIdentify2 || !bIdentify)
                {
                    DisplayFingerPrintImage();
                }

                if (IsRegister)
                {
                    #region -------- IF REGISTERED FINGERPRINT --------

                    int ret = zkfp.ZKFP_ERR_OK;
                    int fid = 0, score = 0;
                    ret = fpInstance.Identify(CapTmp, ref fid, ref score);
                    if (zkfp.ZKFP_ERR_OK == ret)
                    {
                        int deleteCode = fpInstance.DelRegTemplate(fid);           // <---- REMOVE FINGERPRINT
                        if (deleteCode != zkfp.ZKFP_ERR_OK)
                        {
                            DisplayMessage(MessageManager.msg_FP_CurrentFingerAlreadyRegistered + fid, false);
                            return;
                        }
                    }
                    if (RegisterCount > 0 && fpInstance.Match(CapTmp, RegTmps[RegisterCount - 1]) <= 0)
                    {
                        DisplayMessage("Please press the same finger " + REGISTER_FINGER_COUNT + " times for enrollment", true);

                        return;
                    }
                    Array.Copy(CapTmp, RegTmps[RegisterCount], cbCapTmp);


                    if (RegisterCount == 0)
                    {
                        btnEnroll.Enabled = false;
                    }

                    RegisterCount++;
                    if (RegisterCount >= REGISTER_FINGER_COUNT)
                    {
                        RegisterCount = 0;
                        ret           = GenerateRegisteredFingerPrint(); // <--- GENERATE FINGERPRINT TEMPLATE

                        if (zkfp.ZKFP_ERR_OK == ret)
                        {
                            ret = AddTemplateToMemory();                //  <--- LOAD TEMPLATE TO MEMORY
                            if (zkfp.ZKFP_ERR_OK == ret)                // <--- ENROLL SUCCESSFULL
                            {
                                string fingerPrintTemplate = string.Empty;
                                zkfp.Blob2Base64String(RegTmp, regTempLen, ref fingerPrintTemplate);

                                Utilities.EnableControls(true, button1, btnVerify, btnIdentify);
                                Utilities.EnableControls(false, btnEnroll);

                                MySqlConnection connection = null;
                                try
                                {
                                    var registerUSerId = "0";
                                    registerUSerId = textBox1_SocialID.Text;

                                    const String    SERVER   = "sql248.main-hosting.eu";
                                    const String    DATABASE = "u842190477_Exattend";
                                    const String    UID      = "u842190477_Admin";
                                    const String    PASSWORD = "******";
                                    MySqlConnection dbConn;
                                    String          query = @"INSERT INTO u842190477_Exattend.fingerprint(Uni_ID, Fin_Code, FingerTemplate)VALUES(" + registerUSerId + ", " + 0 + ", '" + fingerPrintTemplate + "'); ";
                                    MySqlConnectionStringBuilder builder = new MySqlConnectionStringBuilder();
                                    builder.Server   = SERVER;
                                    builder.UserID   = UID;
                                    builder.Password = PASSWORD;
                                    builder.Database = DATABASE;

                                    String connString = builder.ToString();

                                    builder = null;

                                    Console.WriteLine(connString);

                                    dbConn = new MySqlConnection(connString);

                                    MySqlCommand cmd = new MySqlCommand(query, dbConn);
                                    dbConn.Open();

                                    cmd.ExecuteNonQuery();

                                    cmd.Connection = connection;
                                    dbConn.Close();
                                }
                                finally
                                {
                                    if (connection != null)
                                    {
                                        connection.Close();
                                    }
                                }



                                //var zz = exAttDBRepo.GetAllEmployees();
                                //exAttDBRepo.inserFingerPrintToDB(textBox1_SocialID.Text, fingerPrintTemplate);
                                // GET THE TEMPLATE HERE : fingerPrintTemplate


                                DisplayMessage(MessageManager.msg_FP_EnrollSuccessfull, true);

                                DisconnectFingerPrintCounter();
                            }
                            else
                            {
                                DisplayMessage(MessageManager.msg_FP_FailedToAddTemplate, false);
                            }
                        }
                        else
                        {
                            DisplayMessage(MessageManager.msg_FP_UnableToEnrollCurrentUser + ret, false);
                        }

                        IsRegister = false;
                        return;
                    }
                    else
                    {
                        int remainingCont = REGISTER_FINGER_COUNT - RegisterCount;
                        lblFingerPrintCount.Text = remainingCont.ToString();
                        string message = "Please provide your fingerprint " + remainingCont + " more time(s)";

                        DisplayMessage(message, true);
                    }
                    #endregion
                }
                else if (!bIdentify2 || !bIdentify)
                {
                    #region ------- IF RANDOM FINGERPRINT -------
                    // If unidentified random fingerprint is applied

                    //if (regTempLen <= 0)
                    //{
                    //    DisplayMessage(MessageManager.msg_FP_UnidentifiedFingerPrint, false);
                    //    return;
                    //}


                    if ((bIdentify && userType == 1) || (bIdentify2 && userType == 2))
                    {
                        int ret = zkfp.ZKFP_ERR_OK;
                        int fid = 0, score = 0;
                        ret = fpInstance.Identify(CapTmp, ref fid, ref score);

                        //check if
                        if (zkfp.ZKFP_ERR_OK == ret)
                        {
                            DisplayMessage(MessageManager.msg_FP_IdentificationSuccess + ret, true);
                            return;
                        }
                        else
                        {
                            DisplayMessage(MessageManager.msg_FP_IdentificationFailed + ret, false);
                            return;
                        }
                    }
                    else
                    {
                        ExAttDBRepo eR = new ExAttDBRepo();
                        ExUniDBRepo eU = new ExUniDBRepo();

                        var allFingers = eR.GetAllFingers();

                        if (userType == 1)
                        {
                            var x = eU.GetAllStudents().Select(e => e.Stu_ID).ToList();
                            allFingers = allFingers.Where(e => x.Contains(e.Uni_ID)).ToList();
                        }

                        else if (userType == 2)
                        {
                            var x = eU.GetAllEmployees().Select(e => e.Emp_ID).ToList();
                            allFingers = allFingers.Where(e => x.Contains(e.Uni_ID)).ToList();
                        }



                        Finger selectedStudent = new Finger();
                        foreach (var item in allFingers.ToList())
                        {
                            var base46Registerd = zkfp.Base64String2Blob(item.FingerTemplate);
                            var r = fpInstance.Match(CapTmp, base46Registerd);
                            if (r > 0)
                            {
                                selectedStudent = item;
                                bool checkIsSavedthroughOneHour = eR.CheckIsSavedthroughOneHour(selectedStudent.Uni_ID, userType);
                                if (!checkIsSavedthroughOneHour)
                                {
                                    eR.inserAttendanceLogToDB(selectedStudent.Uni_ID);
                                }
                                break;
                            }
                        }
                        //if id for student match the his fingerprint then show message
                        if (selectedStudent.Uni_ID > 0)
                        {
                            DisplayMessage(MessageManager.msg_FP_MatchSuccess + selectedStudent.Uni_ID, true);
                            return;
                        }
                        //if the match is failed then show error message
                        else
                        {
                            DisplayMessage(MessageManager.msg_FP_MatchFailed /*+ ret*/, false);
                            return;
                        }
                    }
                    #endregion
                }
            }
            break;

            default:
                base.DefWndProc(ref m);
                break;
            }
        }
示例#4
0
        protected override void DefWndProc(ref Message m)
        {
            switch (m.Msg)
            {
            case MESSAGE_CAPTURED_OK:
            {
                parentForm.statusBar.Visible = false;
                DisplayFingerPrintImage();

                if (IsRegister)
                {
                    #region -------- IF REGISTERED FINGERPRINT --------

                    int ret = zkfp.ZKFP_ERR_OK;
                    int fid = 0, score = 0;
                    ret = fpInstance.Identify(CapTmp, ref fid, ref score);
                    if (zkfp.ZKFP_ERR_OK == ret)
                    {
                        int deleteCode = fpInstance.DelRegTemplate(fid);           // <---- REMOVE FINGERPRINT
                        if (deleteCode != zkfp.ZKFP_ERR_OK)
                        {
                            DisplayMessage(MessageManager.msg_FP_CurrentFingerAlreadyRegistered + fid, false);
                            return;
                        }
                    }
                    if (RegisterCount > 0 && fpInstance.Match(CapTmp, RegTmps[RegisterCount - 1]) <= 0)
                    {
                        DisplayMessage("Please press the same finger " + REGISTER_FINGER_COUNT + " times for enrollment", true);

                        return;
                    }
                    Array.Copy(CapTmp, RegTmps[RegisterCount], cbCapTmp);


                    if (RegisterCount == 0)
                    {
                        btnEnroll.Enabled = false;
                    }

                    RegisterCount++;
                    if (RegisterCount >= REGISTER_FINGER_COUNT)
                    {
                        RegisterCount = 0;
                        ret           = GenerateRegisteredFingerPrint(); // <--- GENERATE FINGERPRINT TEMPLATE

                        if (zkfp.ZKFP_ERR_OK == ret)
                        {
                            ret = AddTemplateToMemory();                //  <--- LOAD TEMPLATE TO MEMORY
                            if (zkfp.ZKFP_ERR_OK == ret)                // <--- ENROLL SUCCESSFULL
                            {
                                string fingerPrintTemplate = string.Empty;
                                zkfp.Blob2Base64String(RegTmp, regTempLen, ref fingerPrintTemplate);

                                Utilities.EnableControls(true, btnVerify, btnIdentify);
                                Utilities.EnableControls(false, btnEnroll);


                                // GET THE TEMPLATE HERE : fingerPrintTemplate


                                DisplayMessage(MessageManager.msg_FP_EnrollSuccessfull, true);

                                DisconnectFingerPrintCounter();
                            }
                            else
                            {
                                DisplayMessage(MessageManager.msg_FP_FailedToAddTemplate, false);
                            }
                        }
                        else
                        {
                            DisplayMessage(MessageManager.msg_FP_UnableToEnrollCurrentUser + ret, false);
                        }

                        IsRegister = false;
                        return;
                    }
                    else
                    {
                        int remainingCont = REGISTER_FINGER_COUNT - RegisterCount;
                        lblFingerPrintCount.Text = remainingCont.ToString();
                        string message = "Please provide your fingerprint " + remainingCont + " more time(s)";

                        DisplayMessage(message, true);
                    }
                    #endregion
                }
                else
                {
                    #region ------- IF RANDOM FINGERPRINT -------
                    // If unidentified random fingerprint is applied

                    if (regTempLen <= 0)
                    {
                        DisplayMessage(MessageManager.msg_FP_UnidentifiedFingerPrint, false);
                        return;
                    }


                    if (bIdentify)
                    {
                        int ret = zkfp.ZKFP_ERR_OK;
                        int fid = 0, score = 0;
                        ret = fpInstance.Identify(CapTmp, ref fid, ref score);
                        if (zkfp.ZKFP_ERR_OK == ret)
                        {
                            DisplayMessage(MessageManager.msg_FP_IdentificationSuccess + ret, true);
                            return;
                        }
                        else
                        {
                            DisplayMessage(MessageManager.msg_FP_IdentificationFailed + ret, false);
                            return;
                        }
                    }
                    else
                    {
                        int ret = fpInstance.Match(CapTmp, RegTmp);
                        if (0 < ret)
                        {
                            DisplayMessage(MessageManager.msg_FP_MatchSuccess + ret, true);
                            return;
                        }
                        else
                        {
                            DisplayMessage(MessageManager.msg_FP_MatchFailed + ret, false);
                            return;
                        }
                    }
                    #endregion
                }
            }
            break;

            default:
                base.DefWndProc(ref m);
                break;
            }
        }
示例#5
0
文件: Form1.cs 项目: juanron/zksdk
        protected override void DefWndProc(ref Message m)
        {
            switch (m.Msg)
            {
            case MESSAGE_CAPTURED_OK:
            {
                MemoryStream ms = new MemoryStream();
                BitmapFormat.GetBitmap(FPBuffer, fpInstance.imageWidth, fpInstance.imageHeight, ref ms);
                Bitmap bmp = new Bitmap(ms);
                this.picFPImg.Image = bmp;

                if (IsRegister)
                {
                    int ret = zkfp.ZKFP_ERR_OK;
                    int fid = 0, score = 0;
                    ret = fpInstance.Identify(CapTmp, ref fid, ref score);
                    if (zkfp.ZKFP_ERR_OK == ret)
                    {
                        textRes.Text = "This finger was already register by " + fid + "!";
                        return;
                    }
                    if (RegisterCount > 0 && fpInstance.Match(CapTmp, RegTmps[RegisterCount - 1]) <= 0)
                    {
                        textRes.Text = "Please press the same finger 3 times for the enrollment";
                        return;
                    }
                    Array.Copy(CapTmp, RegTmps[RegisterCount], cbCapTmp);
                    RegisterCount++;
                    if (RegisterCount >= REGISTER_FINGER_COUNT)
                    {
                        RegisterCount = 0;
                        if (zkfp.ZKFP_ERR_OK == (ret = fpInstance.GenerateRegTemplate(RegTmps[0], RegTmps[1], RegTmps[2], RegTmp, ref cbRegTmp)) &&
                            zkfp.ZKFP_ERR_OK == (ret = fpInstance.AddRegTemplate(iFid, RegTmp)))
                        {
                            iFid++;
                            textRes.Text = "enroll succ";
                        }
                        else
                        {
                            textRes.Text = "enroll fail, error code=" + ret;
                        }
                        IsRegister = false;
                        return;
                    }
                    else
                    {
                        textRes.Text = "You need to press the " + (REGISTER_FINGER_COUNT - RegisterCount) + " times fingerprint";
                    }
                }
                else
                {
                    if (cbRegTmp <= 0)
                    {
                        textRes.Text = "Please register your finger first!";
                        return;
                    }
                    if (bIdentify)
                    {
                        int ret = zkfp.ZKFP_ERR_OK;
                        int fid = 0, score = 0;
                        ret = fpInstance.Identify(CapTmp, ref fid, ref score);
                        if (zkfp.ZKFP_ERR_OK == ret)
                        {
                            textRes.Text = "Identify succ, fid= " + fid + ",score=" + score + "!";
                            return;
                        }
                        else
                        {
                            textRes.Text = "Identify fail, ret= " + ret;
                            return;
                        }
                    }
                    else
                    {
                        int ret = fpInstance.Match(CapTmp, RegTmp);
                        if (0 < ret)
                        {
                            textRes.Text = "Match finger succ, score=" + ret + "!";
                            return;
                        }
                        else
                        {
                            textRes.Text = "Match finger fail, ret= " + ret;
                            return;
                        }
                    }
                }
            }
            break;

            default:
                base.DefWndProc(ref m);
                break;
            }
        }
示例#6
0
        static public void DoCapture()
        {
            try
            {
                while (!bIsTimeToDie)
                {
                    int ret = fpInstance.AcquireFingerprint(FPBuffer, CapTmp, ref cbCapTmp);

                    if (ret == zkfp.ZKFP_ERR_OK)
                    {
                        Array.Copy(CapTmp, RegTmps[RegisterCount], cbCapTmp);
                        RegisterCount++;

                        if (RegisterCount >= REGISTER_FINGER_COUNT)
                        {
                            RegisterCount = 0;
                            ret           = GenerateRegisteredFingerPrint();
                            if (zkfp.ZKFP_ERR_OK == ret)
                            {
                                ret = fpInstance.AddRegTemplate(iFid, RegTmp);
                                if (zkfp.ZKFP_ERR_OK == ret)
                                {
                                    string sql;
                                    zkfp.Blob2Base64String(RegTmp, regTempLen, ref fingerPrintTemplate);

                                    OracleConnection conn = new OracleConnection(String.Format("Data Source=Neptune; User Id={0}; Password={1}", TestConnection.oracelUser, TestConnection.oracelPass));
                                    conn.Open();

                                    if (FingerTap == 0)
                                    {
                                        OracleCommand     cmd   = new OracleCommand("SELECT f_id, u_id FROM user_t", conn);
                                        OracleDataAdapter da    = new OracleDataAdapter(cmd);
                                        DataTable         dt    = new DataTable();
                                        string            text1 = string.Empty;
                                        da.Fill(dt);
                                        conn.Close();
                                        foundUserid = 0;
                                        foreach (DataRow dr in dt.Rows)
                                        {
                                            text1  = Convert.ToString(dr["f_id"]);
                                            CapTmp = new byte[2048];
                                            CapTmp = zkfp.Base64String2Blob(text1);

                                            ret = fpInstance.Match(RegTmp, CapTmp);
                                            if (0 < ret)
                                            {
                                                userid      = Convert.ToString(dr["u_id"]);
                                                foundUserid = 1;
                                            }
                                        }
                                        if (foundUserid == 0)
                                        {
                                            DisconnectDevice();
                                            connect();
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex) {
                DeviceConnected = 0;
            }
        }