首页 精伦IDR210通用二次开发文档

精伦IDR210通用二次开发文档

举报
开通vip

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

精伦IDR210通用二次开发文档
PAGEPAGE-19-概述精伦电子开发的二代身份证读卡系列机具适用于相关行业的联机型应用。产品提供了完善的二次软件开发接口(API)。本手册对开发接口的文件组成、函数定义格式、调用方法及返回值等进行详细的说明。本通用开发包支持的设备 型号 pcr仪的中文说明书矿用离心泵型号大全阀门型号表示含义汽车蓄电池车型适配表汉川数控铣床 如下:iDR200(串口和USB口)。iDR320(必须进入“同步应用”模式)。iDR400-1(必须进入“同步”模式)。iDR210(USB-HID免驱动接口)。iDR210(串口)。注意:完全兼容原2.0版本开发接口,支持USB-HID接口和串口的iDR210。1、如果使用原开发包采用动态调用dll方式,只需直接替换原dll即可。2、如果使用原开发包采用的静态调用方式,则在不改变代码的情况下,对原程序重新编译链接即可。系统要求使用本API的PC机,必须满足下列条件:Windows98、Windows2000Pro、Windows2000Server、WindowsXP。至少32兆内存(32MRAMorLarger)。至少10兆空闲硬盘空间(10MFreeHardDiskSpaceorLarger)。至少一个空闲普通串口或USB口(视用户需求而定)。接口文件说明接口文件包括:Dewlt.dll相关动态联接库sdtapi.dll相关动态联接库JpgDll.dll相关动态联接库SavePhoto.dll相关动态联接库sdtapi.h相关动态联接库头文件适用开发语言:VisualC++5.0及以后版本C++Builder5.0及以后版本VisualBasic5.0及以后版本Delphi3.0及以后版本PowerBuilder5.0及以后版本接口函数说明端口函数端口初始化函数原型:intInitComm(intiPort)说明:本函数用于打开串口或USB并检测读卡设备是否就绪。参数:iPort:设置串口、USB、USB-HID(免驱动)接口串口1–16(十进制)例如:1:1(COM1)2:2(COM2)USB10011001返回值:值意义1正确其它错误注:如果读卡机具连接的端口是确定的,可以直接使用相应端口号调用本函数。否则,可以采用循环查找的方式调用本函数。端口关闭接口原型:intCloseComm(void)说明:本函数用于关闭已打开的端口,一般在调用InitComm成功并完成读卡任务后调用。参数:无返回值:值意义1正确其它错误注意:如果不再使用已打开的端口,必须使用CloseComm函数关闭端口。读二代证相关函数卡认证接口原型:intAuthenticate(void)说明:本函数用于发现身份证卡并选择卡。参数:无返回值:值意义1正确0错误注:认证卡时,需要将身份证放置于读卡机具上方并做稍许时间的停留。如果函数返回错误 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示没有发现卡或者卡停留时间太短。读卡信息接口原型:intReadBaseMsg(unsignedchar*pMsg,int*len);说明:本函数用于读取卡中基本信息,包括文字信息与图像信息。文字信息已经分段解析,输出格式为单字节,且每一字段信息已经被表示为字符串。图象信息被解码后存为文件photo.bmp(在当前工作目录下)。参数:pMsg[out]无符号字符指针,指向读到的文本信息。需要在调用时分配内存,字节数不小于192。函数调用成功后,各字段的文本信息已经转换为单字节形式,并表示为字符串格式。字段意义及偏移值如下所示:项目长度(字节)说明姓名31汉字性别3汉字民族10汉字出生日期9CCYYMMDD住址71汉字和数字公民身份号码19数字签发机关31汉字有效期起始日期9CCYYMMDD有效期截止日期9CCYYMMDD有效期为长期的表示为汉字“长期”Len[out]整数,返回总字符长度,可以给空值(NULL)。返回值:值意义1正确0错误原型2:intReadBaseMsgPhoto(unsignedchar*pMsg,int*len,char*directory);说明:本函数用于读取卡中基本信息,包括文字信息与图像信息。文字信息已经分段解析,输出格式为单字节,且每一字段信息已经被表示为字符串。图象信息被解码后存为文件photo.bmp(在directory指定目录下)。参数:pMsg[out]无符号字符指针,指向读到的文本信息。需要在调用时分配内存,字节数不小于192。函数调用成功后,各字段的文本信息已经转换为单字节形式,并表示为字符串格式。字段意义及偏移值如下所示:项目长度(字节)说明姓名31汉字性别3汉字民族10汉字出生日期9CCYYMMDD住址71汉字和数字公民身份号码19数字签发机关31汉字有效期起始日期9CCYYMMDD有效期截止日期9CCYYMMDD有效期为长期的表示为汉字“长期”Len[out]整数,返回总字符长度,可以给空值(NULL)。directory[in]字符指针,表示照片存储路径,路径最后有无“\”均可;可以给空值(NULL),表示照片存储在当前目录中,此时函数效果同ReadBaseMsg。返回值:值意义1正确0错误4目录不存在原型3:intReadBaseInfos(char*Name,char*Gender,char*Folk,char*BirthDay,char*Code,char*Address,char*Agency,char*ExpireStart,char*ExpireEnd)说明:本函数用于读取卡中基本信息,包括文字信息与图像信息。文字信息以字符串格式输出。照片信息被解码后存为文件photo.bmp,身份证正面图片1.jpg,身份证反面图片2.jpg(在当前工作目录下)。参数:Name[out]字符型指针,指向姓名信息。需要在调用时分配内存,字节数不小31。Gender[out]字符型指针,指向性别信息(男或者女)。需要在调用时分配内存,字节数不小3。Folk[out]字符型指针,指向民族信息。需要在调用时分配内存,字节数不小10。BirthDay[out]字符型指针,指向出生日期信息。需要在调用时分配内存,字节数不小9,前四位为出生年,第5位到第6位是出生月,后两位是出生日,格式为:CCYYMMDD。Code[out]字符型指针,指向身份证号码信息。需要在调用时分配内存,字节数不小19。Address[out]字符型指针,指向地址信息。需要在调用时分配内存,字节数不小71。Agency[out]字符型指针,指向签证机关信息。需要在调用时分配内存,字节数不小31。ExpireStart[out]字符型指针,指向有效期起始日期信息。需要在调用时分配内存,字节数不小9,格式为:CCYYMMDD。ExpireEnd[out]字符型指针,指向有效期截至日期信息。需要在调用时分配内存,字节数不小9,格式为:CCYYMMDD,有效期为长期的表示为汉字“长期”。返回值:值意义1正确0错误原型4:intReadBaseInfosPhoto(char*Name,char*Gender,char*Folk,char*BirthDay,char*Code,char*Address,char*Agency,char*ExpireStart,char*ExpireEnd,char*directory)说明:本函数用于读取卡中基本信息,包括文字信息与图像信息。文字信息以字符串格式输出。图象信息被解码后存为照片photo.bmp和photo.jpg,身份证正面图片1.jpg,身份证反面图片2.jpg(在directory指定目录下)。参数:Name[out]字符型指针,指向姓名信息。需要在调用时分配内存,字节数不小31。Gender[out]字符型指针,指向性别信息(男或者女)。需要在调用时分配内存,字节数不小3。Folk[out]字符型指针,指向民族信息。需要在调用时分配内存,字节数不小10。BirthDay[out]字符型指针,指向出生日期信息。需要在调用时分配内存,字节数不小9,前四位为出生年,第5位到第6位是出生月,后两位是出生日,格式为:CCYYMMDD。Code[out]字符型指针,指向身份证号码信息。需要在调用时分配内存,字节数不小19。Address[out]字符型指针,指向地址信息。需要在调用时分配内存,字节数不小71。Agency[out]字符型指针,指向签证机关信息。需要在调用时分配内存,字节数不小31。ExpireStart[out]字符型指针,指向有效期起始日期信息。需要在调用时分配内存,字节数不小9,格式为:CCYYMMDD。ExpireEnd[out]字符型指针,指向有效期截至日期信息。需要在调用时分配内存,字节数不小9,格式为:CCYYMMDD,有效期为长期的表示为汉字“长期”。directory[in]字符指针,表示照片存储路径,路径最后有无“\”均可;可以给空值(NULL),表示照片存储在当前目录中,此时函数效果同ReadBaseInfos。返回值:值意义1正确0错误4目录不存在原型5:intReadBaseMsgW(unsignedchar*pMsg,int*len);说明:本函数用于读取卡中基本信息,包括文字信息与图像信息。文字信息未解析,文字信息采用GB13000的UCS-2进行存储,图象信息被解码后存为文件photo.bmp(在当前工作目录下)。参数:pMsg[out]无符号字符指针,指向读到的文本信息。需要在调用时分配内存,字节数不小于256。偏移值如下所示:项目长度(字节)说明姓名30汉字性别2代码民族4代码出生16年月日:YYYYMMDD住址70汉字和数字公民身份号码36数字签发机关30汉字有效期起始日期16年月日:YYYYMMDD有效期截止日期16年月日:YYYYMMDD有效期为长期时存储“长期”最新住址70汉字和数字Len[out]整数,返回基本信息长度。返回值:值意义1正确0错误原型6:intReadBaseMsgWPhoto(unsignedchar*pMsg,int*len,char*directory));说明:本函数用于读取卡中基本信息,包括文字信息与图像信息。文字信息未解析,文字信息采用GB13000的UCS-2进行存储,图象信息被解码后存为文件photo.bmp(在directory指定目录下)。参数:pMsg[out]无符号字符指针,指向读到的文本信息。需要在调用时分配内存,字节数不小于256。偏移值如下所示:项目长度(字节)说明姓名30汉字性别2代码民族4代码出生16年月日:YYYYMMDD住址70汉字和数字公民身份号码36数字签发机关30汉字有效期起始日期16年月日:YYYYMMDD有效期截止日期16年月日:YYYYMMDD有效期为长期时存储“长期”最新住址70汉字和数字Len[out]整数,返回基本信息长度。directory[in]字符指针,表示照片存储路径,路径最后有无“\”均可;可以给空值(NULL),表示照片存储在当前目录中,此时函数效果同ReadBaseMsgW。返回值:值意义1正确0错误4目录不存在注:读卡基本信息时,需要将身份证置于读卡机具上方做稍许时间的停留。读追加地址信息原型1:intReadNewAppMsg(unsignedchar*pMsg,int*num);说明:本函数用于读取卡中追加地址信息,输出格式为单字节字符串格式。参数:pMsg[out]无符号字符指针,指向读到的追加地址信息。需要在调用时分配内存,字节数不小于284。字段意义及偏移值如下所示:项目长度(字节)说明追加地址171汉字和数字追加地址271汉字和数字追加地址371汉字和数字追加地址471汉字和数字num[out]整数,返回读到的追加地址数。最多为4个。返回值:值意义1正确0错误原型2:intReadNewAppInfos(unsignedchar*addr1,unsignedchar*addr2,unsignedchar*addr3,unsignedchar*addr4,int*num);说明:本函数用于读取卡中追加地址信息,输出格式为单字节字符串格式。参数:addr1、addr2、addr3、addr4[out]无符号字符指针,分别指向读到的追加地址信息。需要在调用时分配内存,字节数分别不小于71。num[out]整数,返回读到的追加地址数。最多为4个。返回值:值意义1正确0错误原型3:intReadNewAppMsgW(unsignedchar*pMsg,int*num);说明:本函数用于读取卡中追加地址信息,信息采用GB13000的UCS-2进行存储。参数:pMsg[out]无符号字符指针,指向读到的追加地址信息。需要在调用时分配内存,字节数不小于280。偏移值如下所示:项目长度(字节)说明追加地址170汉字和数字追加地址270汉字和数字追加地址370汉字和数字追加地址470汉字和数字num[out]整数,返回读到的追加地址数。最多为4个。返回值:值意义1正确0错误注:读追加地址信息时,需要将身份证置于读卡机具上方做稍许时间的停留。读卡体管理号原型:intReadIINSNDN(char*pMsg);说明:本函数用于读取身份证卡的管理号。参数:pMsg[out]字符指针,需要在调用时分配内存,字节数不小于16。返回8个16进制证卡序列号。返回值:值意义1正确0错误读模块序列号原型:intGetSAMIDToStr(char*pcSAMID);说明:本函数用于读取验证安全控制模块(SAM_V)的序列号。参数:pcSAMID[out]字符指针,需要在调用时分配内存,字节数不小于37。模块序列号分为5个部分,格式为『2字符.2字符-8字符-10字符-10字符』,共36个字符;返回值:值意义1正确0错误TypeA卡相关函数注意:串口型iDR200和iDR210支持读写TypeA卡。iDR210使用Routon开头的相关函数。串口型iDR200使用dc_开头的相关函数。dc_init注意:仅串口型iDR200可使用本接口,iDR210使用InitComm()进行端口初始化。原型:intdc_init(intport,longbaud);说明:初始化通讯口。参数:port:取值为1~16。baud:为通讯波特率9600~115200。返回值:成功则返回串口通讯设备标识符>0,失败返回负值。dc_exit注意:仅串口型iDR200可使用本接口,iDR210使用CloseComm()关闭端口。原型:intdc_exit(intdev);说明:关闭端口。参数:icdev:通讯设备标识符。返回值:成功返回0,失败返回负值。dc_request原型:intdc_request(inticdev,unsignedchar_Mode,unsignedint*TagType);说明:寻卡请求。参数:icdev:通讯设备标识符。_Mode:HYPERLINK"mk:@MSITStore:C:\\DOCUME~1\\zhangli\\LOCALS~1\\Temp\\notes6030C8\\~1927462.chm::/库函数介绍/寻卡模式.htm"寻卡模式。0表示Standard模式;1表示All模式。Tagtype:卡类型值。返回值:成功返回0,失败返回负值。dc_anticoll原型:intdc_anticoll(inticdev,unsignedchar_Bcnt,unsignedlong*_Snr);说明:防卡冲突,返回卡的序列号。参数:icdev:通讯设备标识符。_Bcn:设为0。_Snr:返回的卡序列号地址。返回值:成功返回0,失败返回负值。dc_select原型:intdc_select(inticdev,unsignedlong_Snr,unsignedchar*_Size);说明:从多个卡中选取一个给定序列号的卡。参数:icdev:通讯设备标识符。_Snr:卡序列号。_Size:指向返回的卡容量的数据(暂不支持,无返回)。返回值:成功返回0,失败返回负值。dc_authentication_passaddr原型:intdc_authentication_passaddr(inticdev,unsignedchar_Mode,unsignedcharAddr,unsignedchar*passbuff);说明:核对密码函数。参数:Icdev:通讯设备标识符。_Mode:密码验证模式。0x60keyA,0x61keyB。blockAddr:要验证密码的块地址号。passbuff:密码字符串。返回值:成功返回0,失败返回负值。dc_read原型:dc_read(inticdev,unsignedchar_Adr,unsignedchar*_Data);说明:读取卡中数据。参数:icdev:通讯设备标识符。_Adr:M1S50卡——块地址(0~63),M1S70(0~255)。_Data:读出数据。返回值:成功返回0,失败返回负值。dc_write原型:dc_write(inticdev,unsignedchar_Adr,unsignedchar*_Data);说明:向卡中写入数据。参数:icdev:通讯设备标识符。_Adr:M1S50卡——块地址(1~63),M1S70(1~255)。_Data:要写入的数据。返回值:成功返回0,失败返回负值。dc_halt原型:dc_halt(inticdev);说明:中止对该卡操作。参数:icdev:通讯设备标识符。返回值:成功返回0,失败返回负值。dc_BeepLED原型:dc_BeepLED(inticdev,boolBeepON,boolLEDON,unsignedintduration);说明:控制LED指示灯和蜂鸣器。参数:icdev:通讯设备标识符。BeepON:值为true时,蜂鸣器打开。LEDON:值为true时,指示灯打开。duration为持续的时间,单位为毫秒。返回值:成功返回0,失败返回负值。找IC卡原型:intRouton_IC_FindCard();说明:本函数用于寻卡。参数:无。返回值:值意义1正确0错误读IC卡序列号高级函数原型:intRouton_IC_HL_ReadCardSN(char*SN);说明:本函数用于读取IC卡的序列号,自动完成找卡、选卡等过程。参数:SN[out]字符指针,需要在调用时分配内存,字节数不小于16。返回值:值意义1正确0错误读IC卡区块高级函数原型:intRouton_IC_HL_ReadCard(intSID,intBID,intKeyType,unsignedchar*Key,unsignedchar*data);说明:本函数用于读取IC卡指定扇区的数据内容,自动完成找卡、选卡、认证等过程。参数:SID为扇区号,0-15之间(对M1S50卡)。BID为块号,0-3之间。KeyType为密钥类型,两种:0x60keyA,0x61keyB。Key为密钥。data为读取到的数据内容,需要在调用时分配内存,字节数不小于16。返回值:值意义1正确0错误写IC卡区块高级函数原型:intRouton_IC_HL_WriteCard(intSID,intBID,intKeyType,unsignedchar*Key,unsignedchar*data);说明:本函数用于向IC卡指定扇区写入数据内容,自动完成找卡、选卡、认证等过程。参数:SID为扇区号,0-15之间(对M1S50卡)。BID为块号,0-3之间。KeyType为密钥类型,两种:0x60keyA,0x61keyB。Key为密钥。data为准备写入的数据内容,字节数为16。返回值:值意义1正确0错误控制蜂鸣器和指示灯原型1:intHID_BeepLED(boolBeepON,boolLEDON,unsignedintduration);说明:本函数用于控制iDR210USB-HID设备的LED指示灯和蜂鸣器。参数:BeepON和LEDON为布尔类型,值为True时,对应的蜂鸣器和指示灯打开;duration为打开持续的时间,单位为毫秒。返回值:值意义1正确0错误原型2:intRouton_BeepLED(boolBeepON,boolLEDON,unsignedintduration);说明:本函数用于控制iDR200串口型设备LED指示灯和蜂鸣器。参数:BeepON和LEDON为布尔类型,值为True时,对应的蜂鸣器和指示灯打开;duration为打开持续的时间,单位为毫秒。返回值:值意义1正确0错误4.4.1读取PSAM卡ATR数据原型:intPSAM_ReadATR(unsignedcharCardIndex,unsignedcharSpeedIndex,unsignedcharTypeIndex,unsignedchar*_Data);说明:本函数用于读取设备上PSAM卡的ATR数据参数:CardIndex:0x01为卡座1,0x02为卡座2SpeedIndex:CPU卡的速率(0:4800,1:9600,2:19200,3:38400)TypeIndex:CPU卡电压类型(0:5V,1:3V)*_Data:读出数据缓存区指针返回值:值意义0正确-1未插卡-2设置卡座错误-3设置速率错误-4设置电压错误-5设备未连接4.4.2向PSAM卡发送数据原型:intPSAM_SendCMD(unsignedcharCardIndex,unsignedchar*_Cmd,intLen,unsignedchar*_Data)说明:本函数用于向PSAM卡发送数据参数:CardIndex:0x01为卡座1,0x02为卡座2*_Cmd:向PSAM卡发送命令数据缓冲区指针Len:命令的长度*_Data:PSAM卡返回数据缓存区指针返回值:值意义0正确-1未知错误-2设置卡座错误-3设备未连接4.4.2PSAM卡下电原型:intSTDCALLPSAM_PowerOff(unsignedcharCardIndex)说明:本函数用于断开PSAM卡电源,降低功耗参数:CardIndex:0x01为卡座1,0x02为卡座2返回值:值意义0正确-1未知错误-2设置卡座错误-3设备未连接接口使用流程及示例在连接好读卡机具以后,首先需要调用函数InitComm打开相应端口。打开端口成功以后,即可以循环的认证并读取卡中信息。二代证示例示例:#include“sdtapi.h”intmain(){intret;intiPort=1;ret=InitComm(iPort);if(ret){ret=Authenticate();if(ret){charMsg[200];ret=ReadBaseMsg(Msg,0);if(ret>0){//显示文字及图片信息}charMsg1[200];intnum;ret=ReadNewAppMsg(Msg1,&num);if(ret>0){//显示追加地址信息}}}ret=CloseComm();returnret;}TypeA卡示例示例:#include“sdtapi.h”intmain(){intret;intdev;dev=dc_init(1,9600);unsignedintspc=0;if(dev>0){unsignedlongsn=0;ret=dc_request(dev,0,&spc);if(ret==0)ret=dc_anticoll(dev,0,&sn);unsignedcharsize;if(ret==0)ret=dc_select(dev,sn,&size);unsignedcharpw[6]={0xff,0xff,0xff,0xff,0xff,0xff};if(ret==0)ret=dc_authentication_passaddr(dev,0x60,1,pw);unsignedcharwr[16]={0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x01,0x02,0x15,0x16};if(ret==0)ret=dc_write(dev,1,wr);unsignedcharda[16]={0};if(ret==0)ret=dc_read(dev,1,da);ret=dc_BeepLED(dev,false,true,100);Sleep(100);ret=dc_BeepLED(dev,true,true,100);ret=dc_exit(dev);}}
本文档为【精伦IDR210通用二次开发文档】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
慢慢文档
8年外贸单证以及相关的工作经验
格式:doc
大小:136KB
软件:Word
页数:35
分类:
上传时间:2023-04-07
浏览量:41