You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

95 lines
3.4 KiB

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
{
/// <summary>
/// 研腾,华视(100)
/// </summary>
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;
}
}
}