二次开发接口说明V0_第1页
二次开发接口说明V0_第2页
二次开发接口说明V0_第3页
二次开发接口说明V0_第4页
二次开发接口说明V0_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、- 1 -1.1.概述精伦电子开发的二代身份证读卡系列机具适用于相关行业的联机型应用。 产品提供了完善的二次软件开发接口 API 。 本手册对开发接口的文件组成、函数定义格式、调用方法及返回值等进行详细的说明。本通用开发包支持的设备型号如下:1、iDR200 串 口和 USB 口。2、iDR320 必须进入“同步应用模式。3、 iDR400-1 必须进入“同步模式 。4、iDR210 USB-HID 免驱动接口。5、iDR210 串口。注意:完全兼容原 2.0 版本开发接口,支持 USB-HILg 口和串口的iDR210。1 、如果使用原开发包采用动态调用dll 方式,只需直接替换原 dll

2、即可。2、如果使用原开发包采用的静态调用方式,那么在不改变代码的情况下,对原程序重新编译链接即可。2.2.系统要求使用本 API 的 PC 机,必须满足以下条件:Windows 98 、 Windows 2000 Pro 、 Windows 2000 ServerWindows XP。至少 32 兆内存(32M RAM or Larger ) 。至少 10 兆空闲硬盘空间10M Free Hard Disk Space or Larger 。至少一个空闲普通串口或USB 口视用户需求而定。3.3.接口文件说明接口文件包括:Dewlt.dllsdtapi.dllJpgDll.dll相关动态联接库

3、 相关动态联接库 相关动态联接库SavePhoto.dll相关动态联接库sdtapi.h相关动态联接库头文件适用开发语言:Visual C+5.0 及以后版本C+ Builder5.0 及以后版本Visual Basic5.0 及以后版本Delphi3.0 及以后版本PowerBuilder5.0 及以后版本4.4.接口函数说明4.1.端口函数4.1.1.4.1.1.端口初始化函数原 型:int InitComm int iPort说明:本函数用于翻开串口或USB 并检测读卡设备是否就绪。参 数:iPort:设置串口、USB、USB-HID 免驱动接口串口1 -16十进制例如:1 : 1(CO

4、M1)2: 2(COM2)USB10011001返回值:值意义1正确其它错误注:如果读卡机具连接的端口是确定的,可以直接使用相应端口号调用本函数。否那么,可以采用循环查找的方式调用本函数。4.1.2.4.1.2.端口关闭接口原 型:int CloseComm(void)说明:本函数用于关闭已翻开的端口,一般在调用InitComm 成功并完成读卡任务后调用。参数:无返回值:值意义1正确其它错误注意:如果不再使用已翻开的端口,必须使用CloseComm 函数关闭端口。4.2.读二代证相关函数4.2.1.4.2.1.卡认证接口原 型:int Authenticate (void)说明:本函数用于发现

5、身份证卡并选择卡。参数:无返回值:值意义1正确0错误注:认证卡时,需要将身份证放置于读卡机具上方并做稍许时间的停留。如果函数返回错误表示没有发现卡或者卡停留时间太短。4.2.2.4.2.2.读卡信息接口原 型:int ReadBaseMsg unsigned char * pMsg, int * len;说 明:本函数用于读取卡中根本信息,包括文字信息与图像信息。 文字信息已经分段解析,输出格式为单字节,且每一字段信息已经被表示为字符串。图象信息被解码后存为文件photo.bmp 在当前工作目录下。参 数:pMsg out无符号字符指针,指向读到的文本信息。需要在调用时 分配内存,字节数不小于

6、192。函数调用成功后,各字段的文本信息已经转换为单字节形式,并表示为字符串格式。字段意义及偏移值如下所示:工程长度字节说明姓名31汉字性别3汉字民族10汉字出生日期一9CCYYMMDD住址71汉字和数字公民身份号码19数字签发机关31汉字有效期起始日期9CCYYMMDD有效期截止日期9CCYYMMDD有效期为长期的表示为汉 字“长期Len out 整数, 返回总字符长度,可以给空值 NULL。返回值:值意义1正确0错误原型 2: int ReadBaseMsgPhoto unsigned char * pMsg, int * len, char *directory ;说 明:本函数用于读取

7、卡中根本信息,包括文字信息与图像信息。文字信息已经分段解析,输出格式为单字节,且每一字段信息已经被表示为字符串。图象信息被解码后存为文件photo.bmp在 directory 指定目录下参 数:pMsg out无符号字符指针,指向读到的文本信息。需要在调用时分配内存,字节数不小于192。函数调用成功后,各字段的文本信息已经转换为单字节形式,并表示为字符串格式。字段意义及偏移值如下所示:工程长度字节说明姓名31汉字性别3汉字民族10汉字出生日期9CCYYMMDD住址71汉字和数字公民身份号码19数字签发机关一31汉字有效期起始日期9CCYYMMDD有效期截止日期9CCYYMMDD有效期为长期的

8、表示为汉 字“长期Len out 整数,返回总字符长度,可以给空值 NULL。directory in 字符指针,表示照片存储路径,路径最后有无“ 均 可;可以给空值NULL ,表示照片存储在当前目录中,此时函数效果同 ReadBaseMsg。返回值:值意义1正确0错误4目录不存在原 型 3: int ReadBaseInfos char * Name, char * Gender, char * Folk, char*BirthDay, char * Code, char * Address,char *Agency, char * ExpireStart , char*ExpireEnd说

9、 明:本函数用于读取卡中根本信息,包括文字信息与图像信息。文字信息以字符串格式输出。图象信息被解码后存为文件photo.bmp,身份证正面图片 l.jpg,身份证反面图片 2.jpg 在当前工作目录下。参 数:Name out字符型指针,指向姓名信息。需要在调用时分配内存,字节数不小 31。Gender out字符型指针,指向性别信息男或者女。需要在调用时 分配内存,字节数不小3。Folk out字符型指针,指向民族信息。需要在调用时分配内存,字节数不小 10。BirthDay out字符型指针,指向出生日期信息。需要在调用时分配内 存,字节数不小 9,前四位为出生年,第 5 位到第 6 位是

10、出生月,后两位是 出生日,格式为:CCYYMMDD。Code out字符型指针,指向身份证号码信息。需要在调用时分配 内存,字节数不小 19。Address out字符型指针,指向地址信息。需要在调用时分配内存, 字节数不小71。Agency out字符型指针,指向签证机关信息。需要在调用时分配内 存,字节数不小 31。ExpireStart out字符型指针,指向有效期起始日期信息。需要在调 用时分配内存,字节数不小9,格式为:CCYYMMDD。ExpireEnd out字符型指针, 指向有效期截至日期信息。 需要在调 用时分配内存,字节数不小9,格式为:CCYYMMDD ,有效期为长期的表

11、示为汉字“长期。返回值:值意义1正确0错误原 型 4 : int ReadBaseInfosPhoto char * Name, char * Gender, char * Folk,char*BirthDay, char * Code, char * Address,char *Agency, char * ExpireStart, char*ExpireEnd, char * directory 说 明:本函数用于读取卡中根本信息,包括文字信息与图像信息。文字信息以字符串格式输出。图象信息被解码后存为文件photo.bmp 和photo.jpg 在 directory 指定目录下。参 数:

12、Name out字符型指针,指向姓名信息。需要在调用时分配内存,字节数不小 31。Gender out字符型指针,指向性别信息男或者女。需要在调用时 分配内存,字节数不小3。Folk out字符型指针,指向民族信息。需要在调用时分配内存, 字节数不小10。BirthDay out字符型指针,指向出生日期信息。需要在调用时分配内 存,字节数不小 9,前四位为出生年,第 5 位到第 6 位是出生月,后两位是 出生日,格式为:CCYYMMDD。Code out字符型指针,指向身份证号码信息。需要在调用时分配 内存,字节数不小 19。Address out字符型指针,指向地址信息。需要在调用时分配内存

13、, 字节数不小 71。Agency out字符型指针,指向签证机关信息。需要在调用时分配内 存,字节数不小 31。ExpireStart out字符型指针,指向有效期起始日期信息。需要在调 用时分配内存,字节数不小9,格式为:CCYYMMDD。ExpireEnd out字符型指针,指向有效期截至日期信息。需要在调 用时分配内存,字节数不小9,格式为:CCYYMMDD ,有效期为长期的表示为汉字“长期。directory in 字符指针,表示照片存储路径,路径最后有无“ 均可;可以给空值NULL ,表示照片存储在当前目录中,此时函数效果 同 ReadBaseInfos。返回值:值意义1正确0错误

14、4目录不存在原 型 5: int ReadBaseMsgW unsigned char * pMsg, int * len;说 明:本函数用于读取卡中根本信息,包括文字信息与图像信息。文字信息未解析,文字信息采用 GB13000 的 UCS-2 进行存储,图象信息被 解码后存为文件 photo.bmp 在当前工作目录下。参 数:pMsg out无符号字符指针,指向读到的文本信息。需要在调用时分配内存,字节数不小于256。偏移值如下所示:工程长度字节说明姓名30汉字性别2代码民族4代码出生16年月日:YYYYMMDD住址70汉字和数字公民身份号码36数字签发机关30汉字有效期起始日期16年月日:

15、YYYYMMDD有效期截止日期16年月日:YYYYMMDD有效期为长期时存储“长 期取新住址70汉字和数字Len out 整数,返回根本信息长度。返回值:值意义1正确0错误原 型 6: int ReadBaseMsgWPhoto unsigned char * pMsg, int * len,char *directory ;说 明:本函数用于读取卡中根本信息,包括文字信息与图像信息。文字信息未解析,文字信息采用GB13000 的 UCS-2 进行存储,图象信息被解码后存为文件 photo.bmp 在 directory 指定目录下。参 数:pMsg out无符号字符指针,指向读到的文本信息。

16、需要在调用时 分配内存,字节数不小于256。偏移值如下所示:工程长度字节说明姓名30汉字性别2代码民族4代码出生16年月日:YYYYMMDD住址70汉字和数字公民身份号码36数字签发机关30汉字有效期起始日期16年月日:YYYYMMDD有效期截止日期16年月日:YYYYMMDD有效期为长期时存储“长期取新住址70汉字和数字Len out 整数,返回根本信息长度。directory in 字符指针,表示照片存储路径,路径最后有无“ 均可;可以给空值NULL ,表示照片存储在当前目录中,此时函数效果 同 ReadBaseMsgW。返回值:值意义1正确0错误4目录不存在注:读卡根本信息时,需要将身份

17、证置于读卡机具上方做稍许时间的停留。4.2.3.4.2.3.读追加地址信息原 型 1: int ReadNewAppMsg unsigned char * pMsg, int * num ;说明:本函数用于读取卡中追加地址信息,输出格式为单字节字符串格式。参数:pMsg out无符号字符指针,指向读到的追加地址信息。需要在调用时分配内存,字节数不小于284。字段意义及偏移值如下所示:工程长度字节说明追加地址 171汉字和数字追加地址 271汉字和数字追加地址 371汉字和数字追加地址 471汉字和数字num out 整数,返回读到的追加地址数。最多为 4 个。返回值:值意义1正确0错误原 型

18、2: int ReadNewAppInfos( unsigned char * addri, unsigned char *addr2,unsigned char * addr3, unsigned char * addr4,int *num );说明:本函数用于读取卡中追加地址信息,输出格式为单字节字符串格式。参数:addri、addr2、addr3、addr4 out无符号字符指针,分别指向读到 的追加地址信息。需要在调用时分配内存,字节数分别不小于71。num out 整数,返回读到的追加地址数。最多为 4 个。返回值:值意义1正确0错误原 型 3: int ReadNewAppMsgW

19、( unsigned char * pMsg, int * num );说明:本函数用于读取卡中追加地址信息,信息采用GB13000 的UCS-2 进行存储。参数:pMsg out无符号字符指针,指向读到的追加地址信息。需要在调用时分配内存,字节数不小于280。偏移值如下所示:工程长度(字节)说明追加地址 170汉字和数字追加地址 270汉字和数字追加地址 370汉字和数字追加地址 470汉字和数字num out 整数, 返回读到的追加地址数。最多为 4 个。返回值:值意义1正确0错误注:读追加地址信息时,需要将身份证置于读卡机具上方做稍许时间的停留。4.2.4.4.2.4.读卡体管理号原 型

20、:int ReadIINSNDN( char * pMsg );说 明:本函数用于读取身份证卡的管理号。参 数:pMsg out字符指针,需要在调用时分配内存,字节数不小于16。卡体管理号分为 3 个字段,前两位表示集成电路管理号,3 到 6 位表示集成电路序列号,后 8 位表示证卡序列号。返回值:值意义1正确0错误4.2.5.4.2.5.读模块序列号原 型:int GetSAMIDToStr( char *pcSAMID );说 明:本函数用于读取验证平安控制模块( SAM_V )的序列号。参 数:pcSAMID out字符指针,需要在调用时分配内存, 字节数不小于 37。 模块序列号分为

21、5 个局部,格式为2 字符.2 字符8 字符10 字符10 字符,共 36 个字符;返回值:值意义1正确0错误4.3.Type A卡相关函数注意:用口型iDR200iDR200和iDR210iDR210支持读写TypeType A A卡。4.3.1.4.3.1.dc_initdc_init注意:仅串口型iDR200iDR200可使用本接口,iDR210iDR210使用InitComm()InitComm()进行端口初始化。原型:int dc_init(int port,long baud);说明:初始化通讯口。参数:port:取值为 116。baud:为通讯波特率 9600115200。返 回

22、 值:成功那么返回串口通讯设备标识符0,失败返回负值。4.3.2.4.3.2. dc_dc_exitexit注意: 仅串口型iDR200iDR200可使用本接口,iDR210iDR210使用CloseComm()CloseComm()关闭端口。原 型:int dc_exit(int dev);说明:关闭端口。参 数:icdev:通讯设备标识符。返 回 值:成功返回0,失败返回负值。4.3.3.4.3.3.dc_dc_requestrequest原 型: int dc_request(int icdev,unsigned char _Mode,unsigned int*TagType);说明:寻

23、卡请求。参数:icdev :通讯设备标识符。_Mode:寻卡模式。0 表示 Standard 模式;1 表示 All 模式。Tagtype :卡类型值。- 13 -返 回 值:成功返回0,失败返回负值。4.3.4.4.3.4.dc_dc_anticollanticoll原 型:int dc_anticoll(int icdev,unsigned char _Bcnt,unsigned long*_Snr);说明:防卡冲突,返回卡的序列号。参 数:icdev :通讯设备标识符。_Bcn: 设为 0。_Snr:返回的卡序列号地址。返 回 值:成功返回0,失败返回负值。4.3.5.4.3.5.dc_

24、dc_selectselect原 型 : int dc_select(int icdev,unsigned long _Snr,unsigned char *_Size);说明:从多个卡中选取一个给定序列号的卡。参数:icdev :通讯设备标识符。_Snr:卡序列号。_Size :指向返回的卡容量的数据(暂不支持,无返回) 。返 回 值:成功返回0,失败返回负值。4.3.6.4.3.6.dc_dc_authentication_passaddrauthentication_passaddr原 型:int dc_authentication_passaddr(int icdev, unsigne

25、dchar_Mode,unsigned char Addr, unsigned char *passbuff);说明:核对密码函数。参 数:Icdev :通讯设备标识符。_Mode:密码验证模式。0 x60 keyA , 0 x61 keyB。blockAddr :要验证密码的块地址号。- 14 -passbuff: 密码字符串。返 回 值:成功返回0,失败返回负值。4.3.7.4.3.7.dc_dc_readread原型:dc_read(int icdev,unsigned char _Adr,unsigned char *_Data);说明:读取卡中数据。参数:icdev :通讯设备标识符

26、。_Adr: M1S50块地址(0 63) ,M1S70(0 255)。_Data :读出数据。返 回 值:成功返回0,失败返回负值。4.3.8.4.3.8.dc_dc_writewrite原型:dc_write(int icdev,unsigned char _Adr,unsigned char *_Data);说明:向卡中写入数据。参数:icdev :通讯设备标识符。_Adr: M1S50 卡块地址(1 63) ,M1S70 (1 255)。_Data :要写入的数据。返 回 值:成功返回0,失败返回负值。4.3.9.4.3.9.dc_dc_halthalt原型:dc_halt(int i

27、cdev);说明:中止对该卡操作。参数:icdev :通讯设备标识符。返 回 值:成功返回0,失败返回负值。4.3.10.4.3.10. dc_dc_BeepLEDBeepLED- 15 -原 型:dc_BeepLED(int icdev,bool BeepON,bool LEDON,unsigned int duration);说明:控制 LED 指示灯和蜂鸣器。参数:icdev :通讯设备标识符。BeepON :值为 true 时,蜂鸣器翻开。LEDON :值为 true 时,指示灯翻开。duration 为持续的时间,单位为毫秒。返 回值:成功返回 0,失败返回负值。4.3.11.4.3

28、.11.找ICIC卡原型:int Routon_IC_FindCard();说明:本函数用于寻卡。参 数: 无。返回值:值意义1正确0错误4.3.12.4.3.12.读ICIC卡序列号高级函数原 型:int Routon_IC_HL_ReadCardSN(char * SN);说 明:本函数用于读取 IC 卡的序列号,自动完成找卡、选卡等过 程。参 数:SN out字符指针,需要在调用时分配内存,字节数不小于 16。返回值:值意义1正确0错误- 16 -4.3.13.4.3.13.读ICIC卡区块高级函数原 型:int Routon_IC_HL_ReadCard (int SID,int BI

29、D,int KeyType,unsigned char * Key, unsigned char* data);说明:本函数用于读取 IC 卡指定扇区的数据内容,自动完成找卡、选卡、认证等过程。参数:SID 为扇区号,0-15 之间(对 M1S50 卡)。BID 为块号,0-3 之间。KeyType 为密钥类型,两种: 0 x60 keyA , 0 x61 keyB。Key 为密钥。data 为读取到的数据内容, 需要在调用时分配内存,字节数不小于 16。返回值:值意义1正确0错误4.3.14.4.3.14.写ICIC卡区块高级函数原 型:int Routon_IC_HL_WriteCard

30、(int SID,int BID,int KeyType,unsigned char * Key, unsigned char* data);说 明:本函数用于向 IC 卡指定扇区写入数据内容,自动完成找卡、 选卡、认证等过程。参 数:SID 为扇区号,0-15 之间(对 M1S50 卡)。BID 为块号,0-3 之间。KeyType 为密钥类型,两种: 0 x60 keyA , 0 x61 keyB。- 17 -Key 为密钥。data 为准备写入的数据内容,字节数为16。返回值:值意义1正确0错误4.3.15.4.3.15.控制蜂鸣器和指示灯原 型:int Routon_BeepLED(bool BeepON,bool LEDON,unsigned int duration);说明:本函数用于控制LED 指示灯和蜂鸣器。参数:BeepON 和 LEDON 为布尔类型, 值为 True 时, 对应的蜂鸣器和指示灯 翻开; duration为翻开持续的时间,单位为毫秒。返回值:值意义1正确0错误5.5.接口使用流程及例如在连接好读卡机具以后,首先

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论