(新中新)二代证SDK开发包开发说明
一、 系统的基本要求
a) Windows 98Windows 2000 Pro,Windows 2000 Server,WinXPWindows VistaWindows7
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,
fopen函数失败unsigned char    ucByte,
int              bIfOpen
);
参数说明:
iPort
[in] 整数,表示端口号。串口00010016USB10011016
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只能为下列数值之一:1152005760038400192009600.如果uiCurrBaud数值不是这些值之一,函数返回0X21;如果已设置的波特率与uiCurrBaud不一致, 则函数返回0X02,表示不能设置,调用API不成功。
uiSetBaud
[in] 无符号整数,将要设置的SAM与业务终端通信波特率。uiSetBaud只能取下列值之一:1152005760038400192009600,如果输入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    端口号不合法
(二)SAMAPI
Syn_ResetSAMSAM复位
int  Syn_ResetSAM (
int  iPort,
int            iIfOpen
);
参数说明:
iPort
[in] 整数,表示端口号。根据SAM使用的接口不同(分为普通串口SAMUSBSAM),分别使用不同的端口号(目前串口和USB都只支持16个,即串口0001-0016USB1001-1016):
普通串口SAM
0001 – 0016(十进制)
例如:
0001:串口1(COM1)
0002:串口2(COM2)
USBSAM
1001 – 1016(十进制)
例如:
1001USB1
1002USB2
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        未到
其他    116串口    10011016USB
(三)身份证卡类API
Syn_StartFindIDCard 开始卡。
int  Syn_StartFindIDCard (
int              iPort ,
unsigned char *    pucIIN,
int                iIfOpen
);
参数说明:
iPort
[in] 整数,表示端口号。参见Syn_ResetSAM
pucIIN
[out] 无符号字符指针,指向读到的IIN
iIfOpen
[in] 整数,参见Syn_ResetSAM