普天CPIDMR身份證閱讀器開發(fā)說明
一、 系統(tǒng)要求
使用本API的PC機(jī),必須滿足下列條件:
l Windows 2000, Windows XP或更高
l 至少64兆內(nèi)存(64M RAM or Larger)
l 至少10兆空閑硬盤空間(10M Free Hard Disk Space or Larger)
l 至少一個空閑普通串口或USB口(視用戶需求而定)。
二、 文件列表
API含下列文件:
文件名 |
說明 |
cardapi.h |
|
cardapi3.lib |
|
cardapi3.dll |
API中的各個函數(shù)在此DLL中實現(xiàn) |
sdtapi.dll |
|
WltRS.dll |
|
license.dat |
授權(quán)文件 |
使用API時請將cardapi3.dll、sdtapi.dll、WltRS.dll、license.dat四個文件放在一起。
三、 API詳細(xì)說明
1. 錯誤代碼:
錯誤號 |
含義 |
0 |
成功 |
1 |
端口打開失敗 |
2 |
數(shù)據(jù)傳輸超時 |
10 |
沒有找到卡 |
11 |
讀卡操作失敗 |
20 |
自檢失敗 |
30 |
其他錯誤 |
40 |
相片解碼失敗 |
API中所有的函數(shù)都使用統(tǒng)一的錯誤代碼。
2. 證件信息結(jié)構(gòu)
typedef struct _personinfow
{
wchar_t name[16];
wchar_t sex[2];
wchar_t nation[10];
wchar_t birthday[10];
wchar_t address[36];
wchar_t cardId[20];
wchar_t police[16];
wchar_t validStart[10];
wchar_t validEnd[10];
wchar_t sexCode[2];
wchar_t nationCode[4];
wchar_t appendMsg[36];
}PERSONINFOW,*PPERSONINFOW;
typedef struct _personinfoa
{
char name[32];
char sex[4];
char nation[20];
char birthday[12];
char address[72];
char cardId[20];
char police[32];
char validStart[12];
char validEnd[12];
char sexCode[4];
char nationCode[4];
char appendMsg[72];
}PERSONINFOA,*PPERSONINFOA;
PERSONINFOW中的字符串使用UTF-16編碼,PERSONINFOA中的字符串使用GBK編碼。
結(jié)構(gòu)體成員說明:
name |
姓名 |
sex |
性別 |
nation |
民族 |
birthday |
出生日期 |
address |
地址 |
cardId |
身份證號碼 |
police |
簽發(fā)機(jī)關(guān) |
validStart |
有效開始日期 |
validEnd |
有效截止日期 |
sexCode |
性別代碼 |
nationCode |
民族代碼 |
appendMsg |
新地址 |
其中日期格式均為YYYYMMDD,例如20080808。有效截止日期可以是長期。
3. long __stdcall OpenCardReader(long lPort, ULONG ulFlag, ULONG ulBaudRate)
打開并檢測閱讀器。
參數(shù)
lPort:端口號,1~16表示串口號,1001表示USB口,0表示自動選擇。
ulFlag:可選的標(biāo)志位,可以用“按位或”運(yùn)算符組合。
Bit0 |
清零表示每次讀卡時都重新打開和關(guān)閉端口。置1表示重復(fù)使用已打開的端口。建議使用藍(lán)牙閱讀器的用戶將此位置1。 |
Bit1 |
允許重復(fù)讀取證件。即證件不離開閱讀器時可以被多次讀取。 |
Bit2 |
讀卡時同時讀取新地址。 |
Bit16~Bit23 |
在接收到串口數(shù)據(jù)后等待的毫秒數(shù)(0~255)。 |
ulBaudRate:波特率。使用串口閱讀器時請正確設(shè)置波特率。串口閱讀器出廠時的波特率一般為115200。使用USB閱讀器時忽略該參數(shù)。
返回值:錯誤代碼。
4. long __stdcall GetPersonMsgW(PPERSONINFOW pInfo, const wchar_t* pszImageFile)
讀取二代證,所有參數(shù)中的字符串使用UTF-16編碼。
參數(shù)
pInfo:指向證件信息結(jié)構(gòu)的指針。
pszImageFile:照片路徑和文件名。照片的格式是bmp。
例如 C:\Documents and Settings\test\Local Settings\Temp\image.bmp(如果當(dāng)前用戶是test的話)
返回值:錯誤代碼。
5. long __stdcall GetPersonMsgA(PPERSONINFOA pInfo, const char* pszImageFile)
讀取二代證,所有參數(shù)中的字符串使用GBK編碼。
參數(shù)
pInfo:指向證件信息結(jié)構(gòu)的指針。
pszImageFile:照片路徑和文件名。照片的格式是bmp。
例如 C:\Documents and Settings\test\Local Settings\Temp\image.bmp(如果當(dāng)前用戶是test的話)
返回值:錯誤代碼。
6. long __stdcall ResetCardReader()
重置閱讀器。重置成功后自動等待2秒鐘。一般情況下不使用該函數(shù)。
本API自帶多種調(diào)用示例。目前有基于以下編程語言的示例:VC、C#、VB.net、Delphi、BCB、Java、PB。所有示例都使用“打開設(shè)備”->“讀卡”->“關(guān)閉設(shè)備”的調(diào)用順序。
使用調(diào)用示例時請將cardapi3.dll、sdtapi.dll、WltRS.dll、license.dat四個文件放在被調(diào)用的路徑中。
使用C#、VB.net示例時請先根據(jù)需要修改輸出文件的路徑。C#:“項目”->“(項目名稱)屬性”->“生成”->“輸出路徑”。VB.net:“項目”->“(項目名稱)屬性”->“編譯”->“生成文件輸出路徑”。
使用網(wǎng)頁(B/S應(yīng)用)、VB6開發(fā)的用戶請使用ActiveX控件。
常見問題
1、如果打開端口失敗,第一看驅(qū)動有沒有裝好,有32位,64位驅(qū)動,是不同的。
2、檢查身份證閱讀器的線是不是插在臺式機(jī)后面,因為擴(kuò)展USB可能供電不足。
3、端口號說明:USB是1001開始,串口是01開始,0是自動選,但可能會連接慢一點
身份證閱讀器技術(shù)支持網(wǎng)站:http://www.antibiotics.com.cn
- 上一篇:訪客系統(tǒng)功能升級,誠招各地區(qū)代理商 2016/10/8
- 下一篇:hx-100D串口指令,嵌入式232串口開發(fā)接口協(xié)議 2016/9/18