华视身份证阅读器SDK使用手册 V1.33
华视电子读写设备有限公司 2008年07月11日 概述 本手册是操作身份证阅读器动态库应用函数的定义格式、调用方法和返回值的说明。在使用前,请确认授权文件termb.lic是否在你的PC机C:/根目录下。
1. 定义 应用函数开发包含下列文件: termb.dll API函数的动态联接库 sdtapi.dll 内部动态库 cvrapi.dll 内部动态库 wltrs.dll 内部动态库 termb.lic 身份证相片解压授权文件,放于C:/目录下 适用操作系统: Windows NT: 需要NT 3.1版或以后版本 Windows: 需要 Windows 98、Windows 2000或以后版本 适用开发语言: Visual C++ 5.0 及以后版本 Visual Basic 5.0 及以后版本 Delphi 3.0 及以后版本 PowerBuilder 6.0 及以后版本
2. 函数列表 int CVR_InitComm(int Port) 初始化连接; int CVR_Authenticate() 卡认证; int CVR_Read_Content(int Active) 读卡操作。 int CVR_CloseComm() 关闭连接; int CVR_Ant(int mode) 射频操作 int CVR_ReadBaseMsg ( unsigned char *pucCHMsg, unsigned int *puiCHMsgLen, unsigned char *pucPHMsg, unsigned int *puiPHMsgLen, int nMode) 读卡操作(读入内存) int GetPeopleName(char *strTmp, int *strLen) 得到姓名信息 int GetPeopleSex(char *strTmp, int *strLen) 得到性别信息 int GetPeopleNation(char *strTmp, int *strLen) 得到民族信息 int GetPeopleBirthday(char *strTmp, int *strLen) 得到出生日期 int GetPeopleAddress(char *strTmp, int *strLen) 得到地址信息 int GetPeopleIDCode(char *strTmp, int *strLen) 得到身份证号信息 int GetDepartment(char *strTmp, int *strLen) 得到发证机关信息 int GetStartDate(char *strTmp, int *strLen) 得到有效开始日期 int GetEndDate(char *strTmp, int *strLen) 得到有效截止日期
3. 函数调用流程
4. 函数说明 4.1 初始化连接 原 型:int CVR_InitComm (int Port) 说 明:本函数用于PC与华视电子第二代居民身份证阅读器的连接。 参 数:Port:连接串口或USB口
返回值:
4.2 关闭串口 原 型: int CVR_CloseComm(void) 说 明:本函数用于关闭PC到阅读器的连接。 参 数:无 返回值:
4.3 卡认证 原 型:int CVR_Authenticate (void) 说 明:本函数用于读卡器和卡片之间的合法身份确认。 参 数: 返回值:
注意:若卡片放置后发生认证错误时,应移走卡片重新放置。
4.4 读卡操作 原 型:int CVR_Read_Content(int Active); 说 明:本函数用于通过阅读器从第二代居民身份证中读取相应信息。 参 数:Active 读取信息类型
返回值:
4.5 射频操作 原 型:int CVR_Ant(int mode); 说 明:本函数用于打开/关闭射频。阅读器在不读卡时,如果射频对其它的电子产品有干扰的话,可以选择关闭射频,当需要读卡时,再打开射频。该函数只在当连接到串行接口的阅读器时,调用有效。如不调用此函数时,射频一直处于打开状态。 注:当 CVR_InitComm函数调用成功后,该函数有效。 参 数:mode
返回值:
4.6 读文字、照片信息到自定义内存缓冲 原 型:int CVR_ReadBaseMsg (unsigned char *pucCHMsg, unsigned int *puiCHMsgLen, unsigned char *pucPHMsg, unsigned int *puiPHMsgLen, int nMode) 说 明:此函数代替CVR_Read_Content函数,将身份信息读到自定义内存缓冲中。卡 认证CVR_Authenticate成功以后调用本函数。 参 数:
返回值:
4.7 读各项文字信息到自定义内存缓冲 原 型: int _stdcall GetPeopleName(char *strTmp, int *strLen) //得到姓名信息 int _stdcall GetPeopleSex(char *strTmp, int *strLen) //得到性别信息 int _stdcall GetPeopleNation(char *strTmp, int *strLen) //得到民族信息 int _stdcall GetPeopleBirthday(char *strTmp, int *strLen) //得到出生日期 int _stdcall GetPeopleAddress(char *strTmp, int *strLen) //得到地址信息 int _stdcall GetPeopleIDCode(char *strTmp, int *strLen) //得到卡号信息 int _stdcall GetDepartment(char *strTmp, int *strLen) //得到发证机关信息 int _stdcall GetStartDate(char *strTmp, int *strLen) //得到有效开始日期 int _stdcall GetEndDate(char *strTmp, int *strLen) //得到有效截止日期 说 明:以上函数调用流程为:调用 CVR_Read_Content 或者 CVR_ReadBaseMsg 函数 成功后再分别调用以上函数。CVR_Read_Content 或者 CVR_ReadBaseMsg 函数 自动 在应用程序当前目录产生BMP照片文件。 参数: *strTmp 返回的信息缓存指针。 *strLen 返回的信息长度指针。 返回值:
注意:若采用查询方式自动判断卡片是否放置,则间隔时间建议大于300ms。
注意: 1、 读完基本信息后,若需要立即读取最新住址信息或芯片管理号,在未移走卡片的情况下可以不用卡认证; 2、 单独读取最新住址信息或芯片管理号时,需要先进行卡认证; 3、若卡片放置后发生读卡错误时,应移走卡片重新放置。
文字信息采用GB 13000的UCS-2进行存储,各项目分配如下:
芯片管理号分配如下:
|