Exemple #1
0
        // Function to convert ZfmStatus to human readable string.
        private string ZfmStatusToString(Zfm20Fingerprint.ZfmStatus inStatus)
        {
            switch (inStatus)
            {
            case Zfm20Fingerprint.ZfmStatus.ZsUnknownError:
                return(@"Unknown error has occurred.");

            case Zfm20Fingerprint.ZfmStatus.ZsTimeout:
                return(@"Communication timeout with sensor.");

            case Zfm20Fingerprint.ZfmStatus.ZsNoFinger:
                return(@"Finger is not available.");

            case Zfm20Fingerprint.ZfmStatus.ZsFingerCollectError:
                return(@"Finger collection error.");

            case Zfm20Fingerprint.ZfmStatus.ZsBadResponse:
                return(@"Communication failure with sensor.");

            case Zfm20Fingerprint.ZfmStatus.ZsDataError:
                return(@"Data format error.");

            case Zfm20Fingerprint.ZfmStatus.ZsIoError:
                return(@"Data I/O error occurred.");

            case Zfm20Fingerprint.ZfmStatus.ZsMemoryError:
                return(@"Memory error has been occurred.");

            default:
                return(string.Empty);
            }
        }
Exemple #2
0
 private void btnSave_Click(object sender, EventArgs e)
 {
     try
     {
         dlgSave.FileName = string.Empty;
         if (dlgSave.ShowDialog() == System.Windows.Forms.DialogResult.OK)
         {
             // Check fingerprint image is already available in the UI.
             if ((imgPreview.Image != null) && (imgPreview.Image.Width == ImageWidth) && (imgPreview.Image.Height == ImageHeight))
             {
                 imgPreview.Image.Save(dlgSave.FileName);
             }
             else
             {
                 // Get fingerprint image from sensor ImageBuffer and save it to specified file.
                 Zfm20Fingerprint.ZfmStatus saveStatus = _zfmSensor.SaveFingerprintToFile(dlgSave.FileName);
                 if (saveStatus != Zfm20Fingerprint.ZfmStatus.ZsSuccessful)
                 {
                     MessageBox.Show(ZfmStatusToString(saveStatus), Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                 }
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
Exemple #3
0
        private void btnDownload_Click(object sender, EventArgs e)
        {
            try
            {
                if (UpdateSensorSettings())
                {
                    IntPtr dataBuffer;
                    uint   dataBufferSize;

                    Zfm20Fingerprint.ZfmStatus downloadStatus = _zfmSensor.GetFingerprintBuffer(out dataBuffer, out dataBufferSize);
                    if (downloadStatus == Zfm20Fingerprint.ZfmStatus.ZsSuccessful)
                    {
                        if (dataBufferSize > 0)
                        {
                            // Create output bitmap buffer object.
                            Bitmap outputImage = new Bitmap(ImageWidth, ImageHeight);
                            byte[] colorBuffer = new byte[dataBufferSize];
                            int    bufferPos   = 0;

                            Marshal.Copy(dataBuffer, colorBuffer, 0, (int)(dataBufferSize - 1));

                            // Paint bitmap buffer with received data buffer content.
                            for (int yPos = 0; yPos < ImageHeight; yPos++)
                            {
                                for (int xPos = 0; xPos < ImageWidth; xPos++)
                                {
                                    outputImage.SetPixel(xPos, yPos, Color.FromArgb(colorBuffer[bufferPos], colorBuffer[bufferPos], colorBuffer[bufferPos]));
                                    bufferPos++;
                                }
                            }

                            // Flush data buffer and show bitmap on UI.
                            _zfmSensor.FreeFingerprintBuffer(ref dataBuffer);
                            imgPreview.Image = outputImage;
                        }
                        else
                        {
                            MessageBox.Show(@"Fingerprint image data is not available from the sensor library.", Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                    else
                    {
                        MessageBox.Show(ZfmStatusToString(downloadStatus), Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Exemple #4
0
 private void btnCapture_Click(object sender, EventArgs e)
 {
     try
     {
         if (UpdateSensorSettings())
         {
             Zfm20Fingerprint.ZfmStatus captureStatus = _zfmSensor.Capture();
             if (captureStatus != Zfm20Fingerprint.ZfmStatus.ZsSuccessful)
             {
                 MessageBox.Show(ZfmStatusToString(captureStatus), Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
        private void btScan_Click(object sender, EventArgs e)
        {
            try
            {
                if (radioRight.Checked || radioLeft.Checked)
                {
                    if (_zfmSensor == null)
                    {
                        MessageBox.Show("กรุณาเลือกพอร์ตก่อนทำการสแกน", Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                    string msgText = _zfmSensor.IsAvailable() ? @"Fingerprint sensor is available." : "Fingerprint sensor is not available.\nCheck sensor configuration options.";
                    if (msgText != null)
                    {
                        //MessageBox.Show(msgText, Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                        if (_zfmSensor.IsAvailable() != true)
                        {
                            MessageBox.Show("พอร์ตไม่ถูกต้อง", Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                        else
                        {
                            Zfm20Fingerprint.ZfmStatus captureStatus = _zfmSensor.Capture();
                            if (captureStatus != Zfm20Fingerprint.ZfmStatus.ZsSuccessful)
                            {
                                //MessageBox.Show(ZfmStatusToString(captureStatus), Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            }
                            else
                            {
                                IntPtr dataBuffer;
                                uint   dataBufferSize;

                                Zfm20Fingerprint.ZfmStatus downloadStatus = _zfmSensor.GetFingerprintBuffer(out dataBuffer, out dataBufferSize);
                                if (downloadStatus == Zfm20Fingerprint.ZfmStatus.ZsSuccessful)
                                {
                                    if (dataBufferSize > 0)
                                    {
                                        // Create output bitmap buffer object.
                                        Bitmap outputImage = new Bitmap(ImageWidth, ImageHeight);
                                        byte[] colorBuffer = new byte[dataBufferSize];
                                        int    bufferPos   = 0;

                                        Marshal.Copy(dataBuffer, colorBuffer, 0, (int)(dataBufferSize - 1));

                                        // Paint bitmap buffer with received data buffer content.
                                        for (int yPos = 0; yPos < ImageHeight; yPos++)
                                        {
                                            for (int xPos = 0; xPos < ImageWidth; xPos++)
                                            {
                                                outputImage.SetPixel(xPos, yPos, Color.FromArgb(colorBuffer[bufferPos], colorBuffer[bufferPos], colorBuffer[bufferPos]));
                                                bufferPos++;
                                            }
                                        }

                                        // Flush data buffer and show bitmap on UI.
                                        _zfmSensor.FreeFingerprintBuffer(ref dataBuffer);

                                        Bitmap bmp = new Bitmap(outputImage);
                                        bmp.RotateFlip(RotateFlipType.Rotate180FlipNone);

                                        pictureBox_Finger.Image = bmp;

                                        byte[] gg = Relm.Converters.Converter.ToByteArray(pictureBox_Finger.Image);
                                        base64String = Convert.ToBase64String(gg);
                                        Console.WriteLine(base64String);
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("กรุณาเลือกหมายเลขพอร์ต");
                    }
                }
                else
                {
                    MessageBox.Show("กรุณาเลือกลักษณะลายนิ้วมือ", Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }