精伦IDR210通用二次开发文档Word格式文档下载.docx
- 文档编号:18625341
- 上传时间:2022-12-29
- 格式:DOCX
- 页数:22
- 大小:24.42KB
精伦IDR210通用二次开发文档Word格式文档下载.docx
《精伦IDR210通用二次开发文档Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《精伦IDR210通用二次开发文档Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。
C++Builder5.0及以后版本
VisualBasic5.0及以后版本
Delphi3。
0及以后版本
PowerBuilder5。
4.接口函数说明
4.1.端口函数
4.1.1.端口初始化函数
原型:
intInitComm(intiPort)
说明:
本函数用于打开串口或USB并检测读卡设备是否就绪.
参数:
iPort:
设置串口、USB、USB-HID(免驱动)接口
串口
1–16(十进制)
例如:
1:
1(COM1)
2:
2(COM2)
USB
1001
返回值:
值
意义
1
正确
其它
错误
注:
如果读卡机具连接的端口是确定的,可以直接使用相应端口号调用本函数。
否则,可以采用循环查找的方式调用本函数。
4.1.2.端口关闭接口
intCloseComm(void)
本函数用于关闭已打开的端口,一般在调用InitComm成功并完成读卡任务后调用。
参数:
无
返回值:
如果不再使用已打开的端口,必须使用CloseComm函数关闭端口。
4.2.读二代证相关函数
4.2.1.卡认证接口
intAuthenticate(void)
说明:
本函数用于发现身份证卡并选择卡。
注:
认证卡时,需要将身份证放置于读卡机具上方并做稍许时间的停留。
如果函数返回错误表示没有发现卡或者卡停留时间太短.
4.2.2.读卡信息接口
原型:
intReadBaseMsg(unsignedchar*pMsg,int*len);
本函数用于读取卡中基本信息,包括文字信息与图像信息。
文字信息已经分段解析,输出格式为单字节,且每一字段信息已经被表示为字符串。
图象信息被解码后存为文件photo。
bmp(在当前工作目录下).
pMsg[out]无符号字符指针,指向读到的文本信息。
需要在调用时分配内存,字节数不小于192。
函数调用成功后,各字段的文本信息已经转换为单字节形式,并表示为字符串格式。
字段意义及偏移值如下所示:
项目
长度(字节)
说明
姓名
31
汉字
性别
3
民族
10
出生日期
9
CCYYMMDD
住址
71
汉字和数字
公民身份号码
19
数字
签发机关
有效期起始日期
有效期截止日期
CCYYMMDD
有效期为长期的表示为汉字“长期”
Len[out]整数,返回总字符长度,可以给空值(NULL)。
原型2:
intReadBaseMsgPhoto(unsignedchar*pMsg,int*len,char*directory);
本函数用于读取卡中基本信息,包括文字信息与图像信息.文字信息已经分段解析,输出格式为单字节,且每一字段信息已经被表示为字符串.图象信息被解码后存为文件photo。
bmp(在directory指定目录下)。
pMsg[out]无符号字符指针,指向读到的文本信息。
需要在调用时分配内存,字节数不小于192。
字段意义及偏移值如下所示:
Len[out]整数,返回总字符长度,可以给空值(NULL)。
directory[in]字符指针,表示照片存储路径,路径最后有无“\”均可;
可以给空值(NULL),表示照片存储在当前目录中,此时函数效果同ReadBaseMsg。
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]字符型指针,指向签证机关信息。
ExpireStart[out]字符型指针,指向有效期起始日期信息。
需要在调用时分配内存,字节数不小9,格式为:
ExpireEnd[out]字符型指针,指向有效期截至日期信息。
需要在调用时分配内存,字节数不小9,格式为:
CCYYMMDD,有效期为长期的表示为汉字“长期”。
原型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(在directory指定目录下)。
Name[out]字符型指针,指向姓名信息。
需要在调用时分配内存,字节数不小31。
Gender[out]字符型指针,指向性别信息(男或者女).需要在调用时分配内存,字节数不小3。
Folk[out]字符型指针,指向民族信息.需要在调用时分配内存,字节数不小10.
BirthDay[out]字符型指针,指向出生日期信息。
需要在调用时分配内存,字节数不小9,前四位为出生年,第5位到第6位是出生月,后两位是出生日,格式为:
Code[out]字符型指针,指向身份证号码信息。
需要在调用时分配内存,字节数不小19。
需要在调用时分配内存,字节数不小71。
Agency[out]字符型指针,指向签证机关信息.需要在调用时分配内存,字节数不小31。
ExpireStart[out]字符型指针,指向有效期起始日期信息。
需要在调用时分配内存,字节数不小9,格式为:
ExpireEnd[out]字符型指针,指向有效期截至日期信息。
需要在调用时分配内存,字节数不小9,格式为:
CCYYMMDD,有效期为长期的表示为汉字“长期"
.
directory[in]字符指针,表示照片存储路径,路径最后有无“\"
均可;
可以给空值(NULL),表示照片存储在当前目录中,此时函数效果同ReadBaseInfos。
原型5:
intReadBaseMsgW(unsignedchar*pMsg,int*len);
本函数用于读取卡中基本信息,包括文字信息与图像信息.文字信息未解析,文字信息采用GB13000的UCS-2进行存储,图象信息被解码后存为文件photo.bmp(在当前工作目录下)。
pMsg[out]无符号字符指针,指向读到的文本信息。
需要在调用时分配内存,字节数不小于256。
偏移值如下所示:
30
2
代码
出生
16
年月日:
YYYYMMDD
70
36
年月日:
有效期为长期时存储“长期”
最新住址
Len[out]整数,返回基本信息长度。
原型6:
intReadBaseMsgWPhoto(unsignedchar*pMsg,int*len,char*directory));
本函数用于读取卡中基本信息,包括文字信息与图像信息.文字信息未解析,文字信息采用GB13000的UCS-2进行存储,图象信息被解码后存为文件photo.bmp(在directory指定目录下)。
Len[out]整数,返回基本信息长度.
directory[in]字符指针,表示照片存储路径,路径最后有无“\"
可以给空值(NULL),表示照片存储在当前目录中,此时函数效果同ReadBaseMsgW。
读卡基本信息时,需要将身份证置于读卡机具上方做稍许时间的停留。
4.2.3.读追加地址信息
原型1:
intReadNewAppMsg(unsignedchar*pMsg,int*num);
本函数用于读取卡中追加地址信息,输出格式为单字节字符串格式.
pMsg[out]无符号字符指针,指向读到的追加地址信息。
需要在调用时分配内存,字节数不小于284.字段意义及偏移值如下所示:
追加地址1
追加地址2
追加地址3
追加地址4
num[out]整数,返回读到的追加地址数。
最多为4个.
原型2:
intReadNewAppInfos(unsignedchar*addr1,
unsignedchar*addr2,unsignedchar*addr3,
unsignedchar*addr4,int*num);
本函数用于读取卡中追加地址信息,输出格式为单字节字符串格式。
addr1、addr2、addr3、addr4[out]无符号字符指针,分别指向读到的追加地址信息。
需要在调用时分配内存,字节数分别不小于71.
num[out]整数,返回读到的追加地址数.最多为4个。
intReadNewAppMsgW(unsignedchar*pMsg,int*num);
本函数用于读取卡中追加地址信息,信息采用GB13000的UCS-2进行存储。
pMsg[out]无符号字符指针,指向读到的追加地址信息.需要在调用时分配内存,字节数不小于280。
偏移值如下所示:
num[out]整数,返回读到的追加地址数.最多为4个。
读追加地址信息时,需要将身份证置于读卡机具上方做稍许时间的停留。
4.2.4.读卡体管理号
intReadIINSNDN(char*pMsg);
本函数用于读取身份证卡的管理号.
pMsg[out]字符指针,需要在调用时分配内存,字节数不小于16。
返回8个16进制证卡序列号。
4.2.5.读模块序列号
intGetSAMIDToStr(char*pcSAMID);
本函数用于读取验证安全控制模块(SAM_V)的序列号。
pcSAMID[out]字符指针,需要在调用时分配内存,字节数不小于37。
模块序列号分为5个部分,格式为『2字符.2字符-8字符-10字符-10字符』,共36个字符;
4.3.TypeA卡相关函数
串口型iDR200和iDR210支持读写TypeA卡。
iDR210使用Routon开头的相关函数。
串口型iDR200使用dc_开头的相关函数。
4.3.1.dc_init
仅串口型iDR200可使用本接口,iDR210使用InitComm()进行端口初始化.
intdc_init(intport,longbaud);
初始化通讯口。
port:
取值为1~16。
baud:
为通讯波特率9600~115200.
成功则返回串口通讯设备标识符〉0,失败返回负值。
4.3.2.dc_exit
仅串口型iDR200可使用本接口,iDR210使用CloseComm()关闭端口.
intdc_exit(intdev);
关闭端口。
icdev:
通讯设备标识符。
成功返回0,失败返回负值.
4.3.3.dc_request
intdc_request(inticdev,unsignedchar_Mode,unsignedint*TagType);
寻卡请求.
icdev:
_Mode:
寻卡模式。
0表示Standard模式;
1表示All模式。
Tagtype:
卡类型值.
成功返回0,失败返回负值。
4.3.4.dc_anticoll
intdc_anticoll(inticdev,unsignedchar_Bcnt,unsignedlong*_Snr);
防卡冲突,返回卡的序列号.
_Bcn:
设为0。
_Snr:
返回的卡序列号地址。
4.3.5.dc_select
intdc_select(inticdev,unsignedlong_Snr,unsignedchar*_Size);
从多个卡中选取一个给定序列号的卡.
_Snr:
卡序列号。
_Size:
指向返回的卡容量的数据(暂不支持,无返回).
成功返回0,失败返回负值.
4.3.6.dc_authentication_passaddr
intdc_authentication_passaddr(inticdev,unsignedchar_Mode,unsignedcharAddr,unsignedchar*passbuff);
核对密码函数。
Icdev:
_Mode:
密码验证模式.0x60keyA,0x61keyB.
blockAddr:
要验证密码的块地址号.
passbuff:
密码字符串。
4.3.7.dc_read
dc_read(inticdev,unsignedchar_Adr,unsignedchar*_Data);
读取卡中数据.
通讯设备标识符.
_Adr:
M1S50卡-—块地址(0~63),M1S70(0~255)。
_Data:
读出数据.
4.3.8.dc_write
dc_write(inticdev,unsignedchar_Adr,unsignedchar*_Data);
向卡中写入数据.
M1S50卡-—块地址(1~63),M1S70(1~255).
要写入的数据。
4.3.9.dc_halt
dc_halt(inticdev);
中止对该卡操作。
4.3.10.dc_BeepLED
dc_BeepLED(inticdev,boolBeepON,boolLEDON,unsignedintduration);
控制LED指示灯和蜂鸣器。
BeepON:
值为true时,蜂鸣器打开。
LEDON:
值为true时,指示灯打开。
duration为持续的时间,单位为毫秒。
4.3.11.找IC卡
intRouton_IC_FindCard();
本函数用于寻卡。
无。
4.3.12.读IC卡序列号高级函数
intRouton_IC_HL_ReadCardSN(char*SN);
本函数用于读取IC卡的序列号,自动完成找卡、选卡等过程。
SN[out]字符指针,需要在调用时分配内存,字节数不小于16。
4.3.13.读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。
4.3.14.写IC卡区块高级函数
intRouton_IC_HL_WriteCard(intSID,intBID,
intKeyType,unsignedchar*Key,
本函数用于向IC卡指定扇区写入数据内容,自动完成找卡、选卡、认证等过程。
SID为扇区号,0-15之间(对M1S50卡).
BID为块号,0—3之间。
KeyType为密钥类型,两种:
0x60keyA,0x61keyB.
data为准备写入的数据内容,字节数为16。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精伦 IDR210 通用 二次开发 文档