Пример #1
0
        public ClsRetorno getImage(String ruta, Huella.Dedo tipoDedo)
        {
            if (this.scanner == null)
            {
                MessageBox.Show("Escanner no encontrado", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(null);
            }
            if (!this.scanner.IsSensorOn)
            {
                MessageBox.Show("Escanner desconectado", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Error);
                //this.Dispose();
                return(null);
            }

            byte[] template = new byte[MAX_TEMPLATE_SIZE];
            int    templateSize;
            int    enrollQuallity;

            this.ufs_res = this.scanner.ClearCaptureImageBuffer();
            this.ufs_res = this.scanner.CaptureSingleImage();
            this.ufs_res = this.scanner.Extract(template, out templateSize, out enrollQuallity);

            ruta        += "_" + ((int)tipoDedo).ToString() + ".bmp";
            this.ufs_res = this.scanner.SaveCaptureImageBufferToBMP(ruta);
            return(new ClsRetorno(enrollQuallity, ruta, template));
        }
        private void InitializeScanners()
        {
            try
            {
                WriteLog("Initializing scanners");

                UFS_STATUS ufsRes = _scannerManager.Init();

                if (ufsRes == UFS_STATUS.OK)
                {
                }
                else
                {
                    string error = string.Empty;
                    UFScanner.GetErrorString(ufsRes, out error);
                    WriteLog(error, false);
                    //init failed probably problem with license
                    btnCapture.IsEnabled = false;
                    return;
                }

                btnCapture.IsEnabled = UpdateScannersList() > 0;
            }
            catch (Exception ex)
            {
                WriteLog(ex.Message, true);
            }
        }
        private void CaptureTemplate(object sender, RoutedEventArgs e)
        {
            try
            {
                UFScanner scanner = GetSelectedScanner();
                if (scanner == null)
                {
                    return;
                }

                this.Cursor = Cursors.Wait;
                scanner.ClearCaptureImageBuffer();

                UFS_STATUS ufsRes = scanner.CaptureSingleImage();


                if (ufsRes == UFS_STATUS.OK)
                {
                    UFS_STATUS capturingStatus = ExtractTemplate(scanner);
                }
                else
                {
                    string error = string.Empty;
                    UFScanner.GetErrorString(ufsRes, out error);
                    WriteLog(error, false);
                }
            }
            catch (Exception exc)
            {
                WriteLog(exc.Message, true);
            }
            this.Cursor = Cursors.Arrow;
        }
        private int initializeScanner()
        {
            oScannerManager = new UFScannerManager(null);
            oUFS            = oScannerManager.Init();

            if (oUFS == UFS_STATUS.OK)
            {
                return(oScannerManager.Scanners.Count);
            }
            else
            {
                return(0);
            }
        }
Пример #5
0
        public bool iniciarScanner()
        {
            this.ScannerManager = new UFScannerManager(this);

            this.ufs_res = this.ScannerManager.Init();
            //get firts scanner
            this.scanner = this.ScannerManager.Scanners[0];
            if (this.scanner == null)
            {
                MessageBox.Show("Escanner no encontrado", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }
            setParametros();
            return(true);
        }
        public string getFingerprintTemplates()
        {
            initializeBioStarMini();

            int nNumScanners = initializeScanner();

            if (nNumScanners > 0)
            {
                UFScanner oScanner;
                int[]     nTemplateSize = new int[2];
                int       nEnrollQuality;

                oScanner              = oScannerManager.Scanners[0];
                oScanner.Timeout      = 5000;
                oScanner.TemplateSize = MAX_TEMPLATE_SIZE;
                oScanner.DetectCore   = false;

                for (int i = 0; i < 2; i++)
                {
                    oScanner.ClearCaptureImageBuffer();

                    oUFS = oScanner.CaptureSingleImage();
                    if (oUFS == UFS_STATUS.OK)
                    {
                        oScanner.Extract(oTemplates[i], out nTemplateSize[i], out nEnrollQuality);

                        Thread.Sleep(1000);
                    }
                    else
                    {
                        i--;
                    }
                }

                for (int i = 0; i < 2; i++)
                {
                    sOutputTemplates += encodeBytesToHex(oTemplates[i]);
                }

                uninitializeScanner();
            }

            return(sOutputTemplates);
        }
        private UFS_STATUS ExtractTemplate(UFScanner scanner)
        {
            try
            {
                byte[] template      = new byte[TemplateBufferSize];
                int    enrollQuality = 0;


                UFS_STATUS ufsRes = scanner.Extract(template, out _templateSize, out enrollQuality);

                if (ufsRes == UFS_STATUS.OK)
                {
                    if (template.Length != TemplateBufferSize)
                    {
                        //WriteLog(true, "Invalid template size, try again");
                        //return UFS_STATUS.ERR_NOT_GOOD_IMAGE;
                        byte[] tmp = new byte[TemplateBufferSize];
                        for (int i = template.Length - 1; i < tmp.Length; i++)
                        {
                            tmp[i] = 0;
                        }
                        template = tmp;
                    }


                    WriteLog("Template capturing completed");
                    WriteLog(string.Format("Template quality is {0}", enrollQuality));

                    if (enrollQuality < Settings.MinimalTemplateQualityPercent)
                    {
                        MessageBoxResult result = MessageBox.Show("The quality of captured template is too low for using it, Would you like to retry template capturing?",
                                                                  "Poor template quality", MessageBoxButton.YesNo, MessageBoxImage.Information);
                        if (result == MessageBoxResult.Yes)
                        {
                            CaptureTemplate(this, null);
                        }
                    }
                    else
                    {
                        _template = Encoding.ASCII.GetString(TemplateConverter.ConvertToSynelTemplateFormat(template));

                        System.Drawing.Bitmap bitm = null;
                        int resolution             = 0;
                        scanner.GetCaptureImageBuffer(out bitm, out resolution);
                        fingerImage.Source = loadBitmap(bitm);
                    }
                }
                else
                {
                    string error = string.Empty;
                    UFScanner.GetErrorString(ufsRes, out error);
                    WriteLog(error, false);
                }

                return(ufsRes);
            }
            catch (Exception exc)
            {
                WriteLog(exc.Message, true);
            }
            return(UFS_STATUS.ERROR);
        }
Пример #8
0
 public void apagarScanner()
 {
     this.ufs_res = this.ScannerManager.Uninit();
 }
Пример #9
0
        public string GetCardID()
        {
            try
            {
                Log("Start Get Card ID");
                byte[][] DBTemplate     = null;
                int[]    DBTemplateSize = null;
                int[]    DBSerial       = null;
                int      DBTemplateNum;
                int      nMatchIndex;
                // Initialize scanners
                UFS_STATUS ufs_res = new UFS_STATUS();
                int        nScannerNumber;

                ufs_res = m_ScannerManager.Init();

                nScannerNumber = m_ScannerManager.Scanners.Count;

                if (nScannerNumber <= 0)
                {
                    strLastError = "There are no suprema scanner";
                    Log(strLastError);
                    return("");
                }

                m_Scanner = m_ScannerManager.Scanners[0];

                // Database
                m_Database = new UFDatabase();

                if (m_szConnectionString != null)
                {
                    m_ufd_res = m_Database.Open(m_szConnectionString, "", "");
                }

                // Create matcher
                m_Matcher = new UFMatcher();
                if (!ExtractTemplate(m_bTemplate1, out m_nTemplateSize1))
                {
                    m_ScannerManager.Uninit();
                    m_Database.Close();
                    return("");
                }

                m_ScannerManager.Uninit();
                //Identify      loyee fingerprint :GetTemplateListWithSerial
                m_ufd_res = m_Database.GetTemplateListWithSerial(out DBTemplate, out DBTemplateSize, out DBTemplateNum, out DBSerial);
                //Identify employee fingerprint :Identify
                m_ufm_res = m_Matcher.Identify(m_bTemplate1, m_nTemplateSize1, DBTemplate, DBTemplateSize, DBTemplateNum, 5000, out nMatchIndex);
                string m_strUserID    = "";
                int    m_nFingerIndex = 0;
                string memo           = "";
                int    x = 0;
                if (nMatchIndex >= 0 && DBSerial != null)
                {
                    m_ufd_res = m_Database.GetDataBySerial(DBSerial[nMatchIndex], out m_strUserID, out m_nFingerIndex, m_bTemplate1, out m_nTemplateSize1, null, out x, out memo);
                }
                else
                {
                    m_strUserID = "";
                }

                if (m_ufm_res != UFM_STATUS.OK)
                {
                    return("");
                }

                Log(m_strUserID.Replace('\0', ' ').Trim());
                return(m_strUserID.Replace('\0', ' ').Trim());
            }
            catch (Exception ex)
            {
                strLastError = "Unkown Error Happened:\n" + ex.Message;
                Log(strLastError);
                return("");
            }
        }