第二代身份证阅读器|身份证读卡器|身份证识别器—广东东控智能科技有限公司

广东东控
第二代身份证阅读器
  • 网站首页
  • 产品中心
    身份证阅读器 人脸识别比对系统 身份证读卡器 访客登记管理系统 指纹采集器 身份证门禁系统 护照阅读器
    华大HD-900内置式二代证阅读器模组

    华大HD-900内置式二代证阅读器模组

    华大HD-100身份证阅读器模组

    华大HD-100身份证阅读器模组

    熵基科技ID510手持式人证核验终端

    熵基科技ID510手持式人证核验终端

    Q8安卓人证核验系统一体机

    Q8安卓人证核验系统一体机

    熵基科技ID830人证核验智能终端一体机

    熵基科技ID830人证核验智能终端一体机

    V-10000LW-A自动测温人脸识别一体机红外温控人证核验一体机

    V-10000LW-A自动测温人脸识别一体机红外温控人证核验一体机

    首云SW100多功能读卡器

    首云SW100多功能读卡器

    东控智能IDR-100U第二代身份证阅读器身份证读卡器WEB网页开发版支持谷歌火狐360浏览器二次开发

    东控智能IDR-100U第二代身份证阅读器身份证读卡器WEB网页开发版支持谷歌火狐360浏览器二次开发

    华视CVR-100BF蓝牙身份证读卡器

    华视CVR-100BF蓝牙身份证读卡器

    东控智能EC-VV9大屏访客一体机

    东控智能EC-VV9大屏访客一体机

    东控智能EC-X30双屏访客一体机

    东控智能EC-X30双屏访客一体机

    东控智能V8.0访客门禁管理系统

    东控智能V8.0访客门禁管理系统

    熵基科技Live10RBS高性能指纹采集器

    熵基科技Live10RBS高性能指纹采集器

    Live 50r指纹采集器

    Live 50r指纹采集器

    华视CV-300E居民身份证指纹采集器

    华视CV-300E居民身份证指纹采集器

    东控智能EC9000网络云身份证门禁系统

    东控智能EC9000网络云身份证门禁系统

    东控智能EC8000网络云身份证门禁系统

    东控智能EC8000网络云身份证门禁系统

    东控智能IDR-100K身份证门禁系统二合一读卡器

    东控智能IDR-100K身份证门禁系统二合一读卡器

    护照阅读器DESKO ICON Scanner

    护照阅读器DESKO ICON Scanner

    护照阅读器DESKO CUBE 2

    护照阅读器DESKO CUBE 2

    PV60电子护照阅读器

    PV60电子护照阅读器

  • 新闻资讯

    公司新闻

    行业动态

    批发快讯

  • 成功案例
    批发快讯 批发快讯

    合作伙伴

    成功案例

  • 解决方案
    • 人工智能

      人工智能 安检考勤 人脸识别 访客门禁 人证一体机
    • 系统服务

      系统服务 谷歌&火狐 windows&Linux 安卓Android SDK二次开发
    • 解决方案 ★行业支持 ★接口支持 ★功能支持 ★系统支持 ★多卡支持 ★合理解决
  • 帮助中心
    • 成功案例售后服务
    • 成功案例常见问题
    • 成功案例驱动下载
  • 关于我们
    • 成功案例公司简介
    • 成功案例企业文化
    • 成功案例组织架构
    • 成功案例资质证书
  • 联系我们
    成功案例 成功案例

    联系方式

    在线客服

  • 集团网站
    • {$c['name']广州万特信息科技有限公司
    • {$c['name']神思身份证阅读器销售中心
    • {$c['name']广州创芯电子科技有限公司
    • {$c['name']第二代身份证读卡器
    • {$c['name']熵基科技身份证阅读器销售中心
    • {$c['name']新中新身份证阅读器销售中心
    • {$c['name']精伦身份证阅读器销售中心
    • {$c['name']京东商城网店

帮助中心

当前位置:主页 > 帮助中心 > 常见问题

精伦CS二次开发接口说明V4.2

来源:www.eastcontrol.cn

相关标签: 精伦 CS 二次开发 接口

时间:2021-07-14

摘要:1.概述我公司开发的二代身份证读卡系列机具适用于相关行业的联机型应用。产品提供了完善的二次软件开发接口(API)。本手册对开发接口的文件组成、函数定义格式、调用方法及返...

1. 概述

我公司开发的二代身份证读卡系列机具适用于相关行业的联机型应用。产品提供了完善的二次软件开发接口(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机,必须满足下列条件:
l Windows 98、Windows 2000 Pro、Windows 2000 Server、
Windows XP。
l 至少32兆内存(32M RAM or Larger)。
l 至少10兆空闲硬盘空间(10M Free Hard Disk Space or Larger)。
l 至少一个空闲普通串口或USB口(视用户需求而定)。

3. 接口文件说明

接口文件包括:
Dewlt.dll   相关动态联接库
sdtapi.dll       该文档所有说明的接口都在该动态联接库
SavePhoto.dll    相关动态联接库
sdtapi.h  该文档包括的所有接口的头文件
适用开发语言:
Visual C++   5.0 及以后版本
C++ Builder  5.0 及以后版本
    Visual Basic  5.0 及以后版本
    Delphi         3.0 及以后版本
    PowerBuilder 5.0 及以后版本
 

4. Sdtapi.ll接口函数说明

4.1. 端口函数

4.1.1. 端口初始化函数

原    型:int InitComm (int iPort)
说    明:本函数用于打开串口或USB并检测读卡设备是否就绪。
参    数:iPort:设置串口、USB(公安部标准驱动)、USB-HID(免驱动)、USB-CCID接口。
 

串口1 – 16(十进制)例如:
1: 1(COM1)
2:2(COM2)
USB10011001
 
 

 
返 回 值:

值意义
1正确
其它错误
 


注:如果读卡机具连接的端口是确定的,可以直接使用相应端口号调用本函数。否则,可以采用循环查找的方式调用本函数。

4.1.2. 端口关闭接口

原    型:int CloseComm(void)
说    明:本函数用于关闭已打开的端口,一般在调用InitComm成功并完成读卡任务后调用。
参    数:无
返 回 值:

值意义
1正确
其它错误
 

注意:如果不再使用已打开的端口,必须使用CloseComm函数关闭端口。
 

4.1.3. 关闭天线接口

原    型:int Routon_ShutDownAntenna (void)
说    明:本函数用于关闭天线场强。使用前必须端口初始化(InitComm)成功,关闭天线后,调用卡认证接口或者找卡命令,天线场强将自动打开。
参    数:无
返 回 值:

值意义
1正确
0错误
-1端口未打开
 

4.1.4. 获取当前接入的HID接口iDR210数量

原    型:int GetHIDCount (void)
说    明:本函数用于获取当前接入的HID接口iDR210的数量。使用前必须端口初始化(InitComm)成功。
参    数:无
返 回 值:

值意义
数字设备数量
 

 

4.1.5. 设定当前操作的HID接口iDR210 

原    型:bool HIDSelect (int index)
说    明:本函数用于设定当前操作的HID接口iDR210。使用前必须端口初始化(InitComm)成功。
参    数:index,指定的iDR210的索引号。比如当前接入的设备数量是2,则在调用认证或找卡函数前,可分别使用HIDSelect (1)或HIDSelect (2)来指定准备操作的iDR210设备。
返 回 值:

值意义
true成功
false失败
 

 

4.2. 读二代证相关函数

4.2.1. 卡认证接口

原    型:int Authenticate (void)
说    明:本函数用于发现身份证卡并选择卡。
参    数:无
返 回 值:

值意义
1正确
0错误
 

 
注:认证卡时,需要将身份证放置于读卡机具上方并做稍许时间的停留。如果函数返回错误表示没有发现卡或者卡停留时间太短。

4.2.2. 读卡信息接口

原    型:int ReadBaseMsg( unsigned char * pMsg, int * len);
说    明:本函数用于读取卡中基本信息,包括文字信息与图像信息。文字信息已经分段解析,输出格式为单字节,且每一字段信息已经被表示为字符串。图象信息被解码后存为文件photo.bmp(在当前工作目录下)。
参    数:
pMsg  [out] 无符号字符指针,指向读到的文本信息。需要在调用时分配内存,字节数不小于192。函数调用成功后,各字段的文本信息已经转换为单字节形式,并表示为字符串格式。字段意义及偏移值如下所示:
 

项目长度(字节)说明
姓名31汉字
性别3汉字
民族10汉字
出生日期9CCYYMMDD
住址71汉字和数字
公民身份号码19数字
签发机关31汉字
有效期起始日期9CCYYMMDD
有效期截止日期9CCYYMMDD
有效期为长期的表示为汉字“长期”

Len [out] 整数, 返回总字符长度,可以给空值(NULL)。
 
返 回 值:

值意义
1正确
0错误
 

 
原    型2:int ReadBaseMsgPhoto( unsigned char * pMsg, int * len,char * directory);
说    明:本函数用于读取卡中基本信息,包括文字信息与图像信息。文字信息已经分段解析,输出格式为单字节,且每一字段信息已经被表示为字符串。图象信息被解码后存为文件photo.bmp(在directory指定目录下)。
参    数:
pMsg  [out] 无符号字符指针,指向读到的文本信息。需要在调用时分配内存,字节数不小于192。函数调用成功后,各字段的文本信息已经转换为单字节形式,并表示为字符串格式。字段意义及偏移值如下所示:
 

项目长度(字节)说明
姓名31汉字
性别3汉字
民族10汉字
出生日期9CCYYMMDD
住址71汉字和数字
公民身份号码19数字
签发机关31汉字
有效期起始日期9CCYYMMDD
有效期截止日期9CCYYMMDD
有效期为长期的表示为汉字“长期”

Len [out] 整数, 返回总字符长度,可以给空值(NULL)。
    directory [in] 字符指针,表示照片存储路径,路径最后有无“\”均可;可以给空值(NULL),表示照片存储在当前目录中,此时函数效果同ReadBaseMsg。
返 回 值:

值意义
1正确
0错误
4目录不存在
 

 
原    型3:int ReadBaseInfos( char * Name, char * Gender, char * Folk,
char *BirthDay, char * Code, char * Address,char *Agency, char * ExpireStart,char* ExpireEnd)
说    明:本函数用于读取卡中基本信息,包括文字信息与图像信息。文字信息以字符串格式输出。照片信息被解码后存为文件photo.bmp。
参    数:
Name [out] 字符型指针,指向姓名信息。需要在调用时分配内存,字节数不小31。
Gender [out] 字符型指针,指向性别信息(男或者女)。需要在调用时分配内存,字节数不小3。
Folk [out] 字符型指针,指向民族信息。需要在调用时分配内存,字节数不小10。
BirthDay [out] 字符型指针,指向出生日期信息。需要在调用时分配内存,字节数不小9,前四位为出生年,第5位到第6位是出生月,后两位是出生日,格式为:CCYYMMDD。
Code [out] 字符型指针,指向身份证号码信息。需要在调用时分配内存,字节数不小19。
Address [out] 字符型指针,指向地址信息。需要在调用时分配内存,字节数不小71。
Agency [out] 字符型指针,指向签证机关信息。需要在调用时分配内存,字节数不小31。
ExpireStart [out] 字符型指针,指向有效期起始日期信息。需要在调用时分配内存,字节数不小9, 格式为:CCYYMMDD。
ExpireEnd [out] 字符型指针,指向有效期截至日期信息。需要在调用时分配内存,字节数不小9,格式为:CCYYMMDD,有效期为长期的表示为汉字“长期”。
 
 
返 回 值:

值意义
1正确
0错误
-4缺少dewlt.dll、savephoto.dll等DLL
 

 
原    型4:int ReadBaseInfosPhoto( char * Name, char * Gender, char * Folk,char *BirthDay, char * Code, char * Address,char *Agency, char * ExpireStart,char* ExpireEnd,char * directory)
说    明:本函数用于读取卡中基本信息,包括文字信息与图像信息。文字信息以字符串格式输出。图象信息被解码后存为照片photo.bmp和photo.jpg,身份证正面反面合成图片card.jpg(在directory指定目录下)。
参    数:
Name [out] 字符型指针,指向姓名信息。需要在调用时分配内存,字节数不小31。
Gender [out] 字符型指针,指向性别信息(男或者女)。需要在调用时分配内存,字节数不小3。
Folk [out] 字符型指针,指向民族信息。需要在调用时分配内存,字节数不小10。
BirthDay [out] 字符型指针,指向出生日期信息。需要在调用时分配内存,字节数不小9,前四位为出生年,第5位到第6位是出生月,后两位是出生日,格式为:CCYYMMDD。
Code [out] 字符型指针,指向身份证号码信息。需要在调用时分配内存,字节数不小19。
Address [out] 字符型指针,指向地址信息。需要在调用时分配内存,字节数不小71。
Agency [out] 字符型指针,指向签证机关信息。需要在调用时分配内存,字节数不小31。
ExpireStart [out] 字符型指针,指向有效期起始日期信息。需要在调用时分配内存,字节数不小9, 格式为:CCYYMMDD。
ExpireEnd [out] 字符型指针,指向有效期截至日期信息。需要在调用时分配内存,字节数不小9,格式为:CCYYMMDD,有效期为长期的表示为汉字“长期”。
directory [in] 字符指针,表示照片存储路径,路径最后有无“\”均可;可以给空值(NULL),表示照片存储在当前目录中,此时函数效果同ReadBaseInfos。
 
返 回 值:

值意义
1正确
0错误
4目录不存在
-4缺少dewlt.dll、savephoto.dll等DLL
 

 
原    型5:int ReadBaseMsgW( unsigned char * pMsg, int * len);
说    明:本函数用于读取卡中基本信息,包括文字信息与图像信息。文字信息未解析,文字信息采用GB13000的UCS-2进行存储,图象信息被解码后存为文件photo.bmp(在当前工作目录下)。
参    数:
pMsg  [out] 无符号字符指针,指向读到的文本信息。需要在调用时分配内存,字节数不小于256。偏移值如下所示:
 

项目长度(字节)说明
姓名30汉字
性别2代码
民族4代码
出生16年月日:YYYYMMDD
住址70汉字和数字
公民身份号码36数字
签发机关30汉字
有效期起始日期16年月日:YYYYMMDD
有效期截止日期16年月日:YYYYMMDD
有效期为长期时存储“长期”
最新住址70汉字和数字

 
Len [out] 整数, 返回基本信息长度。
 
返 回 值:

值意义
1正确
0错误
 

 
原    型6:int ReadBaseMsgWPhoto( unsigned char * pMsg, int * len,char * directory));
说    明:本函数用于读取卡中基本信息,包括文字信息与图像信息。文字信息未解析,文字信息采用GB13000的UCS-2进行存储,图象信息被解码后存为文件photo.bmp(在directory指定目录下)。
参    数:
pMsg  [out] 无符号字符指针,指向读到的文本信息。需要在调用时分配内存,字节数不小于256。偏移值如下所示:
 

项目长度(字节)说明
姓名30汉字
性别2代码
民族4代码
出生16年月日:YYYYMMDD
住址70汉字和数字
公民身份号码36数字
签发机关30汉字
有效期起始日期16年月日:YYYYMMDD
有效期截止日期16年月日:YYYYMMDD
有效期为长期时存储“长期”
最新住址70汉字和数字

 
Len [out] 整数, 返回基本信息长度。
directory [in] 字符指针,表示照片存储路径,路径最后有无“\”均可;可以给空值(NULL),表示照片存储在当前目录中,此时函数效果同ReadBaseMsgW。
 
返 回 值:

值意义
1正确
0错误
4目录不存在
 

 
 
注:读卡基本信息时,需要将身份证置于读卡机具上方做稍许时间的停留。
 

4.2.3. 读追加地址信息

原    型1:int ReadNewAppMsg( unsigned char * pMsg, int * num );
说    明:本函数用于读取卡中追加地址信息,输出格式为单字节字符串格式。
参    数:
pMsg  [out] 无符号字符指针,指向读到的追加地址信息。需要在调用时分配内存,字节数不小于284。字段意义及偏移值如下所示:

项目长度(字节)说明
追加地址171汉字和数字
追加地址271汉字和数字
追加地址371汉字和数字
追加地址471汉字和数字


 
num [out] 整数, 返回读到的追加地址数。最多为4个。
 
返 回 值:

值意义
1正确
0错误
 

 
原    型2:int ReadNewAppInfos( unsigned char * addr1,
unsigned char * addr2,unsigned char * addr3,
unsigned char * addr4,int * num );
说    明:本函数用于读取卡中追加地址信息,输出格式为单字节字符串格式。
参    数:
addr1、addr2、addr3、addr4 [out] 无符号字符指针,分别指向读到的追加地址信息。需要在调用时分配内存,字节数分别不小于71。
 
num [out] 整数, 返回读到的追加地址数。最多为4个。
 
返 回 值:

值意义
1正确
0错误
 

 
原    型3:int ReadNewAppMsgW( unsigned char * pMsg, int * num );
说    明:本函数用于读取卡中追加地址信息,信息采用GB13000的UCS-2进行存储。
参    数:
pMsg  [out] 无符号字符指针,指向读到的追加地址信息。需要在调用时分配内存,字节数不小于280。偏移值如下所示:

项目长度(字节)说明
追加地址170汉字和数字
追加地址270汉字和数字
追加地址370汉字和数字
追加地址470汉字和数字


num [out] 整数, 返回读到的追加地址数。最多为4个。
 
返 回 值:

值意义
1正确
0错误
 

 
注:读追加地址信息时,需要将身份证置于读卡机具上方做稍许时间的停留。

4.2.4. 读卡体管理号

原    型:int ReadIINSNDN( char * pMsg );
说    明:本函数用于读取身份证卡的管理号。
参    数:
pMsg [out] 字符指针,需要在调用时分配内存,字节数不小于16。返回8个16进制证卡序列号。
 
返 回 值:

值意义
1正确
0错误
 

注:针对ERP编码为1IDA14016(即PCB型号B1342-3) 和 1IDA14018(即PCB型号B1342-3)的串口组件设备,请使用原型2接口来读取身份证物理卡号。
原型2: int  Routon_ReadIINSNDN( char * pMsg );
说    明:本函数用于读取身份证卡的管理号。
参    数:
pMsg [out] 字符指针,需要在调用时分配内存,字节数不小于16。返回8个16进制证卡序列号。
 
返 回 值:

值意义
1正确
0错误
 

 
 

4.2.5.  读模块序列号

原    型:int  GetSAMIDToStr( char *pcSAMID );
说    明:本函数用于读取验证安全控制模块(SAM_V)的序列号。
参    数:
pcSAMID [out] 字符指针,需要在调用时分配内存,字节数不小于37。模块序列号分为5个部分,格式为『2字符.2字符-8字符-10字符-10字符』,共36个字符;
 
返 回 值:


值意义
1正确
0协议包读写错误
-1通讯失败
-3接收错误协议包
-4读取包错误(base64串口设备)
-5,-6,-8读取超时
 

4.2.6. 判断身份证是否在设备上

原    型:int  CardOn ( void);
说    明:本函数用于用于判断身份证是否在机具上。
注  意:只能用于读卡之后判断卡是否离开,在找卡、选卡、读卡过程中不要使用本函数,会导致读卡失败!
参    数: 无
 
返 回 值:


值意义
1有身份证
0无身份证
 

 

4.2.7. 判断设备是否支持指纹信息读取

原    型:int  IsFingerPrintDevice(void);
说    明:本函数用于判断iDR210是否支持指纹信息读取。
参    数:无
注  意:使用前需要先端口初始化InitComm。
 
返 回 值:


值意义
1支持
-1设备不支持
-2模块不支持
 

 

4.2.8. 读指纹及卡信息接口

原    型:int ReadBaseFPMsg( unsigned char * pMsg, int * len ,unsigned char * pucFPMsg,unsigned int  *puiFPMsgLen);
说    明:本函数用于读取指纹信息及卡中基本信息,包括文字信息与图像信息。文字信息已经分段解析,输出格式为单字节,且每一字段信息已经被表示为字符串。图象信息被解码后存为文件photo.bmp(在当前工作目录下)。
参    数:
pMsg  [out] 无符号字符指针,指向读到的文本信息。需要在调用时分配内存,字节数不小于192。函数调用成功后,各字段的文本信息已经转换为单字节形式,并表示为字符串格式。字段意义及偏移值如下所示:
 

项目长度(字节)说明
姓名31汉字
性别3汉字
民族10汉字
出生日期9CCYYMMDD
住址71汉字和数字
公民身份号码19数字
签发机关31汉字
有效期起始日期9CCYYMMDD
有效期截止日期9CCYYMMDD
有效期为长期的表示为汉字“长期”

Len [out] 整数, 返回总字符长度,可以给空值(NULL)。
 
pucFPMsg [out] 无符号字符指针,指向读到的指纹信息。需要在调用时分配内存,字节数不小于1024。
 
puiFPMsgLen [out] 整数, 返回指纹信息长度。
 
返 回 值:

值意义
1正确
0错误
 

 

4.3. Type A卡相关函数

注意:串口型iDR200和iDR210支持读写Type A卡。
iDR210使用Routon开头的相关函数。
串口型iDR200使用dc_开头的相关函数。
 

4.3.1. 找IC卡

原    型:int Routon_IC_FindCard();
说    明:本函数用于寻卡。
参    数: 无。
 
返 回 值:


值意义
1M1-S50卡
2CPU卡
3M1-S70卡
4Mifare UltraLight卡
0未找到卡
其他不明卡错误码
 

4.3.2. 读IC卡序列号高级函数

原    型:int Routon_IC_HL_ReadCardSN(char * SN);
说    明:本函数用于读取IC卡的序列号,自动完成找卡、选卡等过程。
参    数: SN [out] 字符指针,需要在调用时分配内存,字节数不小于16。
 
返 回 值:


值意义
1正确
0错误
 

 

4.3.3. 读IC卡区块高级函数

原    型:
int Routon_IC_HL_ReadCard (int SID,int BID,
int KeyType,unsigned char * Key,
unsigned char * data);
说    明:本函数用于读取IC卡指定扇区的数据内容,在调用本函数前需要先找卡Routon_IC_FindCard()。
参    数:
SID为扇区号,0-15之间(对M1S50卡)。
BID为块号,0-3之间。
KeyType为密钥类型,两种:0x60 keyA,0x61 keyB。
Key为密钥。
data为读取到的数据内容,需要在调用时分配内存,字节数不小于16。
 
 
返 回 值:


值意义
1正确
0读卡错误
-1参数错误
-3密钥或卡类型错
 

备注:如果为Mifare UltraLight卡,参数SID,KeyType,Key可为0或空值,只需传入BID即可。
 

4.3.4. 写IC卡区块高级函数

原    型:
int Routon_IC_HL_WriteCard (int SID,int BID,
int KeyType,unsigned char * Key,
unsigned char * data);
说    明:本函数用于向IC卡指定扇区写入数据内容,在调用本函数前需要先找卡Routon_IC_FindCard()。
参    数:
SID为扇区号,0-15之间(对M1S50卡)。
BID为块号,0-3之间。
KeyType为密钥类型,两种:0x60 keyA,0x61 keyB。
Key为密钥。
data为准备写入的数据内容,字节数为16。
 
返 回 值:


值意义
1正确
0错误
-3密钥或卡类型错
 

备注:如果为Mifare UltraLight卡,参数SID,KeyType,Key可为0或空值,只需传入BID与data即可。
 
 

4.3.5. 控制蜂鸣器和指示灯

原    型1:
int HID_BeepLED(bool BeepON,bool LEDON,unsigned int duration);
说    明:本函数用于控制iDR210 USB-HID 设备的LED指示灯和蜂鸣器。
参    数:
BeepON和LEDON为布尔类型,值为True时,对应的蜂鸣器和指示灯打开;duration为打开持续的时间,单位为毫秒。
 
返 回 值:


值意义
1正确
0错误
 

 
原    型2:
int Routon_BeepLED(bool BeepON,bool LEDON,unsigned int duration);
说    明:本函数用于控制iDR200 串口型设备LED指示灯和蜂鸣器。
参    数:
BeepON和LEDON为布尔类型,值为True时,对应的蜂鸣器和指示灯打开;duration为打开持续的时间,单位为毫秒。
 
返 回 值:


值意义
1正确
0错误
 

 

4.3.6. 读取PSAM卡ATR数据

原    型:
int PSAM_ReadATR(unsigned char CardIndex,unsigned char SpeedIndex,unsigned char TypeIndex, unsigned char  *_Data);
说    明:本函数用于读取设备上PSAM卡的ATR数据
参    数:
CardIndex: 0x01为卡座1, 0x02为卡座2
SpeedIndex:  CPU卡的速率 (0:4800,1:9600,2:19200,3:38400)
TypeIndex:   CPU卡电压类型(0:5V,1:3V)
*_Data:      读出数据缓存区指针
返 回 值:


值意义
0正确
-1未插卡
-2设置卡座错误
-3设置速率错误
-4设置电压错误
-5设备未连接
 

4.3.7. 向PSAM卡发送数据

原    型:
int PSAM_SendCMD(unsigned char CardIndex,unsigned char *_Cmd,int Len, unsigned char *_Data)
说    明:本函数用于向PSAM卡发送数据
参    数:
CardIndex:0x01为卡座1, 0x02为卡座2
*_Cmd:向PSAM卡发送命令数据缓冲区指针
Len:命令的长度
*_Data:PSAM卡返回数据缓存区指针
返 回 值:


值意义
0正确
-1未知错误
-2设置卡座错误
-3设备未连接
 

4.3.8. PSAM卡下电

原    型:
int STDCALL PSAM_PowerOff(unsigned char CardIndex)
说    明:本函数用于断开PSAM卡电源,降低功耗
参    数:
CardIndex:0x01为卡座1, 0x02为卡座2
返 回 值:


值意义
0正确
-1未知错误
-2设置卡座错误
-3设备未连接
 

4.3.9. dc_init

注意:仅串口型iDR200可使用本接口,iDR210使用InitComm()进行端口初始化。
原    型:int dc_init(int port,long baud);
说    明:初始化通讯口。
参    数:
port:取值为1~16。
        baud:为通讯波特率9600~115200。
 
返 回 值:成功则返回串口通讯设备标识符>0,失败返回负值。

4.3.10. dc_exit

注意:仅串口型iDR200可使用本接口,iDR210使用CloseComm()关闭端口。
 
原    型:int dc_exit(int dev);
说    明:关闭端口。
参    数:
icdev:通讯设备标识符。
 
返 回 值:成功返回0,失败返回负值。

4.3.11. dc_request

原    型:int dc_request(int icdev,unsigned char _Mode,unsigned int *TagType);
说    明:寻卡请求。
参    数:
icdev:通讯设备标识符。
_Mode:寻卡模式。0表示Standard模式;1表示All模式。
Tagtype:卡类型值。
 
返 回 值:成功返回0,失败返回负值。

4.3.12. dc_anticoll

原    型:int dc_anticoll(int icdev,unsigned char _Bcnt,unsigned long *_Snr);
说    明:防卡冲突,返回卡的序列号。
参    数:
icdev:通讯设备标识符。
       _Bcn: 设为0。
        _Snr:返回的卡序列号地址。
 
返 回 值:成功返回0,失败返回负值。

4.3.13. dc_select

原    型:int dc_select(int icdev,unsigned long _Snr,unsigned char *_Size);
说    明:从多个卡中选取一个给定序列号的卡。
参    数:
icdev:通讯设备标识符。
        _Snr:卡序列号。
        _Size:指向返回的卡容量的数据(暂不支持,无返回)。
 
返 回 值:成功返回0,失败返回负值。

4.3.14. dc_authentication_passaddr

原    型:int dc_authentication_passaddr(int icdev, unsigned char _Mode, unsigned char Addr, unsigned char *passbuff);
说    明:核对密码函数。
参    数:
Icdev:通讯设备标识符。
        _Mode:密码验证模式。0x60 keyA,0x61 keyB。
        blockAddr:要验证密码的块地址号。
        passbuff:密码字符串。
 
返 回 值:成功返回0,失败返回负值。

4.3.15. dc_read

原    型:dc_read(int icdev,unsigned char _Adr,unsigned char *_Data);
说    明:读取卡中数据。
参    数:
icdev:通讯设备标识符。
        _Adr:M1S50卡——块地址(0~63),M1S70(0~255)。
        _Data:读出数据。
 
返 回 值:成功返回0,失败返回负值。

4.3.16. dc_write

原    型:dc_write(int icdev,unsigned char _Adr,unsigned char *_Data);
说    明:向卡中写入数据。
参    数:
icdev:通讯设备标识符。
        _Adr:M1S50卡——块地址(1~63),M1S70(1~255)。
        _Data:要写入的数据。
 
返 回 值:成功返回0,失败返回负值。

4.3.17. dc_halt

原    型:dc_halt(int icdev);
说    明:中止对该卡操作。
参    数:
icdev:通讯设备标识符。
       
返 回 值:成功返回0,失败返回负值。

4.3.18. dc_BeepLED

原    型:dc_BeepLED(int icdev,bool BeepON,bool LEDON,unsigned int duration);
说    明:控制LED指示灯和蜂鸣器。
参    数:
icdev:通讯设备标识符。
        BeepON:值为true时,蜂鸣器打开。
LEDON:值为true时,指示灯打开。
duration为持续的时间,单位为毫秒。
 
返 回 值:成功返回0,失败返回负值。
 

4.3.19. Routon_CPUCard_PowerOFF

原    型:Routon_CPUCard_PowerOFF(void);
说    明:CPU卡下电。
参    数: 无
 
返 回 值:成功返回1,失败返回0。

4.3.20. Routon_CPUCard_Active

原    型:Routon_CPUCard_Active(void);
说    明:CPU卡激活。
参    数: 无
 
返 回 值:成功返回1,失败返回0。

4.3.21. Routon_CPUCard_ATS

原    型:Routon_CPUCard_ATS(unsigned char * ATSMsg,
unsigned int * ATSLen);
说    明:CPU卡发送RATS,返回ATS数据。
参    数:
ATSMsg ATS数据
ATSLen ATS数据长度
 
 
返 回 值:成功返回1,失败返回0。

4.3.22. Routon_CPUCard_PPS

原    型:Routon_CPUCard_PPS(unsigned char PPS0,unsigned char PPS1);
说    明:CPU卡发送PPS参数。
参    数:
PPS0 PPS0值
PPS1 PPS1值
 
返 回 值:成功返回1,失败返回0。

4.3.23. Routon_APDU

原    型:Routon_APDU (char * apdu,unsigned char * data,int * datalen)说    明:向CPU卡发送APDU,并获取返回数据。
参    数:
apdu APDU指令,为字符串数据
data APDU指令的返回数据,字节数据
datalen APDU指令返回数据长度
 
返 回 值:

值意义
0失败
1成功
-1APDU指令超长(超过251字节)
-2通讯错误
-3不支持端口协议
 

 

4.3.24. Routon_ ShutDownAntenna

原    型: Routon_ ShutDownAntenna (void)
说    明:关闭天线。
参    数:
无
 
返 回 值:

值意义
0失败
1成功
 

 

4.3.25. Routon_Mute(bool isMute)

原    型: Routon_Mute(bool isMute)
说    明:蜂鸣器开关。
参    数:
isMute  true为关闭,false为打开
 
返 回 值:

值意义
0失败
1成功
 

 

4.3.26. Routon_RepeatRead(bool isRepeat)

原    型: Routon_RepeatRead(bool isRepeat)
说    明:设置是否可以重复读一张身份证,默认是不重复读。
参    数:
isRepeat  true为可重复读,false为只能读一次
 
返 回 值:

值意义
0失败
1成功
 

4.3.27. Routon_IsSaveWlt(bool isWlt)

原    型: Routon_IsSaveWlt(bool isWlt)
说    明:设置是否保存wlt文件,默认不保存。
备注:在调用读取身份证信息接口之前调用该接口
参    数:
isWlt  true保存wlt文件,false为不保存
 
返 回 值:

值意义
0失败
1成功
 

 

4.3.28. ReadBaseInfosFPPhoto(char* Name, char* Gender, char*  Folk, char* BirthDay, char * Code, char* Address, char* Agency, char* ExpireStart, char* ExpireEnd, char* directory, unsigned char * pucFPMsg, unsigned int * puiFPMsgLen)

说    明:本函数用于读取卡中基本信息,包括文字信息与图像信息。文字信息以字符串格式输出。图象信息被解码后存为照片photo.bmp和photo.jpg,身份证正面反面图片(在directory指定目录下)。
参    数:
Name [out] 字符型指针,指向姓名信息。需要在调用时分配内存,字节数不小31。
Gender [out] 字符型指针,指向性别信息(男或者女)。需要在调用时分配内存,字节数不小3。
Folk [out] 字符型指针,指向民族信息。需要在调用时分配内存,字节数不小10。
BirthDay [out] 字符型指针,指向出生日期信息。需要在调用时分配内存,字节数不小9,前四位为出生年,第5位到第6位是出生月,后两位是出生日,格式为:CCYYMMDD。
Code [out] 字符型指针,指向身份证号码信息。需要在调用时分配内存,字节数不小19。
Address [out] 字符型指针,指向地址信息。需要在调用时分配内存,字节数不小71。
Agency [out] 字符型指针,指向签证机关信息。需要在调用时分配内存,字节数不小31。
ExpireStart [out] 字符型指针,指向有效期起始日期信息。需要在调用时分配内存,字节数不小9, 格式为:CCYYMMDD。
ExpireEnd [out] 字符型指针,指向有效期截至日期信息。需要在调用时分配内存,字节数不小9,格式为:CCYYMMDD,有效期为长期的表示为汉字“长期”。
directory [in] 字符指针,表示照片存储路径,路径最后有无“\”均可;可以给空值(NULL),表示照片存储在当前目录中,此时函数效果同ReadBaseInfos。
pucFPMsg   [out] 无符号字符指针,指向读到的指纹信息。需要在调用时分配内存,字节数不小于1024。
puiFPMsgLen [out] 整数, 返回指纹信息长度。
 
返 回 值:

值意义
1正确
0错误
4目录不存在
-4缺少dewlt.dll、savephoto.dll等DLL
 

4.3.29. Routon_DecideIDCardType()

说    明:本函数用户判断当前证件类型是身份证,还是外国人居留证。注意,该函数需在调用Authenticate函数后再调用。
 
返 回 值:

值意义
100中国身份证
101外国人居留证
其它其它错误
 

 

4.3.30. Routon_ReadForeignBaseInfos (char *enName, char *Gender, char *Code, char *Nation, char *cnName, char *BirthDay, char * ExpireStart,char* ExpireEnd)

废弃,请使用接口Routon_ReadAllForeignBaseInfos
 
说    明:本函数用来读取外国人居留证相关信息内容,照片文件保存在当前stdapi.dll文件相同目录中,照片文件名为photo.bmp。
参    数:
enName [out] 字符型指针,指向英文姓名信息。需要在调用时分配内存,字节数不小121。
Gender [out] 字符型指针,指向性别信息(男或者女)。需要在调用时分配内存,字节数不小3。
Code [out] 字符型指针,指向身份证号码信息。需要在调用时分配内存,字节数不小31。
Nation [out] 字符型指针,指向国籍信息。需要在调用时分配内存,字节数不小40。
cnName [out] 字符型指针,指向中文姓名信息。需要在调用时分配内存,字节数不小31。
BirthDay [out] 字符型指针,指向出生日期信息。需要在调用时分配内存,字节数不小9,前四位为出生年,第5位到第6位是出生月,后两位是出生日,格式为:CCYYMMDD。
ExpireStart [out] 字符型指针,指向有效期起始日期信息。需要在调
用时分配内存,字节数不小9, 格式为:CCYYMMDD。
ExpireEnd [out] 字符型指针,指向有效期截至日期信息。需要在调用时分配内存,字节数不小9,格式为:CCYYMMDD,有效期为长期的表示为汉字“长期”。
 
返 回 值:

值意义
0读取卡信息失败
1读取卡信息成功
 

4.3.31. Routon_ReadForeignBaseInfosPhoto (char*enName, char *Gender, char *Code, char *Nation, char *cnName, char *BirthDay, char * ExpireStart,char* ExpireEnd,char* directory)

废弃,请使用接口Routon_ReadAllForeignBaseInfosPhoto
 
说    明:本函数用来读取外国人居留证相关信息内容,照片文件保存在当前stdapi.dll文件相同目录中,照片文件名为photo.bmp。(
 
参    数:
enName [out] 字符型指针,指向英文姓名信息。需要在调用时分配内存,字节数不小121。
Gender [out] 字符型指针,指向性别信息(男或者女)。需要在调用时分配内存,字节数不小3。
Code [out] 字符型指针,指向身份证号码信息。需要在调用时分配内存,字节数不小31。
Nation [out] 字符型指针,指向国籍信息。需要在调用时分配内存,字节数不小40。
cnName [out] 字符型指针,指向中文姓名信息。需要在调用时分配内存,字节数不小31。
BirthDay [out] 字符型指针,指向出生日期信息。需要在调用时分配内存,字节数不小9,前四位为出生年,第5位到第6位是出生月,后两位是出生日,格式为:CCYYMMDD。
ExpireStart [out] 字符型指针,指向有效期起始日期信息。需要在调
用时分配内存,字节数不小9, 格式为:CCYYMMDD。
ExpireEnd [out] 字符型指针,指向有效期截至日期信息。需要在调用时分配内存,字节数不小9,格式为:CCYYMMDD,有效期为长期的表示为汉字“长期”。
directory [in] 字符指针,表示照片存储路径,路径最后有无“\”均可;可以给空值(NULL),表示照片存储在当前目录中,此时函数效果同Routon_ReadForeignBaseInfos。
 
返 回 值:

值意义
0读取卡信息失败
1读取卡信息成功
 

4.3.32. Routon_ReadAllForeignBaseInfos (char*EnName, char *Gender, char *Code, char *Nation, char *CnName, char *BirthDay, char * ExpireStart,char* ExpireEnd,char* CardVertion,char *Agency,char *CardType, char *FutureItem)

说    明:本函数用来读取外国人居留证所有信息内容,头像照片文件保存在当前stdapi.dll文件相同目录中,照片文件名为photo.bmp。
 
参    数:
EnName [out] 字符型指针,指向英文姓名信息。需要在调用时分配内存,字节数不小121。
Gender [out] 字符型指针,指向性别信息(男或者女)。需要在调用时分配内存,字节数不小3。
Code [out] 字符型指针,指向身份证号码信息。需要在调用时分配内存,字节数不小31。
Nation [out] 字符型指针,指向国籍信息。需要在调用时分配内存,字节数不小40。
CnName [out] 字符型指针,指向中文姓名信息。需要在调用时分配内存,字节数不小31。
BirthDay [out] 字符型指针,指向出生日期信息。需要在调用时分配内存,字节数不小9,前四位为出生年,第5位到第6位是出生月,后两位是出生日,格式为:CCYYMMDD。
ExpireStart [out] 字符型指针,指向有效期起始日期信息。需要在调
用时分配内存,字节数不小9, 格式为:CCYYMMDD。
ExpireEnd [out] 字符型指针,指向有效期截至日期信息。需要在调用时分配内存,字节数不小9,格式为:CCYYMMDD,有效期为长期的表示为汉字“长期”。
CardVertion [out] 字符型指针,指向证件版本号信息。需要在调用时分配内存,字节数不小于5。
Agency [out] 字符型指针,指向当次申请受理机关代码信息。需要在调用时分配内存,字节数不小于9。
CardType [out] 字符型指针,指向证件类型标识。需要在调用时分配内存,字节数不小于2。外国人永久居留证的标识为大写字母“I”。
FutureItem [out] 字符型指针,指向预留项信息。需要在调用时分配内存,自己数不小于7。目前存放了三个空格符。
 
返 回 值:

值意义
0读取卡信息失败
1读取卡信息成功
 

 

4.3.33. Routon_ReadAllForeignBaseInfosPhoto (char*EnName, char *Gender, char *Code, char *Nation, char *CnName, char *BirthDay, char * ExpireStart,char* ExpireEnd,char* CardVertion,char *Agency,char *CardType, char *FutureItem,char *Directory)

说    明:本函数用来读取外国人居留证所有信息内容,照片文件保存在当前stdapi.dll文件相同目录中,照片文件名为photo.bmp。
 
参    数:
EnName [out] 字符型指针,指向英文姓名信息。需要在调用时分配内存,字节数不小121。
Gender [out] 字符型指针,指向性别信息(男或者女)。需要在调用时分配内存,字节数不小3。
Code [out] 字符型指针,指向身份证号码信息。需要在调用时分配内存,字节数不小31。
Nation [out] 字符型指针,指向国籍信息。需要在调用时分配内存,字节数不小40。
CnName [out] 字符型指针,指向中文姓名信息。需要在调用时分配内存,字节数不小31。
BirthDay [out] 字符型指针,指向出生日期信息。需要在调用时分配内存,字节数不小9,前四位为出生年,第5位到第6位是出生月,后两位是出生日,格式为:CCYYMMDD。
ExpireStart [out] 字符型指针,指向有效期起始日期信息。需要在调
用时分配内存,字节数不小9, 格式为:CCYYMMDD。
ExpireEnd [out] 字符型指针,指向有效期截至日期信息。需要在调用时分配内存,字节数不小9,格式为:CCYYMMDD,有效期为长期的表示为汉字“长期”。
CardVertion [out] 字符型指针,指向证件版本号信息。需要在调用时分配内存,字节数不小于5。
Agency [out] 字符型指针,指向当次申请受理机关代码信息。需要在调用时分配内存,字节数不小于9。
CardType [out] 字符型指针,指向证件类型标识。需要在调用时分配内存,字节数不小于2。外国人永久居留证的标识为大写字母“I”。
FutureItem [out] 字符型指针,指向预留项信息。需要在调用时分配内存,自己数不小于7。目前存放了三个空格符。
Directory [in] 字符指针,表示照片存储路径,路径最后有无“\”均可;可以给空值(“”),表示照片存储在当前用户的临时目录中,此时函数效果同Routon_ReadForeignBaseInfos。
 
返 回 值:

值意义
0读取卡信息失败
1读取卡信息成功
 

 

4.3.34. FindAllUSB(int *SCount,  int *HCount)

说    明:本函数用于“部标”设备和HID设备同时连接PC时,获取当前PC连接的读卡设备的情况,能够识别是否有“部标”设备,有几台HID设备。
备    注:仅针对USB接口的“部标”设备和HID设备。
参    数:
SCount[out]整型指针,指向当前PC连接“部标”设备数量。需要在调用时分配内存,字节数为1。SCount[0]值为0表示无“部标”设备,1表示有“部标”设备。
HCount[out]整型指针,指向当前PC连接HID设备数量。需要在调用时分配内存,字节数为1。HCount[0]值为0表示无HID设备,1表示有一台HID设备,2表示有两台HID设备。
 
返 回 值:

值意义
1寻找USB设备成功
其他寻找USB设备失败
 

 

4.3.35. SelectUSB(int index)

说    明:根据用户选择的“部标”设备和HID设备,初始化相应的设备端口。
备    注:仅针对USB接口的“部标”设备和HID设备,调用之前必须先先FindAllUSB()函数寻找USB接口设备。
参    数:
index整数,表示“部标”设备和HID设备。0代表“部标”设备,1代表HID1,2代表HID2。
 
返 回 值:

值意义
1初始化指定设备端口成功
0初始化指定设备端口失败
 

 
 

4.3.36. CloseSDTandHIDComm(int index)

说    明:根据打开的“部标”设备和HID设备的端口,关闭相应的端口。
备    注:仅针对USB接口的“部标”设备和HID设备。
参    数:
index整数,表示“部标”设备和HID设备。0代表“部标”设备,1代表HID1,2代表HID2。
返 回 值:

值意义
1关闭指定设备端口成功
0关闭指定设备端口失败
 

 

4.3.37. InitSDTandHIDComm(int index)

说    明:寻找当前PC连接的USB接口设备,根据用户选择的“部标”设备和HID设备,初始化相应的设备端口。
备    注:仅针对USB接口的“部标”设备和HID设备。该接口包含了FindAllUSB()和SelectUSB()的功能。
参    数:
index整数,表示“部标”设备和HID设备。0代表“部标”设备,1代表HID1,2代表HID2。
返 回 值:

值意义
1初始化指定设备端口成功
0初始化指定设备端口失败
 

 

4.3.38. Routon_ReadAllTypeCardInfos(int port, char* pMsg, char *PhotoPath)

说    明:读身份证或者外国人居留证
参    数:
port 整数,表示设备的端口号或者串口号。
pMsg [out] 字符型指针,指向卡片的基本信息,在调用时分配内存,内存不小于265字节。
Photopath [in] 字符指针,表示头像照片存储路径,路径最后有无“\”均可;若不指定头像相片路径PhotoPath,则传入NULL或者“”,照片存在当前程序目录中;若指定头像照片路径PhotoPath,则传入不包含文件名的目录,如“d:\\temp”。
返 回 值:

返回值含义
1卡片类型身份证
2卡片类型外国人居留证
-1文本信息指针为空,或指定照片路径不存在
-2端口打开失败
-3卡认证失败
-4读卡失败
-5头像照片生成失败

 
 
 
 
 
 
 
 
 
 
 
备   注:卡基本信息返回值pMsg格式
身份证:姓名|性别|民族|出生年月日|住址|公民身份号码|签发机关|有效期限起始日期|有效期限结束日期|有效期限 
外国证: 英文姓名|中文姓名|性别|国籍或地区代号|出生年月日|永久居住证号码|签发机关|有效期限起始日期|有效期限结束日期|有效期限
 
 
 

5. 接口使用流程及示例

在连接好读卡机具以后,首先需要调用函数InitComm打开相应端口。打开端口成功以后,即可以使用循环认证并读取卡中信息。

5.1. 二代证示例

示   例:
#include “sdtapi.h”
int main()
{
int ret;
int iPort=1;
 
         ret=InitComm(iPort);
if ( ret ){
ret= Authenticate ();
if (ret){
char Msg[200];
ret= ReadBaseMsg (Msg, 0 );
if (ret > 0 ){
//显示文字及图片信息
}
char Msg1[200];
int num;
ret= ReadNewAppMsg (Msg1, &num );
if (ret > 0 ){
//显示追加地址信息
}
 
}
}

ret= CloseComm();
return ret;
}
 

5.2. TypeA卡示例(iDR210)

示   例:
#include “sdtapi.h”
    
int main()
{
  int ret;
  int dev;
 
  ret =InitComm (1001);//USB接口的iDR210
  if (ret)
  {
        char csn[1024]={0};
        if (Routon_IC_HL_ReadCardSN(csn))//读A卡卡号
        {
               //
        }
        else
        {
                MessageBox( NULL, "Routon_IC_HL_ReadCardSN error。",
                        "错误", MB_OK | MB_ICONERROR );
                        return;
 
        }
ret=Routon_IC_FindCard();
if (ret)
{
        int sid=0,bid=0;
        unsigned char da[64]={0};
        unsigned char pw[6]={0xff,0xff,0xff,0xff,0xff,0xff};
        ret=Routon_IC_HL_ReadCard (sid,bid,0x60,pw,da);//读0扇区0块的内容
}

}
CloseComm();
}

5.3. 读取指纹及身份证信息示例(iDR210)

 
ret = InitComm(1001);
if ( ret ){
 
ret=IsFingerPrintDevice();
if (ret!=1)
{
sprintf(msg,"设备不支持读取指纹信息!返回值=%d",ret);
MessageBox(msg,"提示");
return ;
}
 
ret= Authenticate ();
if (ret){
 
/*unsigned char unCHMsg[256];
unsigned char ucFPMsg[1024];
int uiFPMsgLen,uiCHMsgLen;
ret = ReadBaseFPMsg(unCHMsg, &uiCHMsgLen,ucFPMsg, &uiFPMsgLen);*/
              char name[32]={0};
char Gender[4]={0};
char Folk[4]={0};
char BirthDay[9]={0};
char Code[19]={0};
char Address[71]={0};
char Agency[31]={0};
char ExpireStart[9]={0};
char ExpireEnd[9]={0};
char pucFPMsg[1024]={0};
unsigned int puiFPMsgLen=0;
              ret = ReadBaseInfosFPPhoto(name, Gender, Folk, BirthDay, Code, Address, Agency, ExpireStart, ExpireEnd,“C:\\”, pucFPMsg, &puiFPMsgLen);
if (ret!=1)
{
sprintf(msg,"读指纹信息失败!返回值=%d",ret);
MessageBox(msg,"提示");
return ;
}
if (uiFPMsgLen<1024)
{
sprintf(msg,"无指纹信息!");
MessageBox(msg,"提示");
 
}
&hellip;
//此处处理指纹及身份证信息
}
}
 CloseComm();
 

5.4. CPU卡操作示例(iDR210)

unsigned char data[1024];
memset(data,0,1024);
int datalen=0;
 
ret = InitComm(1);//串口1
if ( ret ){
 
ret=Routon_IC_FindCard();
 
if (ret!=2)//类型2为CPU卡
{
sprintf(msg,"不是CPU卡!返回值=%d",ret);
MessageBox(msg,"提示");
return ;
}
char apdu[]=&rdquo; 00A404000E315041592E5359532E4444463031&rdquo;;
ret=Routon_CPUCard_Active();
if (ret==1){ //激活成功
ret=Routon_APDU(apdu,data,&datalen);//data为16进制值
 
}
}
 CloseComm();

5.5. 外国人居留证操作示例(iDR200/iDR210)

#include &ldquo;sdtapi.h&rdquo;
    
int main()
{
  int ret;
  int dev;
 
  ret =InitComm (1001);//USB接口,  1-16则为串口号
if ( ret )
{
ret= Authenticate ();
  if (ret){
        
ret= Routon_DecideIDCardType()
    if (ret == 100 ){   //身份证卡
    //读取身份证信息
            ret = ReadBaseInfos(Name, Gender, Folk, BirthDay, Code, Address,  Agency,  ExpireStart,  ExpireEnd);
}
else if(ret == 101){   //外国人居留证
    //读取外国居留证
    ret = Routon_ReadAllForeignBaseInfos(enName, Gender, Code,
Nation, cnName, BirthDay, ExpireStart, ExpireEnd,CardVertion,Agency,CardType,FutureItem);
}
}
}

CloseComm();
return  0;
}

5.6. &ldquo;部标&rdquo;设备和HID设备同时连接PC,读卡示例(iDR210)

#include &ldquo;sdtapi.h&rdquo;
    
int main()
{
  int ret;
  int index;//输入的USB设备索引号,&ldquo;0&rdquo;部标设备,&ldquo;1&rdquo;HID1,&ldquo;2&rdquo;HID2
  int SDTCount[1];//当前PC连接的部标设备数量
int HIDCount[1];//当前PC连接的HID设备数量
FindAllUSB(SDTCount, HIDCount);
ret=SelectUSB(index);
if ( ret )
{
ret= Authenticate ();
  if (ret){
        
ret= Routon_DecideIDCardType();
    if (ret == 100 ){   //身份证卡
    //读取身份证信息
            ret = ReadBaseInfos(Name, Gender, Folk, BirthDay, Code, Address,  Agency,  ExpireStart,  ExpireEnd);
}
else if(ret == 101){   //外国人居留证
    //读取外国居留证
    ret = Routon_ReadForeignBaseInfosPhoto(enName, Gender, Code, Nation, cnName, BirthDay, ExpireStart,  ExpireEnd);
}
}
}

CloseSDTandHIDComm(index);
}

5.7. 外国证居留证生成正反面照片操作示例(iDR210)

#include &ldquo;sdtapi.h&rdquo;
    
int main()
{
  int ret;
  int dev;
 
  ret =InitComm (1001);//USB接口,  1-16则为串口号
if ( ret )
{
ret= Authenticate ();
  if (ret){
        
ret= Routon_DecideIDCardType()
    if (ret == 100 ){   //身份证卡
    //读取身份证信息
            ret = ReadBaseInfosPhoto(Name, Gender, Folk, BirthDay, Code, Address,  Agency,  ExpireStart,  ExpireEnd, "D:\\IDtemp");
}
else if(ret == 101){   //外国人居留证
    //读取外国居留证
    ret = Routon_ReadForeignBaseInfosPhoto(enName, Gender, Code, Nation, cnName, BirthDay, ExpireStart,  ExpireEnd, "D:\\FIDtemp");
}
}
}
CloseComm();
return  0;
}

上一页:华视身份证阅读器SDK使用手册     下一页:没有了

产品推荐

  • 华旭J20手持机身份证阅读器华旭J20手持机身份证阅读器
  • 东控智能EC-VV8S访客门禁管理系统一体机东控智能EC-VV8S访客门禁管理系统一体机
  • 神盾ICR-100U身份证读卡器神盾ICR-100U身份证读卡器
  • 东控智能EC-8000指纹采集器东控智能EC-8000指纹采集器
  • 熵基科技Live20M指纹仪模块熵基科技Live20M指纹仪模块

相关文章

  • 访客一体机一般应用在哪些地方?
  • 高拍仪和扫描仪的区别是什么?
  • 身份证读卡器在USB3.0电脑无法识别以及解决方案
  • 高考考生丢了身份证怎么办?
  • 精伦身份证阅读器如何正确安装OCX控件?
  • 蓝牙身份证阅读器如何使用?
  • 精伦CS二次开发接口说明V4.2
  • 关于身份证门禁系统访客一体机的注意事项
  • 华视二代身份证阅读器的工作原理是什么?
  • 身份证阅读器都有什么类型的?适用于什么行业?

帮助中心

  • 售后服务
  • 常见问题
  • 驱动下载
联系我们
联系我们
广东东控智能科技有限公司

联系电话:020-29820271

手机号码:18680266076

手机号码:13312809492

手机号码:13312803641

手机号码:13312804928

手机号码:13312805572

手机号码:13380056105

客服QQ:2622477828

客服QQ:1955944208

客服QQ:1454850974

客服QQ:2378428385

客服QQ:908404718

客服QQ:2448728978

Email:2622477828@qq.com

地址:广州市天河区岗顶龙口西路102号

[向上] 
广东东控

地址:广州市天河区岗顶龙口西路102号

电话:020-29820271

手机:18680266076

邮箱:hejx@wonteco.com

广东东控智能科技有限公司 粤ICP备18078118号 网站地图

  • 关于我们

    公司简介 企业文化 组织架构 资质证书
  • 产品中心

    身份证阅读器 人脸识别比对系统 身份证读卡器 访客登记管理系统 指纹采集器 身份证门禁系统 护照阅读器
  • 帮助中心

    售后服务 常见问题 驱动下载
  • 新闻资讯

    公司新闻 行业动态 批发快讯
  • 客服咨询
    经理
  • 客服咨询
    小陈
  • 客服咨询
    小谢
  • 客服咨询
    小黄
  • 客服咨询
    小郑
  • 客服咨询
    小微
  • 客服咨询
    小梁
  • 售后咨询
    售后

咨询电话:

020-29820271

手机:

18680266076

手机:

13312809492

手机:

13312803641

手机:

13312804928

手机:

13312805572

手机:

19925767683

手机:

13380056105

官方微信