示例#1
0
 private void UpdateReceivedImage(Bitmap bitmap)
 {
     Dispatcher.Invoke(new Action(() =>
     {
         pbFingerPrint.Source = BBDataConverter.BitmapToImageSource(bitmap);
     }));
 }
示例#2
0
        private void btnAuth_Click(object sender, EventArgs e)
        {
            try
            {
                btnAuth.Enabled = false;
                if (cbSerial.Checked)
                {
                    if (fingerSensor.CmdCmosLed(true) == 0)
                    {
                        UpdateStatusMessage("Input your finger on sensor.");
                        if (fingerSensor.CmdCaptureFinger() == 0)
                        {
                            UpdateStatusMessage("Exporting deleted fingerprint data");
                            if (fingerSensor.CmdGetRawImage() == 0)
                            {
                                UpdateStatusMessage("Succeed export fingerprint data.");
                                //byte[] iBytes = ImageUtil.ImageToByte(BBDataConverter.GrayRawToBitmap(fingerSensor.getRawImage(), 320, 240));
                                //Bitmap receivedImage = BBDataConverter.GrayRawToBitmap(fingerSensor.getRawImage160x120(), FingerSensorPacket.SIZE_FP_WIDTH, FingerSensorPacket.SIZE_FP_HEIGHT); ;
                                Bitmap receivedImage = BBDataConverter.GrayRawToBitmap(fingerSensor.getRawImage160x120(), FingerSensorPacket.SIZE_FP_WIDTH, FingerSensorPacket.SIZE_FP_HEIGHT);
                                pictureBox1.Image = receivedImage;

                                // send data
                                client.SendAuthUserByFingerPrint(GetUserId(), tbCarId.Text, receivedImage);
                            }
                            else
                            {
                                UpdateStatusMessage("Failed export fingerparint data.");
                            }
                        }
                        else
                        {
                            UpdateStatusMessage("Time out or can not delected fingerprint.");
                        }
                    }
                }
                else
                {
                    client.SendAuthUserByFingerPrint(GetUserId(), tbCarId.Text, null);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                UpdateStatusMessage("Failed export fingerparint data.");
            }
            finally
            {
                if (cbSerial.Checked)
                {
                    fingerSensor.CmdCmosLed(false);
                }
                btnAuth.Enabled = true;
            }
        }
示例#3
0
 private void btnTestAuth_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         EnableFingerPrintComponent(false);
         if (fingerSensor.CmdCmosLed(true) == 0)
         {
             UpdateCompLogMsg("Input your finger on sensor.");
             if (fingerSensor.CmdCaptureFinger() == 0)
             {
                 UpdateCompLogMsg("Exporting deleted fingerprint data");
                 if (fingerSensor.CmdGetRawImage() == 0)
                 {
                     UpdateCompLogMsg("Succeed export fingerprint data.");
                     Bitmap receivedImage = BBDataConverter.GrayRawToBitmap(fingerSensor.getRawImage(), FingerSensorPacket.SIZE_FP_WIDTH, FingerSensorPacket.SIZE_FP_HEIGHT);
                     UpdateReceivedImage(receivedImage);
                     UserManager fpm   = new UserManager();
                     MyPerson    guest = fpm.Enroll(BBDataConverter.ImageToByte(receivedImage), "guest");
                     MyPerson    match = fpm.recognition(guest);
                     if (match != null)
                     {
                         UpdateCompLogMsg("Matched person(" + match.Name + "): " + VerifyUserMatchRate(guest, match));
                     }
                     else
                     {
                         UpdateCompLogMsg("No matching person found.");
                     }
                     UpdateCompMatchedUser(match);
                 }
                 else
                 {
                     UpdateCompLogMsg("Failed export fingerparint data.");
                 }
             }
             else
             {
                 UpdateCompLogMsg("Time out or can not delected fingerprint.");
             }
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         UpdateCompLogMsg("Failed export fingerparint data.");
     }
     finally
     {
         fingerSensor.CmdCmosLed(false);
         EnableFingerPrintComponent(true);
     }
 }
示例#4
0
 private void ScanImage()
 {
     if (pbFingerPrint.Source != null)
     {
         if (MessageBox.Show("지문 정보를 변경하시겠습니까?", "알림", MessageBoxButton.YesNo) == MessageBoxResult.No)
         {
             return;
         }
     }
     try
     {
         EnableFingerPrintButton(false);
         if (fingerSensor.CmdCmosLed(true) == 0)
         {
             Console.WriteLine("Input your finger on sensor.");
             if (fingerSensor.CmdCaptureFinger() == 0)
             {
                 Console.WriteLine("Exporting deleted fingerprint data");
                 if (fingerSensor.CmdGetRawImage() == 0)
                 {
                     Console.WriteLine("Succeed export fingerprint data.");
                     Bitmap receivedImage = BBDataConverter.GrayRawToBitmap(fingerSensor.getRawImage(), FingerSensorPacket.SIZE_FP_WIDTH, FingerSensorPacket.SIZE_FP_HEIGHT);
                     UpdateReceivedImage(receivedImage);
                     fp.AsBitmap = receivedImage;
                 }
                 else
                 {
                     Console.WriteLine("Failed export fingerparint data.");
                 }
             }
             else
             {
                 Console.WriteLine("Time out or can not delected fingerprint.");
             }
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
         Console.WriteLine("Failed export fingerparint data.");
     }
     finally
     {
         fingerSensor.CmdCmosLed(false);
         EnableFingerPrintButton(true);
     }
 }
示例#5
0
        public static Packet DataParser(MemoryStream ms, Packet pkt)
        {
            BinaryReader br = new BinaryReader(ms);

            if (pkt.response == PKT_NACK)
            {
                pkt.errMsg = BBDataConverter.ByteToString(br.ReadBytes(pkt.dataLen));
            }
            else
            {
                pkt.data = br.ReadBytes(pkt.dataLen);
                switch (pkt.type)
                {
                case PktType.AUTH:
                    pkt.guid = BBDataConverter.ByteToString(pkt.data);
                    break;

                case PktType.PASSENGER:
                    pkt.accessId = BBDataConverter.BytesToInt32(pkt.data);
                    break;

                case PktType.ORDER:
                    if (pkt.order == null)
                    {
                        pkt.order = new OrderInfo();
                    }
                    pkt.order.orderId = BBDataConverter.ByteToString(pkt.data);
                    break;

                case PktType.ONCE:
                    if (pkt.order == null)
                    {
                        pkt.order = new OrderInfo();
                    }
                    pkt.order.orderId = BBDataConverter.ByteToString(pkt.data);
                    break;
                }
            }

            br.Close();
            ms.Close();

            return(pkt);
        }
示例#6
0
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            if (tbName.Text == "" || tbName == null)
            {
                MessageBox.Show("이름을 입력하세요.", "알림", MessageBoxButton.OK);
                return;
            }
            else if (tbIdNum.Text == "" || tbIdNum == null)
            {
                MessageBox.Show("주민번호를 입력하세요.", "알림", MessageBoxButton.OK);
                return;
            }
            else if (tbPhone.Text == "" || tbPhone == null)
            {
                MessageBox.Show("연락처를 입력하세요.", "알림", MessageBoxButton.OK);
                return;
            }
            else if (pbFingerPrint.Source == null)
            {
                MessageBox.Show("지문을 입력하세요.", "알림", MessageBoxButton.OK);
                return;
            }

            if (MessageBox.Show("저장하시겠습니까?", "알림", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
            {
                int    executeCnt = 0;
                byte[] fpBytes    = BBDataConverter.ImageToByte(fp.AsBitmap);
                m_user     = userManager.Enroll(fpBytes, UserId, tbName.Text, tbIdNum.Text, tbPhone.Text, tbEmail.Text);
                executeCnt = userManager.SaveUser(m_user);
                if (executeCnt > 0)
                {
                    MessageBox.Show("사용자(" + m_user.Name + ") 정보가 저장되었습니다.", "알림", MessageBoxButton.OK);
                    this.DialogResult = true;
                    this.Close();
                }
                else
                {
                    MessageBox.Show("사용자(" + m_user.Name + ") 정보가 저장되지 않았습니다.", "알림", MessageBoxButton.OK);
                }
            }
        }
示例#7
0
 private void UpdateCompMatchedUser(MyPerson match)
 {
     Dispatcher.Invoke(new Action(() => {
         if (match != null)
         {
             tbId.Text      = match.Id.ToString();
             tbName.Text    = match.Name.ToString();
             tbPhone.Text   = match.Phone.ToString();
             tbGuid.Text    = match.Guid.ToString();
             pbFPRef.Source = BBDataConverter.BitmapToImageSource(match.Fingerprints[0].AsBitmap);
         }
         else
         {
             tbId.Text      = "";
             tbName.Text    = "";
             tbPhone.Text   = "";
             tbGuid.Text    = "";
             pbFPRef.Source = null;
         }
     }));
 }
示例#8
0
        public static byte[] StructToByte(Packet pkt)
        {
            MemoryStream ms = new MemoryStream();
            BinaryWriter bw = new BinaryWriter(ms);

            bw.Write((int)pkt.type);
            bw.Write(pkt.userId);
            try
            {
                byte[] carId = new byte[16];
                Encoding.UTF8.GetBytes(pkt.carId, 0, pkt.carId.Length, carId, 0);
                bw.Write(carId);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error : {0}", ex.Message.ToString());
            }
            bw.Write((int)0);
            byte[] guid;
            switch (pkt.type)
            {
            case PktType.AUTH:
                if (pkt.fingerPrint != null)
                {
                    byte[] fp = BBDataConverter.ImageToByte(pkt.fingerPrint);
                    bw.Write(fp.Length);
                    bw.Write(fp);
                }
                else
                {
                    bw.Write(0);
                }
                break;

            case PktType.PASSENGER:
                guid = BBDataConverter.StringToByte(pkt.guid);
                byte[] psgCnt = BBDataConverter.Int32ToByte(pkt.psgCnt);
                bw.Write(guid.Length + psgCnt.Length);
                bw.Write(guid);
                bw.Write(psgCnt);
                break;

            case PktType.ORDER:
                guid = BBDataConverter.StringToByte(pkt.guid);
                byte[] accessId = BBDataConverter.Int32ToByte(pkt.accessId);
                bw.Write(guid.Length + accessId.Length);
                bw.Write(guid);
                bw.Write(accessId);
                break;

            case PktType.ONCE:
                byte[] psgCnt1 = BBDataConverter.Int32ToByte(pkt.psgCnt);
                bw.Write(psgCnt1.Length + pkt.data.Length);
                bw.Write(psgCnt1);
                bw.Write(pkt.data);
                break;
            }
            bw.Close();
            byte[] buffer = ms.ToArray();
            ms.Dispose();

            return(buffer);
        }