同系列文章:
源代码:
ChinaVisionReader.cs
/* ---------------------------------------------------------- * 文件名称:ChinaVisionReader.cs * * 作者:秦建辉 * * 微信:splashcn * * 博客:http://www.firstsolver.com/wordpress/ * * 开发环境: * Visual Studio V2015 * .NET Framework 4 Client Profile * * 版本历史: * V1.0 2016年06月29日 * 华视电子二代身份证阅读器接口 ------------------------------------------------------------ */ using System.Runtime.InteropServices; namespace Com.FirstSolver.CardReader { /// <summary> /// 公司名称:深圳华视电子读写设备有限公司 /// 官方网址:http://www.chinaidcard.com/ /// 产品名称:台式居民身份证阅读机具 /// 产品型号:CVR-100U /// </summary> public class ChinaVisionReader : IDCardReader { /// <summary> /// 自动检测身份证读卡器并初始化 /// </summary> /// <returns> /// true:成功 /// false:失败 /// </returns> protected override bool Initialize() { for (int i = 1001; i <= 1016; i++) { if (CVR_InitComm(i) == 1) { InnerPort = i; return true; } } return false; } /// <summary> /// 关闭读卡器 /// </summary> /// <returns> /// 0:成功 /// -1:失败 /// </returns> protected override int CloseComm() { if (CVR_CloseComm() == 1) return 0; else return -1; } /// <summary> /// 验证卡 /// </summary> /// <returns> /// 0:验卡成功 /// -1:验卡失败 /// </returns> protected override int Authenticate() { if (CVR_Authenticate() == 1) return 0; else return -1; } /// <summary> /// 读卡基本信息 /// </summary> /// <returns> /// 0:读卡成功,卡片不带指纹数据 /// 1:读卡成功,卡片带指纹数据 /// -1:读卡失败 /// </returns> protected override int ReadContent() { if (CVR_Read_Content(4) == 1) return 0; else return -1; } #region DLLIMPORT [DllImport("termb.dll", CharSet = CharSet.Auto, SetLastError = false)] public static extern int CVR_InitComm(int Port); [DllImport("termb.dll", CharSet = CharSet.Auto, SetLastError = false)] public static extern int CVR_Authenticate(); [DllImport("termb.dll", CharSet = CharSet.Auto, SetLastError = false)] public static extern int CVR_Read_Content(int Active); [DllImport("termb.dll", CharSet = CharSet.Auto, SetLastError = false)] public static extern int CVR_CloseComm(); #endregion } }