(新中新)二代证SDK开发包开发说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(新中新)二代证SDK开发包开发说明
一、系统的基本要求
a)Windows 98,Windows 2000 Pro,Windows 2000 Server,WinXP,Windows Vista,
Windows7
b)至少32兆内存(32M RAM or Larger)
c)至少10兆空闲硬盘空间(10M Free Hard Disk Space or Larger)
d)至少一个空闲普通串口或USB口(视用户需求而定)。
二、SDK函数说明
(一)端口类API:
Syn_SetMaxRFByte 设置射频适配器最大通信字节数
int Syn_SetMaxRFByte (
int iPort,
unsigned char ucByte,
int bIfOpen
);
参数说明:
iPort
[in] 整数,表示端口号。
串口0001至0016,USB1001至1016 ucByte
[in] 无符号字符,24-255,表示射频适配器最大通信字节数。
iIfOpen
[in] 整数,非0表示在API函数内部包含了打开端口和关闭端口函数,0表
示在API函数内部不包含了打开端口和关闭端口函数
返回值:
0 成功
其他失败(具体含义参见返回码表)
Syn_GetCOMBaud查看串口当前波特率(该函数只用于SAM采用RS232串口的情形,如果采用USB接口则不支持该API)。
int Syn_GetCOMBaud (
int iPort,
unsigned int * puiBaudRate
);
参数说明:
iPort
[in] 整数,表示端口号。
此处端口号必须为1-16,表示串口
puiBaudRate
[out] 无符号整数指针,指向普通串口当前波特率, 默认情况下为115200。
返回值:
0 成功
0X01 端口打开失败/端口号不合法
0X05 无法获得该SAM的波特率,该SAM串口不可用。
Syn_GetCOMBaudEx查看串口当前波特率(该函数只用于SAM采用RS232串口的情形,如果采用USB接口则不支持该API)。
int Syn_GetCOMBaudEx (
int iPort,
);
参数说明:
iPort
[in] 整数,表示端口号。
此处端口号必须为1-16,表示串口
返回值:
0 失败其他为读卡器当前波特率
Syn_SetCOMBaud设置SAM的串口的波特率(该函数只用于SAM采用RS232串口的情形,如果采用USB接口则不支持该API),设置成功后,在该SAM和主机注册表中都记录设置后的波特率,保证在SAM重新启动和该套API被重新调用时采用设置后的波特率。
该函数调用成功后,需要延时5毫秒,然后才能继续与SAM通信。
int Syn_SetCOMBaud (
int iPort,
unsigned int uiCurrBaud,
unsigned int uiSetBaud
);
参数说明:
iPort
[in] 整数,表示端口号。
此处端口号必须为1-16,表示串口。
uiCurrBaud
[in] 无符号整数,调用该API前已设置的业务终端与SAM通信的波特率(SAM
出厂时默认,业务终端与SAM通信的波特率为115200).业务终端以该波特率与
SAM通信,发出设置SAM新波特率的命令.。
uiCurrBaud只能为下列数值之一:
115200,57600,38400,19200,9600.如果uiCurrBaud数值不是这些值之一,
函数返回0X21;如果已设置的波特率与uiCurrBaud不一致, 则函数返回0X02,
表示不能设置,调用API不成功。
uiSetBaud
[in] 无符号整数,将要设置的SAM与业务终端通信波特率。
uiSetBaud只能
取下列值之一::115200,57600,38400,19200,9600,如果输入uiSetBaud
参数不是这些数值之一,,函数返回0X21,设置不成功,保持原来的波特率不
变。
返回值:
0 成功
0X01 端口打开失败/端口号不合法。
0X02 超时,设置不成功。
0X21 uiCurrBaud 、uiSetBaud输入参数数值错误。
Syn_OpenPort打开端口
int Syn_OpenPort(
int iPort
);
参数说明:
iPort
[in] 整数,表示端口号。
1-16(十进制)为串口,1001-1016(十进制)为
USB口,USB的端口设置参看“USB设备配置使用手册”。
返回值:
0 打开端口成功
0X01 打开端口失败/端口号不合法
Syn_ClosePort关闭端口
int Syn_ClosePort (
int iPort
);
参数说明:
iPort
[in] 整数,表示端口号。
返回值:
0 关闭端口成功。
0x01 端口号不合法
(二)SAM类API:
Syn_ResetSAM对SAM复位
int Syn_ResetSAM (
int iPort,
int iIfOpen
);
参数说明:
iPort
[in] 整数,表示端口号。
根据SAM使用的接口不同(分为普通串口SAM和USB
口SAM),分别使用不同的端口号(目前串口和USB都只支持16个,即串口
0001-0016和USB1001-1016):
iIfOpen
[in] 整数,0表示不在该函数内部打开和关闭串口,此时确保之前调用了
Syn_OpenPort来打开端口,并且在不需要与端口通信时,调用Syn_ClosePort
关闭端口;非0表示在API函数内部包含了打开端口和关闭端口函数,之前
不需要调用Syn_OpenPort,也不用再调用Syn_ClosePort。
返回值:
0 成功
其他失败(具体含义参见返回码表)
Syn_GetSAMStatus对SAM进行状态检测。
int Syn_GetSAMStatus (
int iPort,
int iIfOpen
);
参数说明:
iPort
[in] 整数,表示端口号。
参见Syn_ResetSAM。
iIfOpen
[in] 整数,参见Syn_ResetSAM。
返回值:
0 SAM正常
0x60 自检失败,不能接收命令
其他命令失败(具体含义参见返回码表)
Syn_GetSAMID读取SAM的编号。
int Syn_GetSAMID (
int iPort,
unsigned char * pucSAMID,
int iIfOpen
);
参数说明:
iPort
[in] 整数,表示端口号。
参见Syn_ResetSAM。
pucSAMID
[out] 无符号字符串指针,指向读到的SAM编号, 16字节。
返回值:
0 成功
其他失败(具体含义参见返回码表)
Syn_GetSAMIDToStr读取SAM的编号。
int Syn_GetSAMIDToStr (
int iPort,
char * pcSAMID,
int iIfOpen
);
参数说明:
iPort
[in] 整数,表示端口号。
参见Syn_ResetSAM。
pcSAMID
[out] 字符串指针,指向读到的SAM编号。
iIfOpen
[in] 整数,参见Syn_ResetSAM。
返回值:
0 成功
其他失败(具体含义参见返回码表)
Syn_FindReader自动寻找读卡器。
int Syn_FindReader ();
返回值:
0 未找到
其他1~16串口1001~1016USB
(三)身份证卡类API:
Syn_StartFindIDCard开始找卡。
int Syn_StartFindIDCard (
int iPort ,
unsigned char* pucIIN,
int iIfOpen
);
参数说明:
iPort
[in] 整数,表示端口号。
参见Syn_ResetSAM。
pucIIN
[out] 无符号字符指针,指向读到的IIN。
iIfOpen
[in] 整数,参见Syn_ResetSAM。
返回值:
0 找卡成功
0x80 找卡失败
Syn_SelectIDCard选卡。
int Syn_ SelectIDCard (
int iPort ,
unsigned char* pucSN,
int iIfOpen
);
参数说明:
iPort
[in] 整数,表示端口号。
参见Syn_ResetSAM。
pucSN
[out] 无符号字符指针,指向读到的SN。
iIfOpen
[in] 整数,参见Syn_ResetSAM。
返回值:
0 选卡成功
0x81 选卡失败
Syn_ReadBaseMsg读取ID卡内基本信息区域信息。
int Syn_ReadBaseMsg (
int iPort,
unsigned char *pucCHMsg,
unsigned int * puiCHMsgLen,
unsigned char *pucPHMsg,
unsigned int * puiPHMsgLen,
int iIfOpen
);
参数说明:
iPort
[in] 整数,表示端口号。
参见Syn_ResetSAM。
pucCHMsg
[out] 无符号字符指针,指向读到的文字信息。
puiCHMsgLen
[out] 无符号整型数指针,指向读到的文字信息长度。
pucPHMsg
[out] 无符号字符指针,指向读到的照片信息。
puiPHMsgLen
[out] 无符号整型数指针,指向读到的照片信息长度。
iIfOpen
[in] 整数,参见Syn_ResetSAM。
返回值:
0 读基本信息成功
其他读基本信息失败(具体含义参见返回码表)Syn_ReadIINSNDN读取ID卡内IIN,SN和DN。
int Syn_ReadIINSNDN (
int iPort,
unsigned char *pucIINSNDN,
int iIfOpen
);
参数说明:
iPort
[in] 整数,表示端口号。
参见Syn_ResetSAM。
pucIINSNDN
[out] 无符号字符指针,指向读到的IIN,SN和DN,长度为固定28字节。
iIfOpen
[in] 整数,参见Syn_ResetSAM。
返回值:
0 读IIN,SN和DN成功
其他读IIN,SN和DN失败(具体含义参见返回码表)
Syn_ReadBaseMsgToFile与Syn_ReadBaseMsg函数类似,读取ID卡内基本信息区域信息,并将读到的基本信息写进输入参数所指定的文件中。
int Syn_ReadBaseMsgToFile (
int iPortID,
char * pcCHMsgFileName,
unsigned int * puiCHMsgFileLen,
char * pcPHMsgFileName,
unsigned int * puiPHMsgFileLen,
int iIfOpen
);
参数说明:
iPort
[in] 整数,表示端口号。
参见Syn_ResetSAM。
pcCHMsgFileName
[in] 读取到的ID卡内文字信息,需要写入文件,此为由用户指定的文件名。
puiCHMsgFileLen
[out] 存储文字信息的文件的长度。
pcCHMsgFileName
[in] 读取到的ID卡内照片信息,需要写入文件,此为由用户指定的文件名。
puiCHMsgFileLen
[out] 存储照片信息的文件的长度。
iIfOpen
[in] 整数,参见Syn_ResetSAM。
返回值:
0 读基本信息成功
其他读基本信息失败(具体含义参见返回码表)
Syn_ReadIINSNDNToASCII读取ID卡内IIN,SN和DN,并把16进制转化成ASCII 形式。
int Syn_ReadIINSNDNToASCII(
int iPort,
unsigned char *pucIINSNDN,
int iIfOpen
);
参数说明:
iPort
[in] 整数,表示端口号。
参见Syn_ResetSAM。
pucIINSNDN
[out] 无符号字符指针,指向读到的IIN,SN和DN,长度为固定56字节。
iIfOpen
[in] 整数,参见Syn_ResetSAM。
返回值:
0 读SN和DN成功
其他读SN和DN失败(具体含义参见返回码表)
举例说明:
如读取到的IIN,SN和DN十六进制是{0x12, 0x9a…},把每个字节拆分成两个ASCII 形式的数,转化成后则为{0x31,0x32,0x39,0x61…}。
Syn_GetBmp本函数用于将wlt文件解码成bmp文件。
int Syn_GetBmp(
char *Wlt_File,
int intf
);
参数说明:
Wlt_File
[in] 字符指针。
wlt文件名
intf
[in] 阅读设备通讯接口类型(1—RS-232C,2—USB)
int Syn_SetPhotoPath(
int iOption
char * cPhotopath
);
参数说明:
iOption
[in] 整形,0=C:根目录,1=当前路径,2=指定路径
cPhotoPath
[in] 字符指针。
路径名
返回值:
0 成功
-1 不成功
Syn_SetPhotoType本函数用于设置照片文件存储的格式
int Syn_SetPhotoType(
int iType
);
参数说明:
iType
[in] 整形。
1=bmp ,2=jpeg ,3=base64
返回值:
0 成功
-1 不成功
Syn_SetPhotoName本函数用于设置照片文件的文件名
int Syn_SetPhotoName(
int iType
);
参数说明:
iType
[in] 整形。
0=tmp ,1=姓名,2=身份证号,3=姓名_身份证号
返回值:
0 成功
-1 不成功
Syn_SetSexType本函数用于设置返回性别的格式
int Syn_SetSexType(
int iType
);
参数说明:
iType
[in] 整形。
0=卡内存储的数据,1=解释之后的数据
返回值:
0 成功
-1 不成功
Syn_SetNationType本函数用于设置返回民族的格式
int Syn_SetNationType(
int iType
);
参数说明:
iType
[in] 整形。
0=卡内存储的数据,1=解释之后的数据,2=解释之后+“族”返回值:
0 成功
-1 不成功
Syn_SetBornType本函数用于设置返回出生日期的格式
int Syn_SetBornType(
int iType
);
参数说明:
iType
[in] 整形。
0=YYYYMMDD,1=YYYY年MM月DD日,2=YYYY.MM.DD,
3=YYYY-MM-DD,4=YYYY/MM/DD
返回值:
0 成功
-1 不成功
Syn_SetUserLifeBType本函数用于设置返回有效期开始日期的格式
int Syn_SetUserLifeBType(
int iType
);
参数说明:
iType
[in] 整形。
0=YYYYMMDD,1=YYYY年MM月DD日,2=YYYY.MM.DD,
3=YYYY-MM-DD,4=YYYY/MM/DD
返回值:
0 成功
-1 不成功
Syn_SetUserLifeEType本函数用于设置返回有效期结束日期的格式
int Syn_SetUserLifeEType(
int iType;int iOption
);
参数说明:
iType
[in] 整形。
0=YYYYMMDD,1=YYYY年MM月DD日,2=YYYY.MM.DD,
3=YYYY-MM-DD,4=YYYY/MM/DD
iOption
[in] 整形。
0=长期不转换 1=长期转换为有效期开始加50年返回值:
0 成功
-1 不成功
三、OCX接口说明
属性
NameA该属性返回读取信息的姓名,返回数据类型为BSTR
Sex该属性返回读取信息的性别,返回数据类型为BSTR
Nation该属性返回读取信息的民族,返回数据类型为BSTR
Born该属性返回读取信息的出生日期,返回数据类型为BSTR
Address该属性返回读取信息的地址,返回数据类型为BSTR
CardNo该属性返回读取信息的身份证号,返回数据类型为BSTR
Police该属性返回读取信息的发证机关,返回数据类型为BSTR
UserLifeB该属性返回读取信息的有效期开始,返回数据类型为BSTR
UserLifeE该属性返回读取信息的有效期结束,返回数据类型为BSTR
PhotoName; 该属性返回读取信息的照片文件名,返回数据类型为BSTR
Base64Photo该属性返回读取信息的Base64照片编码,仅在用SetPhotoType方法设置
存储文件为Base64格式之后有效返回数据类型为BSTR
方法
SetPhotoPath本方法用于设置存储照片的路径,参见Syn_SetPhotoPath。
参数说明:
[in] iType 整形
cPath 字符串,BSTR
SetPhotoType本方法用于设置存储照片的格式,参见Syn_SetPhotoType SetPhotoName本方法用于设置存储照片的文件名,参见Syn_SetPhotoName SetSexType 本方法用于设置返回性别的格式,参见Syn_SetSexType SetNationType本方法用于设置返回民族的格式,参见Syn_SetNationType SetBornType本方法用于设置返回出生日期的格式,参见Syn_SetBornType SetUserLifeBType本方法用于设置返回有效期开始的格式,参见Syn_SetUserLifeBType SetUserLifeEType 本方法用于设置返回有效期结束的格式,参见Syn_SetUserLifeEType FindReader本方法可以自动寻找计算机连接的读卡器,参见Syn_FindReader GetSAMID本方法返回读卡器的ID号,返回类型为BSTR,仅在FinderReader 返回值大于0才有效
SetReadType设置读卡的方式,0为手动1为自动
ReadCardMsg手动读卡函数,返回0为成功,成功后通过属性得到信息SetLoopTime自动读卡方式下循环读卡间隔,至少要大于1000毫秒参数说明:
[in] iLoopTime 整形
事件
CardIn该事件在自动读卡方式下读卡成功时出发,State=1有效参数说明:
[in] State 整形
控件的使用方法:
1)设置参数的方法可以随时调用,调用一次即有效。
2)首先要调用FindReader方法,返回值大于0才能进行GetSAMID、
SetReadType、ReadCardMsg、SetLoopTime的操作。