wushaodong преди 3 години
родител
ревизия
8d8adf3cc4
променени са 1 файла, в които са добавени 86 реда и са изтрити 2 реда
  1. 86 2
      android/app/src/main/java/com/zzliaoyuan/power_sensor/fragment/UHFReadTagFragment.java

+ 86 - 2
android/app/src/main/java/com/zzliaoyuan/power_sensor/fragment/UHFReadTagFragment.java

@@ -1,7 +1,9 @@
 package com.zzliaoyuan.power_sensor.fragment;
 package com.zzliaoyuan.power_sensor.fragment;
 
 
 import android.os.Bundle;
 import android.os.Bundle;
+import android.os.Environment;
 import android.util.Log;
 import android.util.Log;
+
 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;
@@ -9,6 +11,13 @@ 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.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.RandomAccessFile;
+import java.util.ArrayList;
 import java.util.Timer;
 import java.util.Timer;
 import java.util.TimerTask;
 import java.util.TimerTask;
 
 
@@ -22,6 +31,7 @@ public class UHFReadTagFragment {
     private static int delayTime = 100;  //ms
     private static int delayTime = 100;  //ms
     private static int periodTime = 600;  //ms
     private static int periodTime = 600;  //ms
     private boolean isStop = true;
     private boolean isStop = true;
+    private ArrayList<String> assetsList = new ArrayList<String>();
 
 
     public static UHFReadTagFragment getInstance() {
     public static UHFReadTagFragment getInstance() {
         if (mInstance == null) {
         if (mInstance == null) {
@@ -44,6 +54,7 @@ public class UHFReadTagFragment {
     public void onCheckedChanged(int checkedId) {
     public void onCheckedChanged(int checkedId) {
         // 设置循环盘点同时读取 EPC、TID、USER 模式
         // 设置循环盘点同时读取 EPC、TID、USER 模式
         mContext.mReader.setEPCAndTIDUserMode(0, 24);
         mContext.mReader.setEPCAndTIDUserMode(0, 24);
+        readAssets();
     }
     }
 
 
     private void readTag() {
     private void readTag() {
@@ -79,7 +90,7 @@ public class UHFReadTagFragment {
                     Data += ",\"voltageFactor\":\"" + product.voltageFactor + "\""; // 电压因数
                     Data += ",\"voltageFactor\":\"" + product.voltageFactor + "\""; // 电压因数
                     Data += ",\"version\":\"" + product.version + "\""; // 版本
                     Data += ",\"version\":\"" + product.version + "\""; // 版本
                     Data += ",\"powerFactor\":\"" + product.powerFactor + "\""; // 功率因数
                     Data += ",\"powerFactor\":\"" + product.powerFactor + "\""; // 功率因数
-
+                    writeAssets(product.assetID);
                     // wsdd 添加读取的数据,此处应该返回数据strEPC到RN
                     // wsdd 添加读取的数据,此处应该返回数据strEPC到RN
                     // 返回给RN的数据格式 {"userData":"6a173f0fd2a140cf20204fbaa6d1c0158518031da248f306535dc6d10026a7c985671ae611afb4c151feb5712eba3d52","assetID":"4330012800000002178203  ","model":"002型","manufacturer":"北京***公司","kind":"电压互感器"}
                     // 返回给RN的数据格式 {"userData":"6a173f0fd2a140cf20204fbaa6d1c0158518031da248f306535dc6d10026a7c985671ae611afb4c151feb5712eba3d52","assetID":"4330012800000002178203  ","model":"002型","manufacturer":"北京***公司","kind":"电压互感器"}
                 } else {
                 } else {
@@ -107,6 +118,7 @@ public class UHFReadTagFragment {
             UIHelper.ToastMessage(mContext, "设置功率失败");
             UIHelper.ToastMessage(mContext, "设置功率失败");
         }
         }
     }
     }
+
     public int getPower() {
     public int getPower() {
         return mContext.mReader.getPower();
         return mContext.mReader.getPower();
     }
     }
@@ -135,7 +147,8 @@ public class UHFReadTagFragment {
                     try {
                     try {
                         readTag();
                         readTag();
                     } catch (Exception e) {
                     } catch (Exception e) {
-                        UIHelper.ToastMessage(mContext, "识别失败");
+                        e.printStackTrace();
+//                        UIHelper.ToastMessage(mContext, "识别失败");
                     }
                     }
                 }
                 }
             };
             };
@@ -157,4 +170,75 @@ public class UHFReadTagFragment {
         }
         }
     }
     }
 
 
+    public void readAssets() {
+        try {
+            // 存放的文件路径
+            File assetsFile = new File(
+                    Environment.getExternalStorageDirectory().getCanonicalPath() + "/assetsLog"
+            );
+            if (!assetsFile.exists()) {
+                try {
+                    assetsFile.mkdirs();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    UIHelper.ToastMessage(mContext, "创建资产编号日志文件夹失败" + "-" + e.getMessage());
+                }
+            }
+            String strFilePath = "assets.txt";
+            File file = new File(assetsFile, strFilePath);
+            if (!file.exists()) {
+                file.createNewFile();
+            }
+            // 读取文件内容
+            FileInputStream instream = new FileInputStream(file);
+            if (instream != null) {
+                InputStreamReader inputreader = new InputStreamReader(instream);
+                BufferedReader buffreader = new BufferedReader(inputreader);
+                String line;
+                //分行读取
+                while ((line = buffreader.readLine()) != null) {
+                    assetsList.add(line);
+                }
+                instream.close();
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+            UIHelper.ToastMessage(mContext, "读取资产编号日志文件失败" + "-" + e.getMessage());
+        }
+    }
+
+    public void writeAssets(String asset) {
+        // 先判断assetsList中是否存在新读取的asset,不存在,则写入
+        if (!assetsList.contains(asset)) {
+            try {
+                // 存放的文件路径
+                File assetsFile = new File(
+                        Environment.getExternalStorageDirectory().getCanonicalPath() + "/assetsLog"
+                );
+                if (!assetsFile.exists()) {
+                    try {
+                        assetsFile.mkdirs();
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                        UIHelper.ToastMessage(mContext, "创建资产编号日志文件夹失败" + "-" + e.getMessage());
+                    }
+                }
+                String strFilePath = "assets.txt";
+                String strContent = asset + "\r\n";
+                File file = new File(assetsFile, strFilePath);
+                if (!file.exists()) {
+                    file.createNewFile();
+                }
+                assetsList.add(asset);
+                RandomAccessFile raf = new RandomAccessFile(file, "rwd");
+                raf.seek(file.length());
+                raf.write(strContent.getBytes());
+                raf.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+                UIHelper.ToastMessage(mContext, "写入资产编号日志文件失败" + "-" + e.getMessage());
+            }
+        }
+    }
+
 }
 }