RD100UK 采用微電子的射頻接收模塊及嵌入式微控制器,結(jié)合高效的解碼算法和先進(jìn)的數(shù)據(jù)處理技術(shù),完成對64bits只讀方式的EM 4100及其兼容的RFID的解碼及數(shù)據(jù)輸出
(需裝驅(qū)動(dòng),有函數(shù)接口可編程二次開發(fā),軟件開發(fā)后才可使用) RD100Uk型USB接口ID卡讀器 是我公司運(yùn)用行業(yè)最新技術(shù)開發(fā)出來的一種低成本高性能電腦外部設(shè)備,通過本公司提供的專用高性能驅(qū)動(dòng)程序和接口動(dòng)態(tài)庫函數(shù),可在自己的電腦軟件上控制讀卡、驅(qū)動(dòng)蜂響器聲響。有卡在感應(yīng)區(qū)時(shí)指示燈會(huì)閃,此時(shí)調(diào)用動(dòng)態(tài)庫函數(shù)讀卡可確保一次100%能讀出卡號,不必要在程序上循環(huán)多次調(diào)用讀卡函數(shù)。無卡指示燈會(huì)停止閃動(dòng)。 技術(shù)參數(shù):
1. 即插即用,專用電腦USB接口,本公司提供驅(qū)動(dòng)程序,動(dòng)態(tài)庫接口,例子源碼開發(fā)包。 2. 由電腦USB接口提供穩(wěn)定的電源,無需外接電源,并內(nèi)置電源保護(hù)。 3. 一個(gè)LED指示燈和一個(gè)蜂鳴器,刷卡時(shí)蜂鳴器響一聲,指示燈閃一下。 4. 支持μEM4001、4100或及其兼容的RFID,頻率:125kHz,感應(yīng)距離為80mm-150mm。 5. 調(diào)用讀卡函數(shù)可讀出全部5字節(jié)卡號,而不僅僅是一般讀卡器的]四個(gè)字節(jié)。 6. 功耗<0.2W、低功耗造就低故障率。 7. 支持Windows/XP/WIN7/WIN10, 32位及64位系統(tǒng)均可支持。 8.可支持C/S 及B/S結(jié)構(gòu)開發(fā) 可以瀏覽器對讀卡器進(jìn)行操作控制。
9. 國內(nèi)讀卡器流行的外形,尺寸:長×寬×高)10.8cm×7.8cm×2.8cm。
提供以下開發(fā)源碼,c#2003源代碼,c#2010源代碼,c#2012,c++builder源代碼,DELPHI源代碼,DELPHI源代碼cpu卡操作,java源代碼,PB115源代碼,powerbuilder源代碼,VB.NET2003源代碼,VB源代碼,VB源代碼CPU卡操作,VFP源代碼,易語言例子代碼,網(wǎng)頁版javascript,vbscript,提供一個(gè)ID卡讀寫器管理軟件 DEMO版,可通過軟件對Id卡進(jìn)行讀有讀卡器發(fā)聲音,,驅(qū)動(dòng)支持64位及32位操作系統(tǒng) ,提供OCX文件支持,可支持C/S 及B/S結(jié)構(gòu)開發(fā),提供,OUR_IDR.dll動(dòng)態(tài)庫使用說明.doc
OUR_IDR.dll動(dòng)態(tài)庫使用說明 一、動(dòng)態(tài)庫簡介 動(dòng)態(tài)庫OUR_IDR.dll用VC6.0++開發(fā),編譯成Release實(shí)體,適用于WIN98、NT、2000、XP、2003、 WIN7、WIN10環(huán)境。本文檔下面的源代碼例子是C++builder 的調(diào)用格式。 本動(dòng)態(tài)庫是本公司USB接口ID卡讀卡器的配套文件,必須和讀卡器一起使用。 推薦用動(dòng)態(tài)調(diào)用的方法使用本動(dòng)態(tài)庫。
一、讓讀卡器發(fā)出聲音 函數(shù)名:idr_beep 功能 讓讀寫器發(fā)出聲響。(暫不開放對指示燈的控制,如果有特殊要求請致電本公司) 原始聲明 unsigned char __stdcall idr_beep (unsigned long xms) 輸入 xms為響聲的時(shí)間長度,單位為2毫秒 返回 返回unsigned char值。 返回值說明
0 操作成功,。 21 本函數(shù)需要引用的動(dòng)態(tài)庫IDUSB.dll不在當(dāng)前目錄下。 22 動(dòng)態(tài)庫或驅(qū)動(dòng)程序異常,解決方法是退出程序,拔出ID卡讀卡器,重裝驅(qū)動(dòng)程序再插上ID卡讀卡器重試,或者重新拷貝動(dòng)態(tài)庫OUR_IDR.dll到正確的位置。 24 操作超時(shí)。可能是電腦中毒導(dǎo)致USB幀傳遞調(diào)度緩慢,或者是IC卡讀寫器有問題,解決方法是重啟電腦或重新拔插IC卡讀寫器。 27 USB傳輸不穩(wěn)定導(dǎo)致傳輸?shù)淖址蝗2恍枥頃?huì)這個(gè)錯(cuò)誤,因?yàn)榛旧鲜遣粫?huì)出現(xiàn)這個(gè)錯(cuò)誤的。 28 USB傳輸不穩(wěn)定導(dǎo)致CRC校驗(yàn)錯(cuò)。不需理會(huì)這個(gè)錯(cuò)誤,因?yàn)榛旧鲜遣粫?huì)出現(xiàn)這個(gè)錯(cuò)誤的。 其他 未知錯(cuò)誤 例子及注釋 請要本公司網(wǎng)站下載各種開發(fā)工具的例子源代碼,本函數(shù)的聲明和輸入?yún)?shù)格式可以直接套用,謝謝使用
二、讀卡并返回卡的全部五個(gè)字節(jié)信息(ID卡廠商信息和卡序列號) 函數(shù)名:idr_read 功能 尋卡并返回該卡的序列號,如果卡在感應(yīng)區(qū),每次執(zhí)行均返回卡號 原始聲明 unsigned char __stdcall idr_read (unsigned char *serial) 輸入 形參*serial只需指向一個(gè)至少已分配了5個(gè)char空間的可寫數(shù)組 unsigned char *指針, serial的下標(biāo)由0開始。Serial數(shù)組的內(nèi)容無需賦值,因?yàn)榇藬?shù)組僅用于返回值。 返回 返回unsigned char值,并將尋到的卡的序列號傳值到*serial數(shù)組。 返回值說明
0 操作成功,*serial數(shù)組中的數(shù)據(jù)有效。 8 尋卡錯(cuò)誤,根本就沒有卡在感應(yīng)區(qū),*serial無效。 21 本函數(shù)需要引用的動(dòng)態(tài)庫IDUSB.dll不在當(dāng)前目錄下。 22 動(dòng)態(tài)庫或驅(qū)動(dòng)程序異常,解決方法是退出程序,拔出ID卡讀卡器,重裝驅(qū)動(dòng)程序再插上ID卡讀卡器重試,或者重新拷貝動(dòng)態(tài)庫OUR_IDR.dll到正確的位置。 24 操作超時(shí)。可能是電腦中毒導(dǎo)致USB幀傳遞調(diào)度緩慢,或者是IC卡讀寫器有問題,解決方法是重啟電腦或重新拔插IC卡讀寫器。 28 USB傳輸不穩(wěn)定導(dǎo)致CRC校驗(yàn)錯(cuò)。不需理會(huì)這個(gè)錯(cuò)誤,因?yàn)榛旧鲜遣粫?huì)出現(xiàn)這個(gè)錯(cuò)誤的。 其他 未知錯(cuò)誤 例子及注釋 /*******************{{piccrequest函數(shù)使用特例*********************************/ //卡序列號緩沖 unsigned char myserial[5]; unsigned char status; //函數(shù)指針聲明 unsigned char (__stdcall *idr_read)(unsigned char *serial); //提示當(dāng)前目錄 AnsiString FileName=ExtractFilePath(Application->ExeName); //如果中沒有"\"字符,就加進(jìn)去 if(FileName.SubString(FileName.Length(),1) != "\\") { FileName += "\\"; }
FileName += "OUR_IDR.dll"; if(!FileExists(FileName)) {//如果文件不存在 ShowMessage("無法在應(yīng)用程序的文件夾找到ID卡讀卡器動(dòng)態(tài)庫"); return; //返回 } HINSTANCE hDll; //加載動(dòng)態(tài)庫 hDll=LoadLibrary(FileName.c_str()); //提取動(dòng)態(tài)庫 idr_read = (unsigned char (__stdcall * idr_read)(unsigned char *serial))GetProcAddress(hDll," idr_read "); //調(diào)用函數(shù) status = idr_read (myserial); //返回值處理 switch(status) { case 0: //TO-DO相應(yīng)的處理,請?jiān)谝韵录尤氪a break; case 1: break; //... }
三、讀卡并返回卡的全部五個(gè)字節(jié)信息(ID卡廠商信息和卡序列號) 函數(shù)名:idr_read_once 功能 尋卡并返回該卡的序列號,如果卡在感應(yīng)區(qū),第一次執(zhí)行返回卡號,再次執(zhí)行提示尋不到卡,必須拿開卡隔一時(shí)間段再放到感應(yīng)區(qū),才能讀卡成功。這種功能是用于刷卡一次卡僅返回一次卡號的情況。 原始聲明 unsigned char __stdcall idr_read_ once (unsigned char *serial) 輸入 形參*serial只需指向一個(gè)至少已分配了5個(gè)char空間的可寫數(shù)組 unsigned char *指針, serial的下標(biāo)由0開始。Serial數(shù)組的內(nèi)容無需賦值,因?yàn)榇藬?shù)組僅用于返回值。 返回 返回unsigned char值,并將尋到的卡的序列號傳值到*serial數(shù)組。 返回值說明
0 操作成功,*serial數(shù)組中的數(shù)據(jù)有效。 8 尋卡錯(cuò)誤,根本就沒有卡在感應(yīng)區(qū),*serial無效。 21 本函數(shù)需要引用的動(dòng)態(tài)庫IDUSB.dll不在當(dāng)前目錄下。 22 動(dòng)態(tài)庫或驅(qū)動(dòng)程序異常,解決方法是退出程序,拔出ID卡讀卡器,重裝驅(qū)動(dòng)程序再插上ID卡讀卡器重試,或者重新拷貝動(dòng)態(tài)庫OUR_IDR.dll到正確的位置。 24 操作超時(shí)。可能是電腦中毒導(dǎo)致USB幀傳遞調(diào)度緩慢,或者是IC卡讀寫器有問題,解決方法是重啟電腦或重新拔插IC卡讀寫器。 28 USB傳輸不穩(wěn)定導(dǎo)致CRC校驗(yàn)錯(cuò)。不需理會(huì)這個(gè)錯(cuò)誤,因?yàn)榛旧鲜遣粫?huì)出現(xiàn)這個(gè)錯(cuò)誤的。 其他 未知錯(cuò)誤 例子及注釋 /*******************{{piccrequest函數(shù)使用特例*********************************/ //卡序列號緩沖 unsigned char myserial[5]; unsigned char status; //函數(shù)指針聲明 unsigned char (__stdcall *idr_read_ once)(unsigned char *serial); //提示當(dāng)前目錄 AnsiString FileName=ExtractFilePath(Application->ExeName); //如果中沒有"\"字符,就加進(jìn)去 if(FileName.SubString(FileName.Length(),1) != "\\") { FileName += "\\"; }
FileName += "OUR_IDR.dll"; if(!FileExists(FileName)) {//如果文件不存在 ShowMessage("無法在應(yīng)用程序的文件夾找到ID卡讀卡器動(dòng)態(tài)庫"); return; //返回 } HINSTANCE hDll; //加載動(dòng)態(tài)庫 hDll=LoadLibrary(FileName.c_str()); //提取動(dòng)態(tài)庫 idr_read = (unsigned char (__stdcall * idr_read)(unsigned char *serial))GetProcAddress(hDll," idr_read_ once "); //調(diào)用函數(shù) status = idr_read_ once (myserial); //返回值處理 switch(status) { case 0: //TO-DO相應(yīng)的處理,請?jiān)谝韵录尤氪a break; case 1: break; //... }
四、讀出讀卡器各自編碼唯一的設(shè)備號 函數(shù)名:pcdgetdevicenumber 功能 讀出讀卡器各自編碼唯一的設(shè)備號,此設(shè)備號可用于軟件的產(chǎn)權(quán)保護(hù),功能跟軟件加密碼類似。 原始聲明 unsigned char __stdcall pcdgetdevicenumber(unsigned char *devicenumber); 輸入 形參* devicenumber只需指向一個(gè)至少已分配了4個(gè)char空間的可寫數(shù)組 unsigned char *指針,devicenumber的下標(biāo)由0開始。devicenumber數(shù)組的內(nèi)容無需賦值,因?yàn)榇藬?shù)組僅用于返回值。 返回 返回unsigned char值,并將尋到的卡的序列號傳值到* devicenumber數(shù)組。 返回值說明 0 操作成功,* devicenumber數(shù)組中的數(shù)據(jù)有效。 21 本函數(shù)需要引用的動(dòng)態(tài)庫IDUSB.dll不在當(dāng)前目錄下。 22 動(dòng)態(tài)庫或驅(qū)動(dòng)程序異常,解決方法是退出程序,拔出ID卡讀卡器,重裝驅(qū)動(dòng)程序再插上ID卡讀卡器重試,或者重新拷貝動(dòng)態(tài)庫OUR_IDR.dll到正確的位置。 24 操作超時(shí)。可能是電腦中毒導(dǎo)致USB幀傳遞調(diào)度緩慢,或者是IC卡讀寫器有問題,解決方法是重啟電腦或重新拔插IC卡讀寫器。 28 USB傳輸不穩(wěn)定導(dǎo)致CRC校驗(yàn)錯(cuò)。不需理會(huì)這個(gè)錯(cuò)誤,因?yàn)榛旧鲜遣粫?huì)出現(xiàn)這個(gè)錯(cuò)誤的。 其他 未知錯(cuò)誤 例子及注釋 /*******************{{piccrequest函數(shù)使用特例*********************************/ //卡序列號緩沖 unsigned char devicenumber [5]; unsigned char status; //函數(shù)指針聲明 unsigned char (__stdcall * pcdgetdevicenumber)(unsigned char * devicenumber); //提示當(dāng)前目錄 AnsiString FileName=ExtractFilePath(Application->ExeName); //如果中沒有"\"字符,就加進(jìn)去 if(FileName.SubString(FileName.Length(),1) != "\\") { FileName += "\\"; }
FileName += "OUR_IDR.dll"; if(!FileExists(FileName)) {//如果文件不存在 ShowMessage("無法在應(yīng)用程序的文件夾找到ID卡讀卡器動(dòng)態(tài)庫"); return; //返回 } HINSTANCE hDll; //加載動(dòng)態(tài)庫 hDll=LoadLibrary(FileName.c_str()); //提取動(dòng)態(tài)庫 idr_read = (unsigned char (__stdcall * pcdgetdevicenumber)(unsigned char * devicenumber))GetProcAddress(hDll," pcdgetdevicenumber "); //調(diào)用函數(shù) status = pcdgetdevicenumber (devicenumber); //返回值處理 switch(status) { case 0: //TO-DO相應(yīng)的處理,請?jiān)谝韵录尤氪a break; case 1: break; //... } 注:原始聲明指動(dòng)態(tài)庫的VC源碼內(nèi)的聲明 RD100UK。