public class MyLib
extends java.lang.Object
author CYD date 2019/02/27 email jszc@idatachina.com version 1.1 注意: 1.此API与Demo适用于UM7模块,使用前请确认您的机器已安装此模块 2.此API与Demo适用于50UHF设备,使用前确认机型 3.使用此API需要libjni_rfid_driver.so和RFIDJar_V1.3.jar 4.初始化一次MyLib对象并执行上电
powerOn()
操作成功之后,方可使用此类的其它API 5.MonzaR6数据格式的标签操作请参照下图:
Modifier and Type | Field and Description |
---|---|
int |
EPC
EPC区
|
int |
RESERVED
保留区
|
int |
TID
TID区
|
int |
USR
USR区
|
Constructor and Description |
---|
MyLib(android.content.Context con) |
Modifier and Type | Method and Description |
---|---|
boolean |
filterSet(int bank,
int ptr,
int cnt,
java.lang.String data,
boolean save)
设置标签过滤条件
|
java.lang.String |
firmwareVerGet()
固件版本号获取
|
int[] |
frequenceRange_Get()
获取设置频点范围
|
boolean |
frequenceRange_Set(int freqCnt,
int[] freqList,
boolean ifSave)
设置频点范围,最多50个
|
int |
frequencyModeGet()
获取模块当前的区域频率
返回值0,1,2,3,4 ,详情参照
frequencyModeSet(int) 的参数freMode |
boolean |
frequencyModeSet(int freMode)
设置模块的区域频率
|
java.lang.String |
hardwareVerGet()
硬件版本号获取
|
int |
inventoryModelGet()
获取标签盘点的模式
|
boolean |
inventoryModelSet(int mode,
boolean save)
设置标签盘点的模式
|
int[] |
inventoryWaitTime_Get()
获取设置的盘点和休眠的时间
|
boolean |
inventoryWaitTime_Set(int scanTime,
int waitTime,
boolean save)
设置盘点时间的占空比
|
boolean |
killTag(java.lang.String killPwd,
int bank,
int ptr,
int cnt,
java.lang.String data)
销毁标签操作
|
boolean |
lockMen(java.lang.String accessPwd,
int bank,
int ptr,
int cnt,
java.lang.String data,
int bank1)
锁标签操作(临时锁,可解锁)
|
int |
powerGet()
获取模块的功率
|
boolean |
powerOff()
下电关闭UHF设备
|
boolean |
powerOn()
上电打开UHF设备
|
boolean |
powerSet(int power)
设置模块的功率
|
java.lang.String |
readTag(java.lang.String accessPwd,
int bank,
int ptr,
int len,
java.lang.String data,
int bank1,
int ptr1,
int len1)
读标签操作(可指定过滤条件,一次最多可读16个word)
|
java.lang.String[] |
readTagFromBuffer()
读取缓冲区返回的标签的TID和EPC
|
int |
readTagModeGet()
获得当前标签盘点的返回的数据种类
|
boolean |
readTagModeSet(int mode,
boolean ifsave)
设置标签盘点返回的数据种类
|
int |
sessionModeGet()
获取当前session模式
|
boolean |
sessionModeSet(int sessionValue)
设置session模式
|
boolean |
startInventoryTag()
开启标签读取操作
|
boolean |
stopInventory()
停止标签读取操作
|
boolean |
unlockMen(java.lang.String accessPwd,
int bank,
int ptr,
int cnt,
java.lang.String data,
int bank1)
解锁标签操作
|
boolean |
updateFirmware(java.lang.String filePath,
java.lang.String fileName)
更新固件
|
boolean |
write1KData(java.lang.String accessPwd,
int bank,
int ptr,
int len,
java.lang.String data,
int bank1,
int ptr1,
int len1,
java.lang.String data1)
一次最多写1K的数据,用法以及返回参照
writeTag(String, int, int, int, String, int, int, int, String) |
boolean |
writeDataToEpc(java.lang.String accessPwd,
int ptr,
int cnt,
java.lang.String data)
向标签的EPC区写数据(不带过滤)
|
boolean |
writeTag(java.lang.String accessPwd,
int bank,
int ptr,
int len,
java.lang.String data,
int bank1,
int ptr1,
int len1,
java.lang.String data1)
写标签操作(可指定过滤条件,一次最多写16word)
|
public final int RESERVED
public final int EPC
public final int TID
public final int USR
public boolean powerOn()
public boolean powerOff()
public int powerGet()
public boolean powerSet(int power)
power
- 传入的功率值public boolean frequencyModeSet(int freMode)
freMode
- 0:中国(920-925MHz) ,1:中国(840-845MHz),2:欧洲(865-868MHz),
3:915MHz,4:美国(902-928MHz)public int frequencyModeGet()
frequencyModeSet(int)
的参数freModepublic boolean startInventoryTag()
public boolean stopInventory()
public java.lang.String[] readTagFromBuffer()
标签读取使用完整示例
MyLib mb = new MyLib(...)://Context对象请自行填入
if(mb.powerOn()&& mb.startInventoryTag()){
new Thread(new Runnable() {
@Override
public void run() {
while (true) {
String[] tagData = mb.readTagFromBuffer();
if (tagData != null) {
MLog.e("tid_user = " + tagData[0] + " epc = " + tagData[1] + " rssi = " + tagData[2]);
}
}
}
}).start();
}
public boolean filterSet(int bank, int ptr, int cnt, java.lang.String data, boolean save)
public boolean lockMen(java.lang.String accessPwd, int bank, int ptr, int cnt, java.lang.String data, int bank1)
accessPwd
- 标签RESERVED区的Access Passwordbank
- 标签的存储区 ,详见RESERVED
,EPC
,TID
,USR
ptr
- 过滤的起始地址(bit类型)cnt
- 过滤的数据长度(bit类型)data
- 需要过滤的数据bank1
- 锁定指定区域,详见RESERVED
,EPC
,TID
,USR
锁标签用法示例 MyLib mb = new MyLib(...)://Context对象请自行填入 if(mb.powerOn()){ String accessPwd = "00000000"; int bank = mb.EPC;//(或者直接int bank =1); 过滤的区域 int ptr = 32; int cnt = 96; String data = "1234567890ABCDEF12345678"; int bank1=mb.EPC; mb.lockMen(accessPwd,bank,ptr,cnt,data,bank1); }
public boolean unlockMen(java.lang.String accessPwd, int bank, int ptr, int cnt, java.lang.String data, int bank1)
public boolean writeDataToEpc(java.lang.String accessPwd, int ptr, int cnt, java.lang.String data)
accessPwd
- 标签RESERVED区的Access Passwordptr
- 开始写入的起始位置cnt
- 写入数据的长度(Word类型,大于0)data
- 需要写入的数据(16进制)public boolean writeTag(java.lang.String accessPwd, int bank, int ptr, int len, java.lang.String data, int bank1, int ptr1, int len1, java.lang.String data1)
accessPwd
- 标签RESERVED区的Access Passwordbank
- 过滤的标签的存储区 ,详见RESERVED
,EPC
,TID
,USR
ptr
- 过滤的起始地址(bit类型)len
- 过滤的数据长度(bit类型)data
- 需要过滤的数据bank1
- 需要写入的标签储存区,详见RESERVED
,EPC
,TID
,USR
ptr1
- 写入的起始地址(Word类型) 注:1word =2byte=16bitlen1
- 写入的数据长度(Word类型,大于0)data1
- 写入的具体数据写标签操作的完整示例 MyLib mb = new MyLib(...)://Context对象请自行填入 if(mb.powerOn()){ String pwd="00000000"; int bank = mb.EPC;//(或者直接int bank =1); int ptr =32; int len =96; String data="1234567890ABCDEF12345678"; int bank1=mb.EPC; int ptr1=2; int len1=6; String data1="1234567890ABCDEF12345679"; mb.writeTag(pwd,bank,ptr,len,data,bank1,ptr1,len1,data1); }
public java.lang.String readTag(java.lang.String accessPwd, int bank, int ptr, int len, java.lang.String data, int bank1, int ptr1, int len1)
public boolean killTag(java.lang.String killPwd, int bank, int ptr, int cnt, java.lang.String data)
public java.lang.String hardwareVerGet()
public java.lang.String firmwareVerGet()
public boolean updateFirmware(java.lang.String filePath, java.lang.String fileName)
filePath
- 固件文件存放在SD卡的绝对路径fileName
- 固件文件名public boolean readTagModeSet(int mode, boolean ifsave)
mode
- 设置0只读取标签EPC,1读取标签EPC和TID,2读取标签EPC和USERifsave
- 是否掉电保存public int readTagModeGet()
public boolean sessionModeSet(int sessionValue)
sessionValue
- session模式的值,0~3表示S0到S3public int sessionModeGet()
public boolean inventoryModelSet(int mode, boolean save)
mode
- 0:多标签模式,侧重读全标签 ,1:快盘模式,侧重快速读取标签 ,3 , 4:省电模式save
- 是否下电保存public int inventoryModelGet()
inventoryModelSet(int, boolean)
#mode,其它值失败public boolean write1KData(java.lang.String accessPwd, int bank, int ptr, int len, java.lang.String data, int bank1, int ptr1, int len1, java.lang.String data1)
writeTag(String, int, int, int, String, int, int, int, String)
accessPwd
- 标签RESERVED区的Access Passwordbank
- 过滤的标签的存储区 ,详见RESERVED
,EPC
,TID
,USR
ptr
- 过滤的起始地址(bit类型)len
- 过滤的数据长度(bit类型)data
- 需要过滤的数据bank1
- 需要写入的标签储存区,详见RESERVED
,EPC
,TID
,USR
ptr1
- 写入的起始地址(Word类型) 注:1word =2byte=16bitlen1
- 写入的数据长度(Word类型,大于0)data1
- 写入的具体数据public boolean inventoryWaitTime_Set(int scanTime, int waitTime, boolean save)
scanTime
- 盘点的时间waitTime
- 休眠的时间save
- 是否下电保存public int[] inventoryWaitTime_Get()
public boolean frequenceRange_Set(int freqCnt, int[] freqList, boolean ifSave)
freqCnt
- 频点数量freqList
- 频点值ifSave
- 是否下点保存public int[] frequenceRange_Get()