RF讀寫器JAVA接口用戶手冊_第1頁
RF讀寫器JAVA接口用戶手冊_第2頁
RF讀寫器JAVA接口用戶手冊_第3頁
RF讀寫器JAVA接口用戶手冊_第4頁
RF讀寫器JAVA接口用戶手冊_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、rf 讀寫器 java 接口用戶手冊1. 系統(tǒng)環(huán)境操作系統(tǒng): windows98/2000/xp 動(dòng)態(tài)庫: mwrf32.dll ,mwrfjavaapi.dll jar 文件: mwrfjavaapi.jar 環(huán)境設(shè)置:將動(dòng)態(tài)庫拷貝入windowssystem(windows98)或windowssystem32 (windwos2000/xp)目錄,將 jar 文件加入classpath設(shè)置中。包名: mwrf,類名: mwrfjavaapi a)包引入import mwrf. mwrfjavaapi; b)類引入(實(shí)例化)mwrfjavaapi mwrfjavaapi = new mwr

2、fjavaapi(); 接口方法:a) 設(shè)備操作方法b) 通用方法c) m1 卡專用方法d) ml 專用方法2. 設(shè)備操作方法序號方法名功能1 lib_vergetstr_ver讀取軟件版本號2 rf_beep蜂鳴3 rf_clr_control_bit清除射頻模塊內(nèi)控制寄存器中的一個(gè)二進(jìn)制位4 rf_ctl_mode設(shè)置讀寫器數(shù)碼管受控方式,關(guān)機(jī)后可保存設(shè)置值5 rf_disp在讀寫器的數(shù)碼管上顯示數(shù)字6 rf_disp_mode設(shè)置讀寫器數(shù)碼管顯示模式,關(guān)機(jī)后可保存設(shè)置值7 rf_disp8在讀寫器數(shù)碼管上顯示數(shù)字8 rf_get_statusgetstatus取得讀寫器硬件版本號9 rf

3、_getportgetreceive_data讀取讀寫器端口輸入的值10 rf_gettimegettime讀取讀寫器日期、星期、時(shí)間11 rf_gettimehex同上,用十六進(jìn)制表示12 rf_reset射頻讀寫模塊復(fù)位13 rf_set_control_bit設(shè)置射頻模塊控制寄存器中的一個(gè)二進(jìn)制位14 rf_setbright設(shè)置數(shù)碼管顯示亮度15 rf_setport向讀寫器端口輸出控制字,此信號可用于控制用戶的外設(shè)。16 rf_settime設(shè)置讀寫器日期、星期、時(shí)間17 rf_settimehex同上,用十六進(jìn)制表示18 rf_srd_eepromgetrec_buffer讀取讀寫

4、器備注信息19 rf_srd_snr取得讀寫器產(chǎn)品序列號20 rf_swr_eeprom向讀寫器備注區(qū)中寫入信息21 set_host_485設(shè)置 rs232 或 485 接口public native short lib_ver() public string getstr_ver() 功 能:讀取軟件版本號返 回:lib_ver成功則返回 0 例如:short shortret = mwrfjavaapi.lib_ver(); string version = null ;if (shortret =0) version = mwrfjavaapi.getstr_ver(); public

5、 native short rf_beep(int icdev, short _msec) 功 能:蜂鳴參 數(shù): icdev :通訊設(shè)備標(biāo)識符 short _msec:蜂鳴時(shí)間,單位是10 毫秒返 回:成功則返回 0 例如: /得到 icdev int icdev = mwrfjavaapi.rf_init(short)1, 9600); /鳴叫 100 毫秒 short shortret = mwrfjavaapi.rf_beep(icdev, (short)10); public native short rf_clr_control_bit(int icdev,short _b)功 能:

6、清除射頻模塊內(nèi)控制寄存器中的一個(gè)二進(jìn)制位二進(jìn)制位_b 取值作用rf1 0 x40 清除 rf系統(tǒng) 1(設(shè)置 rf系統(tǒng) 0)rfpoweroff 0 x02 清除 rf下電(設(shè)置rf上電)參 數(shù): icdev :通訊設(shè)備標(biāo)識符 _b:要清除的位返 回:成功則返回 0 例如:/清除 rf 系統(tǒng) 1(設(shè)置 rf 系統(tǒng) 0)short _b= 0 x40; short shortret = mwrfjavaapi.rf_clr_control_bit(icdev, _b); public native short rf_ctl_mode(int icdev, short mode) 功 能:設(shè)置讀寫器

7、數(shù)碼管受控方式,關(guān)機(jī)后可保存設(shè)置值參 數(shù): icdev :通訊設(shè)備標(biāo)識符 mode:受控方式0數(shù)碼管顯示受計(jì)算機(jī)控制1數(shù)碼管顯示受讀寫器控制(出廠設(shè)置)顯示模式由rf_disp_mode設(shè)置返 回:成功則返回 0 例如:/數(shù)碼管顯示受計(jì)算機(jī)控制short mode= 0 x00; short shortret = mwrfjavaapi.rf_ctl_mode(icdev, mode); public native short rf_disp(int icdev, short pt_mode, short digit) 功 能:在讀寫器的數(shù)碼管上顯示數(shù)字參 數(shù): icdev :通訊設(shè)備標(biāo)識符

8、pt_mode:小數(shù)點(diǎn)顯示模式0小數(shù)點(diǎn)熄滅1個(gè)位后的小數(shù)點(diǎn)位亮2十位后的小數(shù)點(diǎn)位亮3百位后的小數(shù)點(diǎn)位亮4千位后的小數(shù)點(diǎn)位亮 digit:要顯示的數(shù)返 回:成功則返回 0 例如: /數(shù)碼管顯示受計(jì)算機(jī)控制 short shortret = mwrfjavaapi.rf_ctl_mode(icdev, (short) 0 x00); /個(gè)位后的小數(shù)點(diǎn)位亮,顯示“1234. ” short pt_mode= 1; shortret = mwrfjavaapi.rf_disp(icdev, pt_mode, digit);public native short rf_disp_mode(int icd

9、ev, short mode) 功 能:設(shè)置讀寫器數(shù)碼管顯示模式,關(guān)機(jī)后可保存設(shè)置值參 數(shù): icdev :通訊設(shè)備標(biāo)識符 mode:顯示模式0 日期,格式為“ 年- 月 - 日( yy-mm-dd)” ,bcd碼1 時(shí)間,格式為“ 時(shí)- 分 - 秒( hh-nn-ss )” , bcd碼返 回:成功則返回 0 例如: /數(shù)碼管顯示受讀寫器控制 short mode= 0 x01; short shortret = mwrfjavaapi.rf_ctl_mode(icdev, mode); /顯示日期,格式為“yy-mm-dd” mode= 0 x00; shortret = mwrfjava

10、api.rf_disp_mode(icdev, mode); public native short rf_disp8(int icdev, short disp_len,char disp_str)功 能:在讀寫器數(shù)碼管上顯示數(shù)字參 數(shù): icdev :通訊設(shè)備標(biāo)識符 disp_len:顯示字符串的長度,最長為8 disp_str:要顯示的數(shù)據(jù)受讀寫器控制時(shí),顯示的日期/ 時(shí)間請參照rf_disp_mode中定義的格式;受計(jì)算機(jī)控制時(shí), 顯示方式由顯示數(shù)據(jù)決定;每個(gè)字節(jié)的最高位為1 表示本位數(shù)后的小數(shù)點(diǎn)亮,為0 表示小數(shù)點(diǎn)滅。返 回:成功則返回 0 例如: /顯示受計(jì)算機(jī)控制 short s

11、hortret = mwrfjavaapi.rf_ctl_mode(icdev,(short)0); /顯示日期 shortret = mwrfjavaapi.rf_disp_mode(icdev,(short)0); /顯示結(jié)果為 99-10-08 short disp_len= 8; char disp_str = new char8; (new string(99:10:08).getchars(0,8,disp_str,0); shortret = mwrfjavaapi.rf_disp8(icdev, disp_len, disp_str); /顯示結(jié)果為 12345678 for

12、(int x = 1; x=1 ; x-,i+) disp_stri = (char)(x + 0 x80); shortret = mwrfjavaapi.rf_disp8(icdev, disp_len, disp_str); public native short rf_get_status(int icdev) public string getstatus() 功 能:取得讀寫器硬件版本號。參 數(shù): icdev :通訊設(shè)備標(biāo)識符 _status:返回版本信息返 回:成功則返回 0 例如:short shortret = mwrfjavaapi.rf_get_status(icdev)

13、; string _status = null; if(shortret=0) _status = mwrfjavaapi.getstatus(); public native short rf_getport(int icdev) public short getreceive_data() 功 能:讀取讀寫器端口輸入的值參 數(shù): icdev :通訊設(shè)備標(biāo)識符 receive_data:端口輸入值,1 個(gè)字節(jié) ,低 5 位有效。返 回:成功則返回 0 例如:short shortret = mwrfjavaapi.rf_getport(icdev); short receive_data;

14、if(shortret =0) receive_data = mwrfjavaapi.getreceive_data(); public native short rf_gettime(int icdev) public char gettime() 功 能:讀取讀寫器日期、星期、時(shí)間參 數(shù): icdev :通訊設(shè)備標(biāo)識符 time:返回?cái)?shù)據(jù),長度為7 個(gè)字節(jié),格式為“年、星期、月、日、時(shí)、分、秒”返 回:成功則返回 0 例如: shortret = mwrfjavaapi.rf_gettime(icdev); char time; if(shortret =0) time = mwrfjav

15、aapi.gettime();public native short rf_gettimehex(int icdev) 功 能:同上,用十六進(jìn)制表示參 數(shù): icdev :通訊設(shè)備標(biāo)識符 time:長度為 14 個(gè)字節(jié) , 均為數(shù)字返 回:成功則返回 0 例如: short shortret = mwrfjavaapi.rf_gettimehex(icdev); char time; if(shortret =0) time = mwrfjavaapi.gettime(); public native short rf_reset(int icdev,int _msec) 功 能:射頻讀寫模塊

16、復(fù)位參 數(shù): icdev :通訊設(shè)備標(biāo)識符 int _msec:復(fù)位時(shí)間, 0500 毫秒有效返 回:成功則返回 0 例如: short shortret = mwrfjavaapi.rf_reset(icdev, 60); public native short rf_set_control_bit(int icdev,short _b)功 能:設(shè)置射頻模塊控制寄存器中的一個(gè)二進(jìn)制位參 數(shù): icdev :通訊設(shè)備標(biāo)識符 _b:要設(shè)置的位,取值同rf_clr_control_bit 返 回:成功則返回 0 例如: short _b= 0 x40; short shortret = mwrfj

17、avaapi.rf_set_control_bit(icdev, _b); public native short rf_setbright(int icdev, short bright) 功 能:設(shè)置數(shù)碼管顯示亮度參 數(shù): icdev :通訊設(shè)備標(biāo)識符 bright:亮度值, 015 有效, 0 表示最暗, 15 表示最亮返 回:成功則返回 0 例如: short bright= 10; short shortret = mwrfjavaapi.rf_setbright(icdev, bright); public native short rf_setport(int icdev,sho

18、rt _byte) 功 能:向讀寫器端口輸出控制字,此信號可用于控制用戶的外設(shè)。參 數(shù): icdev :通訊設(shè)備標(biāo)識符 _byte:控制字,該字節(jié)低5 位每一位控制一個(gè)輸出返 回:成功則返回 0 例如: short _byte= 0 x13; /00010011 short shortret = mwrfjavaapi.rf_setport(icdev, _byte); public native short rf_settime(int icdev,char time) 功 能:設(shè)置讀寫器日期、星期、時(shí)間參 數(shù): icdev :通訊設(shè)備標(biāo)識符 time:長度為 7 個(gè)字節(jié),格式為“年、星期、

19、月、日、時(shí)、分、秒”返 回:成功則返回 0 例如: char time= new char7; time0 = 0 x02; time1 = 0 x06; time2 = 0 x11; time3 = 0 x09; time4 = 0 x10; time5 = 0 x14; time6 = 0 x10; /設(shè)置讀寫器日期、星期、時(shí)間 short shortret = mwrfjavaapi.rf_settime(icdev, time); public native short rf_settimehex(int icdev, char time) 功 能:同 rf_settime,用十六進(jìn)制

20、表示參 數(shù): icdev :通訊設(shè)備標(biāo)識符 time:長度為 14 個(gè)字節(jié) , 均為數(shù)字返 回:成功則返回 0 例如:char time= new char14; new string(99040520133010).getchars(0,14,time,0); short shortret = mwrfjavaapi.rf_settimehex(icdev, time); public native short rf_srd_eeprom(int icdev,short offset,short lenth); public char getrec_buffer() 功 能:讀取讀寫器備注信

21、息參 數(shù): icdev :通訊設(shè)備標(biāo)識符 offset:偏移地址( 0383) length:讀取信息長度(1384) rec_buffer:讀取到的信息返 回:成功則返回 0 例如: short offset= 0; short lenth = 9; short shortret = mwrfjavaapi.rf_srd_eeprom(icdev, offset, lenth); char rec_buffer; if(shortret =0) rec_buffer = mwrfjavaapi.getrec_buffer(); public native short rf_srd_snr(i

22、nt icdev, short lenth) 功 能:取得讀寫器產(chǎn)品序列號參 數(shù): icdev :通訊設(shè)備標(biāo)識符 length:字符串長度,其值為16 red_buff:存放要讀出的標(biāo)識號字符串返 回:成功則返回 0 例如:short lenth= 16; /長度必須為16 short shortret = mwrfjavaapi.rf_srd_snr(icdev, lenth); char rec_buffer; if(shortret =0) rec_buffer = mwrfjavaapi.getrec_buffer(); public native short rf_swr_eepro

23、m( int icdev, short offset, short lenth, char send_buffer); 功 能:向讀寫器備注區(qū)中寫入信息參 數(shù): icdev :通訊設(shè)備標(biāo)識符 offset:偏移地址( 0383) length:讀取信息長度(1384) rec_buffer:要寫入的信息返 回:成功則返回 0 例如:short offset= 0; short lenth= 8; char send_buffer= new char8 ; new string(mwrf v3.0).getchars(0,lenth,send_buffer,0); short shortret

24、= mwrfjavaapi.rf_swr_eeprom(icdev, offset, lenth, send_buffer); public native short set_host_485(short _mode) 功 能:設(shè)置485 接口參 數(shù): _mode :1rs232 ,2485 返 回:成功則返回 0 例如: short _mode= 0; short shortret = mwrfjavaapi.set_host_485(_mode); 3. 通用方法序號方法名功能22 rf_anticollgetsnr卡防沖突,返回卡的序列號23 rf_card尋卡,能返回在工作區(qū)域內(nèi)某張卡

25、的序列號24 rf_config設(shè)置射頻模塊的工作模式及卡與設(shè)備間的通訊速率25 rf_decryptgetptrdestdes 算法解密函數(shù)26 rf_encryptdes 算法加密函數(shù)27 rf_exit釋放串口28 rf_halt中止對該卡操作29 rf_init初始化串口30 rf_load_key將密碼裝入讀寫模塊ram 中31 rf_load_key_hex向讀寫器中裝入十六進(jìn)制密碼32 rf_readgetdata讀取卡中數(shù)據(jù)33 rf_read_hexgethexdata同上34 rf_requestgettagtype尋卡請求35 rf_selectgetsize從多個(gè)卡中選

26、取一個(gè)給定序列號的卡36 rf_write向卡中寫入數(shù)據(jù)37 rf_write_hex同上public native short rf_anticoll(int icdev,short _bcnt) public long getsnr() 功 能:卡防沖突,返回卡的序列號參 數(shù): icdev :通訊設(shè)備標(biāo)識符 _bcn: 設(shè)為 0 _snr:返回的卡序列號地址返 回:成功則返回 0 例如: short _bcnt= 0; short shortret = mwrfjavaapi.rf_anticoll(icdev, _bcnt); long _snr; if(shortret = 0) _s

27、nr = mwrfjavaapi.getsnr(); 注:request指令之后應(yīng)立即調(diào)用anticoll ,除非卡的序列號已知。public native short rf_card(int icdev, short _mode) 功 能:尋卡,能返回在工作區(qū)域內(nèi)某張卡的序列號參 數(shù): icdev :通訊設(shè)備標(biāo)識符 _mode:尋卡模式尋卡模式 分三種情況:idle 模式、 all模式及指定卡模式。0表示idle 模式,一次只對一張卡操作;1表示all 模式,一次可對多張卡操作;2表示指定卡模式,只對序列號等于snr 的卡操作(高級函數(shù)才有) _snr:返回的卡序列號返 回:成功則返回 0

28、例如: short _mode= 1; short shortret = mwrfjavaapi.rf_card(icdev, _mode); long _snr; if(shortret = 0) _snr = mwrfjavaapi.getsnr(); 注:選擇 idle 模式, 在對卡進(jìn)行讀寫操作,執(zhí)行rf_halt指令中止卡操作后,只有當(dāng)該卡離開并再次進(jìn)入操作區(qū)時(shí),讀寫器才能夠再次對它進(jìn)行操作。調(diào)用 rf_card;相當(dāng)于連續(xù)調(diào)用三個(gè)函數(shù):rf_request,rf_anticoll,rf_select public native short rf_config(int icdev,s

29、hort _mode,short _baud); 功 能:設(shè)置射頻模塊的工作模式及卡與設(shè)備間的通訊速率參 數(shù): icdev :通訊設(shè)備標(biāo)識符 _mode:工作模式, mcm500 模塊和 mcm200 模塊設(shè) 0 xc6,sb201模塊設(shè)為0xd6 ,出廠時(shí)已設(shè)好,不需更改。 _baud:卡與設(shè)備間的通訊速率,設(shè)為0 x0e 返 回:成功則返回 0 例如:short _mode= 0 xc6; short _baud= 0 x0e; short shortret = mwrfjavaapi.rf_config(icdev, _mode, _baud); 注: 如使用缺省值工作,則不必調(diào)用此函數(shù)

30、。public native short rf_decrypt( char key, char ptrsource, int msglen) public char getptrdest() 功 能: des算法解密函數(shù)參 數(shù): key:密鑰 ptrsource:要解密的密文 msglen:原文長度必需為8 的倍數(shù) ptrdest:解密后的原文返 回:成功返回0 此函數(shù)不跟讀寫器通信,只在pc 機(jī)運(yùn)算。例如:char key= new char8; new string(12345678).getchars(0,8,key,0); char ptrsource= new char16; new

31、 string(abcdefghabcdefgh).getchars(0,16,ptrsource,0); /加密int msglen= 16; short shortret = mwrfjavaapi.rf_encrypt(key, ptrsource, msglen); assertequals( shortret should be equal zero., (short)0, shortret ); ptrsource = mwrfjavaapi.getptrdest(); /解密shortret = mwrfjavaapi.rf_decrypt(key, ptrsource, msg

32、len); char ptrdest = mwrfjavaapi.getptrdest(); public native short rf_encrypt( char key,char ptrsource, int msglen); 功 能: des算法加密函數(shù)參 數(shù): key:密鑰 ptrsource:要加密碼的原文 msglen:原文長度,必需為8 的倍數(shù) ptrdest:加密后的密文返 回:成功返回0 例如:char key= new char8; new string(12345678).getchars(0,8,key,0); char ptrsource= new char16;

33、new string(abcdefghabcdefgh).getchars(0,16,ptrsource,0); /將長度為16 的“ abcdefghabcdefgh ” 用密碼 “ 12345678” 加密 int msglen= 16; short shortret = mwrfjavaapi.rf_encrypt(key, ptrsource, msglen); char ptrdest = mwrfjavaapi.getptrdest(); public native short rf_exit(int icdev); 功 能:釋放串口參 數(shù): icdev :通訊設(shè)備標(biāo)識符返 回:無

34、例如:short shortret = mwrfjavaapi.rf_exit(icdev); 注:在 win32 環(huán)境下 icdev 為串口的設(shè)備句柄,必須釋放后才可以再次連接。public native short rf_halt(int icdev) 功 能:中止對該卡操作參 數(shù): icdev :通訊設(shè)備標(biāo)識符返 回:成功則返回0 例如:short shortret = mwrfjavaapi.rf_halt(icdev); 說明:執(zhí)行該命令后如果是all 尋卡模式則必須重新尋卡才能夠?qū)υ摽ú僮鳎绻莍dle 模式則必須把卡移開感應(yīng)區(qū)再進(jìn)來才能尋得這張卡。public native i

35、nt rf_init(short port,int baud) 功 能:初始化串口參 數(shù): port :串口號,取值為03 baud:為通訊波特率9600 115200 返 回:成功則返回串口標(biāo)識符0,失敗返回負(fù)值,見錯(cuò)誤代碼表例如: /初始化串口1,波特率 9600 int icdev = mwrfjavaapi.rf_init(short)1, 9600); public native short rf_load_key(int icdev,short _mode,short _secnr,char _nkey);功 能:將密碼裝入讀寫模塊ram 中參 數(shù): icdev :通訊設(shè)備標(biāo)識符

36、_mode:裝入密碼模式,同密碼驗(yàn)證模式密碼驗(yàn)證模式:對于 m1卡的每個(gè)扇區(qū),在讀寫器中均對應(yīng)有三套密碼(keyset0 、keyset1 、keyset2 ) ,每套密碼包括a密碼( keya )和 b密碼( keyb ) ,共六個(gè)密碼,用02、46 來表示這六個(gè)密碼:0 keyset0 的 keya 1 keyset1 的 keya 2 keyset2 的 keya 4 keyset0 的 keyb 5 keyset1 的 keyb 6 keyset2 的 keyb _secnr:扇區(qū)號( m1卡: 015; ml 卡: 0) _nkey:寫入讀寫器中的卡密碼返 回:成功則返回 0 例如:

37、 short _mode= 0; short _secnr= 0; char _nkey= new char6; for(int x=0;x6;x+) _nkey0 = (char)(0 xa0 + x); short shortret = mwrfjavaapi.rf_load_key(icdev, _mode, _secnr, _nkey); public native short rf_load_key_hex(int icdev, short _mode, short _secnr, char _nkey); 功 能:向讀寫器中裝入十六進(jìn)制密碼參 數(shù): icdev :通訊設(shè)備標(biāo)識符 _

38、mode:密碼驗(yàn)證模式 _secnr:扇區(qū)號( 0 15) _nkey:寫入讀寫器中的卡密碼返 回:成功則返回 0 例如: / 裝入 1 扇區(qū)的 a密碼 |0 套 short _mode= 0; short _secnr= 0; char _nkey= new char12; new string(a0a1a2a3a4a5).getchars(0,12,_nkey,0); short shortret = mwrfjavaapi.rf_load_key_hex(icdev, _mode, _secnr, _nkey); public native short rf_read(int icdev

39、,short _adr); public char getdata() 功 能:讀取卡中數(shù)據(jù)對于 m1卡,一次讀一個(gè)塊的數(shù)據(jù),為16 個(gè)字節(jié);對于 ml卡,一次讀出相同屬性的兩頁(0 和 1,2 和 3,. ) ,為 8 個(gè)字節(jié)參 數(shù): icdev :通訊設(shè)備標(biāo)識符 _adr:m1卡塊地址(063) ; ml卡頁地址(011) _data:讀出數(shù)據(jù)返 回:成功則返回 0 例如: short _adr= 1; short shortret = mwrfjavaapi.rf_read(icdev, _adr); char _data = mwrfjavaapi.getdata();public n

40、ative short rf_read_hex(int icdev,short _adr); public char gethexdata() 功 能:同 rf_read 參 數(shù): icdev :通訊設(shè)備標(biāo)識符 _adr:同 rf_read _data:讀出數(shù)據(jù),數(shù)據(jù)以十六進(jìn)制形式表示返 回:成功則返回0;例如: / 讀 ml卡 2 頁和 3 頁的數(shù)據(jù)或m1卡的第二塊數(shù)據(jù)。 short _adr= 2; short shortret = mwrfjavaapi.rf_read_hex(icdev, _adr); char _data = mwrfjavaapi.gethexdata(); pu

41、blic native short rf_request(int icdev,short _mode); public int gettagtype() 功 能:尋卡請求參 數(shù): icdev :通訊設(shè)備標(biāo)識符 _mode:尋卡模式 tagtype:卡類型值,0 x0004 為 m1卡, 0 x0010 為 ml卡返 回:成功則返回 0 例如: /尋卡請求 , 0 表示idle 模式,一次只對一張卡操作; short _mode = 0; short shortret = mwrfjavaapi.rf_request(icdev, _mode); int tagtype = mwrfjavaap

42、i.gettagtype(); public native short rf_select(int icdev,long _snr); public short getsize() 功 能:從多個(gè)卡中選取一個(gè)給定序列號的卡參 數(shù): icdev :通訊設(shè)備標(biāo)識符 _snr:卡序列號 _size:指向返回的卡容量的數(shù)據(jù)返 回:成功則返回 0 例如: short _bcnt= 0; short shortret = mwrfjavaapi.rf_anticoll(icdev, _bcnt); long _snr = mwrfjavaapi.getsnr(); /從多個(gè)卡中選取一個(gè)給定序列號的卡 sh

43、ortret = mwrfjavaapi.rf_select(icdev, _snr); short _size = mwrfjavaapi.getsize(); public native short rf_write(int icdev, short _adr, char _data); 功 能:向卡中寫入數(shù)據(jù)對于 m1卡,一次必須寫一個(gè)塊,為16 個(gè)字節(jié);對于 ml卡,一次必須寫一頁,為4 個(gè)字節(jié)參 數(shù): icdev :通訊設(shè)備標(biāo)識符 _adr:m1卡 塊地址( 163) ; ml卡 頁地址( 211) _data:要寫入的數(shù)據(jù)返 回:成功則返回0 例如: /寫第一塊 short _ad

44、r= 1; char _data= new char16; new string(1234567890123456).getchars(0,16,_data,0); short shortret = mwrfjavaapi.rf_write(icdev, _adr, _data); public native short rf_write_hex(int icdev,short _adr, char _data); 功 能:同 rf_write參 數(shù): icdev :通訊設(shè)備標(biāo)識符 _adr:同 rf_write _data:要寫入的數(shù)據(jù)返 回:成功則返回 0 例如: short _adr=

45、2; char _data = new char32; new string(12345678901234567890123456789012).getchars(0,32,_data,0); short shortret = mwrfjavaapi.rf_write_hex(icdev, _adr, _data); 4. m1 卡專用方法序號方法名功能38 rf_authentication驗(yàn)證某一扇區(qū)密碼39 rf_changeb3修改塊 3 的數(shù)據(jù)40 rf_check_write檢測指定數(shù)據(jù)是否與卡中數(shù)據(jù)一致41 rf_check_writehex功能同上,數(shù)據(jù)用十六進(jìn)制表示42 rf

46、_decrement塊減值43 rf_increment塊加值44 rf_initval初始化塊值45 rf_readvalgetvalue讀塊值46 rf_restore回傳函數(shù),將eeprom 中的內(nèi)容傳入卡的內(nèi)部寄存器47 rf_transfer傳送,將寄存器的內(nèi)容傳送到eeprom 中48 rf_hl_authentication高級驗(yàn)證(無需調(diào)用尋卡函數(shù))49 rf_hl_decrementgetnvaluegetnsnr高級減值操作50 rf_hl_increment高級增值操作51 rf_hl_initval高級初始化值(該函數(shù)操作時(shí)占用塊1、2,故只能對扇區(qū)操作)52 rf_h

47、l_read高級讀函數(shù)53 rf_hl_readhex高級讀函數(shù),十六進(jìn)制表示數(shù)據(jù)54 rf_hl_write高級寫函數(shù)55 rf_hl_writehex高級寫函數(shù),用十六進(jìn)制表示數(shù)據(jù)public native short rf_authentication(int icdev,short _mode,short _secnr) 功 能:驗(yàn)證某一扇區(qū)密碼參 數(shù): icdev :通訊設(shè)備標(biāo)識符 _mode:密碼驗(yàn)證模式 _secnr:要驗(yàn)證密碼的扇區(qū)號(015)返 回:成功則返回 0 例如: short _mode= 0; short _secnr= 0; short shortret = mw

48、rfjavaapi.rf_authentication(icdev, _mode, _secnr); 注:卡上每個(gè)扇區(qū)有a密碼和 b密碼,可根據(jù)實(shí)際需要確定是否使用b密碼,這由該扇區(qū)的存取控制位來決定。此外,讀寫器中可以存放三套密碼,可用 rf_load_key來分別裝入,只有裝入后才能使用驗(yàn)證密碼函數(shù)驗(yàn)證。此函數(shù)也可用于驗(yàn)證ml卡,扇區(qū)號為0。public native short rf_changeb3(int icdev,short _secnr,char _keya,short _b0,short _b1,short _b2,short _b3,short _bk,char _keyb

49、); 功 能:修改塊3 的數(shù)據(jù)參 數(shù): icdev :通訊設(shè)備標(biāo)識符 _secnr:扇區(qū)號( 0 15) _keya:密碼 a _b0:塊 0 控制字,低3 位( d2d1d0 )對應(yīng) c10、c20、c30 _b1:塊 1 控制字,低3 位( d2d1d0 )對應(yīng) c11、c21、c31 _b2:塊 2 控制字,低3 位( d2d1d0 )對應(yīng) c12、c22、c32 _b3:塊 3 控制字,低3 位( d2d1d0 )對應(yīng) c13、c23、c33 _bk:保留參數(shù),取值為0 _keyb:密碼 b 返 回:成功則返回 0 例如: short _secnr= 0; char _keya= ne

50、w char6; short _b0= 0; short _b1= 0; short _b2= 0; short _b3= 1; short _bk= 0; char _keyb= new char6; for ( int x=0; x6; x+) _keyax = 0 xff; _keybx = 0 xff; /修改塊 3 的數(shù)據(jù) short shortret = mwrfjavaapi.rf_changeb3(icdev, _secnr, _keya, _b0, _b1, _b2, _b3, _bk, _keyb);public native short rf_check_write(in

51、t icdev, long snr, short authmode,short adr,char _data); 功 能:檢測指定數(shù)據(jù)是否與卡中數(shù)據(jù)一致參 數(shù): icdev :通訊設(shè)備標(biāo)識符 snr:卡序列號 authmode:上一次寫操作時(shí)使用的密碼驗(yàn)證模式 adr:塊地址( 163) _data:要檢測的數(shù)據(jù)返 回:成功則返回 0 例如: short _mode = 0; long _snr = 3712302914l; short _adr= 1; char _data= new char16; new string(1234567890123456).getchars(0,16,_da

52、ta,0); /檢測指定數(shù)據(jù)是否與卡中數(shù)據(jù)一致 short shortret = mwrfjavaapi.rf_check_write(icdev, _snr, _mode, _adr, _data); public native short rf_check_writehex(int icdev, long snr, short authmode,short adr,char _data); 功 能:功能同rf_check_write,數(shù)據(jù)用十六進(jìn)制表示參 數(shù): icdev :通訊設(shè)備標(biāo)識符 snr:卡序列號 authmode:上一次寫操作時(shí)使用的密碼驗(yàn)證模式 adr:塊地址( 163) _

53、data:要檢測的數(shù)據(jù)返 回:成功則返回 0 例如:long snr= 3712302914l; short authmode= 0; short adr= 2; char _data= new char32; new string(12345678901234567890123456789012).getchars(0,32,_data,0); /檢測指定數(shù)據(jù)是否與卡中數(shù)據(jù)一致short shortret = mwrfjavaapi.rf_check_writehex(icdev, snr, authmode, adr, _data); public native short rf_decr

54、ement(int icdev,short _adr, long _value)功 能:塊減值參 數(shù): icdev :通訊設(shè)備標(biāo)識符 _adr:塊地址163,4n+3 除外 _value:要減的值返 回:成功則返回 0 例如: short _adr= 2; long _value= 10; /塊 2 減值 10 short shortret = mwrfjavaapi.rf_decrement(icdev, _adr, _value); public native short rf_increment(int icdev, short _adr, long _value) 功 能:塊加值參 數(shù)

55、: icdev :通訊設(shè)備標(biāo)識符 _adr:塊地址( 163) _value:要增加的值返 回:成功則返回 0 ;例如: short _adr= 2; long _value= 10; /塊 2 加值 10 short shortret = mwrfjavaapi.rf_increment(icdev, _adr, _value); public native short rf_initval(int icdev,short _adr,long _value) 功 能:初始化塊值參 數(shù): icdev :通訊設(shè)備標(biāo)識符 _adr:塊地址( 163) _value:初始值返 回:成功則返回 0 例

56、如: short _adr= 1; long _value= 1000; /將塊 1 的值初始化為1000 short shortret = mwrfjavaapi.rf_initval(icdev, _adr, _value); 注:在進(jìn)行值操作時(shí),必須先執(zhí)行初始化值函數(shù),然后才可以讀、減、加的操作。public native short rf_readval(int icdev,short _adr) public long getvalue() 功 能:讀塊值參 數(shù): icdev :通訊設(shè)備標(biāo)識符 _adr:塊地址( 163) _value:讀出值的地址返 回:成功則返回 0 例如: s

57、hort _adr= 1; /讀出塊 1 的值,放入 _value short shortret = mwrfjavaapi.rf_readval(icdev, _adr); long _value = mwrfjavaapi.getvalue(); public native short rf_restore(int icdev, short _adr) 功 能:回傳函數(shù),將eeprom 中的內(nèi)容傳入卡的內(nèi)部寄存器參 數(shù): icdev :通訊設(shè)備標(biāo)識符 _adr:要進(jìn)行回傳的塊地址(163)返 回:成功返回0 例如: short _adr= 1; short shortret = mwrfj

58、avaapi.rf_restore(icdev, _adr); 注:用此函數(shù)將某一塊中的數(shù)值傳入內(nèi)部寄存器,然后用rf_transfer()函數(shù)將寄存器中數(shù)據(jù)再傳送到另一塊中去,實(shí)現(xiàn)塊與塊之間數(shù)值傳送。該函數(shù)只用于值塊。public native short rf_transfer(int icdev, short _adr) 功 能:傳送,將寄存器的內(nèi)容傳送到eeprom 中參 數(shù): icdev :通訊設(shè)備標(biāo)識符 _adr:要傳送的地址(163)返 回:成功返回0 例如: /實(shí)現(xiàn)將塊1 的內(nèi)容傳送到塊2 short shortret = mwrfjavaapi.rf_readval(icde

59、v, (short)1); shortret = mwrfjavaapi.rf_restore(icdev, (short)2); 注: 見 rf_restore 的說明。public native short rf_hl_authentication(int icdev, short reqmode,long snr,short authmode,short secnr); 功 能:高級驗(yàn)證(無需調(diào)用尋卡函數(shù))參 數(shù): icdev :通訊設(shè)備標(biāo)識符 reqmode:尋卡模式 snr:卡序列號(在尋卡模式為2 時(shí)使用) authmode:密碼驗(yàn)證模式 secnr:扇區(qū)號( 015)返 回:成功

60、則返回 0 例如: short reqmode= 1; long snr= 3712302914l; short authmode= 0; short secnr= 0; short shortret = mwrfjavaapi.rf_hl_authentication(icdev, reqmode, snr, authmode, secnr); public native short rf_hl_decrement(int icdev, short _mode,short _secnr,long _value, long _snr); public long getnvalue() publ

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論