Andriod安卓下开发UHF读写器

本文档介绍了如何在Andriod系统下使用yoworeaderuhf.jar包集成UHF读写器YW-602H,提供了包括盘库寻卡、读写内存、设置保护、擦除数据等功能的API接口详细说明,便于开发者快速进行Andriod安卓应用开发。

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);
	            	 }

开发起来还是很简单的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值