|
@@ -1,18 +1,21 @@
|
|
package com.zzliaoyuan.power_sensor.fragment;
|
|
package com.zzliaoyuan.power_sensor.fragment;
|
|
|
|
|
|
// wsdd
|
|
// wsdd
|
|
|
|
+
|
|
import android.app.Fragment;
|
|
import android.app.Fragment;
|
|
|
|
|
|
import android.os.Bundle;
|
|
import android.os.Bundle;
|
|
import android.util.Log;
|
|
import android.util.Log;
|
|
|
|
|
|
import android.widget.TextView;
|
|
import android.widget.TextView;
|
|
|
|
+
|
|
import com.zzliaoyuan.power_sensor.MainApplication;
|
|
import com.zzliaoyuan.power_sensor.MainApplication;
|
|
import com.zzliaoyuan.power_sensor.activity.MainActivity;
|
|
import com.zzliaoyuan.power_sensor.activity.MainActivity;
|
|
import com.zzliaoyuan.power_sensor.tools.UIHelper;
|
|
import com.zzliaoyuan.power_sensor.tools.UIHelper;
|
|
import com.rscja.deviceapi.entity.UHFTAGInfo;
|
|
import com.rscja.deviceapi.entity.UHFTAGInfo;
|
|
import com.zzliaoyuan.rifdmastercore.LibCore;
|
|
import com.zzliaoyuan.rifdmastercore.LibCore;
|
|
import com.zzliaoyuan.rifdmastercore.ProductInfo;
|
|
import com.zzliaoyuan.rifdmastercore.ProductInfo;
|
|
|
|
+
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
|
|
|
|
public class UHFReadTagFragment {
|
|
public class UHFReadTagFragment {
|
|
@@ -21,7 +24,7 @@ public class UHFReadTagFragment {
|
|
private boolean isStart = true;
|
|
private boolean isStart = true;
|
|
|
|
|
|
private boolean loopFlag = false;
|
|
private boolean loopFlag = false;
|
|
- private int inventoryFlag = 0;
|
|
|
|
|
|
+ private int inventoryFlag = 1; // 默认循环读取
|
|
private MainActivity mContext;
|
|
private MainActivity mContext;
|
|
|
|
|
|
public static UHFReadTagFragment getInstance() {
|
|
public static UHFReadTagFragment getInstance() {
|
|
@@ -36,8 +39,7 @@ public class UHFReadTagFragment {
|
|
return mInstance;
|
|
return mInstance;
|
|
}
|
|
}
|
|
|
|
|
|
- public void setContext(MainActivity context)
|
|
|
|
- {
|
|
|
|
|
|
+ public void setContext(MainActivity context) {
|
|
mContext = context;
|
|
mContext = context;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -46,7 +48,7 @@ public class UHFReadTagFragment {
|
|
public void onCheckedChanged(int checkedId) {
|
|
public void onCheckedChanged(int checkedId) {
|
|
// wsdd 选择单步,还是循环扫描
|
|
// wsdd 选择单步,还是循环扫描
|
|
// 设置循环盘点同时读取 EPC、TID、USER 模式
|
|
// 设置循环盘点同时读取 EPC、TID、USER 模式
|
|
- mContext.mReader.setEPCAndTIDUserMode(0,6);
|
|
|
|
|
|
+ mContext.mReader.setEPCAndTIDUserMode(0, 24);
|
|
if (checkedId == 0) {
|
|
if (checkedId == 0) {
|
|
// 单步识别
|
|
// 单步识别
|
|
inventoryFlag = 0;
|
|
inventoryFlag = 0;
|
|
@@ -58,6 +60,7 @@ public class UHFReadTagFragment {
|
|
|
|
|
|
private void readTag() {
|
|
private void readTag() {
|
|
// wsdd 点击开始按钮后,开始执行扫描
|
|
// wsdd 点击开始按钮后,开始执行扫描
|
|
|
|
+
|
|
if (isStart)// 识别标签
|
|
if (isStart)// 识别标签
|
|
{
|
|
{
|
|
// UIHelper.ToastMessage(mContext, "开始识别");
|
|
// UIHelper.ToastMessage(mContext, "开始识别");
|
|
@@ -68,21 +71,44 @@ public class UHFReadTagFragment {
|
|
UHFTAGInfo strUII = mContext.mReader.inventorySingleTag();
|
|
UHFTAGInfo strUII = mContext.mReader.inventorySingleTag();
|
|
if (strUII != null) {
|
|
if (strUII != null) {
|
|
String strTid = strUII.getTid();
|
|
String strTid = strUII.getTid();
|
|
|
|
+ String strUser = strUII.getUser();
|
|
|
|
|
|
String strHex = "6a173f0fd2a140cf20204fbaa6d1c0158518031da248f306535dc6d10026a7c985671ae611afb4c151feb5712eba3d52";
|
|
String strHex = "6a173f0fd2a140cf20204fbaa6d1c0158518031da248f306535dc6d10026a7c985671ae611afb4c151feb5712eba3d52";
|
|
- String key = "f1b088cbad4f07b5";
|
|
|
|
- byte[] szBuffer = LibCore.HexStringToByteArray(strHex);
|
|
|
|
- ProductInfo product = LibCore.decode(szBuffer, key);//
|
|
|
|
-
|
|
|
|
- String Data = "{";
|
|
|
|
- Data += "\"userData\":\"" + strHex + "\"";
|
|
|
|
- Data += ",\"assetID\":\"" + product.assetID+ "\"";
|
|
|
|
- Data += ",\"model\":\"" + product.model+ "\"";
|
|
|
|
- Data += ",\"manufacturer\":\"" + product.manufacturer+ "\"";
|
|
|
|
- Data += ",\"kind\":\"" + product.kind+ "\"";
|
|
|
|
|
|
+ String Data = "{\"userData\":\"" + strUser + "\""; // 读取的用户区数据
|
|
|
|
+ if (strUser.length() == 96) {
|
|
|
|
+ String key = "f1b088cbad4f07b5";
|
|
|
|
+ byte[] szBuffer = LibCore.HexStringToByteArray(strUser);
|
|
|
|
+ ProductInfo product = LibCore.decode(szBuffer, strTid);//
|
|
|
|
+ if(product == null){
|
|
|
|
+ Log.e("===========nullnullnull", "nullnull");
|
|
|
|
+ }else {
|
|
|
|
+ Log.e("===========nullnullnull", "yyyyyyynull");
|
|
|
|
+ }
|
|
|
|
+ Data += ",\"error\":\"0\""; // 错误提示
|
|
|
|
+ Data += ",\"assetID\":\"" + product.assetID + "\""; // 资产编号
|
|
|
|
+ Data += ",\"model\":\"" + product.model + "\""; // 型号
|
|
|
|
+ Data += ",\"manufacturer\":\"" + product.manufacturer + "\""; // 生产厂家
|
|
|
|
+ Data += ",\"kind\":\"" + product.kind + "\""; // 产品类型
|
|
|
|
+ Data += ",\"districtText\":\"" + product.districtText + "\""; // 用户地区
|
|
|
|
+ Data += ",\"place\":\"" + product.place + "\""; // 安装场所
|
|
|
|
+ Data += ",\"voltageLevel\":\"" + product.voltageLevel + "\""; // 电压等级
|
|
|
|
+ Data += ",\"secondWindingCount\":\"" + product.secondWindingCount + "\""; // 二次绕组数量
|
|
|
|
+ Data += ",\"secondVoltage\":\"" + product.secondVoltage + "\""; // 二次电压
|
|
|
|
+ Data += ",\"firstCurrent\":\"" + product.firstCurrent + "\""; // 一次电流
|
|
|
|
+ Data += ",\"senondCurrent\":\"" + product.senondCurrent + "\""; // 二次电流
|
|
|
|
+ Data += ",\"accuracy\":\"" + product.accuracy + "\""; // 准确等级
|
|
|
|
+ Data += ",\"ratedLoad\":\"" + product.ratedLoad + "\""; // 额定负荷
|
|
|
|
+ Data += ",\"releaseDate\":\"" + product.releaseDate + "\""; // 二次绕组数量
|
|
|
|
+ Data += ",\"secondWindingCount\":\"" + product.secondWindingCount + "\""; // 出厂日期
|
|
|
|
+ Data += ",\"voltageFactor\":\"" + product.voltageFactor + "\""; // 电压因数
|
|
|
|
+
|
|
|
|
+ // wsdd 添加读取的数据,此处应该返回数据strEPC到RN
|
|
|
|
+ // 返回给RN的数据格式 {"userData":"6a173f0fd2a140cf20204fbaa6d1c0158518031da248f306535dc6d10026a7c985671ae611afb4c151feb5712eba3d52","assetID":"4330012800000002178203 ","model":"002型","manufacturer":"北京***公司","kind":"电压互感器"}
|
|
|
|
+ } else {
|
|
|
|
+ Data += ",\"error\":\"1\"";
|
|
|
|
+ Data += ",\"error_msg\":\"格式错误("+ strHex.length() +"):" + strHex + "\"";
|
|
|
|
+ }
|
|
Data += "}";
|
|
Data += "}";
|
|
- // wsdd 添加读取的数据,此处应该返回数据strEPC到RN
|
|
|
|
- // 返回给RN的数据格式 {"userData":"6a173f0fd2a140cf20204fbaa6d1c0158518031da248f306535dc6d10026a7c985671ae611afb4c151feb5712eba3d52","assetID":"4330012800000002178203 ","model":"002型","manufacturer":"北京***公司","kind":"电压互感器"}
|
|
|
|
MainApplication.GetReactPackage().reactModule.sendMsgToRN("MsgFromAndroid", Data);
|
|
MainApplication.GetReactPackage().reactModule.sendMsgToRN("MsgFromAndroid", Data);
|
|
mContext.playSound(1);
|
|
mContext.playSound(1);
|
|
} else {
|
|
} else {
|
|
@@ -130,27 +156,61 @@ public class UHFReadTagFragment {
|
|
public void run() {
|
|
public void run() {
|
|
String epc;
|
|
String epc;
|
|
String strTid;
|
|
String strTid;
|
|
- String UserData;
|
|
|
|
|
|
+ String strUser;
|
|
UHFTAGInfo res = null;
|
|
UHFTAGInfo res = null;
|
|
while (loopFlag) {
|
|
while (loopFlag) {
|
|
res = mContext.mReader.readTagFromBuffer();
|
|
res = mContext.mReader.readTagFromBuffer();
|
|
if (res != null) {
|
|
if (res != null) {
|
|
-// epc = res.getEPC();
|
|
|
|
-// Log.e("++++++++++", epc);
|
|
|
|
strTid = res.getTid();
|
|
strTid = res.getTid();
|
|
-// Log.e("==========", strTid);
|
|
|
|
-// UserData = res.getUser();
|
|
|
|
-// Log.e("----------", UserData);
|
|
|
|
|
|
+ strUser = res.getUser();
|
|
|
|
+ Log.e("===========strTid", strTid);
|
|
|
|
+ Log.e("===========strUser", strUser);
|
|
|
|
+
|
|
|
|
+ Log.e("===========", strUser.length()+"pp");
|
|
|
|
+ String Data = "{\"userData\":\"" + strUser + "\""; // 读取的用户区数据
|
|
|
|
+ byte[] szBuffer = LibCore.HexStringToByteArray(strUser);
|
|
|
|
+ ProductInfo product = LibCore.decode(szBuffer, strTid);//
|
|
|
|
+ if(product == null){
|
|
|
|
+ Log.e("===========nullnullnull", "null");
|
|
|
|
+ }else {
|
|
|
|
+ Log.e("===========nullnullnull", "yyyyyyy");
|
|
|
|
+ }
|
|
|
|
+ if (strUser.length() == 96 && product != null) {
|
|
|
|
+
|
|
|
|
+ Data += ",\"error\":0"; // 错误提示
|
|
|
|
+ Data += ",\"assetID\":\"" + product.assetID + "\""; // 资产编号
|
|
|
|
+ Data += ",\"model\":\"" + product.model + "\""; // 型号
|
|
|
|
+ Data += ",\"manufacturer\":\"" + product.manufacturer + "\""; // 生产厂家
|
|
|
|
+ Data += ",\"kind\":\"" + product.kind + "\""; // 产品类型
|
|
|
|
+ Data += ",\"districtText\":\"" + product.districtText + "\""; // 用户地区
|
|
|
|
+ Data += ",\"place\":\"" + product.place + "\""; // 安装场所
|
|
|
|
+ Data += ",\"voltageLevel\":\"" + product.voltageLevel + "\""; // 电压等级
|
|
|
|
+ Data += ",\"secondWindingCount\":\"" + product.secondWindingCount + "\""; // 二次绕组数量
|
|
|
|
+ Data += ",\"secondVoltage\":\"" + product.secondVoltage + "\""; // 二次电压
|
|
|
|
+ Data += ",\"firstCurrent\":\"" + product.firstCurrent + "\""; // 一次电流
|
|
|
|
+ Data += ",\"senondCurrent\":\"" + product.senondCurrent + "\""; // 二次电流
|
|
|
|
+ Data += ",\"accuracy\":\"" + product.accuracy + "\""; // 准确等级
|
|
|
|
+ Data += ",\"ratedLoad\":\"" + product.ratedLoad + "\""; // 额定负荷
|
|
|
|
+ Data += ",\"releaseDate\":\"" + product.releaseDate + "\""; // 出厂日期
|
|
|
|
+ Data += ",\"voltageFactor\":\"" + product.voltageFactor + "\""; // 电压因数
|
|
|
|
+ Data += ",\"version\":\"" + product.version + "\""; // 版本
|
|
|
|
+
|
|
|
|
+ // wsdd 添加读取的数据,此处应该返回数据strEPC到RN
|
|
|
|
+ // 返回给RN的数据格式 {"userData":"6a173f0fd2a140cf20204fbaa6d1c0158518031da248f306535dc6d10026a7c985671ae611afb4c151feb5712eba3d52","assetID":"4330012800000002178203 ","model":"002型","manufacturer":"北京***公司","kind":"电压互感器"}
|
|
|
|
+ } else {
|
|
|
|
+ Data += ",\"error\":1";
|
|
|
|
+ Data += ",\"error_msg\":\"格式错误("+ strUser.length() +"):" + strUser + "\"";
|
|
|
|
+ }
|
|
|
|
+ Data += "}";
|
|
|
|
+
|
|
// wsdd 多线程,循环读取数据,此处应该返回数据epc到RN
|
|
// wsdd 多线程,循环读取数据,此处应该返回数据epc到RN
|
|
- // MainApplication.GetReactPackage().reactModule.sendMsgToRN("MsgFromAndroid", strTid);
|
|
|
|
|
|
+ MainApplication.GetReactPackage().reactModule.sendMsgToRN("MsgFromAndroid", Data);
|
|
mContext.playSound(1);
|
|
mContext.playSound(1);
|
|
}
|
|
}
|
|
- try
|
|
|
|
- {
|
|
|
|
|
|
+ try {
|
|
Thread.sleep(100);//毫秒
|
|
Thread.sleep(100);//毫秒
|
|
// Thread.currentThread().sleep(1000);//毫秒
|
|
// Thread.currentThread().sleep(1000);//毫秒
|
|
- }
|
|
|
|
- catch(Exception e){
|
|
|
|
|
|
+ } catch (Exception e) {
|
|
UIHelper.ToastMessage(mContext, "读取标签异常,停止读取");
|
|
UIHelper.ToastMessage(mContext, "读取标签异常,停止读取");
|
|
stopInventory();
|
|
stopInventory();
|
|
}
|
|
}
|