安卓下如何開(kāi)發(fā)UHF讀寫(xiě)器
摘要
安卓下如何開(kāi)發(fā)UHF讀寫(xiě)器
?隨著Android系統(tǒng)的設(shè)備越來(lái)越多,在Andriod設(shè)備上使用UHF讀寫(xiě)器變得越來(lái)越廣泛。為了將UHF讀寫(xiě)器應(yīng)用android設(shè)備上,友我科技獨(dú)立研發(fā)了UHF讀寫(xiě)器的android開(kāi)發(fā)包,使用此開(kāi)發(fā)包,工程師只需在工程中導(dǎo)入jar包,使用java語(yǔ)言就可以輕松的開(kāi)發(fā)出Android下的UHF讀寫(xiě)器應(yīng)用APP。
??首先在工程中導(dǎo)入yoworfidreaderuhf.jar接口包.接口API如下:
1 byte[] YW_G2_Inventory()
UHF電子標(biāo)簽盤(pán)庫(kù)尋卡,讀到卡返回EPC,沒(méi)有讀到卡返回null.每次返回一張卡的EPC, 對(duì)于多張卡, 可以多次調(diào)用.
byte[] EPC = rfidreader.G2.YW_G2_Inventory();
if(EPC==null)return;
2 byte[] YW_G2_Read(byte[] EPC, byte MemType, byte StartPos, byte ReadLen,int Password)
讀UHF電子標(biāo)簽的內(nèi)存區(qū),參數(shù)如下:
byte[] EPC: 輸入,要讀的UHF標(biāo)簽的EPC.
byte MemType: 內(nèi)存類型,用戶區(qū),EPC區(qū),TID區(qū),保留區(qū)中的一個(gè).
byte StartPos:起始地址,字節(jié)為單位,但必須是2的倍數(shù).
byte ReadLen:要讀的字節(jié)數(shù),必須是2的倍數(shù).
int Password: 讀寫(xiě)的密碼,默認(rèn)為0.
byte[] Data= rfidreader.G2.YW_G2_Read (EPC, rfidreader.G2. MEMBANK_USER,0,10,0);
if(Data==null)return
3 int YW_G2_Write(byte[] EPC,byte MemType, byte StartPos,int Password,byte[] G2Data)
寫(xiě)UHF電子標(biāo)簽的內(nèi)存區(qū),參數(shù)如下:
byte[] EPC: 輸入,要寫(xiě)的UHF標(biāo)簽的EPC.
byte MemType: 內(nèi)存類型,用戶區(qū),EPC區(qū),TID區(qū),保留區(qū)中的一個(gè).
byte StartPos:起始地址,字節(jié)為單位,但必須是2的倍數(shù).
int Password: 讀寫(xiě)的密碼,默認(rèn)為0.
byte[] G2Data: 要寫(xiě)得數(shù)據(jù)數(shù)組,數(shù)組長(zhǎng)度必須是2的倍數(shù).
byte[] Data =new byte[10];
…
int rt= rfidreader.G2. YW_G2_Write(EPC, rfidreader.G2. MEMBANK_USER,0,0, Data);
if(rt<=0)return
?
4 int YW_G2_WriteEPC(byte[] EPC, int Password)
寫(xiě)UHF電子標(biāo)簽的EPC代碼,相當(dāng)于修改卡號(hào),每次只能寫(xiě)一張標(biāo)簽,參數(shù)如下:
byte[] EPC:新的EPC代碼,數(shù)組長(zhǎng)度必須是2的倍數(shù).
int Password: 讀寫(xiě)的密碼,默認(rèn)為0.
byte[] NewEPC=new byte[12];
…
int rt= rfidreader.G2.YW_G2_WriteEPC(NewEPC, 0);
if(rt<=0)return
5 int YW_G2_KillTag(byte[] EPC,int Password)
滅活一張電子標(biāo)簽,滅活后,標(biāo)簽將不可用,如果KillPassword=0,則不能滅活,即kill失敗. 參數(shù)如下:
byte[] EPC:要操作的電子標(biāo)簽的EPC.
int Password: KillPassword的密碼,當(dāng)為0,則不能滅活.
int KillPassword=5230;?
int rt= rfidreader.G2. YW_G2_KillTag (EPC, KillPassword);
if(rt<=0)return
6 int YW_G2_SetProtected(byte[] EPC,byte Protect, byte ProtectMode,int Password)
標(biāo)簽設(shè)置保護(hù), 參數(shù)如下:
byte[] EPC:要操作的電子標(biāo)簽的EPC.
byte Protect:?
byte ProtectMode:
int Password: 訪問(wèn)password的密碼
int rt= rfidreader.G2. YW_G2_ SetProtected (EPC, 2,3,0);
if(rt<=0)return
7 int YW_G2_Earse(byte[] EPC,byte MemType, byte StartPos,byte Nums,int Password)
標(biāo)簽擦除某個(gè)內(nèi)存數(shù)據(jù),將所選擇的內(nèi)存數(shù)據(jù)全部設(shè)置為0.
byte[] EPC:要操作的電子標(biāo)簽的EPC.
byte MemType: 內(nèi)存類型,用戶區(qū),EPC區(qū),TID區(qū),保留區(qū)中的一個(gè).
byte StartPos:起始地址,字節(jié)為單位,但必須是2的倍數(shù).
byte Nums:要擦除的字節(jié)數(shù),必須是2的倍數(shù).
int Password: 讀寫(xiě)的密碼,默認(rèn)為0.
int rt= rfidreader.G2. YW_G2_ Earse (EPC, rfidreader.G2. MEMBANK_USER,0,10,0);
if(rt<=0)return
8 int YW_G2_SetReadProtectedWithEPC(byte[] EPC,int Password)
設(shè)置標(biāo)簽讀保護(hù).
byte[] EPC:要操作的電子標(biāo)簽的EPC.
int Password: 讀寫(xiě)的密碼,默認(rèn)為0.
int rt= rfidreader.G2.SetReadProtectedWithEPC (EPC, 0);
if(rt<=0)return
?
9 int YW_G2_SetEASAlert(byte[] EPC,int Password, byte EAS)
設(shè)置標(biāo)簽EAS報(bào)警
byte[] EPC:要操作的電子標(biāo)簽的EPC.
int Password: 讀寫(xiě)的密碼,默認(rèn)為0.
byte EAS: EAS值.
int rt= rfidreader.G2.SetEASAlert(EPC, 0,0x50);
if(rt<=0)return
10 byte[] YW_G2_TestEASAlert()
獲取標(biāo)簽EAS報(bào)警
byte[] EAS= rfidreader.G2.GetEASAlert();
if(EAS==0)return
11 int YW_G2_LockUser(byte[] EPC,int Password, byte UserAddr)
鎖定用戶區(qū)內(nèi)存
byte[] EPC:要操作的電子標(biāo)簽的EPC.
int Password: 讀寫(xiě)的密碼,默認(rèn)為0.
byte UserAddr: 用戶區(qū)地址.
int rt= rfidreader.G2.LockUser (EPC, 0,10);
if(rt<=0)return
下面以讀寫(xiě)內(nèi)存區(qū)作為例子, 代碼只需要幾行:
? ? ? ? ? ? byte[] Data=MainActivity.rfidreader.G2.YW_G2_Read(EPC, mem, (byte)addr, (byte)len, password);
? ? ? ? ? ? if(Data!=null)
? ? ? ? ? ? {
? ? ? ? ? ? edtData.setText(MainActivity.bytesToHexString(Data));
? ? ? ? ? ? MainActivity.rfidreader.ReaderHardware.YW_Buzzer(5, 5, 1);
? ? ? ? ? ? }
寫(xiě)內(nèi)存區(qū):
? ? ? ? ? ? if(MainActivity.rfidreader.G2.YW_G2_Write(EPC, mem, (byte)addr, password, Data)>0)
? ? ? ? ? ? {
? ? ? ? ? ? MainActivity.rfidreader.ReaderHardware.YW_Buzzer(5, 5, 1);
? ? ? ? ? ? MainActivity.dialog("寫(xiě)入成功",Readwrite.this);
? ? ? ? ? ? }
? ? ? ? ? ? else
? ? ? ? ? ? {
? ? ? ? ? ? ?
? ? ? ? ? ? MainActivity.dialog("寫(xiě)入失敗",Readwrite.this);
? ? ? ? ? ? }

安卓下調(diào)用UHF讀寫(xiě)器YW-602H就是這樣簡(jiǎn)單,具體參考RFID讀寫(xiě)器安卓開(kāi)發(fā)指南

