身份證閱讀器Firefox火狐瀏覽器控件包下載
身份證閱讀器Firefox火狐瀏覽器控件包下載
提供身份證閱讀器Firefox火狐瀏覽器下BS開(kāi)發(fā)包,火狐59版本測(cè)試通過(guò),同時(shí)支持IE瀏覽器開(kāi)發(fā),相關(guān)技術(shù)支持免費(fèi)提供。
注意:本開(kāi)發(fā)包只在EST-100G免驅(qū)身份證讀卡器測(cè)試通過(guò),其他型號(hào)讀卡器沒(méi)有測(cè)試,由于測(cè)試對(duì)硬件造成的損失,我公司不承擔(dān)任何責(zé)任。
第三代身份證閱讀器,支持多種網(wǎng)頁(yè)瀏覽器使用,歡迎下載安裝使用
測(cè)試版本(2019年11月更新):谷歌Chrome:78.0.3626.109 / 火狐Firefox:70.0.1 / 360安全瀏覽器:10.0.1472.0 / 360急速瀏覽器:11.* / Internet Explorer:IE11
說(shuō)明:此SDK支持型號(hào)EST-100G免驅(qū)身份證讀卡器,其他品牌型號(hào),例如華視CVR-100U,神思SS628-100U、新中新DKQ-A16D,精倫IDR210未經(jīng)測(cè)試,不一定適用!
【客戶(hù)端控件部署提供兩種方式】
1、通過(guò)執(zhí)行EXE安裝程序:將控件文件復(fù)制到指定目錄,注冊(cè)控件文件;
目前已經(jīng)支持火狐、360極速模式、QQ極速模式等支持NPAPI的瀏覽器,以及IE瀏覽器。
支持版本:火狐4.0版本以上
谷歌:默認(rèn)是禁用NPAIP插件,必須手動(dòng)強(qiáng)制開(kāi)啟才能用;
2、通過(guò)IE瀏覽器執(zhí)行HTML腳本:從服務(wù)器端加載CAB包,注冊(cè)控件文件;
這種模式安裝,只支持IE瀏覽器,.CAB控件安裝是IE瀏覽器獨(dú)有的安裝模式。
3、一個(gè)是用安裝包安裝注冊(cè),一個(gè)使用CAB包安裝注冊(cè),
只要控件安裝注冊(cè)成功,IE就能讀卡;
根據(jù)平臺(tái)業(yè)務(wù)需要二選其一即可。
測(cè)試環(huán)境:
win7 64位操作系統(tǒng),IE11測(cè)試通過(guò),火狐50.1.0版本測(cè)試通過(guò);
身份證閱讀器讀卡器系列接口動(dòng)態(tài)鏈接庫(kù)
用戶(hù)手冊(cè)本
V 1.0.1.3
修改履歷
版本日期說(shuō)明
1.0.1.02016-07-01初版
1.0.1.32016-10-12修改“SDT_StartFindIDCard”參數(shù)描述。
一 產(chǎn)品適用范圍
本產(chǎn)品是一個(gè)WINDOWS系統(tǒng)的動(dòng)態(tài)鏈接庫(kù)。適用于WINDOWS XP及以上版本的WINDOWS操作系統(tǒng)。
二 產(chǎn)品組成
編號(hào)項(xiàng)目說(shuō)明
1HxgcDeviceApi_J10.dllJ10系列接口動(dòng)態(tài)鏈接庫(kù)
2DLL_File.dll二代證照片解碼庫(kù)
3license.dat二代證照片解碼授權(quán)許可文件
三 產(chǎn)品部署
本產(chǎn)品直接復(fù)制到PC機(jī)上即可適用,要保證產(chǎn)品所有組成項(xiàng)目都在同一個(gè)目錄下。
四 接口函數(shù)說(shuō)明
4.1 接口函數(shù)列表
如下表,HxgcDeviceApi_J10.dll導(dǎo)出函數(shù):
編號(hào)函數(shù)名說(shuō)明
設(shè)備通訊基本函數(shù)API
1CarderOpen打開(kāi)設(shè)備
2CarderClose關(guān)閉設(shè)備
3GetModuleVer獲取設(shè)備版本
4CarderBeeping讀卡器蜂鳴器控制
CPU卡API
5GetCardStatus獲取卡片狀態(tài)
6CardActiveIC卡上電復(fù)位
7CardDeActiveIC卡斷電
8CardAPDUIC卡APDU指令交互
非接觸式存儲(chǔ)卡API
9PiccMemActive非接觸式存儲(chǔ)卡激活
10PiccMemActiveHex非接觸式存儲(chǔ)卡激活
11PiccMemAuthSector非接觸式存儲(chǔ)卡認(rèn)證扇區(qū)
12PiccMemAuthSectorHex非接觸式存儲(chǔ)卡認(rèn)證扇區(qū)
13PiccMemReadBlock非接觸式存儲(chǔ)卡讀塊
14PiccMemReadBlockHex非接觸式存儲(chǔ)卡讀塊
15PiccMemWriteBlock非接觸式存儲(chǔ)卡寫(xiě)塊
16PiccMemWriteBlockHex非接觸式存儲(chǔ)卡寫(xiě)塊
17PiccMemReadValue非接觸式存儲(chǔ)卡讀值塊
18PiccMemReadValueInt非接觸式存儲(chǔ)卡讀值塊
19PiccMemWriteValue非接觸式存儲(chǔ)卡寫(xiě)值塊
20PiccMemWriteValueInt非接觸式存儲(chǔ)卡寫(xiě)值塊
21PiccMemIncValue非接觸式存儲(chǔ)卡加值
22PiccMemIncValueInt非接觸式存儲(chǔ)卡加值
23PiccMemDecValue非接觸式存儲(chǔ)卡減值
24PiccMemDecValueInt非接觸式存儲(chǔ)卡減值
25PiccMemHalt非接觸式存儲(chǔ)卡停止
26PiccGetTagType獲取非接觸式卡卡片類(lèi)型代碼
二代證API
27SDT_GetCOMBaud查看SAM_V當(dāng)前波特率
28SDT_SetCOMBaud設(shè)置SAM_V的串口的波特率
29SDT_OpenPort打開(kāi)串口/USB 口
30SDT_ClosePort關(guān)閉串口/USB 口
31SDT_ResetSAM對(duì) SAM_A 復(fù)位
32SDT_GetSAMStatus對(duì) SAM_A 進(jìn)行狀態(tài)檢測(cè)
33SDT_GetSAMID讀取SAM_A的編號(hào),輸出為十六進(jìn)制數(shù)值
34SDT_GetSAMIDToStr讀取SAM_A的編號(hào),輸出為字符串。
35SDT_StartFindIDCard尋找居民身份證。
36SDT_SelectIDCard選卡。
37SDT_ReadBaseMsg讀取居民身份證機(jī)讀文字信息和相片信息。
38SDT_ReadBaseFPMsg讀取居民身份證機(jī)讀文字信息、相片信息和指紋信息。
39SDT_ReadNewAppMsg讀取追加地址信息。
4.2 設(shè)備通訊基本函數(shù)API接口函數(shù)說(shuō)明
4.2.1 CarderOpen
● 函數(shù)功能
打開(kāi)設(shè)備。
● 函數(shù)定義
int __stdcall CarderOpen( int pi_iPort, int pi_iBaud = 115200 );
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1pi_iPort輸入?yún)?shù),
串口 : 1~16;
USB : 1001~1016;
缺省的一個(gè)USB設(shè)備端口號(hào)為1001。
2pi_iBaud輸入?yún)?shù),波特率,默認(rèn)為115200bps;
USB設(shè)備該參數(shù)無(wú)效。
● 返回值
0成功;
-1失敗。
4.2.2 CarderClose
關(guān)閉設(shè)備。
● 函數(shù)定義
int __stdcall CarderClose();
● 參數(shù)說(shuō)明
無(wú)。
● 返回值
0成功;
-1失敗。
4.2.3 GetModuleVer
● 函數(shù)定義
int __stdcall GetModuleVer( int pi_iModule, unsigned char* po_pszModuleVer );
● 函數(shù)功能
獲取設(shè)備版本信息。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1pi_iModule輸入?yún)?shù),
0 接觸式IC卡模塊;
1 非接觸式卡模塊。
2po_pszModuleVer輸出參數(shù),模塊版本信息。
● 返回值
0成功;
<0失敗。
4.2.4 CarderBeeping
● 函數(shù)定義
int __stdcall CarderBeeping( unsigned char pi_bySustainedTime,
unsigned char pi_byIntervalTime,
unsigned char pi_byTimes );
● 函數(shù)功能
讀卡器蜂鳴器控制。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1pi_bySustainedTime,輸入?yún)?shù),單次鳴叫持續(xù)時(shí)間, 單位100毫秒。
2pi_byIntervalTime輸入?yún)?shù),鳴叫間隔時(shí)間, 單位100毫秒。
3pi_byTimes輸入?yún)?shù),蜂鳴器鳴叫次數(shù)。
● 返回值
0成功;
1失敗。
4.3 CPU卡API接口函數(shù)說(shuō)明
4.3.1 GetCardStatus
● 函數(shù)定義
int __stdcall GetCardStatus( unsigned char pi_bySlot );
● 函數(shù)功能
取卡片狀態(tài)。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1pi_bySlot輸入?yún)?shù),卡槽號(hào),
0xFF 非接觸式卡;
0x00~0x0F 接觸式CPU卡1~卡16;
0x10~0x1F SAM卡1~卡16。
● 返回值
-1失敗;
>0 狀態(tài)號(hào)或錯(cuò)誤號(hào)。
4.3.2 CardActive
● 函數(shù)定義
int __stdcall CardActive( unsigned char pi_bySlot,
unsigned char* po_pbysATR,
int* po_piATRSize );
● 函數(shù)功能
CPU卡上電復(fù)位。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1pi_bySlot輸入?yún)?shù),卡槽號(hào),
0xFF 非接觸式卡;
0x00~0x0F 接觸式CPU卡1~卡16;
0x10~0x1F SAM卡1~卡16。
2po_pbysATR輸出參數(shù),
當(dāng)卡前卡槽為接觸式卡或SAM卡卡片時(shí)為 卡片ATR數(shù)據(jù);
為非接卡時(shí)為 卡類(lèi)型(1Byte = 0x0A TYPE A, = 0x0B TYPE A) + 卡片UID長(zhǎng)度(1Byte) + 卡片UID + 卡片ATR數(shù)據(jù)。
3po_piATRSize輸出參數(shù),ATR數(shù)據(jù)長(zhǎng)度。
● 返回值
0成功;
-1通訊失敗;
>0 錯(cuò)誤號(hào)。
4.3.3 CardDeActive
● 函數(shù)定義
int __stdcall CardDeActive( unsigned char pi_bySlot );
● 函數(shù)功能
CPU卡下電。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1pi_bySlot輸入?yún)?shù),卡槽號(hào),
0xFF 非接觸式卡;
0x00~0x0F 接觸式CPU卡1~卡16;
0x10~0x1F SAM卡1~卡16。
● 返回值
0成功;
-1通訊失敗;
>0 錯(cuò)誤號(hào)。
4.3.4 CardAPDU
● 函數(shù)定義
int __stdcall CardAPDU( unsigned char pi_bySlot,
unsigned char* pi_pbysSendApdu,
int pi_iSendSize,
unsigned char* po_pbysRecvApdu,
int* po_piRecvSize,
double pi_dOutTime );
● 函數(shù)功能
CPU卡APDU交互。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1pi_bySlot輸入?yún)?shù),卡槽號(hào),
0xFF 非接觸式卡;
0x00~0x0F 接觸式CPU卡1~卡16;
0x10~0x1F SAM卡1~卡16。
2pi_pbysSendApdu輸入?yún)?shù),APDU數(shù)據(jù)。
3pi_iSendSize輸入?yún)?shù),APDU數(shù)據(jù)長(zhǎng)度。
4po_pbysRecvApdu輸出參數(shù),卡片響應(yīng)數(shù)據(jù)。
5po_piRecvSize輸出參數(shù),卡片響應(yīng)數(shù)據(jù)長(zhǎng)度。
6pi_dOutTime輸入?yún)?shù),操作超時(shí)時(shí)間,單位:秒。
● 返回值
0成功;
-1通訊失敗;
>0 錯(cuò)誤號(hào)。
4.4 CPU卡API接口函數(shù)說(shuō)明
4.4.1 PiccMemActive
● 函數(shù)定義
int __stdcall PiccMemActive( unsigned short pi_usDelayTimes,
unsigned char* po_pbysCardType,
unsigned char* po_pbysUID );
● 函數(shù)功能
非接觸式存儲(chǔ)卡激活。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1pi_usDelayTimes輸入?yún)?shù),等待卡進(jìn)入感應(yīng)區(qū)時(shí)間(單位:毫秒),
0 無(wú)需等待,無(wú)卡直接返回;
0xffff 一直等待。
2po_pbysCardType輸出參數(shù),卡類(lèi)別,1字節(jié),
0AH A卡;
0BH B卡。
3po_pbysUID輸出參數(shù),卡UID,4字節(jié)。
● 返回值
0成功;
-1通訊失敗;
>0 錯(cuò)誤號(hào)。
4.4.2 PiccMemActiveHex
● 函數(shù)定義
int __stdcall PiccMemActiveHex( unsigned short pi_usDelayTimes,
unsigned char* po_pbysCardType,
unsigned char* po_pbysUID );
● 函數(shù)功能
非接觸式存儲(chǔ)卡激活。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1pi_usDelayTimes輸入?yún)?shù),等待卡進(jìn)入感應(yīng)區(qū)時(shí)間(單位:毫秒),
0 無(wú)需等待,無(wú)卡直接返回;
0xffff 一直等待。
2po_pbysCardType輸出參數(shù),卡類(lèi)別,1字節(jié),
'A' TYPE A卡;
'B' TYPE B卡。
3po_pbysUID輸出參數(shù),卡UID,8字節(jié)拆分后的UID,如0xAA 拆成 "AA"。
● 返回值
0成功;
-1通訊失敗;
>0 錯(cuò)誤號(hào)。
4.4.3 PiccMemAuthSector
● 函數(shù)定義
int __stdcall PiccMemAuthSector( unsigned char pi_bySectorNo,
unsigned char pi_byKeyType,
unsigned char* pi_pbysKey );
● 函數(shù)功能
非接觸式存儲(chǔ)卡認(rèn)證扇區(qū)。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1pi_bySectorNo輸入?yún)?shù),扇區(qū)號(hào)。
2pi_byKeyType,輸入?yún)?shù),密鑰類(lèi)型,
0x60 A密鑰;
0x61 B密鑰;
0x40 加密后的A密鑰;
0x41 加密后的B密鑰。
3pi_pbysKey輸入?yún)?shù),密鑰,非加密模式時(shí)為6字節(jié),加密模式為8字節(jié)。
● 返回值
0成功;
-1通訊失敗;
>0 錯(cuò)誤號(hào)。
4.4.4 PiccMemAuthSectorHex
● 函數(shù)定義
int __stdcall PiccMemAuthSectorHex( unsigned char pi_bySectorNo,
unsigned char pi_byKeyType,
unsigned char* pi_pbysKey );
● 函數(shù)功能
非接觸式存儲(chǔ)卡認(rèn)證扇區(qū)。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1pi_bySectorNo輸入?yún)?shù),扇區(qū)號(hào)。
2pi_byKeyType輸入?yún)?shù),密鑰類(lèi)型,
'A' A密鑰;
'B' B密鑰;
'a' 加密后的A密鑰;
'b' 加密后的B密鑰。
3pi_pbysKey輸入?yún)?shù),密鑰,非加密模式時(shí)為12字節(jié)拆分后的密鑰, 加密模式時(shí)為16字節(jié)拆分后的密鑰。
● 返回值
0成功;
-1通訊失敗;
>0 錯(cuò)誤號(hào)。
4.4.5 PiccMemReadBlock
● 函數(shù)定義
int __stdcall PiccMemReadBlock( unsigned char pi_byBlockNo,
unsigned char* po_pbysBlockData );
● 函數(shù)功能
非接觸式存儲(chǔ)卡讀塊。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1pi_byBlockNo輸入?yún)?shù),塊號(hào)。
2po_pbysBlockData輸出參數(shù),數(shù)據(jù),16字節(jié)。
● 返回值
0成功;
-1通訊失敗;
>0 錯(cuò)誤號(hào)。
4.4.6 PiccMemReadBlockHex
● 函數(shù)定義
int __stdcall PiccMemReadBlockHex( unsigned char pi_byBlockNo,
unsigned char* po_pbysBlockData );
● 函數(shù)功能
非接觸式存儲(chǔ)卡讀塊。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1pi_byBlockNo輸入?yún)?shù),塊號(hào) 從0開(kāi)始。
2po_pbysBlockData輸出參數(shù),數(shù)據(jù),32字節(jié)拆分后的塊數(shù)據(jù)。
● 返回值
0成功;
-1通訊失敗;
>0 錯(cuò)誤號(hào)。
4.4.7 PiccMemWriteBlock
● 函數(shù)定義
int __stdcall PiccMemWriteBlock( unsigned char pi_byBlockNo,
unsigned char* pi_pbysBlockData );
● 函數(shù)功能
非接觸式存儲(chǔ)卡寫(xiě)塊。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1pi_byBlockNo輸入?yún)?shù),塊號(hào)。
2pi_pbysBlockData輸入?yún)?shù),數(shù)據(jù),16字節(jié)。
● 返回值
0成功;
-1通訊失敗;
>0 錯(cuò)誤號(hào)。
4.4.8 PiccMemWriteBlockHex
● 函數(shù)定義
int __stdcall PiccMemWriteBlockHex( unsigned char pi_byBlockNo,
unsigned char* pi_pbysBlockData );
● 函數(shù)功能
非接觸式存儲(chǔ)卡寫(xiě)塊。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1pi_byBlockNo輸入?yún)?shù),塊號(hào)。
2pi_pbysBlockData輸入?yún)?shù),數(shù)據(jù),32字節(jié)拆分后的塊數(shù)據(jù)。
● 返回值
0成功;
-1通訊失敗;
>0 錯(cuò)誤號(hào)。
4.4.9 PiccMemReadValue
● 函數(shù)定義
int __stdcall PiccMemReadValue( unsigned char pi_byBlockNo,
unsigned char* po_pbysValue );
● 函數(shù)功能
非接觸式存儲(chǔ)卡讀值塊。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1pi_byBlockNo輸入?yún)?shù),塊號(hào)。
2po_pbysValue輸出參數(shù),數(shù)據(jù),4字節(jié)。
● 返回值
0成功;
-1通訊失敗;
>0 錯(cuò)誤號(hào)。
4.4.10 PiccMemReadValueInt
● 函數(shù)定義
int __stdcall PiccMemReadValueInt( unsigned char pi_byBlockNo,
unsigned long* po_pulValue );
● 函數(shù)功能
非接觸式存儲(chǔ)卡讀值塊。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1pi_byBlockNo輸入?yún)?shù),塊號(hào)。
2po_pulValue輸出參數(shù),值,無(wú)符號(hào)整型。
● 返回值
0成功;
-1通訊失敗;
>0 錯(cuò)誤號(hào)。
4.4.11 PiccMemWriteValue
● 函數(shù)定義
int __stdcall PiccMemWriteValue( unsigned char pi_byBlockNo,
unsigned char* pi_pbysValue);
● 函數(shù)功能
非接觸式存儲(chǔ)卡寫(xiě)值塊。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1pi_byBlockNo輸入?yún)?shù),塊號(hào)。
2pi_pbysValue輸入?yún)?shù),數(shù)據(jù),4字節(jié)。
● 返回值
0成功;
-1通訊失敗;
>0 錯(cuò)誤號(hào)。
4.4.12 PiccMemWriteValueInt
● 函數(shù)定義
int __stdcall PiccMemWriteValueInt( unsigned char pi_byBlockNo,
unsigned long* pi_pulValue );
● 函數(shù)功能
非接觸式存儲(chǔ)卡寫(xiě)值塊。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1pi_byBlockNo,輸入?yún)?shù),塊號(hào)。
2pi_pulValue輸入?yún)?shù),值,無(wú)符號(hào)整型。
● 返回值
0成功;
-1通訊失敗;
>0 錯(cuò)誤號(hào)。
4.4.13 PiccMemIncValue
● 函數(shù)定義
int __stdcall PiccMemIncValue( unsigned char pi_byBlockNo,
unsigned char* pi_pbysValue );
● 函數(shù)功能
非接觸式存儲(chǔ)卡加值。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1pi_pwszFilePath輸入?yún)?shù),塊號(hào)。
2pi_pwszFileName輸入?yún)?shù),數(shù)據(jù),4字節(jié)。
● 返回值
0成功;
-1通訊失敗;
>0 錯(cuò)誤號(hào)。
4.4.14 PiccMemIncValueInt
● 函數(shù)定義
int __stdcall PiccMemIncValueInt( unsigned char pi_byBlockNo,
unsigned long* pi_pulValue );
● 函數(shù)功能
非接觸式存儲(chǔ)卡加值。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1pi_byBlockNo輸入?yún)?shù),塊號(hào)。
2pi_pulValue輸入?yún)?shù),值,無(wú)符號(hào)整型。
● 返回值
0成功;
-1通訊失敗;
>0 錯(cuò)誤號(hào)。
4.4.15 PiccMemDecValue
● 函數(shù)定義
int __stdcall PiccMemDecValue( unsigned char pi_byBlockNo,
unsigned char* pi_pbysValue );
● 函數(shù)功能
非接觸式存儲(chǔ)卡減值。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1pi_byBlockNo輸入?yún)?shù),塊號(hào)。
2pi_pulValue輸入?yún)?shù),值,無(wú)符號(hào)整型。
● 返回值
0成功;
-1通訊失敗;
>0 錯(cuò)誤號(hào)。
4.4.16 PiccMemDecValueInt
● 函數(shù)定義
int __stdcall PiccMemIncValueInt( unsigned char pi_byBlockNo,
unsigned long* pi_pulValue );
● 函數(shù)功能
非接觸式存儲(chǔ)卡減值。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1pi_byBlockNo輸入?yún)?shù),塊號(hào)。
2pi_pulValue輸入?yún)?shù),值,無(wú)符號(hào)整型。
● 返回值
0成功;
-1通訊失敗;
>0 錯(cuò)誤號(hào)。
4.4.17 PiccMemHalt
● 函數(shù)定義
int __stdcall PiccMemHalt(void);
● 函數(shù)功能
非接觸式存儲(chǔ)卡停止激活。
● 參數(shù)說(shuō)明
無(wú)。
● 返回值
0成功;
-1通訊失敗;
>0 錯(cuò)誤號(hào)。
4.4.18 PiccGetTagType
● 函數(shù)定義
int __stdcall PiccGetTagType( unsigned char* po_pbysTagType );
● 函數(shù)功能
獲取非接觸式卡卡片類(lèi)型代碼。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1po_pbysTagType輸出參數(shù),卡片類(lèi)型代碼,2字節(jié),其數(shù)值可參考如下(16進(jìn)制表示),
pucTagType[0] pucTagType[1] 卡類(lèi)型
04 00 Mifare_One(S50)
02 00 Mifare_One(S70)
44 00 Mifare_UltraLight
08 00 Mifare_Pro
04 03 Mifare_ProX
44 03 Mifare_DESFire
● 返回值
0成功;
-1通訊失敗;
>0 錯(cuò)誤號(hào)。
4.5 二代證API接口函數(shù)說(shuō)明
4.5.1 SDT_GetCOMBaud
● 函數(shù)定義
int __stdcall SDT_GetCOMBaud( int iPort, unsigned int* puiBaudRate );
● 函數(shù)功能
查看SAM_V當(dāng)前波特率(該函數(shù)只用于SAM_V采用RS232串口的情形,如果采用USB接口則不支持該API)。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1iPort輸入?yún)?shù),整數(shù),表示端口號(hào)。此處端口號(hào)必須為1-16,表示串口。
2puiBaudRate輸出參數(shù),無(wú)符號(hào)整數(shù)指針,指向普通串口當(dāng)前波特率, 默認(rèn)情況下為115200。
● 返回值
0x90 成功;
0x01 端口打開(kāi)失敗/端口號(hào)不合法;
0x05 無(wú)法獲得該SAM_V的波特率,該SAM_V串口不可用。
4.5.2 SDT_SetCOMBaud
● 函數(shù)定義
int __stdcall SDT_SetCOMBaud( int iPort,
unsigned int uiCurrBaud,
unsigned int uiSetBaud );
● 函數(shù)功能
設(shè)置SAM_V的串口的波特率(該函數(shù)只用于SAM_V采用RS232串口的情形,如果采用USB接口則不支持該API),設(shè)置成功后,在該SAM_V和主機(jī)注冊(cè)表中都記錄設(shè)置后的波特率,保證在SAM_V重新啟動(dòng)和該套API被重新調(diào)用時(shí)采用設(shè)置后的波特率。該函數(shù)調(diào)用成功后,需要延時(shí)5毫秒,然后才能繼續(xù)與SAM_V通信。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1iPort輸入?yún)?shù),整數(shù),表示端口號(hào)。此處端口號(hào)必須為1-16,表示串口。
2uiCurrBaud輸入?yún)?shù),無(wú)符號(hào)整數(shù),調(diào)用該API前已設(shè)置的業(yè)務(wù)終端與SAM_V通信的波特率(SAM_V出廠時(shí)默認(rèn),業(yè)務(wù)終端與SAM_V通信的波特率為115200).業(yè)務(wù)終端以該波特率與SAM_V通信,發(fā)出設(shè)置SAM_V新波特率的命令.。uiCurrBaud只能為下列數(shù)值之一:115200,57600,38400,19200,9600。如果uiCurrBaud數(shù)值不是這些值之一,函數(shù)返回0x21;如果已設(shè)置的波特率與uiCurrBaud不一致,則函數(shù)返回0x02,表示不能設(shè)置,調(diào)用API不成功。
3uiSetBaud輸入?yún)?shù),無(wú)符號(hào)整數(shù),將要設(shè)置的SAM_V與業(yè)務(wù)終端通信波特率。uiSetBaud只能取下列值之一:115200,57600,38400,19200,9600,如果輸入uiSetBaud參數(shù)不是這些數(shù)值之一,函數(shù)返回0x21,設(shè)置不成功,保持原來(lái)的波特率不變。
● 返回值
0x90 成功;
0x01 端口打開(kāi)失敗/端口號(hào)不合法;
0x02 超時(shí),設(shè)置不成功;
0x21 uiCurrBaud 、uiSetBaud輸入?yún)?shù)數(shù)值錯(cuò)誤。
4.5.3 SDT_OpenPort
● 函數(shù)定義
int __stdcall SDT_OpenPort( int iPort );
● 函數(shù)功能
打開(kāi)串口/USB 口。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1iPort輸入?yún)?shù),整數(shù),表示端口號(hào)。
串口和 USB 都只支持 16 個(gè),分別為 1~16(十進(jìn)制) 為串口,1001~1016(十進(jìn)制)為 USB 口;
串口 1~16 例如: 1:串口 1(COM1) 2:串口 2(COM2);
USB口 1001~1016 例如: 1001:USB1 1002:USB2。
● 返回值
0x90 打開(kāi)端口成功;
0x01 打開(kāi)端口失敗/端口號(hào)不合法。
4.5.4 SDT_ClosePort
● 函數(shù)定義
int __stdcall SDT_OpenPort( int iPort );
● 函數(shù)功能
關(guān)閉串口/USB 口。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1iPort輸入?yún)?shù),整數(shù),表示端口號(hào)。參見(jiàn)SDT_OpenPort。
● 返回值
0x90 打開(kāi)端口成功;
0x01 打開(kāi)端口失敗/端口號(hào)不合法。
4.5.5 SDT_ResetSAM
● 函數(shù)定義
int __stdcall SDT_ResetSAM( int iPort, int iIfOpen );
● 函數(shù)功能
對(duì)SAM_A復(fù)位。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1iPort輸入?yún)?shù),整數(shù),表示端口號(hào)。參見(jiàn)SDT_OpenPort。
2iIfOpen輸入?yún)?shù),整數(shù),
0 表示不在該函數(shù)內(nèi)部打開(kāi)和關(guān)閉串口,此時(shí)應(yīng)確保之前調(diào)用了 SDT_OpenPort 打開(kāi)端口,并且應(yīng)在不需要與端口通信時(shí),調(diào)用 SDT_ClosePort 關(guān)閉端口;
非 0 表示在 API 函數(shù)內(nèi)部包含了打開(kāi)端口和關(guān)閉端口函數(shù),之前不 需要調(diào)用 SDT_OpenPort,也不用再調(diào)用 SDT_ClosePort。
● 返回值
0x90 成功;
其它 失敗(具體含義參見(jiàn)二代證返回錯(cuò)誤定義)。
4.5.6 SDT_GetSAMStatus
● 函數(shù)定義
int __stdcall SDT_GetSAMStatus( int iPort ,int iIfOpen );
● 函數(shù)功能
對(duì) SAM_A 進(jìn)行狀態(tài)檢測(cè)。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1iPort輸入?yún)?shù),整數(shù),表示端口號(hào)。參見(jiàn)SDT_OpenPort。
2iIfOpen輸入?yún)?shù),整數(shù),參見(jiàn)SDT_ResetSAM。
● 返回值
0x90 SAM_A正常;
0x60 自檢失敗,不能接收命令;
其它 失敗(具體含義參見(jiàn)二代證返回錯(cuò)誤定義)。
4.5.7 SDT_GetSAMID
● 函數(shù)定義
int __stdcall SDT_GetSAMID( int iPort,
unsigned char* pucSAMID,
int iIfOpen );
● 函數(shù)功能
讀取SAM_A的編號(hào),輸出為十六進(jìn)制數(shù)值。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1iPort輸入?yún)?shù),整數(shù),表示端口號(hào)。參見(jiàn)SDT_OpenPort。
2pucSAMID輸出參數(shù),無(wú)符號(hào)字符串指針,SAM_A編號(hào),16字節(jié)。該指針指向的存儲(chǔ)空間由調(diào)用者分配。
3iIfOpen輸入?yún)?shù),整數(shù),參見(jiàn)SDT_ResetSAM。
● 返回值
0x90 成功;
其它 失敗(具體含義參見(jiàn)二代證返回錯(cuò)誤定義)。
4.5.8 SDT_GetSAMIDToStr
● 函數(shù)定義
int __stdcall SDT_GetSAMIDToStr( int iPort,
char* pcSAMID ,
int iIfOpen );
● 函數(shù)功能
讀取SAM_A的編號(hào),輸出為字符串。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1iPort輸入?yún)?shù),整數(shù),表示端口號(hào)。參見(jiàn) SDT_OpenPort。
2pcSAMID輸出參數(shù),字符串指針,SAM_A編號(hào)。該指針指向的存儲(chǔ)空間由調(diào)用者分配,不得小于40 字節(jié)。
3iIfOpen輸入?yún)?shù),整數(shù),參見(jiàn)SDT_ResetSAM。
● 返回值
0x90 成功;
其它 失敗(具體含義參見(jiàn)二代證返回錯(cuò)誤定義)。
4.5.9 SDT_StartFindIDCard
● 函數(shù)定義
int __stdcall SDT_StartFindIDCard( int iPort,
unsigned char* pucManaInfo ,
int iIfOpen );
● 函數(shù)功能
尋找居民身份證。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1iPort輸入?yún)?shù),整數(shù),表示端口號(hào)。參見(jiàn) SDT_OpenPort。
2pucManaInfo輸出參數(shù),無(wú)符號(hào)字符型指針,4個(gè)字節(jié)0x00。該指針指向的存儲(chǔ)空間由調(diào)用者分配。
3iIfOpen輸入?yún)?shù),整數(shù),參見(jiàn)SDT_ResetSAM。
● 返回值
0x9f 找卡成功;
0x80 找卡失敗。
4.5.10 SDT_SelectIDCard
● 函數(shù)定義
int __stdcall SDT_SelectIDCard( int iPort ,
unsigned char* pucManaMsg,
int iIfOpen );
● 函數(shù)功能
尋找居民身份證。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1iPort輸入?yún)?shù),整數(shù),表示端口號(hào)。參見(jiàn) SDT_OpenPort。
2pucManaMsg輸出參數(shù),無(wú)符號(hào)字符型指針。該指針指向的存儲(chǔ)空間由調(diào)用者分,配不小于8字節(jié)。
3iIfOpen輸入?yún)?shù),整數(shù),參見(jiàn)SDT_ResetSAM。
● 返回值
0x90 選卡成功;
0x81 選卡失敗。
4.5.11 SDT_ReadBaseMsg
● 函數(shù)定義
int __stdcall SDT_ReadBaseMsg( int iPort ,
unsigned char* pucCHMsg ,
unsigned int* puiCHMsgLen,
unsigned char* pucPHMsg ,
unsigned int* puiPHMsgLen,
int iIfOpen );
● 函數(shù)功能
讀取居民身份證機(jī)讀文字信息和相片信息。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1iPort輸入?yún)?shù),整數(shù),表示端口號(hào)。參見(jiàn) SDT_OpenPort。
2pucCHMsg輸出參數(shù),無(wú)符號(hào)字符型指針,指向讀到的文字信息,其長(zhǎng)度由puiCHMsgLen參數(shù)輸出。該指針指向的存儲(chǔ)空間由調(diào)用者分配,不得小于256字節(jié)。
3puiCHMsgLen輸出參數(shù),無(wú)符號(hào)整型數(shù)指針,指向讀到的文字信息長(zhǎng)度,最長(zhǎng)256字節(jié)。
4pucPHMsg輸出參數(shù),無(wú)符號(hào)字符型指針,指向讀到的相片信息,其長(zhǎng)度由puiPHMsgLen參數(shù)輸出。該指針指向的存儲(chǔ)空間由調(diào)用者分配,不得小于1024字節(jié)。
5puiPHMsgLen輸出參數(shù),無(wú)符號(hào)整型數(shù)指針,指向讀到的相片信息長(zhǎng)度,最長(zhǎng)1024字節(jié)。
6iIfOpen輸入?yún)?shù),整數(shù),參見(jiàn)SDT_ResetSAM。
● 返回值
0x90 讀機(jī)讀文字信息和相片信息成功;
其它 讀機(jī)讀文字信息和相片信息失敗(具體含義參見(jiàn)二代證返回錯(cuò)誤定義)。
4.5.12 SDT_ReadBaseFPMsg
● 函數(shù)定義
int __stdcall SDT_ReadBaseFPMsg( int iPort ,
unsigned char* pucCHMsg ,
unsigned int* puiCHMsgLen ,
unsigned char* pucPHMsg ,
unsigned int* puiPHMsgLen,
unsigned char* pucFPMsg,
unsigned int* puiFMsgLen,
int iIfOpen );
● 函數(shù)功能
讀取居民身份證機(jī)讀文字信息、相片信息和指紋信息。
注意:該接口只能用于支持讀取指紋信息的 SAM_A。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1iPort輸入?yún)?shù),整數(shù),表示端口號(hào)。參見(jiàn) SDT_OpenPort。
2pucCHMsg輸出參數(shù),無(wú)符號(hào)字符型指針,指向讀到的文字信息,其長(zhǎng)度由puiCHMsgLen參數(shù)輸出。該指針指向的存儲(chǔ)空間由調(diào)用者分配,不得小于256字節(jié)。
3puiCHMsgLen輸出參數(shù),無(wú)符號(hào)整型數(shù)指針,指向讀到的文字信息長(zhǎng)度,最長(zhǎng)256字節(jié)。
4pucPHMsg輸出參數(shù),無(wú)符號(hào)字符型指針,指向讀到的相片信息,其長(zhǎng)度由puiPHMsgLen參數(shù)輸出。該指針指向的存儲(chǔ)空間由調(diào)用者分配,不得小于1024字節(jié)。
5puiPHMsgLen輸出參數(shù),無(wú)符號(hào)整型數(shù)指針,指向讀到的相片信息長(zhǎng)度,最長(zhǎng)1024字節(jié)。
6pucFPMsg輸出參數(shù),無(wú)符號(hào)字符型指針,指向讀到的指紋信息,其長(zhǎng)度由puiFPMsgLen參數(shù)輸出。該指針指向的存儲(chǔ)空間由調(diào)用者分配,不得小于1024字節(jié)。
7puiFMsgLen輸出參數(shù),無(wú)符號(hào)整型數(shù)指針,指向讀到的指紋信息長(zhǎng)度,最長(zhǎng)1024字節(jié)。
8iIfOpen輸入?yún)?shù),整數(shù),參見(jiàn)SDT_ResetSAM。
● 返回值
0x90 讀機(jī)讀文字信息和相片信息成功;
其它 讀機(jī)讀文字信息和相片信息失敗(具體含義參見(jiàn)二代證返回錯(cuò)誤定義)。
4.5.13 SDT_ReadNewAppMsg
● 函數(shù)定義
int __stdcall SDT_ReadNewAppMsg( int iPort ,
unsigned char* pucAppMsg,
unsigned int* puiAppMsgLen,
int iIfOpen );
● 函數(shù)功能
讀取居民身份證機(jī)讀文字信息、相片信息和指紋信息。
注意:該接口只能用于支持讀取指紋信息的 SAM_A。
● 參數(shù)說(shuō)明
編號(hào)參數(shù)名說(shuō)明
1iPort輸入?yún)?shù),整數(shù),表示端口號(hào)。參見(jiàn) SDT_OpenPort。
2pucAppMsg無(wú)符號(hào)字符串,指向讀到的追加地址信息,其長(zhǎng)度由puiAppMsgLen參數(shù)輸出。該指針指向的存儲(chǔ)空間由調(diào)用者分配,不得小于70字節(jié)。
3puiAppMsgLen指向整數(shù)的指針,指向讀到的追加地址信息長(zhǎng)度,最長(zhǎng)70字節(jié)。
8iIfOpen輸入?yún)?shù),整數(shù),參見(jiàn)SDT_ResetSAM。
● 返回值
0x90 讀取追加地址信息成功;
0x91 居民身份證中無(wú)追加地址信息;
其它 讀取追加地址信息失敗(具體含義參見(jiàn)二代證返回錯(cuò)誤定義)。