精伦澳门官方游戏/iDR200最新开辟包-通用二次开辟包V4.2.2.8_通用_20221021
精伦澳门官方游戏/iDR200最新开辟包-通用二次开辟包V4.2.2.8_通用_20221021
精 伦 电 子 股 份 有 限 公 司
澳门官方游戏/iDR200联机型身份证阅读器
通用二次开辟包接口阐明
更新阐明:
V4.2.2.6 新增双通道通讯接口
V4.2.2.4 新增项目认证码绑定
V4.2.2.3 新增接口前往照片base64文本信息
V4.2.2.2 新增港澳台证正背面接口
V4.2.1.9 增长eID相干的读卡接口
V4.2.0.9 增长对本国居留证卡的信息读取接口功效。
V4.2.0.0 增长对Mifare UltraLight卡的支持。
V4.1.0.4 增长身份证正背面分解功效。
V4.0.1.10办理CPU卡发送凌驾58字节数据题目,必要澳门官方游戏-1 HID(ERP号后五位为13003)读卡器单片机软件版本晋级为V20.0.3以上才干支持。
V4.0.1.5增长对护照读卡器的支持。
V4.0.1.2增长Routon_RepeatRead函数,可控制能否一连读身份证。
V4.0.1.0增长对M1- S70卡支持。
V4.0.0.7读身份证信息前的容错处置。
V4.0.0.5增长对CCID接口的210-P护照读卡器支持。增长Routon_Mute函数,在读卡前挪用,可控制蜂鸣不发声。
V3.5.1.8办理照片解码相干的一个大概题目。
V3.5.1.7办理ReadBaseInfos和ReadBaseInfosPhoto的输入图片遭到体系以后目次设定搅扰的题目。
V3.5.1.5 办理一个潜伏形成内存走漏的题目。
V3.5.1.3 去失原sdtapi.dll对jpgdll.dll的依赖。
V3.5.1.0 办理接入部标版时,偶然无法找到身份证的题目。
V3.5.0.4 增长GetHIDCount、HIDSelect接口,可控制一台PC上辨别读取多台HID 接口的澳门官方游戏 。
V3.5.0.3 增长Routon_ ShutDownAntenna接口,封闭天线。
V3.5 增长Routon_CPUCard_PowerOFF、Routon_CPUCard_Active、Routon_CPUCard_RATS、Routon_CPUCard_PPS等接口,支持CPU卡。
V3.4 增长指纹信息读取接口ReadBaseFPMsg,发起在读取指纹信息前,先判别以后设置装备摆设能否支持指纹信息读取IsFingerPrintDevice,挪用细节请参考示例。
目次
目次 - 3 -
1. 概述 - 6 -
2. 体系要求 - 6 -
3. 接口文件阐明 - 7 -
4. Sdtapi.ll接口函数阐明 - 7 -
4.1. 端口函数 - 7 -
4.1.1. 端口初始化函数 - 7 -
4.1.2. 端口封闭接口 - 8 -
4.1.3. 封闭天线接口 - 8 -
4.1.4. 获取以后接入的HID接口澳门官方游戏数目 - 9 -
4.1.5. 设定以后操纵的HID接口澳门官方游戏 - 9 -
4.2. 读二代证相干函数 - 9 -
4.2.1. 卡认证接口 - 9 -
4.2.2. 读卡信息接口 - 10 -
4.2.3. 读追加地点信息 - 15 -
4.2.4. 读卡体办理号 - 17 -
4.2.5. 读模块序列号 - 18 -
4.2.6. 判别身份证能否在设置装备摆设上 - 18 -
4.2.7. 判别设置装备摆设能否支持指纹信息读取 - 19 -
4.2.8. 读指纹及卡信息接口 - 19 -
4.2.9. 读证件信息,照片保管为Base64 - 20 -
4.2.10. 项目认证码绑定设置装备摆设 - 21 -
4.2.11. 获取设置装备摆设项目认证码 - 22 -
4.2.12. 查验设置装备摆设项目的识能否婚配 - 22 -
4.2.13. 设置读卡双通道 - 23 -
4.2.14. 双通道之从通道吸收信息 - 23 -
4.3. Type A卡相干函数 - 24 -
4.3.1. 找IC卡 - 24 -
4.3.2. 读IC卡序列号初级函数 - 24 -
4.3.3. 读IC卡区块初级函数 - 25 -
4.3.4. 写IC卡区块初级函数 - 25 -
4.3.5. 控制蜂鸣器和指示灯 - 26 -
4.3.6. 读取PSAM卡ATR数据 - 27 -
4.3.7. 向PSAM卡发送数据 - 28 -
4.3.8. PSAM卡下电 - 28 -
4.3.9. dc_init - 29 -
4.3.10. dc_exit - 29 -
4.3.11. dc_request - 29 -
4.3.12. dc_anticoll - 30 -
4.3.13. dc_select - 30 -
4.3.14. dc_authentication_passaddr - 30 -
4.3.15. dc_read - 31 -
4.3.16. dc_write - 31 -
4.3.17. dc_halt - 31 -
4.3.18. dc_BeepLED - 31 -
4.3.19. Routon_CPUCard_PowerOFF - 32 -
4.3.20. Routon_CPUCard_Active - 32 -
4.3.21. Routon_CPUCard_ATS - 32 -
4.3.22. Routon_CPUCard_PPS - 33 -
4.3.23. Routon_APDU - 33 -
4.3.24. Routon_ ShutDownAntenna - 33 -
4.3.25. Routon_Mute(bool isMute) - 34 -
4.3.26. Routon_RepeatRead(bool isRepeat) - 34 -
4.3.27. Routon_IsSaveWlt(bool isWlt) - 35 -
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) - 35 -
4.3.29. Routon_DecideIDCardType() - 36 -
4.3.30. Routon_ReadForeignBaseInfos (char *enName, char *Gender, char *Code, char *Nation, char *cnName, char *BirthDay, char * ExpireStart,char* ExpireEnd) - 37 -
4.3.31. Routon_ReadForeignBaseInfosPhoto (char*enName, char *Gender, char *Code, char *Nation, char *cnName, char *BirthDay, char * ExpireStart,char* ExpireEnd,char* directory) - 38 -
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) - 39 -
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) - 40 -
4.3.34. Routon_ReadAllGATBaseInfos (char*Name, char *Gender,char *FutureItem1, char* BirthDay,char *Address, char *Code, char *Agency, char * ExpireStart,char* ExpireEnd,char *PassID,char *SignCnt, char *FutureItem2,char *CardType,char *FutureItem3) - 42 -
4.3.35. Routon_ReadAllGATBaseInfosPhoto (char*Name, char *Gender,char *FutureItem1, char* BirthDay,char *Address, char *Code, char *Agency, char * ExpireStart,char* ExpireEnd,char *PassID,char *SignCnt, char *FutureItem2,char *CardType,char *FutureItem3,char *Directory) - 43 -
4.3.36. FindAllUSB(int *SCount, int *HCount) - 44 -
4.3.37. SelectUSB(int index) - 45 -
4.3.38. CloseSDTandHIDComm(int index) - 45 -
4.3.39. InitSDTandHIDComm(int index) - 46 -
4.3.40. Routon_ReadAllTypeCardInfos(int port, char* pMsg, char *PhotoPath) - 46 -
4.4. eID卡相干函数 - 47 -
4.4.1 eID_Authenticate() - 47 -
4.4.2读eID卡原始信息 - 48 -
4.4.3 读eID根本信息 - 49 -
5. 接口利用流程及示例 - 50 -
5.1. 二代证示例 - 50 -
5.2. TypeA卡示例(澳门官方游戏) - 51 -
5.3. 读取指纹及身份证信息示例(澳门官方游戏) - 52 -
5.4. CPU卡操纵示例(澳门官方游戏) - 54 -
5.5. 本国人居留证操纵示例(iDR200/澳门官方游戏) - 54 -
5.6. “部标”设置装备摆设和HID设置装备摆设同时毗连PC,读卡示例(澳门官方游戏) - 55 -
5.7. 本国证居留证天生正背面照片操纵示例(澳门官方游戏) - 56 -
5.8. eID读卡示例 - 57 -
1.概述
精伦电子开辟的二代身份证读卡系列机具实用于相干行业的联机型使用。产品提供了美满的二次软件开辟接口(API)。本手册对开辟接口的文件构成、函数界说款式、挪用办法及前往值等举行细致的阐明。
本通用开辟包支持的设置装备摆设型号如下:
1、iDR200(串口和USB口)。
2、iDR320(必需进入“同步使用”形式)。
3、iDR400-1(必需进入“同步”形式)。
4、澳门官方游戏(USB-HID免驱动接口)。
5、澳门官方游戏(串口)。
留意:完全兼容原2.0版本开辟接口,支持USB-HID接口和串口的澳门官方游戏。
1、假如利用原开辟包接纳静态挪用dll方法,只需间接交换原dll即可。
2、假如利用原开辟包接纳的静态挪用方法,则在不改动代码的状况下,对原步伐重新编译链接即可。
2.体系要求
利用本API的PC机,必需满意下列条件:
Windows 98、Windows 2000 Pro、Windows 2000 Server、
Windows XP。
至多32兆内存(32M RAM or Larger)。
至多10兆闲暇硬盘空间(10M Free Hard Disk Space or Larger)。
至多一个闲暇平凡串口或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)
USB 1001 1001
返 回 值:
值 意义
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接口澳门官方游戏数目
原 型:int GetHIDCount (void)
说 明:本函数用于获取以后接入的HID接口澳门官方游戏的数目。利用前必需端口初始化(InitComm)乐成。
参 数:无
返 回 值:
值 意义
数字 设置装备摆设数目
4.1.5.设定以后操纵的HID接口澳门官方游戏
原 型:bool HIDSelect (int index)
说 明:本函数用于设定以后操纵的HID接口澳门官方游戏。利用前必需端口初始化(InitComm)乐成。
参 数:index,指定的澳门官方游戏的索引号。好比以后接入的设置装备摆设数目是2,则在挪用认证或找卡函数前,可辨别利用HIDSelect (1)或HIDSelect (2)来指定预备操纵的澳门官方游戏设置装备摆设。
返 回 值:
值 意义
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 汉字
出生日期 9 CCYYMMDD
住址 71 汉字和数字
百姓身份号码 19 数字
签发构造 31 汉字
无效期肇始日期 9 CCYYMMDD
无效期停止日期 9 CCYYMMDD
无效期为临时的表现为汉字“临时”
Len [out] 整数, 前往总字符长度,可以给空值(NULL)。
返 回 值:
值 意义
1 准确
0 错误
原 型2:int ReadBaseMsgPhoto( unsigned char * pMsg, int * len,char * directory);
说 明:本函数用于读取卡中根本信息,包罗笔墨信息与图像信息。笔墨信息曾经分段剖析,输入款式为单字节,且每一字段信息曾经被表现为字符串。图象信息被解码后存为文件photo.bmp(在directory指定目次下)。
参 数:
pMsg [out] 无标记字符指针,指向读到的文本信息。必要在挪用时分派内存,字节数不小于192。函数挪用乐成后,各字段的文本信息曾经转换为单字节情势,并表现为字符串款式。字段意义及偏移值如下所示:
项目 长度(字节) 阐明
姓名 31 汉字
性别 3 汉字
民族 10 汉字
出生日期 9 CCYYMMDD
住址 71 汉字和数字
百姓身份号码 19 数字
签发构造 31 汉字
无效期肇始日期 9 CCYYMMDD
无效期停止日期 9 CCYYMMDD
无效期为临时的表现为汉字“临时”
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。字段意义及偏移值如下所示:
项目 长度(字节) 阐明
追加地点1 71 汉字和数字
追加地点2 71 汉字和数字
追加地点3 71 汉字和数字
追加地点4 71 汉字和数字
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。偏移值如下所示:
项目 长度(字节) 阐明
追加地点1 70 汉字和数字
追加地点2 70 汉字和数字
追加地点3 70 汉字和数字
追加地点4 70 汉字和数字
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);
说 明:本函数用于判别澳门官方游戏能否支持指纹信息读取。
参 数:无
注 意:利用前必要先端口初始化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 汉字
出生日期 9 CCYYMMDD
住址 71 汉字和数字
百姓身份号码 19 数字
签发构造 31 汉字
无效期肇始日期 9 CCYYMMDD
无效期停止日期 9 CCYYMMDD
无效期为临时的表现为汉字“临时”
Len [out] 整数, 前往总字符长度,可以给空值(NULL)。
pucFPMsg [out] 无标记字符指针,指向读到的指纹信息。必要在挪用时分派内存,字节数不小于1024。
puiFPMsgLen [out] 整数, 前往指纹信息长度。
返 回 值:
值 意义
1 准确
0 错误
4.2.9.读证件信息,照片保管为Base64
原 型:int Routon_ReadAllBaseInfos( char* Msg, char* HeadPhoto, char* FrontCopy, char* BackCopy, char* FingerPrint)
;
说 明:本函数用于读取证件中的信息,包罗笔墨信息与图像信息、指纹信息以及分解仿复印件图片信息。笔墨信息曾经分段剖析,输入款式为字段以“:”离隔,且一切信息为字符串。图象信息被解码后以Base64编码存储。
参 数:
Msg [out] 无标记字符指针,指向读到的文本信息。必要在挪用时分派内存,字节数不小于256。函数挪用乐成后,各字段的文本信息曾经转换为单字节情势,每个字段以“:”离隔。字段意义如下所示:
序号 信息项 二代证 本国人 港澳台
0 证件范例 A I J
1 中文姓名 姓名 中文姓名 姓名
2 英文姓名 英文姓名
3 性别 性别 性别 性别
4 性别代码 性别代码 性别代码 性别代码
5 民族 民族 国籍或地点地域
6 民族代码 民族代码 国籍或地点地域代码 通畅证号码
7 出生日期 出生日期 出生日期 出生日期
8 住址 住址 住址
9 身份证号码 百姓身份号码 永世居留证号码 百姓身份号码
10 签发构造 签发构造 当次请求受理构造代码 签发构造
11 发卡日期 无效期
肇始日期 证件签发日期 无效期
肇始日期
12 卡无效期 无效期
停止日期 证件停止日期 无效期
停止日期
13 证件版本号 证件版本号 签发次数
HeadPhoto [out] 无标记字符指针,指向解码后的bmp照片信息,信息颠末base64编码。必要在挪用时分派内存,字节数不小于100k。
FrontCopy [out] 无标记字符指针,指向正面仿复印件jpg照片信息,信息颠末base64编码。必要在挪用时分派内存,字节数不小于200k。
BackCopy [out] 无标记字符指针,指向背面仿复印件jpg照片信息,信息颠末base64编码。必要在挪用时分派内存,字节数不小于200k。
FingerPrint [out] 无标记字符指针,指向读到的指纹原始信息。必要在挪用时分派内存,字节数不小于1024。
4.2.10.项目认证码绑定设置装备摆设
原 型:int Routon_SetProgramCode(char* ProgramCode);
说 明:用于客户用项目码绑定设置装备摆设。
参 数:ProgramCode [in] 8字节的客户项目码。
返 回 值:
值 意义
1 乐成
0 参数错误
-1 非HID设置装备摆设,不支持该功效
-2 读设置装备摆设信息错误
-3 写数据错误
-4 设置装备摆设不支持
4.2.11.获取设置装备摆设项目认证码
原 型:int Routon_GetProgramCode(char* ProgramCode);
说 明:用于获取设置装备摆设项目的识。
参 数:ProgramCode [out] 8字节的客户项目码。
返 回 值:
值 意义
1 乐成
0 参数错误
-1 非HID设置装备摆设,不支持该功效
-2 读数据错误
4.2.12.查验设置装备摆设项目的识能否婚配
原 型:int Routon_CheckProgramCode(char* ProgramCode);
说 明:用于查验设置装备摆设项目的识能否婚配。
参 数:ProgramCode [in] 8字节的客户项目码。
返 回 值:
值 意义
1 婚配乐成
0 参数错误
-1 获取设置装备摆设中项目辨认码失败
-2 读设置装备摆设信息错误
-3 设置装备摆设与项目不婚配
4.2.13.设置读卡双通道
原 型:int Routon_SetTransmissionChannel(bool isDoubleChanel);
说 明:用于设置双通道读卡设置装备摆设能否开启双通道
参 数:isDoubleChanel [in] bool型,true 时开启双通道
前往值:
值 意义
1 设置乐成
0 设置装备摆设不支持
其他 其他错误
4.2.14.双通道之从通道吸收信息
原 型:int Routon_GetBaseMsg(int iPortID, unsigned char* pucCHMsg, unsigned int* puiCHMsgLen, unsigned char* pucPHMsg,
unsigned int *puiPHMsgLen, unsigned char* pucFPMsg, unsigned int* puiFPMsgLen, int iIfOpen)
说 明:从通道获取主通道的读卡信息
参 数: iPortID [in] 整型,从通道的端口信息,如USB设置装备摆设“1001”,串口设置装备摆设“5”。
pucCHMsg [out] 256字节身份证文来源根基始信息
puiCHMsgLen [out] 读取的身份证文本信息长度
pucPHMsg [out] 1024字节身份证头像照片原始wlt信息
puiPHMsgLen [out] 读取的身份证头像照片长度
pucFPMsg [out] 1024字节身份证指纹原始信息
puiFPMsgLen [out] 读取的身份证指纹信息长度,有指纹长度为1024,无指纹位0。
iIfOpen [in] 能否翻开设置装备摆设标识,假如实行该接口之前就曾经翻开了端口则传入0,不再翻开设置装备摆设。假如设置装备摆设未翻开,则传入1。
前往值:
值 意义
0x90 从通道读卡乐成
0 错误
其他 读卡错误
4.3.Type A卡相干函数
留意:串口型iDR200和澳门官方游戏支持读写Type A卡。
澳门官方游戏利用Routon扫尾的相干函数。
串口型iDR200利用dc_扫尾的相干函数。
4.3.1.找IC卡
原 型:int Routon_IC_FindCard();
说 明:本函数用于寻卡。
参 数: 无。
返 回 值:
值 意义
1 M1-S50卡
2 CPU卡
3 M1-S70卡
4 Mifare 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);
说 明:本函数用于控制澳门官方游戏 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卡的>###,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可利用本接口,澳门官方游戏利用InitComm()举行端口初始化。
原 型:int dc_init(int port,long baud);
说 明:初始化通讯口。
参 数:
port:取值为1~16。
baud:为通讯波特率9600~115200。
返 回 值:乐成则前往串口通讯设置装备摆设标识符>0,失败前往负值。
4.3.10.dc_exit
留意:仅串口型iDR200可利用本接口,澳门官方游戏利用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 乐成
-1 APDU指令超长(凌驾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 本国人居留证
102 港澳台寓居证
别的 别的错误
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] 字符指针,表现照片存储途径,途径最初有无“\”均可;可以给空值(“”),表现照片存储在以后用户的暂时目次中。
返 回 值:
值 意义
0 读取卡信息失败
1 读取卡信息乐成
4.3.34.Routon_ReadAllGATBaseInfos (char*Name, char *Gender,char *FutureItem1, char* BirthDay,char *Address, char *Code, char *Agency, char * ExpireStart,char* ExpireEnd,char *PassID,char *SignCnt, char *FutureItem2,char *CardType,char *FutureItem3)
说 明:本函数用来读取港澳台住民寓居证一切信息内容,照片文件保管在以后stdapi.dll文件相反目次中,照片文件名为photo.bmp。
参 数:
Name [out] 字符型指针,指向姓名信息。必要在挪用时分派内存,字节数不小31。
Gender [out] 字符型指针,指向性别信息(男大概女)。必要在挪用时分派内存,字节数不小3。
FututureItem1 [out] 字符型指针,指向预留项,暂无信息。必要在挪用时分派内存,字节数不小5。
BirthDay [out] 字符型指针,指向出生日期信息。必要在挪用时分派内存,字节数不小9,前四位为出生年,第5位到第6位是出生月,后两位是出生日,款式为:CCYYMMDD。
Address [out] 字符型指针,指向地点信息。必要在挪用时分派内存,字节数不小71。
Code [out] 字符型指针,指向身份证号码信息。必要在挪用时分派内存,字节数不小19。
Agency [out] 字符型指针,签发构造信息。必要在挪用时分派内存,字节数不小于31。
ExpireStart [out] 字符型指针,指向无效期肇始日期信息。必要在调
用时分派内存,字节数不小9, 款式为:CCYYMMDD。
ExpireEnd [out] 字符型指针,指向无效期停止日期信息。必要在挪用时分派内存,字节数不小9,款式为:CCYYMMDD,无效期为临时的表现为汉字“临时”。
PassID [out] 字符型指针,指向指向通畅证号码信息。必要在挪用时分派内存,字节数不小于19。
SignCnt [out] 字符型指针,指向签发次数信息。必要在挪用时分派内存,字节数不小于5。
FutureItem2 [out] 字符型指针,指向预留项信息。临时无信息。必要在挪用时分派内存,本人数不小于7。现在寄存了三个空格符。
CardType [out] 字符型指针,指向证件范例标识。必要在挪用时分派内存,字节数不小于2。港澳台住民寓居证的标识为大写字母“J”。
FutureItem3 [out] 字符型指针,指向预留项信息。必要在挪用时分派内存,本人数不小于7。现在寄存了三个空格符。
返 回 值:
值 意义
0 读取卡信息失败
1 读取卡信息乐成
4.3.35.Routon_ReadAllGATBaseInfosPhoto (char*Name, char *Gender,char *FutureItem1, char* BirthDay,char *Address, char *Code, char *Agency, char * ExpireStart,char* ExpireEnd,char *PassID,char *SignCnt, char *FutureItem2,char *CardType,char *FutureItem3,char *Directory)
说 明:本函数用来读取港澳台住民寓居证一切信息内容,照片文件保管在以后stdapi.dll文件相反目次中,照片文件名为photo.bmp。
参 数:
Name [out] 字符型指针,指向姓名信息。必要在挪用时分派内存,字节数不小31。
Gender [out] 字符型指针,指向性别信息(男大概女)。必要在挪用时分派内存,字节数不小3。
FututureItem1 [out] 字符型指针,指向预留项,暂无信息。必要在挪用时分派内存,字节数不小5。
BirthDay [out] 字符型指针,指向出生日期信息。必要在挪用时分派内存,字节数不小9,前四位为出生年,第5位到第6位是出生月,后两位是出生日,款式为:CCYYMMDD。
Address [out] 字符型指针,指向地点信息。必要在挪用时分派内存,字节数不小71。
Code [out] 字符型指针,指向身份证号码信息。必要在挪用时分派内存,字节数不小19。
Agency [out] 字符型指针,签发构造信息。必要在挪用时分派内存,字节数不小于31。
ExpireStart [out] 字符型指针,指向无效期肇始日期信息。必要在调
用时分派内存,字节数不小9, 款式为:CCYYMMDD。
ExpireEnd [out] 字符型指针,指向无效期停止日期信息。必要在挪用时分派内存,字节数不小9,款式为:CCYYMMDD,无效期为临时的表现为汉字“临时”。
PassID [out] 字符型指针,指向指向通畅证号码信息。必要在挪用时分派内存,字节数不小于19。
SignCnt [out] 字符型指针,指向签发次数信息。必要在挪用时分派内存,字节数不小于5。
FutureItem2 [out] 字符型指针,指向预留项信息。临时无信息。必要在挪用时分派内存,本人数不小于7。现在寄存了三个空格符。
CardType [out] 字符型指针,指向证件范例标识。必要在挪用时分派内存,字节数不小于2。港澳台住民寓居证的标识为大写字母“J”。
FutureItem3 [out] 字符型指针,指向预留项信息。必要在挪用时分派内存,本人数不小于7。现在寄存了三个空格符。
Directory [in] 字符指针,表现照片存储途径,途径最初有无“\”均可;可以给空值(“”),表现照片存储在以后用户的暂时目次中。
返 回 值:
值 意义
0 读取卡信息失败
1 读取卡信息乐成
4.3.36.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.37.SelectUSB(int index)
说 明:依据用户选择的“部标”设置装备摆设和HID设置装备摆设,初始化响应的设置装备摆设端口。
备 注:仅针对USB接口的“部标”设置装备摆设和HID设置装备摆设,挪用之前必需先先FindAllUSB()函数寻觅USB接口设置装备摆设。
参 数:
index整数,表现“部标”设置装备摆设和HID设置装备摆设。0代表“部标”设置装备摆设,1代表HID1,2代表HID2。
返 回 值:
值 意义
1 初始化指定设置装备摆设端口乐成
0 初始化指定设置装备摆设端口失败
4.3.38.CloseSDTandHIDComm(int index)
说 明:依据翻开的“部标”设置装备摆设和HID设置装备摆设的端口,封闭响应的端口。
备 注:仅针对USB接口的“部标”设置装备摆设和HID设置装备摆设。
参 数:
index整数,表现“部标”设置装备摆设和HID设置装备摆设。0代表“部标”设置装备摆设,1代表HID1,2代表HID2。
返 回 值:
值 意义
1 封闭指定设置装备摆设端口乐成
0 封闭指定设置装备摆设端口失败
4.3.39.InitSDTandHIDComm(int index)
说 明:寻觅以后PC毗连的USB接口设置装备摆设,依据用户选择的“部标”设置装备摆设和HID设置装备摆设,初始化响应的设置装备摆设端口。
备 注:仅针对USB接口的“部标”设置装备摆设和HID设置装备摆设。该接口包括了FindAllUSB()和SelectUSB()的功效。
参 数:
index整数,表现“部标”设置装备摆设和HID设置装备摆设。0代表“部标”设置装备摆设,1代表HID1,2代表HID2。
返 回 值:
值 意义
1 初始化指定设置装备摆设端口乐成
0 初始化指定设置装备摆设端口失败
4.3.40.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款式
身份证:姓名|性别|民族|出生年代日|住址|百姓身份号码|签发构造|无效限期肇始日期|无效限期完毕日期|无效限期
本国证: 英文姓名|中文姓名|性别|国籍或地域代号|出生年代日|永世寓居证号码|签发构造|无效限期肇始日期|无效限期完毕日期|无效限期
4.4.eID卡相干函数
4.4.1 eID_Authenticate()
阐明:寻觅eID卡
参数:无
前往值:
前往值 寄义
1 乐成
-1 eID卡激活失败
-2 PSAM卡激活失败
-3 APDU指令发送错误
-4 eID卡前往非常
-5 选择eID使用失败
-6 找eID卡失败
备注:eID卡属于A卡中的CPU卡范例,可先挪用找A卡下令将eID和身份证举行区分。
4.4.2读eID卡原始信息
函数原型:eID_ReadBaseMsg(unsigned char* ucCHMsg, unsigned int* uiCHMsgLen, unsigned char* ucPHMsg, unsigned int* uiPHMsgLen,
unsigned char* ucFPMsg, unsigned int* uiFPMsgLen, unsigned char* ucAddAddress, unsigned int* uiAddAddressLen)
阐明:读eID卡原始信息,包罗文本信息、图片信息、指纹信息、附加地点信息
参数:
ucCHMsg:[out]字符型指针,指向eID的文来源根基始信息,在挪用时分派内存,内存不小于256字节。
uiCHMsgLen:[out]无标记整数指针,指向eID原始文本信息长度。正常状况下是获取的值为256。
ucPHMsg:[out]字符型指针,指向eID的头像图片原始信息,在挪用时分派内存,内存不小于1024字节。
uiPHMsgLen:[out]无标记整数指针,指向eID头像照片原始信息长度。正常状况下是获取的值为1024。
ucFPMsg:[out]字符型指针,指向eID的指纹原始信息,在挪用时分派内存,内存不小于1024字节。
uiFPMsgLen:[out]无标记整数指针,指向eID指纹原始信息长度。假如eID包括指纹信息,正常状况下值为1024。
ucAddAddress:[out]字符型指针,指向eID的附加地点信息,在挪用时分派内存,内存不小于70字节。
uiAddAddressLen:[out]无标记整数指针,指向eID附加地点信息长度。假如eID包附加地点信息,正常状况下值为70。
前往值:
前往值 寄义
1 乐成
-1 下令发送失败
-2 下令实行错误
-3 追加信息读取非常
-4 指纹信息读取非常
-5 头像信息读取非常
-6 文本信息读取非常
-7 宁静认证错误
-8 明文信息校验失败
4.4.3 读eID根本信息
函数原型:int STDCALL eID_ReadBaseInfos(char * Name, char * Gender, char * Folk,char *BirthDay, char * Code, char * Address,char *Agency, char * ExpireStart,char* ExpireEnd,unsigned char* FPMsg, char* AddAddress, char* 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,无效期为临时的表现为汉字“临时”。
FPMsg [out] 字符型指针,指向eID中的指纹特性值。必要在挪用时分派内存,字节数不小1024。
FPMsgLen [out] 整型指针,指向eID中的指纹特性值长度。
directory [in] 字符指针,表现照片存储途径,途径最初有无“\”均可;可以给空值(NULL),表现照片存储在ProgramData目次子目次 PLSY Soft中。
前往值:
前往值 寄义
1 乐成
0 失败
其他 错误值参照eID_ReadBaseMsg的错误前往
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卡示例(澳门官方游戏)
示 例:
#include “sdtapi.h”
int main()
{
int ret;
int dev;
ret =InitComm (1001);//USB接口的澳门官方游戏
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.读取指纹及身份证信息示例(澳门官方游戏)
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,"提醒");
}
…
//此到处理指纹及身份证信息
}
}
CloseComm();
5.4.CPU卡操纵示例(澳门官方游戏)
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[]=” 00A404000E315041592E5359532E4444463031”;
ret=Routon_CPUCard_Active();
if (ret==1){ //激活乐成
ret=Routon_APDU(apdu,data,&datalen);//data为16进制值
}
}
CloseComm();
5.5.本国人居留证操纵示例(iDR200/澳门官方游戏)
#include “sdtapi.h”
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.“部标”设置装备摆设和HID设置装备摆设同时毗连PC,读卡示例(澳门官方游戏)
#include “sdtapi.h”
int main()
{
int ret;
int index;//输出的USB设置装备摆设索引号,“0”部标设置装备摆设,“1”HID1,“2”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.本国证居留证天生正背面照片操纵示例(澳门官方游戏)
#include “sdtapi.h”
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;
}
5.8.eID读卡示例
#include “sdtapi.h”
int main()
{
int ret;
int dev;
ret =InitComm (1001);//USB接口, 1-16则为串标语
if ( ret )
{
ret= eID_Authenticate ();
if (ret){
ret = eID_ReadBaseInfos(Name, Gender, Folk, BirthDay, Code, Address, Agency, ExpireStart, ExpireEnd, FPMsg, AddAddress,“C:\\temp\\”);
}
}
CloseComm();
return 0;
}