using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using ShenTun.IcCard.Common; namespace ShenTun.IcCard.Instance { /// /// 研腾,华视(100) /// public class ReadCardByYT100:IReadCard { Response IReadCard.GetReadCard() { int iPort = 1001; int ret = -1; bool bDisp = false; string strTmp = string.Empty; Response res = new Response() { code = -101 }; IDCardInfo idCard = new IDCardInfo(); try { ret = YT100.InitComm(iPort); LogHelper.LogWriter("InitComm End"); if (ret != 1) { res.code = -101; res.message = "打开读卡设备失败,请确认是否安装驱动以及是否已连接读卡器!"; return res; } bDisp = true; ret = YT100.Authenticate(); LogHelper.LogWriter("Authenticate End"); if (ret <= 1) { res.code = -102; res.message = "巡卡失败,请拿开身份证重新放置!"; return res; } YT100.Read_Content(1); LogHelper.LogWriter("Read_Content End"); idCard.Name = YT100.GetName(); LogHelper.LogWriter("GetName End"); idCard.Sex = YT100.GetSex(); LogHelper.LogWriter("GetSex End"); idCard.IDCode = YT100.GetIDCode(); LogHelper.LogWriter("GetIDCode End"); idCard.Birthday = YT100.GetBirthday(); LogHelper.LogWriter("GetBirthday End"); idCard.Address = YT100.GetAddress(); LogHelper.LogWriter("GetAddress End"); strTmp = YT100.GetNation(); LogHelper.LogWriter("GetNation End"); //var nation = BaseData.nList.Where(p => p.Name.Equals(strTmp)).FirstOrDefault(); if (!strTmp.Contains("族")) idCard.Nation = strTmp + "族"; else idCard.Nation = strTmp; LogHelper.LogWriter("Nation End"); idCard.DepartmentIC = YT100.GetDepartmentIC(); LogHelper.LogWriter("GetDepartmentIC End"); idCard.StartDateIC = YT100.GetStartDateIC(); LogHelper.LogWriter("GetStartDateIC End"); //某些身份证读取不了下面的字段 //idCard.EndDateIC = YT100.GetEndDateIC(); //LogHelper.LogWriter("GetEndDateIC End"); idCard.Photo = YT100.GetPhoto(); LogHelper.LogWriter("GetPhoto End"); res.code = 1; res.data = idCard; res.message = "Success"; } catch (Exception ex) { LogHelper.LogWriter(string.Format("ExceptionMessage:{0}",ex.Message)); throw new Exception(string.Format("读卡器接口操作失败:{0}", ex.Message)); } finally { if (bDisp) YT100.CloseComm(); } return res; } } }