




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第二代居民身份證閱讀器GTICR-100函數包使用手冊文檔控制文檔更新記錄文檔編號:編制單位產品部本次修改日期:2005.04.19審核單位總工辦歷史修改累記:2審核主管技術總監(jiān)目錄1概述 42 定義 43 函數列表 44 函數調用流程 65 函數說明 66 用戶信息函數組使用時的調用順序說明 11一個完整的示例: 121 概述本手冊是操作身份證閱讀器應用函數的定義格式、調用方法和返回值的說明。1. 使用前請確認授權文件termb.lic 在PC機根目錄下。2. 使用USB接口則請先安裝對應系統(tǒng)的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 定義應用函數開發(fā)包含在下列文件:termb.dllAPI函數的動態(tài)聯接庫(termb.dll的輸出文件放在調用者所在目錄中) 適用操作系統(tǒng):Windows NT:需要NT 3.1版或以后版本Windows:需要 Windows 98、Windows 2000 或以后版
3、本適用開發(fā)語言: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)得到發(fā)證機關信息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系列產品進行二次開發(fā)時,固定為串口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正確卡片正確放置時其它錯誤未放卡或卡片放置不正確時注意:若卡片放置后發(fā)生認證錯誤時,應移走卡片重新
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、若卡片放置后發(fā)生讀卡錯誤時,應移走卡片重新放置。文字信息采用 GB 13000的UCS-2進行存儲,各項目分配如下:項目長度(字節(jié))說明姓名30漢字性別2代碼民族4代碼岀生16年月日:YYYYMMDD住址70漢字和數字公民身份號碼36
10、數字簽發(fā)機關30漢字有效期起始日期16年月日:YYYYMMDD有效期截止日期16年月日:YYYYMMDD有效期為長期時存儲“長期”預留區(qū)36保留信息最新住址70漢字和數字芯片管理號分配如下:項目長度(字節(jié))說明IIN4SN8DN165.5用戶信息函數組該組函數用于讀取當前系統(tǒng)緩沖中的二代證卡內信息。該組函數具有如下特點:得到的字符信息全部為 ANSI編碼方式;可以直接用來顯示;得到的字符信息已經按照相關標準作了相應轉換;將性別編碼轉換成了相應的文字信息(如1- “男”),將民族編碼轉換成了相應的文字信息(如04- “藏”);該組函數返回值表示一致,含義如下:0:表示取到的字符信息不完整,增大s
11、trTmp參數分配的內存,就可完整讀出信息;(用戶信息各字段的長度定義見下表)非0 :表示讀出的字節(jié)總數;用戶信息各字段的長度定義(單位:字節(jié))姓名30性別2民族4岀生日期16住址70身份號碼36簽發(fā)機關30有效啟始日期16有效截止日期1636保留A.讀取卡內姓名信息原 型:int STDCALL GetPeopleName(char *strTmp, unsigned int strLen);說明:本函數用于讀取ANSI字符編碼方式的姓名信息;參 數:out strTmp 讀到的信息;in strLen 表示strTmp 參數分配的內存空間大小(單位:字節(jié));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); 讀簽發(fā)機關: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 數據解析函數以下兩個函數主要是用在無卡狀態(tài)下解析保存在文件中的歷史二代證信息;將人員基本信息文件名(帶全路徑)通過 SetBaseData函數送入termb.dll中后, 該Dll將解析人員基本信息;外部程序可通過調用“讀用戶信息函數組”中的函 數得到想要的信息;將人員WLT類型的照片文件名(帶全路徑)通過SetPhoteData函數送入termb.dll
15、后,在二代證機具聯機狀態(tài)下(不需要卡),該 dll將WLT文件解壓成BMP文件, 外部程序可通過調用“讀用戶信息函數組”中的GetPhotoBMP函數得到BMP文件的 內容信息;參數說明:in Fn ame文件的全路徑名;返回值說明:1表示正確執(zhí)行了功能;0表示文件已損壞,或非標準格式,或文件大小過大;A. 設置人員基本信息int _stdcall SetBaseData(char *FName);B. 設置人員照片信息;int _stdcall SetPhoteData(char *FName);6 用戶信息函數組使用時的調用順序說明6. 1聯機工作狀態(tài)下:0表示文件已損壞,或非標準格式,或
16、文件大小過大;0表示文件已損壞,或非標準格式,或文件大小過大;0表示文件已損壞,或非標準格式,或文件大小過大;0表示文件已損壞,或非標準格式,或文件大小過大;6. 2無卡時對保存在文件中的信息進行解析時:0表示文件已損壞,或非標準格式,或文件大小過大;0表示文件已損壞,或非標準格式,或文件大小過大;備注:上述兩種應用場景可靈活的動態(tài)切換。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. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 版酒店股權買賣合同范例
- 企業(yè)合同管理系統(tǒng)的現代化設計與實踐2025
- 授權合同范本
- 酒店消防安裝工程質量保證合同
- 英語三年級上冊Lesson F Good Night!教案
- 小學信息技術人教版四年級上冊第12課 認認真真管郵件獲獎教學設計
- 事業(yè)單位禮儀培訓
- 譯林版九年級英語下冊Unit 3 Robots第2課時示范課教案
- 小學信息技術河南大學版(2020)四年級下冊第六課 我的音樂我做主教案
- 交警執(zhí)法內部培訓
- 2024年中國裝飾公司100強企業(yè)排名
- 《電動自行車充換電柜消防安全要求》
- 云-邊-端協(xié)同架構設計-洞察分析
- 品管圈PDCA案例-中醫(yī)醫(yī)院減少住院患者艾灸燙傷率醫(yī)院改善成果匯報
- 弦理探索-洞察分析
- 【MOOC】大學攝影基礎-福建師范大學 中國大學慕課MOOC答案
- 工務安全生產管理系統(tǒng)運用
- 【MOOC】固體物理學-北京交通大學 中國大學慕課MOOC答案
- 心衰病人的觀察與護理
- 20241115某克縫紉機供應鏈計劃IBP PPDS詳細解決方案
- 愛護環(huán)境主題班會課件
評論
0/150
提交評論