From 74d51db562aea6e2d8cb8f861a5eeeeb750696fb Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期二, 19 十二月 2023 20:57:47 +0800
Subject: [PATCH] 2023年12月19日20:57:41

---
 app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java |   27 ++++++++++++++++-----------
 1 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
index d8eb013..cdf638f 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -487,6 +487,7 @@
         String version = getKeyValue("version", getKeyValue("data", data));//鍥轰欢鐗堟湰
         String hardwareModel = getKeyValue("hardwareModel", getKeyValue("data", data));//浜戠涓婃枃浠禡D5
         String imageId = getKeyValue("imageId", getKeyValue("data", data));//鍥轰欢闀滃儚id
+        String module = "FW#" + imageId;
 
         //鍗囩骇鏈湴浼樺厛->浜戠鍗囩骇
         boolean isLocalConnect = HdlDeviceLogic.getInstance().isLocalConnect(deviceMac);
@@ -495,21 +496,24 @@
             //1,寤虹珛鏈湴鏈嶅姟锛�
             //2,鍛婅瘔缃戝叧鎵嬫満ip鍜岀鍙o紱
             //瀹炰緥鍖� 鑾峰彇ip 鍦板潃
+            if (HdlOtaLogic.getInstance().mServiceStart) {
+                HdlOtaLogic.getInstance().unLocalService();
+            }
             HdlOtaLogic.getInstance().startLocalService(new ServiceConnection() {
                 @Override
                 public void onServiceConnected(ComponentName name, IBinder service) {
                     //鏈湴鍗囩骇鍥轰欢鏂囦欢璺緞
                     String firmwarePathFileName = HdlFileLogic.getInstance().getFirmwarePathFileName(oid, imageId, version);
-                    String data = HdlFileLogic.getInstance().readFile(firmwarePathFileName);
-                    if (TextUtils.isEmpty(data)) {
+                    byte[] data = HdlFileLogic.getInstance().readFileByte(firmwarePathFileName);
+                    if (data == null || data.length == 0) {
                         uniCallbackData(null, -2, "鏈湴鎵句笉鍒板崌绾у浐浠舵枃浠�,璇蜂笅杞藉ソ鍥轰欢鏂囦欢,鍐嶉噸鏂板崌绾�.", callback);
                         return;
                     }
                     String md5 = HDLMD5Utils.encodeMD5(data);//缃戝叧鍥轰欢闇�瑕�
                     //鍗囩骇鍥轰欢鏂囦欢鍦板潃
-                    String upgradeFileLocalPathUrl = AppManagerUtils.getAppManager().getIPAddress(HDLApp.getInstance()) + ":" + MyNanoHttpServer.HTTP_PORT + firmwarePathFileName;
+                    String upgradeFileLocalPathUrl = "http://" + AppManagerUtils.getAppManager().getIPAddress(HDLApp.getInstance()) + ":" + MyNanoHttpServer.HTTP_PORT + firmwarePathFileName;
                     //閫氱煡缁欑綉鍏冲崌绾у浐浠舵枃浠跺湴鍧�绛変俊鎭�
-                    HdlOtaLogic.getInstance().pushUpgradePacketInfo(deviceMac, oid, hardwareModel, version, data.length() + "", upgradeFileLocalPathUrl, md5, new LinkCallBack<String>() {
+                    HdlOtaLogic.getInstance().pushUpgradePacketInfo(deviceMac, oid, module, version, data.length + "", upgradeFileLocalPathUrl, md5, new LinkCallBack<String>() {
                         @Override
                         public void onSuccess(String obj) {
                             HdlLogLogic.print("閫氱煡缁欑綉鍏冲崌绾у浐浠舵枃浠跺湴鍧�鎴愬姛.", true);
@@ -681,9 +685,10 @@
         String deviceMac = getKeyValue("mac", getKeyValue("data", data));//閫嗗彉鍣ㄨ澶噈ac锛堟煡鎵緎ocket锛�
         String deviceOid = getKeyValue("oid", getKeyValue("data", data));//閫嗗彉鍣ㄨ澶噊id
         String driverVersionId = getKeyValue("driverVersionId", getKeyValue("data", data));//椹卞姩鐗堟湰id
-        String module = getKeyValue("module", getKeyValue("data", data));//妯″潡淇℃伅
         String version = getKeyValue("version", getKeyValue("data", data));//椹卞姩鐗堟湰鍙�
         String driverCode = getKeyValue("driverCode", getKeyValue("data", data));//椹卞姩缂栫爜
+        String imageId = getKeyValue("imageId", getKeyValue("data", data));//鍥轰欢闀滃儚id
+        String module = driverCode + "#" + imageId;
         //鍗囩骇鏈湴浼樺厛->浜戠鍗囩骇
         boolean isLocalConnect = HdlDeviceLogic.getInstance().isLocalConnect(deviceMac);
         if (isLocalConnect) {
@@ -696,24 +701,24 @@
                 public void onServiceConnected(ComponentName name, IBinder service) {
                     //鏈湴鍗囩骇椹卞姩鏂囦欢璺緞
                     String drivePathFileName = HdlFileLogic.getInstance().getDrivePathFileName(driverCode, version);
-                    String data = HdlFileLogic.getInstance().readFile(drivePathFileName);
-                    if (TextUtils.isEmpty(data)) {
+                    byte[] data = HdlFileLogic.getInstance().readFileByte(drivePathFileName);
+                    if (data == null || data.length == 0) {
                         uniCallbackData(null, -2, "鏈湴鎵句笉鍒板崌绾ч┍鍔ㄦ枃浠�,璇蜂笅杞藉ソ椹卞姩鏂囦欢,鍐嶉噸鏂板崌绾�.", callback);
                         return;
                     }
                     String md5 = HDLMD5Utils.encodeMD5(data);//缃戝叧椹卞姩闇�瑕�
                     //鍗囩骇椹卞姩鏂囦欢鍦板潃
-                    String upgradeFileLocalPathUrl = AppManagerUtils.getAppManager().getIPAddress(HDLApp.getInstance()) + ":" + MyNanoHttpServer.HTTP_PORT + drivePathFileName;
+                    String upgradeFileLocalPathUrl = "http://" + AppManagerUtils.getAppManager().getIPAddress(HDLApp.getInstance()) + ":" + MyNanoHttpServer.HTTP_PORT + drivePathFileName;
                     //閫氱煡缁欑綉鍏冲崌绾ч┍鍔ㄦ枃浠跺湴鍧�绛変俊鎭�
-                    HdlOtaLogic.getInstance().pushUpgradePacketInfo(deviceMac, deviceOid, module, version, data.length() + "", upgradeFileLocalPathUrl, md5, new LinkCallBack<String>() {
+                    HdlOtaLogic.getInstance().pushUpgradePacketInfo(deviceMac, deviceOid, module, version, data.length + "", upgradeFileLocalPathUrl, md5, new LinkCallBack<String>() {
                         @Override
                         public void onSuccess(String obj) {
-                            HdlLogLogic.print("閫氱煡缁欑綉鍏冲崌绾ч┍鍔ㄦ枃浠跺湴鍧�鎴愬姛.", false);
+                            HdlLogLogic.print("閫氱煡缁欑綉鍏冲崌绾ч┍鍔ㄦ枃浠跺湴鍧�鎴愬姛.", true);
                         }
 
                         @Override
                         public void onError(HDLLinkException e) {
-                            HdlLogLogic.print("閫氱煡缁欑綉鍏冲崌绾ч┍鍔ㄦ枃浠跺湴鍧�澶辫触,鏃犳硶鍗囩骇.", false);
+                            HdlLogLogic.print("閫氱煡缁欑綉鍏冲崌绾ч┍鍔ㄦ枃浠跺湴鍧�澶辫触,鏃犳硶鍗囩骇.", true);
                             uniCallbackData(null, -2, "閫氱煡缁欑綉鍏冲崌绾ч┍鍔ㄦ枃浠跺湴鍧�澶辫触,鏃犳硶鍗囩骇,", callback);
                         }
                     });

--
Gitblit v1.8.0