202 lines
9.6 KiB
Plaintext
202 lines
9.6 KiB
Plaintext
2.3.1 基本接口
|
||
2.3.1.1 打开设备
|
||
函数名称 打开设备
|
||
函数声明 long OpenDevice(char *PortType, char *PortPara, char *ExtendPara);
|
||
功能描述 与设备建立通讯连接,返回设备句柄。
|
||
参数说明 序号 参数 输入/输出 类型 含义
|
||
1 PortType IN 字符串 端口类型(详见参数补充说明)
|
||
2 PortPara IN 字符串 端口参数(详见参数补充说明)
|
||
3 ExtendPara IN 字符串 扩展参数(详见参数补充说明)
|
||
返回值 大于0表示成功,数值为设备句柄;其他为失败。
|
||
|
||
参数补充说明:
|
||
PortType PortPara ExtendPara
|
||
串口 COMn 或 1~1000 波特率(9600、115200) 串口扩展盒参数(1B2541)
|
||
USB USBn 或 1001~2000 VID_PID(261A0011、261A0012) 中断传输为:MI 控制传输为:MC
|
||
网口 SKT IP:端口(192.168.0.1:8080)
|
||
蓝牙 BTH 蓝牙名称(SS728M801)
|
||
自动 AUTO
|
||
注意事项:
|
||
1、COMn和USBn中n∈1~1000,即COM1~COM1000(1~1000)和USB1~USB1000(1001~2000)
|
||
2、Linux/Android下串口传参为:COM+串口文件路径,例如:COM/dev/ttyS4
|
||
3、端口类型为AUTO时,是指各参数通过CommonInterface.ini配置文件获取,用法详见附录C方案二。
|
||
神思USB读卡器的VID_PID对照表请参见附录B
|
||
2.3.1.2 关闭设备
|
||
函数名称 关闭设备
|
||
函数声明 long CloseDevice();
|
||
功能描述 断开与设备的通讯连接。
|
||
参数说明 序号 参数 输入/输出 类型 含义
|
||
|
||
返回值 0表示成功;非0表示失败。
|
||
2.3.1.3 设置当前设备(多设备操作)
|
||
函数名称 设置当前设备
|
||
函数声明 long SetCurrentDevice(long DevHandle);
|
||
功能描述 一台PC连接多台读卡器时,通过设备句柄设置接下来要操作的设备。
|
||
参数说明 序号 参数 输入/输出 类型 含义
|
||
1 PortHandle IN 长整型 设备句柄
|
||
返回值 0表示成功;非0表示失败。
|
||
2.3.1.4 获取当前设备(多设备操作)
|
||
函数名称 获取当前设备
|
||
函数声明 long GetCurrentDevice();
|
||
功能描述 一台PC连接多台读卡器时,获取当前操作的设备句柄。
|
||
参数说明 序号 参数 输入/输出 类型 含义
|
||
|
||
返回值 返回当前设备的句柄。
|
||
2.3.1.5 获取接口库信息
|
||
函数名称 获取接口库信息
|
||
函数声明 long GetLibraryInfo(char *Version, char * Description);
|
||
功能描述 获取当前已加载的接口库详细信息。
|
||
参数说明 序号 参数 输入/输出 类型 含义
|
||
1 Version OUT 字符串 接口库版本
|
||
2 Description OUT 字符串 接口库描述
|
||
返回值 0表示成功;非0表示失败。
|
||
2.3.1.6 获取设备型号
|
||
函数名称 获取设备型号
|
||
函数声明 long TerminalGetModel(char *TerminalModel);
|
||
功能描述 获取读卡器的型号。
|
||
参数说明 序号 参数 输入/输出 类型 含义
|
||
1 TerminalModel OUT 字符串 设备型号
|
||
返回值 0表示成功;非0表示失败。
|
||
2.3.1.7 设备轮询心跳
|
||
函数名称 设备轮询心跳
|
||
函数声明 long TerminalHeartBeat();
|
||
功能描述 与设备进行握手通讯,用于检测与读卡器是否已建立连接并且通讯正常。
|
||
参数说明 序号 参数 输入/输出 类型 含义
|
||
|
||
返回值 0表示成功;非0表示失败。
|
||
|
||
2.3.1.8 获取接收数据
|
||
函数名称 获取接收数据
|
||
函数声明 long GetLastRecvData(unsigned char *LastRecvData);
|
||
功能描述 获取最后一次通讯收到的数据,一般用于获取读卡器协议层错误信息。
|
||
参数说明 序号 参数 输入/输出 类型 含义
|
||
1 LastRecvData OUT 字节数组 返回最后一次通讯收到的数据
|
||
返回值 返回收到的数据长度。
|
||
|
||
2.3.1.9 获取固件版本
|
||
函数名称 获取设备固件版本
|
||
函数声明 long TerminalGetFirmVersion(char *FirmVersion, char *HardwareVersion);
|
||
功能描述 获取读卡器的固件版本号。
|
||
参数说明 序号 参数 输入/输出 类型 含义
|
||
1 FirmVersion OUT 字符串 设备固件版本号
|
||
2 HardwareVersion OUT 字符串 设备硬件版本号
|
||
返回值 0表示成功;非0表示失败。
|
||
2.3.1.10 获取设备序列号
|
||
函数名称 获取设备序列号
|
||
函数声明 long TerminalGetSn(char *TerminalSn);
|
||
功能描述 获取读卡器的固件版本号。
|
||
参数说明 序号 参数 输入/输出 类型 含义
|
||
1 TerminalSn OUT 字符串 设备序列号
|
||
返回值 0表示成功;非0表示失败。
|
||
|
||
|
||
|
||
2.3.2 二代证接口(二代证/外国人/港澳台)
|
||
2.3.2.1 读取二代证
|
||
函数名称 读取二代证
|
||
函数声明 long IdReadCard(unsigned char CardType, unsigned char InfoEncoding, char *IdCardInfo,
|
||
long TimeOutMs);
|
||
long SdtReadCard(unsigned char CardType, unsigned char InfoEncoding, char *IdCardInfo,
|
||
long TimeOutMs);(GA467协议)
|
||
功能描述 读取第二代居民身份证或外国人永久居留证或港澳台居民居住证
|
||
参数说明 序号 参数 输入/输出 类型 含义
|
||
1 CardType IN 字节 读取卡类型
|
||
0x00 :读取二代证或外国人或港澳台
|
||
0x01 :只读二代证
|
||
0x02 :只读外国人
|
||
0x03 :只读港澳台
|
||
|
||
以上参数不含指纹信息
|
||
以下参数包含指纹信息
|
||
|
||
0x10 :读取二代证或外国人或港澳台 (含指纹)
|
||
0x11 :只读二代证(含指纹)
|
||
0x12 :只读外国人(含指纹)
|
||
0x13 :只读港澳台(含指纹)
|
||
2 InfoEncoding IN 字节 返回信息的编码方式
|
||
0x01 :GB18030编码(GBK)
|
||
0x02 :UTF16-LE编码
|
||
0x03 :UTF-8编码
|
||
3 IdCardInfo OUT 字符串 读取到的二代证/外国人/港澳台信息
|
||
(至少分配10240字节的内存)
|
||
4 TimeOutMs IN 长整型 读卡超时时间,单位为毫秒
|
||
= 0 :不等待,无卡立即返回
|
||
> 0 :等待放卡,指定时间内等待放卡
|
||
返回值 0表示成功;非0表示失败。
|
||
|
||
读卡返回信息IdCardInfo格式为以英文冒号分割的信息项,具体如下:
|
||
证件类型:中文姓名:英文姓名:性别:性别代码:民族:民族代码:出生日期:住址:身份证号码:签发机关:发卡日期:卡有效期:证件版本号:头像JPG照片base64编码:指纹特征值base64编码
|
||
以上信息为二代证、外国人、港澳台信息项的并集,如果当前类型的证件中不存在该项信息,则该项为空,具体证件中包含的信息项如下:
|
||
序号 信息项 二代证 外国人 港澳台 自动解析函数
|
||
0 证件类型 A I或Y J IdCardGetTypeFlag
|
||
1 中文姓名 姓名 中文姓名 姓名 IdCardGetName
|
||
2 英文姓名 英文姓名 IdCardGetNameEn
|
||
3 性别 性别 性别 性别 IdCardGetGender
|
||
4 性别代码 性别代码 性别代码 性别代码 IdCardGetGenderId
|
||
5 民族 民族 国籍或所在地区 IdCardGetNation
|
||
6 民族代码 民族代码 国籍或所在地区代码 通行证号码 IdCardGetNationId
|
||
7 出生日期 出生日期 出生日期 出生日期 IdCardGetBirthDate
|
||
8 住址 住址 /永久居留证号码关联项 住址 IdCardGetAddress
|
||
9 身份证号码 公民身份号码 永久居留证号码/证件号码 公民身份号码 IdCardGetIdNumber
|
||
10 签发机关 签发机关 当次申请受理机关代码 签发机关 IdCardGetSignOrgan
|
||
11 发卡日期 有效期
|
||
起始日期 证件签发日期 有效期
|
||
起始日期 IdCardGetBeginTerm
|
||
12 卡有效期 有效期
|
||
截止日期 证件终止日期 有效期
|
||
截止日期 IdCardGetValidTerm
|
||
13 证件版本号 证件版本号/换证次数 签发次数 IdCardGetVersion
|
||
14 头像JPG照片base64编码 头像照片base64编码 头像照片base64编码 头像照片base64编码
|
||
15 指纹特征值base64编码 指纹特征值base64编码 指纹特征值base64编码
|
||
|
||
各信息项建议通过拆分IdCardInfo字符串得到,不建议使用以下函数获取:
|
||
long IdCardGetName(char *Name);
|
||
long IdCardGetNameEn(char *NameEn);
|
||
long IdCardGetGender(char *Gender);
|
||
long IdCardGetGenderId(char *GenderId);
|
||
long IdCardGetNation(char *Nation);
|
||
long IdCardGetNationId(char *NationId);
|
||
long IdCardGetBirthDate(char *BirthDate);
|
||
long IdCardGetAddress(char *Address);
|
||
long IdCardGetIdNumber(char *IdNumber);
|
||
long IdCardGetSignOrgan(char *SignOrgan);
|
||
long IdCardGetBeginTerm(char *BeginTerm);
|
||
long IdCardGetValidTerm(char *ValidTerm);
|
||
long IdCardGetTypeFlag(char *TypeFlag);
|
||
long IdCardGetVersion(char *Version);
|
||
long IdCardGetFPBuffer(unsigned char *FPBuffer, long *FPBufferLen);//返回1024字节指纹信息(两个手指)
|
||
long IdCardGetPhotoFile(char *PhotoFile);//入参PhotoFile为生成头像文件的全路径,支持扩展名wlt/bmp/jpg
|
||
long IdCardGetPhotoBuffer(unsigned char WltBmpJpg, unsigned char *PhotoBuffer, long *PhotoBufferLen);
|
||
WltBmpJpg入参:0x01 :wlt格式 0x02 :bmp格式 0x03 :jpg格式
|
||
|
||
//获取二代证原始信息
|
||
long IdCardGetRawInfo(unsigned char *CHMsg, long *CHMsgLen, //文字信息
|
||
unsigned char *PHMsg, long *PHMsgLen, //照片信息
|
||
unsigned char *FPMsg, long *FPMsgLen); //指纹信息
|
||
|
||
2.3.2.2 读取追加住址
|
||
函数名称 读取追加住址
|
||
函数声明 long IdReadNewAddress(char *NewAddress);
|
||
long SdtReadNewAddress(char *NewAddress); (GA467协议)
|
||
功能描述 读取二代证的追加住址信息
|
||
参数说明 序号 参数 输入/输出 类型 含义
|
||
1 NewAddress OUT 字符串 返回读取到的追加住址信息
|
||
返回值 0表示成功;非0表示失败。
|
||
2.3.2.3 获取SAM模块状态
|
||
函数名称 获取SAM模块状态
|
||
函数声明 long SamGetStatus();
|
||
long SdtSamGetStatus();(GA467协议)
|
||
功能描述 获取公安部SAM安全模块状态。
|
||
参数说明 序号 参数 输入/输出 类型 含义
|
||
|
||
返回值 0表示成功;非0表示失败。
|
||
2.3.2.4 获取SAM模块编号字符串
|
||
函数名称 获取SAM模块编号字符串
|
||
函数声明 long SamGetIdStr(char *SamIdStr);
|
||
long SdtSamGetIdStr(char *SamIdStr); (GA467协议)
|
||
功能描述 获取公安部SAM安全模块编号字符串。(内部将编号转换为字符串)
|
||
参数说明 序号 参数 输入/输出 类型 含义
|
||
1 SamIdStr OUT 字符串 SAM模块编号字符串
|
||
返回值 0表示成功;非0表示失败。
|
||
|