From 80f2ca2df62ff1cd03046864af504245be078eb2 Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期四, 05 六月 2025 10:37:28 +0800 Subject: [PATCH] 2025年06月05日10:37:26 --- app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java | 186 +++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 166 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java index d45e982..463e94b 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java @@ -1,11 +1,16 @@ package com.hdl.photovoltaic.other; +import android.content.Context; +import android.content.res.AssetManager; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Environment; +import android.text.TextUtils; import com.hdl.photovoltaic.HDLApp; +import com.hdl.photovoltaic.config.ConstantManage; import com.hdl.photovoltaic.config.UserConfigManage; +import com.hdl.photovoltaic.utils.LocalManageUtil; import org.apache.commons.io.FileUtils; @@ -15,6 +20,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; +import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Objects; @@ -27,9 +33,9 @@ private static volatile HdlFileLogic sHdlFileLogic; /** - * 琛ㄧず1m澶у皬鏁版嵁 + * 琛ㄧず0.5m澶у皬鏁版嵁 */ - private final int mDataSize = 1; + private final double mDataSize = 0.5; /** * 鑾峰彇褰撳墠瀵硅薄 @@ -96,11 +102,31 @@ } /** + * 鑾峰彇涓枃銆恓son璧勬簮鏂囦欢澶广�戝叏璺緞 + * + * @param deviceModel 璁惧鍨嬪彿 + */ + public String getHdlESLocalJsonZhRootPath(String deviceModel) { + return getAPPInternalStoreFilesPath() + "/hdlESLocalJson/" + LocalManageUtil.zh + "/" + deviceModel; + } + + /** + * 鑾峰彇鑻辨枃銆恓son璧勬簮鏂囦欢澶广�戝叏璺緞 + * + * @param deviceModel 璁惧鍨嬪彿 + */ + public String getHdlESLocalJsonEnRootPath(String deviceModel) { + return getAPPInternalStoreFilesPath() + "/hdlESLocalJson/" + LocalManageUtil.en + "/" + deviceModel; + } + + + /** * 鑾峰彇銆愭棩蹇楁枃浠躲�戝叏璺緞 */ public String getLogFileNamePath() { return getCurrentHomeRootPath() + "/log.txt"; } + /** * 鑾峰彇銆愮敤鎴锋枃浠躲�戝叏璺緞 @@ -108,6 +134,27 @@ public String getUserFilePath() { return getAPPInternalStoreFilesPath() + "/userConfigManage.txt"; } + + /** + * 鑾峰彇涓枃銆恓son璧勬簮鏂囦欢銆戝叏璺緞 + */ + public String getHdlESLocalJsonZhFilePath(String deviceModel, String fileName) { + if (!fileName.endsWith(".json")) { + fileName += ".json"; + } + return getAPPInternalStoreFilesPath() + "/hdlESLocalJson/" + LocalManageUtil.zh + "/" + deviceModel + "/" + fileName; + } + + /** + * 鑾峰彇鑻辨枃銆恓son璧勬簮鏂囦欢銆戝叏璺緞 + */ + public String getHdlESLocalJsonEnFilePath(String deviceModel, String fileName) { + if (!fileName.endsWith(".json")) { + fileName += ".json"; + } + return getAPPInternalStoreFilesPath() + "/hdlESLocalJson/" + LocalManageUtil.en + "/" + deviceModel + "/" + fileName; + } + /** * 鑾峰彇椹卞姩鍗囩骇鏂囦欢鍏ㄨ矾寰� @@ -124,13 +171,12 @@ /** * 鑾峰彇鍥轰欢鍗囩骇鏂囦欢鍏ㄨ矾寰� * - * @param oid 璇ュ浐浠秓id * @param imageId 闀滃儚id * @param version 椹卞姩鐗堟湰 * @return 鍏ㄨ矾寰� */ - public String getFirmwarePathFileName(String oid, String imageId, String version) { - String fileName = oid + "_" + imageId + "_" + version + ".zip"; + public String getFirmwarePathFileName(String imageId, String version) { + String fileName = imageId + "_" + version + ".zip"; return HdlFileLogic.getInstance().getFirmwareRootPath() + "/" + fileName; } @@ -148,6 +194,46 @@ this.createFileDir(this.getDriveRootPath()); //鍥轰欢鏂囦欢 this.createFileDir(this.getFirmwareRootPath()); + } + + /** + * 棰勫垱寤簀son璧勬簮鏂囦欢澶� + */ + public void createHdlESLocalJsonDirectory() { + //涓枃鏂囦欢澶� + //骞剁綉-閫嗗彉鍣� + this.createFileDir(this.getHdlESLocalJsonZhRootPath(HdlESLocalJsonLogic.DeviceModel.INV));//骞剁綉-閫嗗彉鍣� + this.createFileDir(this.getHdlESLocalJsonZhRootPath(HdlESLocalJsonLogic.DeviceModel.LC));//璐熻浇涓績 + this.createFileDir(this.getHdlESLocalJsonZhRootPath(HdlESLocalJsonLogic.DeviceModel.INV_BMS));//BMS + this.createFileDir(this.getHdlESLocalJsonZhRootPath(HdlESLocalJsonLogic.DeviceModel.INV_BATTERY));//鐢垫睜鍖� + //绂荤嚎-閫嗗彉鍣� + this.createFileDir(this.getHdlESLocalJsonZhRootPath(HdlESLocalJsonLogic.DeviceModel.OFF_INV));//绂荤嚎-閫嗗彉鍣� + this.createFileDir(this.getHdlESLocalJsonZhRootPath(HdlESLocalJsonLogic.DeviceModel.OFF_INV_BMS));//绂荤綉-閫嗗彉鍣�-铏氭嫙BMS + this.createFileDir(this.getHdlESLocalJsonZhRootPath(HdlESLocalJsonLogic.DeviceModel.OFF_INV_BATTERY));//绂荤綉-閫嗗彉鍣�-鐢垫睜鍖� + + //绂荤嚎-3.6kw閫嗗彉鍣� + this.createFileDir(this.getHdlESLocalJsonZhRootPath(HdlESLocalJsonLogic.DeviceModel.OFF_INV_3));//绂荤嚎-閫嗗彉鍣� + this.createFileDir(this.getHdlESLocalJsonZhRootPath(HdlESLocalJsonLogic.DeviceModel.OFF_INV_BMS_3));//绂荤綉-閫嗗彉鍣�-铏氭嫙BMS + //鐢垫睜鍖呰浆鎹㈠櫒 + this.createFileDir(this.getHdlESLocalJsonZhRootPath(HdlESLocalJsonLogic.DeviceModel.INV_KE_GLE_B5K_BATTERY));//鐢垫睜鍖呰浆鎹㈠櫒 + + + //鑻辨枃鏂囦欢澶� + this.createFileDir(this.getHdlESLocalJsonEnRootPath(HdlESLocalJsonLogic.DeviceModel.INV)); + this.createFileDir(this.getHdlESLocalJsonEnRootPath(HdlESLocalJsonLogic.DeviceModel.LC)); + this.createFileDir(this.getHdlESLocalJsonEnRootPath(HdlESLocalJsonLogic.DeviceModel.INV_BMS)); + this.createFileDir(this.getHdlESLocalJsonEnRootPath(HdlESLocalJsonLogic.DeviceModel.INV_BATTERY)); + //绂荤嚎閫嗗彉鍣� + this.createFileDir(this.getHdlESLocalJsonEnRootPath(HdlESLocalJsonLogic.DeviceModel.OFF_INV));//绂荤嚎-閫嗗彉鍣� + this.createFileDir(this.getHdlESLocalJsonEnRootPath(HdlESLocalJsonLogic.DeviceModel.OFF_INV_BMS));//绂荤綉-閫嗗彉鍣�-铏氭嫙BMS + this.createFileDir(this.getHdlESLocalJsonEnRootPath(HdlESLocalJsonLogic.DeviceModel.OFF_INV_BATTERY));//绂荤綉-閫嗗彉鍣�-鐢垫睜鍖� + + //绂荤嚎-3.6kw閫嗗彉鍣� + this.createFileDir(this.getHdlESLocalJsonEnRootPath(HdlESLocalJsonLogic.DeviceModel.OFF_INV_3));//绂荤嚎-閫嗗彉鍣� + this.createFileDir(this.getHdlESLocalJsonEnRootPath(HdlESLocalJsonLogic.DeviceModel.OFF_INV_BMS_3));//绂荤綉-閫嗗彉鍣�-铏氭嫙BMS + + //鐢垫睜鍖呰浆鎹㈠櫒 + this.createFileDir(this.getHdlESLocalJsonEnRootPath(HdlESLocalJsonLogic.DeviceModel.INV_KE_GLE_B5K_BATTERY));//鐢垫睜鍖呰浆鎹㈠櫒 } @@ -162,7 +248,7 @@ File file = new File(fullPath); if (!file.isDirectory()) { boolean succeed = file.mkdirs(); - System.out.println("鍒涘缓鏂囦欢澶硅矾寰�--->" + file.getAbsolutePath() + "===鍒涘缓鏂囦欢澶圭粨鏋�--->" + succeed); + System.out.println("鍒涘缓鏂囦欢澶硅矾寰�---" + file.getAbsolutePath() + "===鍒涘缓鏂囦欢澶圭粨鏋�---" + succeed); return succeed; } return true; @@ -195,7 +281,7 @@ } // 鍒犻櫎鏂囦欢澶规湰韬� boolean succeed = fileRoot.delete();//鏂囦欢澶圭┖杩欎釜鏂规硶鎵嶆湁鏁� - System.out.println("鍒犻櫎鏂囦欢澶硅矾寰�--->" + fileRoot.getAbsolutePath() + "===鍒犻櫎缁撴灉--->" + succeed); + System.out.println("鍒犻櫎鏂囦欢澶硅矾寰�---" + fileRoot.getAbsolutePath() + "===鍒犻櫎缁撴灉---" + succeed); } catch (Exception e) { System.out.println("鍒犻櫎鏂囦欢澶规湁寮傚父===" + e.getMessage()); } @@ -218,7 +304,7 @@ File file = new File(fullPath); if (!file.exists()) { boolean succeed = file.createNewFile(); - System.out.println("鍒涘缓鏂囦欢璺緞--->" + file.getAbsolutePath() + "===鍒涘缓鏂囦欢缁撴灉--->" + succeed); + System.out.println("鍒涘缓鏂囦欢璺緞---" + file.getAbsolutePath() + "===鍒涘缓鏂囦欢缁撴灉---" + succeed); return succeed; } return true; @@ -239,7 +325,7 @@ File file = new File(fullPath); if (file.exists()) { boolean succeed = file.delete(); - System.out.println("鍒犻櫎鏂囦欢--->" + fullPath + "===缁撴灉--->" + succeed); + System.out.println("鍒犻櫎鏂囦欢---" + fullPath + "===缁撴灉---" + succeed); return succeed; } return true; @@ -270,9 +356,9 @@ d.write(data); d.flush(); d.close(); - System.out.println("鍐欏叆鏂囦欢鎴愬姛--->" + fullPath); + System.out.println("鍐欏叆鏂囦欢鎴愬姛---" + fullPath); } catch (Exception e) { - System.out.println("鍐欏叆鏂囦欢鏈夊紓甯�--->" + e.getMessage()); + System.out.println("鍐欏叆鏂囦欢鏈夊紓甯�---" + e.getMessage()); } } @@ -311,15 +397,43 @@ d.flush(); d.close(); if (file.length() > 1024 * 1024 * mDataSize) { - //鏂囦欢澶т簬1m,鍒犻櫎鏂囦欢鍓�10鏉℃棩蹇� - this.delFileLien(fullPath, 10); + //鏂囦欢澶т簬1m,鍒犻櫎鏂囦欢鍓�100鏉℃棩蹇� + this.delFileLien(fullPath, 100); } - System.out.println("鍐欏叆涓�琛屾暟鎹埌鏂囦欢鎴愬姛--->" + dataLine); +// System.out.println("鍐欏叆涓�琛屾暟鎹埌鏂囦欢鎴愬姛---" + dataLine); } catch (Exception e) { - System.out.println("鍐欏叆涓�琛屾暟鎹埌鏂囦欢鏈夊紓甯�--->" + e.getMessage()); + System.out.println("鍐欏叆涓�琛屾暟鎹埌鏂囦欢鏈夊紓甯�---" + e.getMessage()); } } + + /** + * 璇诲彇鏂囦欢 + * + * @param filePath 鍏ㄨ矾寰� + * @return 鏁版嵁 + */ + public byte[] readFileByte1(String filePath) { + try { + if (!isBoolean(filePath)) { + return null; + } + File f = new File(filePath); + if (!f.exists()) { + return null; + } + FileInputStream fis = new FileInputStream(f); + byte[] bytes = FileUtils.readFileToByteArray(f);//杩欎釜鏂规硶涓嶅吋鐢╝ndroid 6.0 + fis.close(); + System.out.println("璇诲彇鏂囦欢鎴愬姛---" + filePath); + return bytes; + } catch (Exception e1) { + System.out.println("璇诲彇鏂囦欢鏈夊紓甯�---" + e1.getMessage()); + return null; + } + + } + /** * 璇诲彇鏂囦欢 @@ -337,12 +451,16 @@ return null; } FileInputStream fis = new FileInputStream(f); - byte[] bytes = FileUtils.readFileToByteArray(f); + BufferedInputStream bis = new BufferedInputStream(fis); + int fileLength = (int) f.length(); + byte[] bytes = new byte[fileLength]; + int len = bis.read(bytes); + bis.close(); fis.close(); - System.out.println("璇诲彇鏂囦欢鎴愬姛--->" + filePath); + System.out.println("璇诲彇鏂囦欢鎴愬姛---" + filePath); return bytes; } catch (Exception e1) { - System.out.println("璇诲彇鏂囦欢鏈夊紓甯�--->" + e1.getMessage()); + System.out.println("璇诲彇鏂囦欢鏈夊紓甯�---" + e1.getMessage()); return null; } @@ -385,7 +503,7 @@ fileLength = f.length(); return new FileInputStream(f); } catch (Exception e1) { - System.out.println("璇诲彇鏂囦欢鏈夊紓甯�--->" + e1.getMessage()); + System.out.println("璇诲彇鏂囦欢鏈夊紓甯�---" + e1.getMessage()); return null; } @@ -434,6 +552,34 @@ } /** + * 鎵撳紑璧勬簮鏂囦欢 + * + * @param fileName 鏂囦欢鍚� + * @param context 涓婁笅鏂� + * @return 杩斿洖json瀛楃涓� + */ + public String openAssetsFileJson(String fileName, Context context) { + if (TextUtils.isEmpty(fileName)) { + return ""; + } + //灏唈son鏁版嵁鍙樻垚瀛楃涓� + StringBuilder stringBuilder = new StringBuilder(); + try { + //鑾峰彇assets璧勬簮绠$悊鍣� + AssetManager assetManager = context.getAssets(); + //閫氳繃绠$悊鍣ㄦ墦寮�鏂囦欢骞惰鍙� + BufferedReader bf = new BufferedReader(new InputStreamReader(assetManager.open(fileName))); + String line; + while ((line = bf.readLine()) != null) { + stringBuilder.append(line); + } + } catch (IOException e) { + e.printStackTrace(); + } + return stringBuilder.toString(); + } + + /** * 鍒ゆ柇璺緞鏄惁鍚堟硶 * * @param path 璺緞 @@ -441,7 +587,7 @@ */ public boolean isBoolean(String path) { if (path.contains("//") || path.contains("\\")) { - System.out.println("鏃犳晥鏂囦欢璺緞--->" + path); + System.out.println("鏃犳晥鏂囦欢璺緞---" + path); return false; } return true; -- Gitblit v1.8.0