安卓下如何開發(fā)UHF讀(dú)寫器
摘要
安卓下如何開發(fā)UHF讀(dú)寫器
随著(zhe)Android系統的設備越來越多,在Andriod設備上使用UHF讀寫器變得越來越廣泛。爲瞭(le)将UHF讀寫器應用android設備上,友我科技獨立研發瞭(le)UHF讀寫器的android開發包,使用此開發包,工程師隻需在工程中導入jar包,使用java語言就可以輕松的開發出Android下的UHF讀寫器應用APP。
首先在工程中導(dǎo)入yoworfidreaderuhf.jar接口包.接口API如下:
1 byte[] YW_G2_Inventory()
UHF電(diàn)子标簽盤庫尋卡,讀到卡返回EPC,沒有讀到卡返回null.每次返回一張卡的EPC, 對於(yú)多張卡, 可以多次調用.
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電(diàn)子标簽的内存區,參(cān)數如下:
byte[] EPC: 輸入,要讀(dú)的UHF标簽(qiān)的EPC.
byte MemType: 内存類型,用戶(hù)區,EPC區,TID區,保留區中的一個(gè).
byte StartPos:起始地址,字節(jié)爲單(dān)位,但必須是2的倍數.
byte ReadLen:要讀(dú)的字節(jié)數,必須是2的倍數.
int Password: 讀(dú)寫的密碼(mǎ),默認爲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)
寫UHF電(diàn)子标簽的内存區,參(cān)數如下:
byte[] EPC: 輸(shū)入,要寫的UHF标簽(qiān)的EPC.
byte MemType: 内存類型,用戶(hù)區,EPC區,TID區,保留區中的一個(gè).
byte StartPos:起始地址,字節(jié)爲單(dān)位,但必須是2的倍數.
int Password: 讀(dú)寫的密碼(mǎ),默認爲0.
byte[] G2Data: 要寫得數據(jù)數組,數組長(zhǎng)度必須是2的倍數.
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)
寫UHF電子标簽的EPC代碼,相當於(yú)修改卡号,每次隻能寫一張标簽,參(cān)數如下:
byte[] EPC:新的EPC代碼(mǎ),數組長(zhǎng)度必須是2的倍數.
int Password: 讀(dú)寫的密碼(mǎ),默認爲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)
滅活一張電子标簽,滅活後,标簽将不可用,如果KillPassword=0,則不能滅活,即kill失敗(bài). 參(cān)數如下:
byte[] EPC:要操作的電(diàn)子标簽(qiān)的EPC.
int Password: KillPassword的密碼(mǎ),當(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)
标簽設置保護(hù), 參(cān)數如下:
byte[] EPC:要操作的電(diàn)子标簽(qiān)的EPC.
byte Protect:
byte ProtectMode:
int Password: 訪(fǎng)問password的密碼(mǎ)
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)
标簽擦除某個(gè)内存數據(jù),将所選擇的内存數據(jù)全部設置爲0.
byte[] EPC:要操作的電(diàn)子标簽(qiān)的EPC.
byte MemType: 内存類型,用戶(hù)區,EPC區,TID區,保留區中的一個(gè).
byte StartPos:起始地址,字節(jié)爲單(dān)位,但必須是2的倍數.
byte Nums:要擦除的字節(jié)數(shù),必須是2的倍數(shù).
int Password: 讀(dú)寫的密碼(mǎ),默認爲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)
設置标簽讀保護.
byte[] EPC:要操作的電(diàn)子标簽(qiān)的EPC.
int Password: 讀(dú)寫的密碼(mǎ),默認爲0.
int rt= rfidreader.G2.SetReadProtectedWithEPC (EPC, 0);
if(rt<=0)return
9 int YW_G2_SetEASAlert(byte[] EPC,int Password, byte EAS)
設置标簽EAS報警
byte[] EPC:要操作的電(diàn)子标簽(qiān)的EPC.
int Password: 讀(dú)寫的密碼(mǎ),默認爲0.
byte EAS: EAS值.
int rt= rfidreader.G2.SetEASAlert(EPC, 0,0x50);
if(rt<=0)return
10 byte[] YW_G2_TestEASAlert()
獲取标簽EAS報警
byte[] EAS= rfidreader.G2.GetEASAlert();
if(EAS==0)return
11 int YW_G2_LockUser(byte[] EPC,int Password, byte UserAddr)
鎖定用戶區内存
byte[] EPC:要操作的電(diàn)子标簽(qiān)的EPC.
int Password: 讀(dú)寫的密碼(mǎ),默認爲0.
byte UserAddr: 用戶(hù)區(qū)地址.
int rt= rfidreader.G2.LockUser (EPC, 0,10);
if(rt<=0)return
下面以讀(dú)寫内存區作爲例子, 代碼隻需要幾(jǐ)行:
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);
}
寫内存區:
if(MainActivity.rfidreader.G2.YW_G2_Write(EPC, mem, (byte)addr, password, Data)>0)
{
MainActivity.rfidreader.ReaderHardware.YW_Buzzer(5, 5, 1);
MainActivity.dialog("寫入成功",Readwrite.this);
}
else
{
MainActivity.dialog("寫入失敗",Readwrite.this);
}

安卓下調用UHF讀寫器YW-602H就是這樣簡單,具體參考RFID讀寫器安卓開發指南

