/// <summary>
 /// 初始化
 /// </summary>
 private void Init()
 {
     ClearVal();
     ChangeText("请将手指放到指纹仪");
     Task.Run(() =>
     {
         try
         {
             //连接指纹
             if ((n = FingerPrintHelper.PSOpenDeviceEx(out pHandle, 2, 1)) == (int)ReturnValue.PS_OK)
             {
                 //清除指纹库模板信息
                 if (FingerPrintFuc(() => { return(FingerPrintHelper.PSEmpty(pHandle, nAddr)); }))
                 {
                     //实例化Timer类,设置间隔时间为10000毫秒;
                     aTimer           = new System.Timers.Timer(1500);
                     aTimer.Elapsed  += new ElapsedEventHandler(Objtimer_Tick);
                     aTimer.AutoReset = true;
                     aTimer.Enabled   = true;
                     aTimer.Start();
                 }
             }
             else
             {
                 ShowTip("连接指纹仪失败", "请确定已插入指纹仪后重试");
                 LogHelper.AsnyWriteLog("连接指纹仪失败");
             }
         }
         catch (Exception ex)
         {
             ShowTip("连接指纹仪失败", "请确定已插入指纹仪后重试");
             LogHelper.AsnyWriteLog(ex.ToString());
         }
     });
 }
 /// <summary>
 /// 比对现有指纹库
 /// </summary>
 /// <returns></returns>
 private unsafe bool DownChar(string hexstr)
 {
     //连接指纹
     if ((n = FingerPrintHelper.PSOpenDeviceEx(out pHandle, 2, 1)) == (int)ReturnValue.PS_OK)
     {
         //清除指纹库模板信息
         if (FingerPrintFuc(() => { return(FingerPrintHelper.PSEmpty(pHandle, nAddr)); }))
         {
             byte[] tempbyte = FingerPrintHelper.strToHexByte(hexstr);
             fixed(byte *arry = tempbyte)
             {
                 if (FingerPrintHelper.PSDownChar(pHandle, nAddr, iBufferID, arry, 512) == (int)ReturnValue.PS_OK)
                 {
                     iBufferID++;
                     System.Timers.Timer upTimer = new System.Timers.Timer(1500);
                     upTimer.Elapsed += (o, e) =>
                     {
                         if (FingerPrintFuc(() => { return(FingerPrintHelper.PSGetImage(pHandle, nAddr)); }, false))
                         {
                             if (FingerPrintFuc(() => { return(FingerPrintHelper.PSGenChar(pHandle, nAddr, iBufferID)); }))
                             {
                                 //比对两个区后就是是否成功
                                 if (FingerPrintFuc(() => { return(FingerPrintHelper.PSMatch(pHandle, nAddr, out iScore)); }))
                                 {
                                     ThisDelegate(() => { MessageBox.Show(string.Format("比对成功,分数{0}", iScore)); });
                                 }
                             }
                         }
                     };
                     upTimer.AutoReset = true;
                     upTimer.Enabled   = true;
                     upTimer.Start();
                 }
             }
         }
     }
     return(true);
 }