Andriod系统下通过引用yoworeaderuhf.jar包,可以快速的将UHF读写器YW-602H接入到Andriod设备中。
Andriod安卓开发的API接口有:
2.1 byte[] YW_G2_Inventory()
UHF电子标签盘库寻卡,读到卡返回EPC,没有读到卡返回null.每次返回一张卡的EPC, 对于多张卡, 可以多次调用.
byte[] EPC = rfidreader.G2.YW_G2_Inventory();
if(EPC==null)return;
2.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
2.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
2.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
2.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
2.6 int YW_G2_SetProtected(byte[] EPC,byte Protect, byte ProtectMode,int Password)
标签设置保护, 参数如下:
byte[] EPC:要操作的电子标签的EPC.
byte Protect:
0x00时,控制销毁密码读写保护设定。
0x01时,控制访问密码读写保护设定。
0x02时,控制EPC存储区读写保护设定。
0x03时,控制TID存储区读写保护设定。
0x04时,控制用户存储区读写保护设定。
byte ProtectMode:
当Protect为0x00或0x01,即当设置Kill密码区或访问密码区的时候,ProtectMode的值代表的意义如下:
0x00:设置为无保护下的可读可写
0x01:设置为永远可读可写
0x02:设置为带密码可读可写
0x03:设置为永远不可读不可写
当Protect为0x02、0x03、0x04的时候,即当设置EPC区、TID区及用户区的时候,ProtectMode的值代表的意义如下:
0x00:设置为无保护下的可写
0x01:设置为永远可写
0x02:设置为带密码可写
0x03:设置为永远不可写
int Password: 访问password的密码
int rt= rfidreader.G2. YW_G2_ SetProtected (EPC, 2,3,0);
if(rt<=0)return
2.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
2.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
2.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
2.10 byte[] YW_G2_TestEASAlert()
获取标签EAS报警
byte[] EAS= rfidreader.G2.GetEASAlert();
if(EAS==0)return
2.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
自动盘库的代码如下:
Thread thread=new Thread(new Runnable()
{
byte[] CardNo;
@Override
public void run()
{
while(Working)
{
try
{
Thread.sleep(100);
} catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
CardNo =MainActivity.rfidreader.G2.YW_G2_Inventory();
if(CardNo==null)continue;
runOnUiThread(new Runnable()
{
@Override
public void run()
{
String epc= MainActivity.bytesToHexString(CardNo)+ "\n";
if(!tv.getText().toString().contains(epc))
{
tv.append(epc);
offset=tv.getLineCount()*tv.getLineHeight();
if(offset>tv.getHeight())tv.scrollTo(0,offset-tv.getHeight());
}
}
});
MainActivity.rfidreader.ReaderHardware.YW_Led(2, 1, 1, 1, 1);
}
}
});
thread.start();
写EPC卡号的代码:
if(MainActivity.rfidreader.G2.YW_G2_WriteEPC(EPC, 0)>0)
{
MainActivity.rfidreader.ReaderHardware.YW_Buzzer(5, 5, 1);
MainActivity.dialog("写入成功",Writeepc.this);
}
else
{
MainActivity.dialog("写入失败",Writeepc.this);
}
开发起来还是很简单的。
本文档介绍了如何在Andriod系统下使用yoworeaderuhf.jar包集成UHF读写器YW-602H,提供了包括盘库寻卡、读写内存、设置保护、擦除数据等功能的API接口详细说明,便于开发者快速进行Andriod安卓应用开发。

2268

被折叠的 条评论
为什么被折叠?



