华视身份证阅读器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口

意义

1

串口1

2

串口2

3

串口3

4

串口4

1001

USB口1

1002

USB口2

1003

USB口3

1004

USB口4

返回值:

意义

1

正确

0

错误

4.2    关闭串口

原    型:

int CVR_CloseComm(void)

说    明:本函数用于关闭PC到阅读器的连接。

参    数:无

返回值:

意义

1

正确

0

错误

4.3    卡认证

原    型:int CVR_Authenticate (void)

说    明:本函数用于读卡器和卡片之间的合法身份确认。

参    数:

返回值:

意义

说明

1

正确

卡片正确放置时

0

错误

未放卡或卡片放置不正确时

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

4.4    读卡操作

原    型:int CVR_Read_Content(int Active);

说    明:本函数用于通过阅读器从第二代居民身份证中读取相应信息。

参    数:Active   读取信息类型

Active

意义

说明

1

读基本信息

生成文字WZ.TXT、相片数据XP.WLT和相片ZP.BMP(解码)

2

读基本信息

生成文字WZ.TXT和相片数据XP.WLT

3

读最新住址信息

生成最新住址NEWADD.TXT(卡无最新地址则生成空文件)

4

读基本信息

生成WZ.TXT(解码),相片ZP.BMP(解码)

5

读芯片管理号

芯片管理号IINSNDN.bin

6

读基本信息

以设备唯一标志号,生成文字WZ.TXT(解码),相片XP.BMP(解码)

(用于终端网络环境)

返回值:

返回值

意义

1

正确

0

错误

 

4.5    射频操作

原    型:int CVR_Ant(int mode);

说    明:本函数用于打开/关闭射频。阅读器在不读卡时,如果射频对其它的电子产品有干扰的话,可以选择关闭射频,当需要读卡时,再打开射频。该函数只在当连接到串行接口的阅读器时,调用有效。如不调用此函数时,射频一直处于打开状态。

注:当 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_Read_Content函数,将身份信息读到自定义内存缓冲中。卡                认证CVR_Authenticate成功以后调用本函数。

参     数:

pucCHMsg

身份文字信息内存缓冲指针

方向:Out

puiCHMsgLen

身份文字信息长度

默认 256 Byte

pucPHMsg

身份照片信息内存缓冲指针

方向:Out

puiPHMsgLen

身份照片信息长度

默认 1024 Byte

nMode

传入参数1

文字编码为默认UCS-2格式,

照片未解压成bmp文件

传入参数2

文字编码已转换成GBK国标码格式,

照片未解压成bmp文件

传入参数3

文字编码为默认UCS-2格式,

照片已解压成zp.bmp文件

传入参数4

文字编码已转换成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, 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    返回的信息长度指针。

返回值:

返回值

意义

1

正确

0

错误

 

 

 

 

 

注意:若采用查询方式自动判断卡片是否放置,则间隔时间建议大于300ms

 

注意:

1、  读完基本信息后,若需要立即读取最新住址信息或芯片管理号,在未移走卡片的情况下可以不用卡认证;

2、  单独读取最新住址信息或芯片管理号时,需要先进行卡认证;

3、若卡片放置后发生读卡错误时,应移走卡片重新放置。

文字信息采用GB 13000的UCS-2进行存储,各项目分配如下:

项目

长度(字节)

说明

姓名

30

汉字

性别

2

代码

民族

4

代码

出生

16

年月日:YYYYMMDD

住址

70

汉字和数字

公民身份号码

36

数字

签发机关

30

汉字

有效期起始日期

16

年月日:YYYYMMDD

有效期截止日期

16

年月日:YYYYMMDD

有效期为长期时存储“长期”

最新住址

70

汉字和数字

芯片管理号分配如下:

项目

长度(字节)

说明

IIN

4

SN

8

DN

16

华视身份证阅读器SDK使用手册相关推荐

  1. python能调用身份证读卡器吗_最近的项目中用到读卡器,用的华视身份证阅读器,附上SDK使用手册...

    最近的项目中用到读卡器,用的华视身份证阅读器,附上SDK使用手册 1.定义 应用函数开发包含下列文件: termb.dll      API函数的动态联接库 sdtapi.dll     内部动态库 ...

  2. 最近的项目中用到读卡器,用的华视身份证阅读器,附上SDK使用手册

    <script type="text/javascript">// </script> <script type="text/javascr ...

  3. JNA二次开发华视身份证阅读器

    JNA二次开发华视身份证阅读器 前言 添加依赖 SDK资料 编写代码 遇到的问题(坑) 前言 这两天了解了一下java调用dll动态库的方法,总的有三种:JNI.JNA.JNative,其中JNA调用 ...

  4. VUE实现华视身份证阅读器读取身份证信息

    VUE实现华视身份证阅读器读取身份证信息 话不多上直接上代码,写的不怎么规范多多包涵,我是在模态框实现的,在这里就只提供模态框代码. 最后附上华视身份证阅读器安装文件和浏览器插件链接: [https: ...

  5. VUE实现华视身份证阅读器读取身份证信息(本文分两种情况,第一中是点击按钮读取信息,一种是自动读取信息)

    本文是用了vue+element来实现华视身份证读卡器读取身份信息的,当然在开发之前要做好前提准备,就是厂家提供对应设备的api和安装对应的驱动.本文通过两种方法来实现读取信息,第一种是点击按钮读取信 ...

  6. Node.js 调用 dll动态库 以华旭身份证阅读器为例

    需求来源 由于使用Electron使用开发桌面端,同时也需要连接硬件设备,单纯使用js方法无法完成,需要通过Node调用dll动态库方式完成. 版本说明: node v12.18.3 (32位) np ...

  7. python能调用身份证读卡器吗_华视身份证读卡机Python二次开发

    最近项目中用到华视身份证读卡机,那么本篇文章就是根据Python代码来实现对华视身份证读卡机中读卡操作. 华视身份证阅读器SDK手册 下面是官方提供的SDK使用手册,我就不描述到本篇文章中了,相信大家 ...

  8. 二代身份证阅读器 C#、JAVA调用教程

    型号:普天CPIDMR02/TG身份证阅读器 SDK版本:2020 (我这不提供下载,自己咨询卖家,或者网上自己找,SDK 厂家不二次封装的机器理论通用) 新老版本区别: 多了外国人永久居留身份证.港 ...

  9. 华视100UC 身份证阅读器 Java

    华视100UC 身份证阅读器 Java 哪位大佬有64位可用的dll文件,施舍给小弟吧,万分感谢 功能 环境 个人想法(有不对的地方希望大佬指正) 对于dll文件的想法 目录结构 1. pom.xml ...

最新文章

  1. PowerShell 2.0管理事件日志(一)查看和读取事件日志
  2. Linux下显示硬盘空间的两个命令
  3. Git related
  4. ​​毕业论文选题三步法
  5. AngularJS中自定义过滤器
  6. 【转】python类中super()和__init__()的区别
  7. Shell脚本对Linux进行文件校验
  8. python安装pyecharts清华_基于Python安装pyecharts所遇的问题及解决方法
  9. spring支持的事务管理
  10. 基于xml技术的操作
  11. 自定义DataAnnotations
  12. 瑶光TechTalk | 迈向多维智慧,智能画像与预测算法剖析
  13. Xcode7 Xcode6 中添加pch文件
  14. 华为广域网帧中继(背靠背)配置
  15. Servlet技术详解
  16. 简述软件工程、软件开发方法、软件开发工具相关概念及之间的关系
  17. 阿里金融云操作教程Plus
  18. 将前端传过来的base64加密图片保存到本地,并且判断来自于哪个终端
  19. 事关微信支付,别成为背锅侠!
  20. Pspice仿真实验 例B-1

热门文章

  1. [旋转卡壳]最大土地面积 AcWing2617
  2. Win8系统mscomctl.ocx缺失的解决方法 run-time error 339
  3. libhv教程11--创建一个简单的HTTP客户端
  4. 【多人会议功能】uniapp - 微信小程序 - 腾讯云
  5. 计算机系统软件和应用软件的区别
  6. 使用spire.doc实现word文档合并
  7. Android Studio上Kotlin的入门,移动应用系统开发
  8. 英语背单词有用吗_英语背单词真的有用吗?
  9. 少儿编程航天主题,scratch与航天航空主题:八大行星排排序
  10. ios使用lua详解