第二代居民身份证阅读器GTICR-100函数包使用手册_第1页
第二代居民身份证阅读器GTICR-100函数包使用手册_第2页
第二代居民身份证阅读器GTICR-100函数包使用手册_第3页
第二代居民身份证阅读器GTICR-100函数包使用手册_第4页
第二代居民身份证阅读器GTICR-100函数包使用手册_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、第二代居民身份证阅读器GTICR-100函数包使用手册文档控制文档更新记录文档编号:编制单位产品部本次修改日期:2005.04.19审核单位总工办历史修改累记:2审核主管技术总监目录1概述 42 定义 43 函数列表 44 函数调用流程 65 函数说明 66 用户信息函数组使用时的调用顺序说明 11一个完整的示例: 121 概述本手册是操作身份证阅读器应用函数的定义格式、调用方法和返回值的说明。1. 使用前请确认授权文件termb.lic 在PC机根目录下。2. 使用USB接口则请先安装对应系统的USB驱动;3. termb.dll 是主 DLL, sdtapi.dll 和 WltRS.dll

2、 被 termb.dll 调用;用户可不必 关心sdtapi.dll 和 WltRS.dll ,但三个 DLL要求要放在同一个目录下;4. termb.dll 、sdtapi.dll 和WltRS.dll同时拷贝到调用此Dll的应用软件Exe文件所在目录下。5. termb.dll输出的文件放在调用者 (*.exe)所在目录;2 定义应用函数开发包含在下列文件:termb.dllAPI函数的动态联接库(termb.dll的输出文件放在调用者所在目录中) 适用操作系统:Windows NT:需要NT 3.1版或以后版本Windows:需要 Windows 98、Windows 2000 或以后版

3、本适用开发语言:Visual C+ 5.0及以后版本Visual Basic 5.0及以后版本DELPHI 3.0及以后版本PowerBuilder 6.0及以后版本3 函数列表序号函数定义函数功能1.Int _stdcall InitComm(int Port)初始化串口;2.int _stdcall CloseComm()关闭串口 ;3.int _stdcall Authenticate()卡认证;4.int _stdcall Read_Content(int Active)读卡操作。5.int _stdcall GetPeopleName(char *strTmp, int strLen

4、)得到姓名信息6.int _stdcall GetPeopleSex(char *strTmp, int strLen)得到性别信息7.int _stdcall GetPeopleNation(char *strTmp, int strLen)得到民族信息8.int _stdcall GetPeopleBirthday(char *strTmp, int strLen)得到岀生日期9.int _stdcall GetPeopleAddress(char *strTmp, int strLen)得到地址信息10.int _stdcall GetPeoplelDCode(char *strTmp,

5、 int strLen)得到卡号信息11.int _stdcall GetDepartment(char *strTmp, int strLen)得到发证机关信息12.int _stdcall GetStartDate(char *strTmp, int strLen)得到有效启始日期13.int _stdcall GetEndDate(char *strTmp, int strLen)得到有效截止日期14.int _stdcall GetReserve(char *strTmp, int strLen)得到保留信息15.int _stdcall SetBaseData(char *TxtFi

6、leName)设置基本信息16.int _stdcall SetPhotoData(char *WltFileName)设置照片WLT信息4 函数调用流程5 函数说明5.1初始化串口原型:int InitComm (int Port)说明:本函数用于计算机的串口初始化。参数:Port:设置串口值意义1串口 12串口 23串口 34串口 41001USB 11002USB 21003USB 31004USB 4注意:使用ICR-300系列产品进行二次开发时,固定为串口2返回值:值意义1正确其它错误示 例:#includeint main()int li_ret=O;int li_Port=1;l

7、i_ret=lnitComm(li_Port); return li_ret;5.2关闭串口原 型:int CloseComm(void)说 明:本函数用于关闭计算机已经打开的串口。参 数:无返回值:值意义1正确其它错误示 例:#include int main() int li_ret=0;li_ret= CloseComm() return li_ret;5.3卡认证原型:int Authenticate (void)说明:本函数用于读卡器和卡片之间的合法身份确认。参数:无返回值:值意义说明1正确卡片正确放置时其它错误未放卡或卡片放置不正确时注意:若卡片放置后发生认证错误时,应移走卡片重新

8、放置。示 例:#include int main() int li_ret=O;li_ret= authenticate () return li_ret;300mso注意:若采用查询方式自动判断卡片是否放置,则间隔时间建议大于5.4读卡操作原型:int Read_Content(int Active);说明:本函数用于通过读卡器从非接触卡中读取相应信息。参数:Active 读取信息类型Active 值意义说明1读基本信息形成文字信息文件 WZ.TXT、相片文件 XP.WLT和ZP.BMP2只读文字信息形成文字信息文件 WZ.TXT和相片文件XP.WLT3读最新住址信息形成最新住址文件 NEW

9、ADD.TXT5读芯片管理号形成二进制文件IINSNDN.bin返回值:值意义1正确0读卡错误-1相片解码错误-2wit文件后缀错误-3wit文件打开错误-4wit文件格式错误-5软件未授权-6设备连接失败在未移走卡1、读完基本信息后,若需要立即读取最新住址信息或芯片管理号, 片的情况下可以不用卡认证;2、单独读取最新住址信息或芯片管理号时,需要先进行卡认证;3、若卡片放置后发生读卡错误时,应移走卡片重新放置。文字信息采用 GB 13000的UCS-2进行存储,各项目分配如下:项目长度(字节)说明姓名30汉字性别2代码民族4代码岀生16年月日:YYYYMMDD住址70汉字和数字公民身份号码36

10、数字签发机关30汉字有效期起始日期16年月日:YYYYMMDD有效期截止日期16年月日:YYYYMMDD有效期为长期时存储“长期”预留区36保留信息最新住址70汉字和数字芯片管理号分配如下:项目长度(字节)说明IIN4SN8DN165.5用户信息函数组该组函数用于读取当前系统缓冲中的二代证卡内信息。该组函数具有如下特点:得到的字符信息全部为 ANSI编码方式;可以直接用来显示;得到的字符信息已经按照相关标准作了相应转换;将性别编码转换成了相应的文字信息(如1- “男”),将民族编码转换成了相应的文字信息(如04- “藏”);该组函数返回值表示一致,含义如下:0:表示取到的字符信息不完整,增大s

11、trTmp参数分配的内存,就可完整读出信息;(用户信息各字段的长度定义见下表)非0 :表示读出的字节总数;用户信息各字段的长度定义(单位:字节)姓名30性别2民族4岀生日期16住址70身份号码36签发机关30有效启始日期16有效截止日期1636保留A.读取卡内姓名信息原 型:int STDCALL GetPeopleName(char *strTmp, unsigned int strLen);说明:本函数用于读取ANSI字符编码方式的姓名信息;参 数:out strTmp 读到的信息;in strLen 表示strTmp 参数分配的内存空间大小(单位:字节);B.其他函数原型如下: 读性别信

12、息:int _stdcall GetPeopleSex(char *strTmp, un sig ned int strLe n); 读民族信息:int _stdcall GetPeopleNati on( char *strTmp, un sig ned int strLe n); 读出生日期:int _stdcall GetPeopleBirthday(char *strTmp, un sig ned int strLe n); 读住址信息:int _stdcall GetPeopleAddress(char *strTmp, un sig ned int strLe n); 读身份号码:

13、int _stdcall GetPeoplelDCode(char *strTmp, un sig ned int strLe n); 读签发机关:int _stdcall GetDepartme nt(char *strTmp, un sig ned int strLe n); 读有效启始日期:int _stdcall GetStartDate(char *strTmp, un sig ned int strLe n); 读有效截止日期:int _stdcall GetE ndDate(char *strTmp, un sig ned int strLe n); 读保留信息:int _std

14、call GetReserve(char *strTmp, un sig ned int strLe n);读照片信息:int _stdcall GetPhotoBMP(char *Photo, unsigned int Len);5.6 数据解析函数以下两个函数主要是用在无卡状态下解析保存在文件中的历史二代证信息;将人员基本信息文件名(带全路径)通过 SetBaseData函数送入termb.dll中后, 该Dll将解析人员基本信息;外部程序可通过调用“读用户信息函数组”中的函 数得到想要的信息;将人员WLT类型的照片文件名(带全路径)通过SetPhoteData函数送入termb.dll

15、后,在二代证机具联机状态下(不需要卡),该 dll将WLT文件解压成BMP文件, 外部程序可通过调用“读用户信息函数组”中的GetPhotoBMP函数得到BMP文件的 内容信息;参数说明:in Fn ame文件的全路径名;返回值说明:1表示正确执行了功能;0表示文件已损坏,或非标准格式,或文件大小过大;A. 设置人员基本信息int _stdcall SetBaseData(char *FName);B. 设置人员照片信息;int _stdcall SetPhoteData(char *FName);6 用户信息函数组使用时的调用顺序说明6. 1联机工作状态下:0表示文件已损坏,或非标准格式,或

16、文件大小过大;0表示文件已损坏,或非标准格式,或文件大小过大;0表示文件已损坏,或非标准格式,或文件大小过大;0表示文件已损坏,或非标准格式,或文件大小过大;6. 2无卡时对保存在文件中的信息进行解析时:0表示文件已损坏,或非标准格式,或文件大小过大;0表示文件已损坏,或非标准格式,或文件大小过大;备注:上述两种应用场景可灵活的动态切换。7 一个完整的示例:DELPHI 调用示例:unit Unit1;interfaceusesWindows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls, B

17、uttons, ExtCtrls;typeTForm1 = class(TForm)BitBtn1: TBitBtn;Button2: TButton;Button3: TButton;Image1: TImage;procedure FormClose(Sender: TObject; var Action: TCloseAction);procedure BitBtn1Click(Sender: TObject);procedure FormCreate(Sender: TObject);procedure Button3Click(Sender: TObject);procedure B

18、utton2Click(Sender: TObject);private Private declarations public Public declarations end;varForm1: TForm1;mInitComm:Function(Port:integer):integer;Stdcall; mCloseComm:Function:integer;stdcall; mAuthenticate:Function:integer;stdcall; mRead_Content:Function(Active:integer):integer;stdcall; GetName:Fun

19、ction(info:pchar;len:integer):integer;stdcall; GetSex:Function(info:pchar;len:integer):integer;stdcall; GetNation:Function(info:pchar;len:integer):integer;stdcall; GetAddress:Function(info:pchar;len:integer):integer;stdcall;GetBirthday:Function(info:pchar;len:integer):integer;stdcall;GetCode:Functio

20、n(info:pchar;len:integer):integer;stdcall;GetDepartment:Function(info:pchar;len:integer):integer;stdcall;GetStartDate:Function(info:pchar;len:integer):integer;stdcall;GetEndDate:Function(info:pchar;len:integer):integer;stdcall;GetReserve:Function(info:pchar;len:integer):integer;stdcall; GetPhotoBMP:

21、Function(info:pchar;len:integer):integer;stdcall; SetBaseData:Function(filename:string):integer;stdcall; SetPhotoData:Function(filename:string):integer;stdcall; DLLHandle:Integer;implementation$R *.DFMprocedure TForm1.FormCreate(Sender: TObject);var i:integer;DLLPath:String;beginDLLPath:=ExtractFile

22、dir(Application.exeName);DLLPath:=DLLPath+'termb.dll'DLLHandle:=LoadLibrary(Pchar(DLLPath);mInitComm:=GetProcAddress(DLLHandle,'InitComm'); mCloseComm:=GetProcAddress(DLLHandle,'CloseComm'); mAuthenticate:=GetProcAddress(DLLHandle,'Authenticate'); mRead_Content:=GetPr

23、ocAddress(DLLHandle,'Read_Content');GetName:=GetProcAddress(DLLHandle,'GetPeopleName');GetSex:=GetProcAddress(DLLHandle,'GetPeopleSex'); GetNation:=GetProcAddress(DLLHandle,'GetPeopleNation'); GetAddress:=GetProcAddress(DLLHandle,'GetPeopleAddress'); GetBirthd

24、ay:=GetProcAddress(DLLHandle,'GetPeopleBirthday'); GetCode:=GetProcAddress(DLLHandle,'GetPeopleIDCode'); GetDepartment:=GetProcAddress(DLLHandle,'GetDepartment'); GetStartDate:=GetProcAddress(DLLHandle,'GetStartDate'); GetEndDate:=GetProcAddress(DLLHandle,'GetEndD

25、ate'); GetReserve:=GetProcAddress(DLLHandle,'GetReserve'); GetPhotoBMP:=GetProcAddress(DLLHandle,'GetPhotoBMP'); SetBaseData:=GetProcAddress(DLLHandle,'SetBaseData'); SetPhotoData:=GetProcAddress(DLLHandle,'SetPhotoData'); end;procedure TForm1.FormClose(Sender: TO

26、bject; var Action: TCloseAction);beginif DLLHandle<>null then freeLibrary(DLLHandle);end;procedure TForm1.BitBtn1Click(Sender: TObject); beginmInitComm(1); sleep(1000); mAuthenticate;sleep(2000); mRead_Content(1);sleep(2000);Button3Click(self);Application.ProcessMessages; mRead_Content(2);slee

27、p(2000); mRead_Content(3);sleep(1000); mRead_Content(5);sleep(1000); mCloseComm;end;procedure TForm1.Button3Click(Sender: TObject); var info:array1.100 of char;photo:array1.102400 of char; fileHandle:THandle;Len:integer;begin fillchar(info,100,#0); GetName(info1,100); showmessage(info);fillchar(info,100,#0);GetSex(info1,100); showmessage(info);fillchar(info,100,#0); GetNation(info1,100); showmessage(info);fillchar(info,100,#0);GetAddress(info1,100);showmessage(info);fillchar(info,100,#0);GetBirth

温馨提示

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

评论

0/150

提交评论