为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

二代身份证读卡器二次开发说明

2017-09-19 6页 doc 50KB 235阅读

用户头像

is_014457

暂无简介

举报
二代身份证读卡器二次开发说明二代身份证读卡器二次开发说明 编写目的 为了在自行开发的项目中使用“新中新二代身份证读卡器”(以下简称读卡器)获得的二代身份证信息,需要对现有读卡器程序进行二次开发。 准备 SDK: 新中新二代证SDK开发包.rar 示例代码:  “新中新二代证SDK开发包.rar\DLL\测试程序\C#” 读卡器型号: DKQ-116D 版本号:DU 使用方法 由于开发包中已提供了相对完整的示例代码,因此本文直接以示例代码中的例子进行讲解。 一、 开发前先运行开发包中”\DLL\DLLTestSDK.exe”或者 “新中新二代身份证验证系统...
二代身份证读卡器二次开发说明
二代身份证读卡器二次开发说明 编写目的 为了在自行开发的项目中使用“新中新二代身份证读卡器”(以下简称读卡器)获得的二代身份证信息,需要对现有读卡器程序进行二次开发。 准备 SDK: 新中新二代证SDK开发包.rar 示例代码:  “新中新二代证SDK开发包.rar\DLL\测试程序\C#” 读卡器型号: DKQ-116D 版本号:DU 使用方法 由于开发包中已提供了相对完整的示例代码,因此本文直接以示例代码中的例子进行讲解。 一、 开发前先运行开发包中”\DLL\DLLTestSDK.exe”或者 “新中新二代身份证验证系统”以保证读卡器硬件连接及驱动都已正确安装. 或者单独安装驱动程序 (一)、“新中新二代身份证验证系统”         1. 运行程序         2. 在读卡器上扫描二代身份证,在界面上查看是否显示身份证信息 (二)、 “DLLTestSDK.exe”             1. 运行程序 2. 点击“自动寻找读卡器”,查看列表框提示信息及”端口号”是否被改变 3. 点击”使用结构体返回信息”,查看列表框中是否已输出身份证信息. 二、 将” sdtapi.dll”、” SynIDCardAPI.dll”、” WltRS.dll” 3个文件复制到与程序运行相同目录 三、 参考示例代码,在自己开发的类中定义结构体” IDCardData”,并声明"SynIDCardAPI.dll"的方法.         [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]         public struct IDCardData         {             [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]             public string Name; //姓名              [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 6)]             public string Sex;  //性别             [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]             public string Nation; //名族             [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 18)]             public string Born; //出生日期             [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 72)]             public string Address; //住址             [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 38)]             public string IDCardNo; //身份证号             [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]             public string GrantDept; //发证机关             [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 18)]             public string UserLifeBegin; // 有效开始日期             [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 18)]             public string UserLifeEnd;  // 有效截止日期             [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 38)]             public string reserved; // 保留             [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 255)]             public string PhotoFileName; // 照片路径         }         /************************端口类API *************************/         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_SetMaxRFByte", CharSet = CharSet.Ansi)]         public static extern int Syn_SetMaxRFByte(int iPort, byte ucByte, int iIfOpen);         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_GetCOMBaud", CharSet = CharSet.Ansi)]         public static extern int Syn_GetCOMBaud(int iPort, ref uint puiBaudRate);         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_SetCOMBaud", CharSet = CharSet.Ansi)]         public static extern int Syn_SetCOMBaud(int iPort, uint uiCurrBaud, uint uiSetBaud);         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_OpenPort", CharSet = CharSet.Ansi)]         public static extern int Syn_OpenPort(int iPort);         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_ClosePort", CharSet = CharSet.Ansi)]         public static extern int Syn_ClosePort(int iPort);         /**************************SAM类函数 **************************/         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_ResetSAM", CharSet = CharSet.Ansi)]         public static extern int Syn_ResetSAM(int iPort, int iIfOpen);         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_GetSAMStatus", CharSet = CharSet.Ansi)]         public static extern int Syn_GetSAMStatus(int iPort, int iIfOpen);         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_GetSAMID", CharSet = CharSet.Ansi)]         public static extern int Syn_GetSAMID(int iPort, ref byte pucSAMID, int iIfOpen);         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_GetSAMIDToStr", CharSet = CharSet.Ansi)]         public static extern int Syn_GetSAMIDToStr(int iPort, ref byte pcSAMID, int iIfOpen);         /*************************身份证卡类函数 ***************************/         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_StartFindIDCard", CharSet = CharSet.Ansi)]         public static extern int Syn_StartFindIDCard(int iPort, ref byte pucIIN, int iIfOpen);         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_SelectIDCard", CharSet = CharSet.Ansi)]         public static extern int Syn_SelectIDCard(int iPort, ref byte pucSN, int iIfOpen);         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_ReadBaseMsg", CharSet = CharSet.Ansi)]         public static extern int Syn_ReadBaseMsg(int iPort, ref byte pucCHMsg, ref uint puiCHMsgLen, ref byte pucPHMsg, ref uint puiPHMsgLen, int iIfOpen);         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_ReadIINSNDN", CharSet = CharSet.Ansi)]         public static extern int Syn_ReadIINSNDN(int iPort, ref byte pucIINSNDN, int iIfOpen);         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_ReadBaseMsgToFile", CharSet = CharSet.Ansi)]         public static extern int Syn_ReadBaseMsgToFile(int iPort, ref byte pcCHMsgFileName, ref uint puiCHMsgFileLen, ref byte pcPHMsgFileName, ref uint puiPHMsgFileLen, int iIfOpen);         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_ReadIINSNDNToASCII", CharSet = CharSet.Ansi)]         public static extern int Syn_ReadIINSNDNToASCII(int iPort, ref byte pucIINSNDN, int iIfOpen);         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_ReadNewAppMsg", CharSet = CharSet.Ansi)]         public static extern int Syn_ReadNewAppMsg(int iPort, ref byte  pucAppMsg ,ref uint puiAppMsgLen , int iIfOpen);         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_GetBmp", CharSet = CharSet.Ansi)]         public static extern int Syn_GetBmp(int iPort, ref byte Wlt_File);         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_ReadMsg", CharSet = CharSet.Ansi)]         public static extern int Syn_ReadMsg(int iPortID, int iIfOpen, ref IDCardData pIDCardData);         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_FindReader", CharSet = CharSet.Ansi)]         public static extern int Syn_FindReader();         /***********************设置附加功能函数 ************************/         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_SetPhotoPath", CharSet = CharSet.Ansi)]         public static extern int Syn_SetPhotoPath(int iOption, ref byte cPhotoPath);         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_SetPhotoType", CharSet = CharSet.Ansi)]         public static extern int Syn_SetPhotoType(int iType);         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_SetPhotoName", CharSet = CharSet.Ansi)]         public static extern int Syn_SetPhotoName(int iType);         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_SetSexType", CharSet = CharSet.Ansi)]         public static extern int Syn_SetSexType(int iType);         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_SetNationType", CharSet = CharSet.Ansi)]         public static extern int Syn_SetNationType(int iType);         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_SetBornType", CharSet = CharSet.Ansi)]         public static extern int Syn_SetBornType(int iType);         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_SetUserLifeBType", CharSet = CharSet.Ansi)]         public static extern int Syn_SetUserLifeBType(int iType);         [DllImport("SynIDCardAPI.dll", EntryPoint = "Syn_SetUserLifeEType", CharSet = CharSet.Ansi)]         public static extern int Syn_SetUserLifeEType(int iType,int iOption); 四、 调用” Syn_FindReader()” 获得读卡器端口号 五、 如需保存照片 调用” Syn_SetPhotoPath” 设置照片保存位置,调用” Syn_SetPhotoType()”设置保存格式,调用” Syn_SetPhotoName()”设置文件名规范. 六、 读取信息: 步骤: 打开端口->设置通讯字节数->读取卡信息->指向读到的第一张卡信息->将卡信息填入结构体-> 读取结构体信息 参考示例代码:       private void button17_Click(object sender, EventArgs e)         {             IDCardData CardMsg = new IDCardData();             int nRet,nPort;             string stmp;             byte[] pucIIN = new byte[4];             byte[] pucSN = new byte[8];             nPort = Convert.ToInt32(textBox1.Text);             if (Syn_OpenPort(nPort) == 0)             {                 if (Syn_SetMaxRFByte(nPort,80,0)==0)                 {                     nRet = Syn_StartFindIDCard(nPort, ref pucIIN[0], 0);                     nRet = Syn_SelectIDCard(nPort,ref pucSN[0], 0);                     nRet = Syn_ReadMsg(nPort, 0, ref CardMsg);                     if (nRet == 0)                     {                         stmp = Convert.ToString(System.DateTime.Now) + "  姓名:" + CardMsg.Name;                         listBox1.Items.Add(stmp);                         stmp = Convert.ToString(System.DateTime.Now) + "  性别:" + CardMsg.Sex;                         listBox1.Items.Add(stmp);                         stmp = Convert.ToString(System.DateTime.Now) + "  民族:" + CardMsg.Nation;                         listBox1.Items.Add(stmp);                         stmp = Convert.ToString(System.DateTime.Now) + "  出生日期:" + CardMsg.Born;                         listBox1.Items.Add(stmp);                         stmp = Convert.ToString(System.DateTime.Now) + "  地址:" + CardMsg.Address;                         listBox1.Items.Add(stmp);                         stmp = Convert.ToString(System.DateTime.Now) + "  身份证号:" + CardMsg.IDCardNo;                         listBox1.Items.Add(stmp);                         stmp = Convert.ToString(System.DateTime.Now) + "  发证机关:" + CardMsg.GrantDept;                         listBox1.Items.Add(stmp);                         stmp = Convert.ToString(System.DateTime.Now) + "  有效期开始:" + CardMsg.UserLifeBegin;                         listBox1.Items.Add(stmp);                         stmp = Convert.ToString(System.DateTime.Now) + "  有效期结束:" + CardMsg.UserLifeEnd;                         listBox1.Items.Add(stmp);                         stmp = Convert.ToString(System.DateTime.Now) + "  照片文件名:" + CardMsg.PhotoFileName;                         listBox1.Items.Add(stmp);                     }                     else                     {                         stmp = Convert.ToString(System.DateTime.Now) + "  读取身份证信息错误";                         listBox1.Items.Add(stmp);                     }                 }             }             else             {                 stmp = Convert.ToString(System.DateTime.Now) + "  打开端口失败";                 listBox1.Items.Add(stmp);             }         }
/
本文档为【二代身份证读卡器二次开发说明】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索