/// <summary> 读写IC卡 </summary> private int CheckICard() { FaceFun.TimeStart(); var icInfo = new IdCardFunc.TicketCardInfo(); int i = IdCardFunc.GetTicketData_New(ref icInfo); if (i == 0) { if (icInfo.IDCard.IsNullOrEmpty()) { "读卡成功,但身份证号码为空.".ToSaveLog(); return(1); } //黑名单检查 if (IsCheckBlack && FaceFun.IsInBlack(icInfo.IDCard)) { LeftImg.Visibility = Visibility.Visible; } //判断是否超过时限 var now = DateTime.Now; var time = IrAdvanced.StringToDateTime(icInfo.Reserved2); if ((time.Year <= now.Year && time.Month <= now.Month && time.Day < now.Day)) { //读取数据库白名单记录 white = FaceFun.CheckWhiteName(icInfo.IDCard); if (white != null) { Bitmap photobitmap = IrAdvanced.GetBitmapFormByte(white.Value.IdCardPhoto); Dispatcher.Invoke(() => { BitmapImage photoImg = IrAdvanced.GetBitmapImageFormByte(white.Value.IdCardPhoto); CvrImgMain.Source = CvrImg.Source = photoImg; }); Rft2 = Face.FaceTz(photobitmap); if (Face.TzIr.ToInt32() == 0) { icPass = true; ShowEventMsg("正在进行人脸识别", MsgType.Info); } else { ShowEventMsg("无法识别该照片人脸特征码", MsgType.InfoErr); } } else { ShowEventMsg("白名单不存在此年票记录.", MsgType.InfoErr); } } else { Dispatcher.InvokeAsync(() => { ShowEventMsg(string.Format("一天只能入场一次!\n{0}已使用", icInfo.Reserved2), MsgType.InfoErr); MyArea.Text = string.Format("区域:{0}区{1}排{2}座", icInfo.StadiumArea, icInfo.Row, icInfo.Position); MyNum.Text = "票号:" + icInfo.CardNo; MyType.Text = "类型:年票"; MyTime.Text = "时间:" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); ShowEventMsg("检票失败", MsgType.FaceErr); }); } } FaceFun.TimeStop("IC读写耗时:"); return(i); }