1、身份证阅读器动态库应用函数的定义格式调用方法和返回值的说明华视电子读写设备有限公司 本手册是操作身份证阅读器动态库应用函数的定义格式、调用方法和返回值的说明。在使用前,请确认授权文件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 200
2、0或以后版本适用开发语言: 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_ReadBa
3、seMsg ( 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 GetPe
4、opleBirthday(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 *s
5、trLen) 得到有效截止日期3. 函数调用流程. 函数说明4.1 初始化连接原 型:int CVR_InitComm (int Port)说 明:本函数用于PC与华视电子第二代居民身份证阅读器的连接。参 数:Port:连接串口(COM1COM16)或USB口(10011016)值意义1串口12串口23串口34串口41001USB口11002USB口21003USB口31004USB口4返 回 值:值意义1正确0错误4.2 关闭串口原 型: int CVR_CloseComm(void)说 明:本函数用于关闭PC到阅读器的连接。参 数:无返 回 值:值意义1正确0错误4.3 卡认证原 型:in
6、t CVR_Authenticate (void)说 明:本函数用于读卡器和卡片之间的合法身份确认。卡认证循环间隔大于300ms。参 数: 返 回 值:值意义说明1正确卡片正确放置时0错误未放卡或卡片放置不正确时注意:若卡片放置后发生认证错误时,应移走卡片重新放置。4.4 读卡操作原 型:int CVR_Read_Content(int Active);说 明:本函数用于通过阅读器从第二代居民身份证中读取相应信息。卡认证成功以后才可做读卡操作,读卡完毕若继续读卡应移走二代证卡片重新放置做卡认证。参 数:Active 读取信息类型Active意义说明1读基本信息生成文字WZ.TXT、相片数据XP
7、.WLT和相片ZP.BMP(解码)2读基本信息生成文字WZ.TXT和相片数据XP.WLT3读最新住址信息生成最新住址NEWADD.TXT(卡无最新地址则生成空文件)4读基本信息生成WZ.TXT(解码),相片ZP.BMP(解码)5读芯片管理号芯片管理号IINSNDN.bin6读基本信息以设备唯一标志号,生成文字WZ.TXT(解码),相片XP.BMP(解码)(用于终端网络环境) 返 回 值:返回值意义1正确0错误4.5 射频操作原 型:int CVR_Ant(int mode);说 明:本函数用于打开/关闭射频。阅读器在不读卡时,如果射频对其它的电子产品有干扰的话,可以选择关闭射频,当需要读卡时,
8、再打开射频。该函数只在当连接到串行接口的阅读器时,调用有效。如不调用此函数时,射频一直处于打开状态。 注:当 CVR_InitComm函数调用成功后,该函数有效。参 数:mode MODE意义0关闭射频1打开射频返 回 值:返回值意义1正确0错误4.6 读文字、照片信息到自定义内存缓冲 原 型:int CVR_ReadBaseMsg (unsigned char *pucCHMsg, unsigned int *puiCHMsgLen, unsigned char *pucPHMsg, unsigned int *puiPHMsgLen, int nMode) 说 明:此函数代替CVR_Rea
9、d_Content函数,将身份信息读到自定义内存缓冲中。卡 认证CVR_Authenticate成功以后调用本函数。 参 数: 参 数说 明备 注pucCHMsg身份文字信息内存缓冲指针方向:OutpuiCHMsgLen身份文字信息长度默认 256 BytepucPHMsg身份照片信息内存缓冲指针方向:OutpuiPHMsgLen身份照片信息长度默认 1024 BytenMode传入参数 1文字编码为默认UCS-2格式,照片未解压成bmp文件传入参数 2文字编码已转换成GBK国标码格式,照片未解压成bmp文件传入参数 3文字编码为默认UCS-2格式,照片已解压成zp.bmp文件传入参数 4文字
10、编码已转换成GBK国标码格式,照片已解压成zp.bmp文件返 回 值:返回值意义1正确0错误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
11、, 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 GetEndDa
12、te(char *strTmp, int *strLen) /得到有效截止日期说 明:以上函数调用流程为:调用 CVR_Read_Content 或者 CVR_ReadBaseMsg 函数 成功后再分别调用以上函数。CVR_Read_Content 或者 CVR_ReadBaseMsg 函数 自动 在应用程序当前目录产生BMP照片文件。参数: *strTmp 返回的信息缓存指针。 *strLen 返回的信息长度指针。返 回 值:返回值意义1正确0错误注意:若采用查询方式自动判断卡片是否放置,则间隔时间建议大于300ms。注意:1、 读完基本信息后,若需要立即读取最新住址信息或芯片管理号,在未移
13、走卡片的情况下可以不用卡认证;2、 单独读取最新住址信息或芯片管理号时,需要先进行卡认证;3、若卡片放置后发生读卡错误时,应移走卡片重新放置。文字信息采用GB 13000的UCS-2进行存储,各项目分配如下:项目长度(字节)说明姓名30汉字性别2代码民族4代码出生16年月日:YYYYMMDD住址70汉字和数字公民身份号码36数字签发机关30汉字有效期起始日期16年月日:YYYYMMDD有效期截止日期16年月日:YYYYMMDD有效期为长期时存储“长期”最新住址70汉字和数字芯片管理号分配如下:项目长度(字节)说明IIN4SN8DN16function CVR_InitComm(const Po
14、rt: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):in
15、teger; 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 strTm
16、p: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
17、(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;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1