二代身份证读卡器二次开发代码
NFC手机读身份证demo及SDK

NFC读卡接口日期版本说明作者2018/12/09V1.0.0NFC&OTG证件读取,支持身份证/港澳居民居住证/护照/EID1.概述本SDK支持二代身份证、护照及EID的读取。
二代身份证接口添加了身份鉴权操作,只有当鉴权通过的用户才可以使用公司提供的解码服务器进行身份证解码。
护照及EID功能开通需要单独申请。
NFC读卡用于支持NFC的安卓设备上。
OTG读卡用于支持USB的安卓设备上(USB口需要配套专门证件读卡器)。
2.流程图3.回调在使用本SDK前必须实现ActiveCallBack接口中的相关函数,原型如下:public interface ActiveCallBack{void readProgress(int npaogress);void setUserInfo(String sztxt);}void readProgress(int npaogress);返回身份证读卡进度,一共20步。
●void setUserInfo(String sztxt);函数空实现即可,有时会返回调试信息。
4.接口●OTGReadCardAPI接口初始化操作。
paramContext:android的上下文cb:实现回调的类bNFC:统一写成false●GetVersion获取当前版本号●setServerInfo设置服务器列表(初始化后最先调用,必须)twoCardServerList:身份证解码服务器列表eidServerList:为nullbTestServer:统一填false返回值:无●NfcReadCard通过NFC读卡,同步操作,执行结束返回状态。
szAppID:APPID,每家商户的唯一ID(需要向本公司申请后获取)userInfo:用户信息,暂时为空intent:NFC句柄,OTG时填nulldefaultType:只能填eTwoGeneralCarduserData:用户透传数据,如不需要,直接填“”bAuth:填false返回值:41–失败90–成功●GetCardType返回NfcReadCard中读取的卡片类型。
普天身份证阅读器CPIDMR02TG资料

普天身份证阅读器产品介绍普天身份证阅读器CP IDMR02/TG是专为国家发行第二代居民身份证而研制开发的一款台式身份证阅读器。
该款机型采用USB/RS232可选接口,是一体式TYPE B非接触卡读写机具,内含公安部二代证专用的安全模块及上海普天自主开发的射频读写模块,通过计算机通讯接口和安装在计算机中的阅读软件,将个人信息和相片进行显示和存储。
具有独立的知识产权,安全性、保密性及可靠性符合国家标准。
同时也适用于符合ISO/IEC 14443 TYPE B标准的非接触卡的研发、发卡系统及各个领域不同行业用户的应用。
适用范围安全系统:身份识别系统银行系统:身份识别系统交通管理:城市交通一卡通、路桥收费IC卡系统、高速公路IC卡管理系统消费系统:一卡通、门禁、考勤、消费教育事业:校园一卡通、学生证、图书馆、机房管理、食堂消费产品特点符合ISO/IEC 14443 TYPEA/ B 标准符合公安部台式居民身份证阅读器通用技术要求(GA 450-2003)及第1号修改单(草案)提供用户开发的API接口,提供SDK为用户提供良好的二次开发方案可选的RS232或USB接口,采用计算机供电体积小巧、外形美观技术参数支持卡型符合ISO/IEC 14443 TYPE B 标准的非接触卡工作频率13.56MHz 与卡片的通讯速率106Kbps检验循环冗余校检(CRC)感应区面积100×120mm最大感应距离﹥50mm传输速率USB接口:12MbpsRS232接口:9.6-115.2Kbpss软件接口支持VC、VB、DELPHI、PB等电源计算机供电(USB接口)工作电流200mA/DC平均无故障工作时间(MTBF)≥30000小时环境温度存放:-40°C~60°C 工作:0°C~50°C环境湿度存放:20~93%工作:<90%CP IDMR02/TG是为国家发行第二代居民身份证而研制开发的一款台式身份证阅读器。
二代身份证验证设备CM008RU二次开发控件ID2Control使用说明书

⼆代⾝份证验证设备CM008RU⼆次开发控件ID2Control使⽤说明书⼆代⾝份证验证设备CM008R/U⼆次开发控件ID2Control 使⽤说明书⽬录1. 控件描述 (4)1.1. 基本描述 (4)1.2. 控件组成⽂件 (4)1.3. 控件安装 (4)1.3.1. 安装⽂件安装 (4)1.3.2. ⼿动安装 (5)2. 属性⽅法列表 (5)2.1. 属性列表 (5)2.2. ⽅法列表 (5)3. 调⽤流程 (6)3.1. 顺序读卡调⽤流程 (7)3.1.1. 设臵设备连接端⼝号 (7)3.1.2. 端⼝打开及关闭 (7)3.1.3. 设臵RF缓冲区⼤⼩ (7)3.1.4. 基本读卡调⽤流程 (8)3.2. ⾃动读卡调⽤流程 (9)3.2.1. 设臵设备连接端⼝号 (9)3.2.2. 开启⾃动读卡功能 (9)3.2.3. 获取⾝份证相关信息 (9)3.2.4. 停⽌⾃动读卡功能 (9)4. 属性⽅法详细说明 (10)4.1. 属性 (10)Port—通讯端⼝号 (10)Baudrate—串⾏通讯波特率 (10)AutoOpenPort—是否⾃动打开/关闭端⼝ (10)4.2. ⽅法 (10)SetMaxRFByte—设臵RF缓冲区⼤⼩ (10)OpenPort—打开端⼝ (11)ClosePort—关闭端⼝ (11)ResetSAM—复位安全模块 (11)GetSAMStatus—对安全模块运⾏状态检测 (12)GetSAMID—取得安全模块编号HEX码 (12)GetSAMIDToStr—取得安全模块编号字符串 (12)StartFindIDCard—开始寻卡 (13)SelectIDCard—选取卡⽚ (13)ReadBaseMsg—读取基本信息 (13)ReadNewAppMsg—读取追加信息 (14)ReadMngInfo—读取卡体管理号 (14)DecodeToBMP—把WLT⽂件解码到BMP中 (15)GetJPG—把BMP转换成JPG图像 (15)GetBaseInfo—获取⾝份证卡上基本信息 (16)GetAllInfo—获取⾝份证卡上所有信息 (16)SearchDevice—查找设备 (17)StartAutoReadCard—开启⾃动读卡功能 (17)StopAutoReadCard—关闭⾃动读卡功能 (17)GetErrorMsg—获取错误代码对应的信息 (18)GetNation—获取民族编号对应的民族信息 (18)GetSex—获取性别代码对应的性别信息 (18)GetComBaudrate—获取安全模块通讯波特率 (18)SetCOMBaud—设臵安全模块通讯波特率 (19)5. 错误代码表 (19)6. 使⽤⽰例 (20)6.1. VC调⽤⽰例 (20)6.2. VB调⽤⽰例 (23)6.3. Delphi调⽤⽰例 (25)1.控件描述1.1.基本描述⼆代⾝份证验证设备CM008R/U的⼆次开发控件ID2Control是基于公安部安全模块接⼝API函数的基础上开发的,继承了公安部安全模块接⼝所有API函数功能,并增加了相应的转换函数,使得⼆次开发⽤户更易于开发。
第二代居民身份证termb.dll应用开发使用手册

int_stdcallGetPeopleNation(char *strTmp, unsigned int strLen);
读出生日期:
int_stdcallGetPeopleBirthday(char *strTmp, unsigned int strLen);
读住址信息:
int_stdcallGetPeopleAddress(char *strTmp, unsigned int strLen);
读身份号码:
int_stdcallGetPeopleIDCode(char *strTmp, unsigned int strLen);
读签发机关:
int_stdcallGetDepartment(char *strTmp, unsigned int strLen);
读有效启始日期:
int_stdcallGetStartDate(char *strTmp, unsigned int strLen);
StdCtrls, Buttons, ExtCtrls;
type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
Button2: TButton;
Button3: TButton;
Image1: TImage;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
设置基本信息
16.
int _stdcall SetPhotoData(char *WltFileName)
设置照片WLT信息
4
5
5.1初始化串口
原型:int InitComm (intPort)
DOCOM二代系统板WinCE二次开发指南V2.0

D O C O M R &D DOCOM 二代系统板WinCE 二次开发指南-V2.0 版本更改说明时间 版本号 说明2012-7-1 1.0 基本发布版本2013-7-17 2.01.升级TXWDEVLib.dll 库文件到V2.0a.增加支持我司高速加密读卡器功能b.增加支持三合一身份证读卡器功能c.增加高速光学进口指纹机功能d.增加条码读卡器汉字输出和16进制输出功能2.升级网络版CE 例程到TXWDemo_OLV2.0a.增加指纹票的功能演示b.增加摄像头票的功能演示3.增加.net3.5错误提示的汉字显示安装包4.IPchange.exe 的bug 修正5.增加数据库功能的支持B 键盘设备声音修改7.ftp 访问加密功能注意:支持上述有些功能操作系统也需要升级到新版本TFT 版本:NK_TFT32.binVGA 版本:NK_VGA32.bin一.开发环境 Windows XP ,.Net3.5,VS2005或VS2008、C#开发平台 二.目录文件说明 C#下的Lib 库\TXWDEVLib.dll 在VS 平台C#下可以直接引用进来,并调用类库函数 TXWCfg.ini类库使用的配置文件 用户根据自己的使用环境配置该文件WinCE 必备文件\autorun.bat系统启动文件,用户可更改来启动其它文件 IPChange.exe物理地址和IP 地址管理软件 TaskMng.exe任务管理软件 TXWDEV .dll设备驱动库,必须拷贝的TXWDEVLib.dll 同目录下 被TXWDEVLib.dll 调用,用户无需直接调用 ok.wav音频文件“欢迎光临” 客户可根据需求自行添加音频文件 tkterr.wav 音频文件“无效票”IOTest.exe TXW 开发的IO 口测试工具D O C O M R &D WGTest.exe TXW 开发的韦根测试工具WltCE.exe 、LICENSE.DAT 身份证读卡器解密文件被TXWDEVLib.dll 调用,用户无需直接调用没有使用二代身份证读卡器可不添加VCOMExample.dll Lumidigm 指纹驱动文件被TXWDEVLib.dll 调用,用户无需直接调用没有使用指纹可不添加RegeditTool.exe 、Readtim.exe 产品注册工具NETCFv35.Messages.zh-CHS.cab .net3.5消息显示包,拷贝到CE 下安装到txwzn 目录下System.Data.SQLite.dll SQLite 数据库必备文件SQLite.Interop.087.dll SQLite 数据库必备文件TXWCamare.dll摄像头驱动,动态加载 ceMfDll.dll加密读卡器驱动 FTPTool.exe ftp 加密工具 regedit.exe注册表工具 SetSysV olum.exe系统声音配置工具CERDISP2.exe远程桌面控制工具开发例程\ 单机版 CE Demo 程序网络版 CE Demo 程序PC 服务端Demo 程序二代系统板通信协议V3.01(演示版)IC 读卡器例程桌面加密IC 读卡器二次开发包及例程其它工具,调试辅助工具ftp 上传工具 专业的ftp 工具,可以使用该工具拷贝文件 串口调试助手 Windows 的串口调试助手三.使用方法3.1. Lib 库的使用方法1.在VS2005或VS2008环境下,新建一个C#语音的智能设备应用程序。
华视身份证阅读器CVR-100产品资料

1650华视CVR-100U/D产品概述1、CVR-100U/D型第二代身份证阅读仪是采用非接触式IC卡技术,与计算机终端或其它设备连接可用于读取居民身份证专用芯片内相关信息的专用机具。
2、通过随机解码软件,可将身份证内的数字压缩相片还原为可视照片,实现完全的“人、证同一性”的认定。
3、本身份证专用阅读机具完全兼容ISO-14443(TYPE-B)标准,用户根据需要可用本设备读取其它非接触IC卡信息。
4、提供开放的应用程序接口(API),供系统集成进行二次开发。
5、CVR-100U/D型第二代身份证阅读仪外型美观大方、体积小巧、结构合理。
外壳采用ABS工程塑料注塑而成,制造工艺先进,检验手段科学,性能稳定可靠。
6、CVR-100U/D型第二代身份证阅读仪外观如下:性能参数基本参数:1、符合居民身份证阅读器通用技术要求,兼容ISO14443(TypeB)标准;2、工作频率:13.56MHz(fc);3、天线能量输出;1)天线表面磁场强度(Hmax)≤7.5A/m rms;2)天线表面法线方向5cm处电磁场强度(Hmin)≥1.5A/m rms;4、接口:USB接口;5、阅读距离:0-5cm;6、阅读时间:<0.5s;7、适用于WIN98/2000/XP/NT平台;8、可用开发工具:VC/DEPHI/VB/PB等;9、电源:DC9V/1A(±5%)。
具有电源自动保护设计;10、平均无故障工作时间(MTBF):大于5000小时;11、使用环境:1)工作温度:0℃~50℃;2)相对湿度:20%~90%RH;3)大气压力:60KPa~110 Kpa;12、重量:<0.75Kg;13、外型尺寸:180(L)×130(W)×38(H)mm。
CVR-100U/D型第二代身份证阅读仪外型美观大方、体积小巧、结构合理。
外壳采用ABS工程塑料注塑而成,制造工艺先进,检验手段科学,性能稳定可靠。
二代身份证读卡器二次开发说明
二代身份证读卡器二次开发说明编写目的为了在自行开发的项目中使用“新中新二代身份证读卡器”(以下简称读卡器)获得的二代身份证信息,需要对现有读卡器程序进行二次开发。
准备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"的方法.[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 =四、调用” 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) + " 姓名:" +;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) + " 有效期开始:" + erLifeBegin;listBox1.Items.Add(stmp);stmp = Convert.ToString(System.DateTime.Now) + " 有效期结束:" + erLifeEnd;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);}}。
二次开发接口说明V3.0
⼆次开发接⼝说明V3.01.概述精伦电⼦开发的⼆代⾝份证读卡系列机具适⽤于相关⾏业的联机型应⽤。
产品提供了完善的⼆次软件开发接⼝(API)。
本⼿册对开发接⼝的⽂件组成、函数定义格式、调⽤⽅法及返回值等进⾏详细的说明。
本通⽤开发包⽀持的设备型号如下:1、iDR200(串⼝和USB⼝)。
2、iDR320(必须进⼊“同步应⽤”模式)。
3、iDR400-1(必须进⼊“同步”模式)。
4、iDR210(USB-HID免驱动接⼝)。
5、iDR210(串⼝)。
注意:完全兼容原2.0版本开发接⼝,⽀持USB-HID接⼝和串⼝的iDR210。
1、如果使⽤原开发包采⽤动态调⽤dll⽅式,只需直接替换原dll即可。
2、如果使⽤原开发包采⽤的静态调⽤⽅式,则在不改变代码的情况下,对原程序重新编译链接即可。
2.系统要求使⽤本API的PC机,必须满⾜下列条件:●Windows 98、Windows 2000 Pro、Windows 2000 Server、Windows XP。
●⾄少32兆内存(32M RAM or Larger)。
●⾄少10兆空闲硬盘空间(10M Free Hard Disk Space or Larger)。
●⾄少⼀个空闲普通串⼝或USB⼝(视⽤户需求⽽定)。
3.接⼝⽂件说明接⼝⽂件包括:Dewlt.dll 相关动态联接库sdtapi.dll 相关动态联接库JpgDll.dll 相关动态联接库SavePhoto.dll 相关动态联接库sdtapi.h 相关动态联接库头⽂件适⽤开发语⾔:Visual C++ 5.0 及以后版本C++ Builder 5.0 及以后版本Visual Basic 5.0 及以后版本Delphi 3.0 及以后版本PowerBuilder 5.0 及以后版本4.接⼝函数说明4.1.端⼝函数4.1.1.端⼝初始化函数原型:int InitComm (int iPort)说明:本函数⽤于打开串⼝或USB并检测读卡设备是否就绪。
神盾身份证读卡器使用手册
神盾第二代身份证阅读器使用手册1.1产品概述深圳研腾科技有限公司销售的神盾ICR-100M(B)智能接口身份证阅读器是联机使用的身份证专用阅读设备,采用拥有国家专利(实用新型专利号ZL 200620000992.9,发明专利号2006100010348)的智能识别技术,能自动识别计算机通讯端口、自动设置通讯参数、自动读卡。
该设备采用国际上先进的TypeB非接触IC卡阅读技术,以无线传输方式与第二代居民身份证内的专用芯片进行数据交换,可以将芯片内的个人信息资料读出,再通过计算机通讯接口,将此信息上传至计算机。
随机提供的安装软件通过ICR-100M(B)可以完成读取身份证芯片内个人信息资料操作,并且该随机软件还可以将这些信息解码成文字和相片进行显示和存储,进行“人证同一性”认定。
该设备兼容ISO14443(TypeB)标准,可根据用户需要读取其他符合ISO14443(TypeB)标准的非接触IC卡。
同时,该产品还可提供开放的应用程序接口(API)函数,供系统集成商进行二次开发。
该设备可采用计算机端口取电,体积小巧,既支持RS-232C通讯又支持USB 通讯,操作灵活简便,可应用于公安、民政、银行、宾馆、邮局、证券等场所进行身份核验。
1.2智能接口技术智能接口技术是集USB/RS-232C两种通讯方式和多种取电方式于一体,能自动识别计算机通讯端口、自动设置通讯参数、自动读卡的新技术。
采用智能接口技术的ICR-100M(B)身份证阅读器阅读器包括智能接口控制板、阅读器控制板、安全控制模块、阅读器天线、信号传输电缆、电源管理模块、专用通讯电缆及运行在阅读器控制板上的阅读器硬件程序和运行在计算机上的阅读程序。
该阅读器可同时支持USB和RS-232C两种通讯方式,并可以在不作任何硬件更改的情况下智能查找通讯方式和通讯端口。
本设备支持USB计算机端口、PS/2计算机端口以及外接直流电源多种供电方式,大大增强了设备使用的灵活性,方便用户根据自身情况做出选择,满足了用户的多样化需求。
身份证阅读器SDK使用说明
身份证阅读器SDK使用说明(V1.3)深圳华视电子读写设备有限公司目录版本变更记录 (1)1身份证阅读器SDK简介 (1)2系统需求 (1)3函数说明 (1)3.1 核心相关函数 (1)3.2 获取身份证具体信息函数 (2)3.3 人证比对相关函数 (3)3.4 函数调用流程 (3)4身份证阅读器SDK (4)4.1 文件夹组成 (4)4.2 身份阅读器SDK的使用 (5)4.2.1 SDK使用方法 (5)4.2.2 SDK使用限制 (5)4.3 身份证阅读器SDK测试程序 (5)版本变更记录1身份证阅读器SDK简介本文档描述了深圳华视身份证阅读器SDK(Windows版)的调用方法、函数定义、参数和返回值说明,供开发商进行二次开发使用。
2系统需求(1)操作系统:Windows XP(2)开发环境:本SDK采用ANSI C语言编写,假定用户采用C/C++语言作为开发工具。
3函数说明3.1核心相关函数●●●●●3.2获取身份证具体信息函数下面是一组获取身份证具体信息的函数:3.3人证比对相关函数人证比对:3.4函数调用流程身份证阅读器SDK库应用函数的调用流程如下图所示:4身份证阅读器SDK4.1文件夹组成身份证阅读器SDK,由下述文件夹组成:·Include包含身份证阅读器SDK库头文件(termb.h);·lib包含身份证阅读器SDK库文件(静态库:termb.lib,动态库:termb.dll,CVRApi.dll,sdtapi.dll,WLTLib.dll)等;·license包含文件:license.lic, base.dat·example包含身份证阅读器SDK库测试程序;·doc包含身份证阅读器相关文档说明(身份证阅读器SDK使用说明.doc)。
4.2身份阅读器SDK的使用4.2.1SDK使用方法(1)静态库的适用方法:在VC环境下添加termb.lib附加依赖项,在调用它的应用程序里包含相应的termb.h头文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
While Mid(mf, readname, 1) = " "
readname = readname + 1
Wend
d = readname
i=i+1
End If
readname = readname + 1
Wend
idno1 = Mid(ii(3), 1, 18) '身份证号
sex1 = Mid(idno1, 17, 1) '性别代码
stuname = ii(1)
'姓名
addres = Mid(ii(2), 12) '住址
birthday = Mid(idno1, 7, 4) + "-" + Mid(idno1, 11, 2) + "-" + Mid(idno1, 13, 2) '出生日期
If Int(CInt(sex1) / 2) = CInt(sex1) / 2 Then '性别转换
Public Function FTPTxtFile(site, file) 'ftp 上传 Inet1.URL = "ftp://" & site Inet1.Protocol = icFTP erName = "upphoto" ‘ftp 用户(可改) Inet1.Password = "upphoto" ‘ftp 密码(可改) Inet1.Execute , "PUT c:/aha.bmp " & file ‘上传 c 盘根目录的 aha.bmp 文件 Do While Inet1.StillExecuting
<td width="175" class="color2" > <P align=left> <input size=25 name=fname maxLength=25 >
</P></td> </tr> <tr>
<td class="color2" > <P align=center><FONT size=3>性别:</FONT></P></td> <td class="color2" > <P align=left>
sex1 = "女"
Else
sex1 = "男"
End If
fname.value = stuname
fsex.value = sex1
fbirth.value = birthday
fadd.value = addres
fid.value = idno1
fdep.value=pf
pf=icread.toftp("192.168.2.218",idno1&".bmp") 'ip 为存放身份证照片的服务器 IP 地址,此地址要建 ftp 服
<input size=25 name=fnation maxLength=25 > </P></td> </tr> <tr> <td class="color2" > <P align=center><FONT size=3>出生:</FONT></P></td> <td class="color2" > <P align=left>
Public Function hx_IDname() As String '供外部调用函数 hx_IDname = ostudent() End Function
Public Function toftp(urln, file) '供外部调用函数 Call FTPTxtFile(urln, file) End Function
</OBJECT> <script language=vbscript>
function IC_read() Dim readname, i, d, idno1, sex1, stuname, addres, idno, birthday,mf,pf Dim ii(10) mf=icread.hx_IDname() '通过插内函数读出身份证数据 'msgbox(mf) '显示读出的原内容 内里有民族,身份证有效期等
务
end if
end function
</script>
<script language="JavaScript"> function res(){ var i = Math.random();
document.getElementById("photoid").src="c:/aha.bmp";} //显示读出的身份证照片 </script>
Put #1, , pf(i) i=i+1 Wend Close #1 Call GetBmp("c:\aha.wlt", 2) ‘调用读卡器函数库 Else MsgBox ("请重放身份证") ostudent = "1" End If End Function
文件 htmok,生成 htmok.ocx லகம் = CLng(mf(i)) * 256 + CLng(mf(i - 1)) i=i+2 bb = bb + ChrW(aa) Wend 'mf = StrConv(mf, 128) '把 Unicode 码转换成 ansi 码 ostudent = bb
'下面提取照片 Open asx & "c:\aha.wlt" For Output As #1 Close #1 Open "c:\Aha.wlt" For Binary As #1 i=0 While i < 1024
if len(Trim(mf))>1 then '是否读出数据
readname = 1
i=1
d=1
While readname < Len(mf) '把读出的数据拆分
If Mid(mf, readname, 1) = " " Then
ii(i) = Mid(mf, d, readname - d)
<table width="471" border="1" cellspacing="0" cellpadding="0" > <tr> <td width="114" class="color2" > <P align=center><FONT size=3>姓名:</FONT></P></td> <td width="174" rowspan="8" class="color2" > <IMG id ="photoid" ></td>
<input size=25 name=fbirth maxLength=25 > </P></td> </tr> <tr> <td class="color2" > <P align=center><FONT size=3>住址:</FONT></P></td> <td class="color2" > <P align=left>
<input size=25 name=fid maxLength=25 > </P></td> </tr> <tr> <td class="color2" > <P align=center><FONT size=3>发证机关:</FONT></P></td> <td class="color2" > <P align=left>
CLASSID="CLSID:900623A9-FF0F-4BAD-9CB7-EE10C761267E" CODEBASE="htmok.CAB#version=1,0,0,0" width=0 height=0 align=center hspace=0 vspace=0
ID="icread" >
<input size=25 name=fadd maxLength=25 > </P></td> </tr> <tr> <td class="color2" > <P align=center><FONT size=3>证号:</FONT></P></td> <td class="color2" > <P align=left>