This commit is contained in:
2026-03-31 08:51:00 +08:00
commit 12d21c4c90
71 changed files with 4529 additions and 0 deletions

View File

@@ -0,0 +1,201 @@
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_PID261A0011、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表示失败。