身份证阅读器动态库应用函数的定义格式、调用方法和返回值的说明

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

华视电子读写设备有限公司
本手册是操作身份证阅读器动态库应用函数的定义格式、调用方法和返回值的说明。

在使用前,请确认授权文件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. 函数列表
//以下为主要API函数
int CVR_InitComm(int Port) 初始化连接;
int CVR_Authenticate() 卡认证;
int CVR_Read_Content(int Active) 读卡操作。

int CVR_CloseComm() 关闭连接;
//以下为可选API函数,方便二次开发
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.1初
始化连接
原型:int CVR_InitComm (int Port)
说明:本函数用于PC与华视电子第二代居民身份证阅读器的连接。

参数:Port:连接串口(COM1~COM16)或USB口(1001~1016)
返回值:
4.2关闭串口
原型:
int CVR_CloseComm(void)
说明:本函数用于关闭PC到阅读器的连接。

参数:无
返回值:
4.3卡认证
原型:int CVR_Authenticate (void)
说明:本函数用于读卡器和卡片之间的合法身份确认。

卡认证循环间隔大于300ms。

参数:
返回值:
注意:若卡片放置后发生认证错误时,应移走卡片重新放置。

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进行存储,各项目分配如下:
芯片管理号分配如下:
function CVR_InitComm(const Port:integer):integer; stdcall; external 'termb.dll';
function CVR_Authenticate():integer; stdcall; external 'termb.dll';
function CVR_Read_Content(const Active:integer):integer; stdcall; external 'termb.dll';
function CVR_CloseComm():integer; stdcall; external 'termb.dll';
function CVR_Ant(const mode:integer):integer; stdcall; external 'termb.dll';
function CVR_ReadBaseMsg(const pucCHMsg:pchar ;const puiCHMsgLen:Longint;const nMode:integer):integer; stdcall; external 'termb.dll';
function GetPeopleName(const strTmp:pchar;const strLen:integer):integer; stdcall; external 'termb.dll';
function GetPeopleSex(const strTmp:pchar;const strLen:integer):integer; stdcall; external 'termb.dll';
function GetPeopleNation(const strTmp:pchar;const strLen:integer):integer; stdcall; external 'termb.dll';
function GetPeopleBirthday(const strTmp:pchar;const strLen:integer):integer; stdcall; external 'termb.dll';
function GetPeopleAddress(const strTmp:pchar;const strLen:integer):integer; stdcall; external 'termb.dll';
function GetPeopleIDCode(const strTmp:pchar;const strLen:integer):integer; stdcall; external 'termb.dll';
function GetDepartment(const strTmp:pchar;const strLen:integer):integer; stdcall; external 'termb.dll';
function GetStartDate(const strTmp:pchar;const strLen:integer):integer; stdcall; external 'termb.dll';
function GetEndDate(const strTmp:pchar;const strLen:integer):integer; stdcall; external 'termb.dll';。

相关文档
最新文档