随着Android系统的设备越来越多,在Andriod设备上使用UHF读写器变得越来越广泛。为了将UHF读写器应用android设备上,友我科技独立研发了UHF读写器的android开发包,使用此开发包,工程师只需在工程中导入jar包,使用java语言就可以轻松的开发出Android下的UHF读写器应用APP。
首先在工程中导入yoworfidreaderuhf.jar接口包.接口API如下:
1 byte[] YW_G2_Inventory()
UHF电子标签盘库寻卡,读到卡返回EPC,没有读到卡返回null.每次返回一张卡的EPC, 对于多张卡, 可以多次调用.
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电子标签的内存区,参数如下:
byte[] EPC: 输入,要读的UHF标签的EPC.
byte MemType: 内存类型,用户区,EPC区,TID区,保留区中的一个.
byte StartPos:起始地址,字节为单位,但必须是2的倍数.
byte ReadLen:要读的字节数,必须是2的倍数.
int Password: 读写的密码,默认为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电子标签的内存区,参数如下:
byte[] EPC: 输入,要写的UHF标签的EPC.
byte MemType: 内存类型,用户区,EPC区,TID区,保留区中的一个.
byte StartPos:起始地址,字节为单位,但必须是2的倍数.
int Password: 读写的密码,默认为0.
byte[] G2Data: 要写得数据数组,数组长度必须是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代码,相当于修改卡号,每次只能写一张标签,参数如下:
byte[] EPC:新的EPC代码,数组长度必须是2的倍数.
int Password: 读写的密码,默认为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失败. 参数如下:
byte[] EPC:要操作的电子标签的EPC.
int Password: KillPassword的密码,当为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)
标签设置保护, 参数如下:
byte[] EPC:要操作的电子标签的EPC.
byte Protect:
byte ProtectMode:
int Password: 访问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)
标签擦除某个内存数据,将所选择的内存数据全部设置为0.
byte[] EPC:要操作的电子标签的EPC.
byte MemType: 内存类型,用户区,EPC区,TID区,保留区中的一个.
byte StartPos:起始地址,字节为单位,但必须是2的倍数.
byte Nums:要擦除的字节数,必须是2的倍数.
int Password: 读写的密码,默认为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:要操作的电子标签的EPC.
int Password: 读写的密码,默认为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:要操作的电子标签的EPC.
int Password: 读写的密码,默认为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:要操作的电子标签的EPC.
int Password: 读写的密码,默认为0.
byte UserAddr: 用户区地址.
int rt= rfidreader.G2.LockUser (EPC, 0,10);
if(rt<=0)return
下面以读写内存区作为例子, 代码只需要几行:
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读写器安卓开发指南