二代证系统终端API使用手册
返回值:
0x90 其他
读IIN,SN和DN成功
读IIN,SN和DN失败(具体含义参见返回码表)
4.3.5 SDT_ReadBaseMsgToFile
与SDT_ ReadBaseMsg函数类似,读取ID卡内基本信息区域信息,并将读到的基本信息写进输入参数所指定的文件中。
int SDT_ ReadBaseMsgToFile (
int iPortID,
char * pcCHMsgFileName, unsigned int * puiCHMsgFileLen, char * pcPHMsgFileName, unsigned int * puiPHMsgFileLen, int iIfOpen );
参数说明:
iPort [in] 整数,表示端口号。参见SDT_ResetSAM。
pcCHMsgFileName [in] 读取到的ID卡内文字信息,需要写入文件,此为由用户指定的文件名。
puiCHMsgFileLen [out] 存储文字信息的文件的长度。
pcCHMsgFileName [in] 读取到的ID卡内照片信息,需要写入文件,此为由用户指定的文件名。
puiCHMsgFileLen [out] 存储照片信息的文件的长度。
iIfOpen [in] 整数,参见SDT_ResetSAM。
返回值:
0x90 读基本信息成功
其他 读基本信息失败(具体含义参见返回码表)
4.3.6 SDT_ReadIINSNDNToASCII
读取ID卡内IIN,SN和DN,并把16进制转化成ASCII形式。 int SDT_ReadSNDN (
int iPort, unsigned char * pucIINSNDN, int iIfOpen );
二代证系统终端API使用手册
参数说明:
iPort [in] 整数,表示端口号。参见SDT_ResetSAM。
pucIINSNDN [out] 无符号字符指针,指向读到的IIN,SN和DN,长度为固定56字节。
iIfOpen [in] 整数,参见SDT_ResetSAM。
返回值:
0x90 读SN和DN成功
其他 读SN和DN失败(具体含义参见返回码表)
举例说明:
如读取到的IIN,SN和DN十六进制是{0x12, 0x9a…},把每个字节拆分成两个ASCII形式的数,转化成后则为{0x31,0x32,0x39,0x61…}。
5.API调用说明
5.1 调用顺序
有些API的调用有一定先后顺序。我们把这些有先后顺序关系的API按不同层次列表如下。(2)级函数执行前必须执行其上的(1),即(1)级函数最先执行,然后可以执行(2)级函数,然后可以执行(3)级函数,然后依次为(4)级、(5)级函数。同一级函数没有先后顺序。其他未列出的函数全是(1)级函数,调用没有先后顺序。
SDT_StartFindIDCard(1)
SDT_SelectIDCard(2)
SDT_ReadBaseMsg(3)
5.2 例子程序(以delphi语言为例)
var
iRet:integer;
pucIIN: array[0..3] of char; pucSN: array[0..7] of char; pucCHMsg:array[0..1023] of uchar; //文字信息 pucPHMsg:array[0..1023] of uchar; //照片信息 uiCHMsgLen,uiPHMsgLen:integer;
----------------------------------------------------------------------------
二代证系统终端API使用手册
//打开串口
iRet := SDT_OpenPort(Com); if (iRet <> $90) then begin
ScreenErrorinfo('打开串口错误!',iRet); SDT_ClosePort(Com); exit; end; //找卡 iRet := SDT_StartFindIDCard(Com, pucIIN, 0); if (iRet <> $9f) then begin
ScreenErrorinfo('请重新放置身份证.',iRet); SDT_ClosePort(Com); exit; end; //选卡
iRet := SDT_SelectIDCard(Com,pucSN, 0); if (iRet <> $90) then begin
ScreenErrorinfo('此卡不是标准身份证!',iRet); SDT_ClosePort(Com); exit; end; //读卡 iRet := SDT_ReadBaseMsg(Com,
pucCHMsg, uiCHMsgLen, pucPHMsg, uiPHMsgLen, 0); if (iRet<> $90) then begin
ScreenErrorinfo('读卡时发生错误!请不要移动身份证.',iRet); SDT_ClosePort(Com); exit; end;
//读卡代码略
//关闭串口
iRet := SDT_ClosePort(Com); if (iRet<> $90) then begin
ScreenErrorinfo('关闭串口发生错误!',iRet);
二代证系统终端API使用手册
exit; end;
6.函数返回码列表 API返回值列表: 类 别 返回值 (16进制) 成功信息 90 91 9F SAM通信 01 02 03 04 05 06 10 11 SAM命令错 21 23 80 81 31 32 33 34 40 41 50 61 60 66 意 义 操作成功 没有该项内容 返回找卡成功信息 端口打开失败/端口尚未打开/端口号不合法 PC接收超时,在规定的时间内未接收到规定长度的数据。 PC判断校验和错 USB设备未配置 该SAM串口不可用,只在SDT_GetCOMBaud时才有可能返回 USB设备被禁用 SAM判断校验和错 SAM接收超时,在规定的时间内未接收到规定长度的数据。 接收业务终端的命令错误,包括命令中的各种数值或逻辑搭配错误 越权的操作申请 找卡不成功 选卡不成功 卡认证机具失败 机具认证卡失败 信息验证错误 尚未找卡,不能进行对卡的操作 无法识别的卡类型 读卡操作失败 写卡操作失败 用户登录失败 自检失败,不能接收命令 KDC没有下载正式密钥 与ID卡相关 SAM状态
二代证系统终端API使用手册
相片解码函数使用说明
内蒙古银安科技开发有限责任公司
一、概述
本手册是相片解码函数的定义格式、调用方法和返回值的说明。