From 734babb3a7348050fdffe845c560ba8b0b218152 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期一, 20 十一月 2023 18:24:43 +0800
Subject: [PATCH] 2023年11月20日18:24:36

---
 app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java |  113 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 107 insertions(+), 6 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 ff4307a..78ed634 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -10,6 +10,7 @@
 import com.hdl.linkpm.sdk.ota.bean.CloudDeviceFirmwaresBean;
 import com.hdl.linkpm.sdk.ota.bean.CloudGatewayDriversBean;
 import com.hdl.linkpm.sdk.ota.bean.DeviceFirmwareBean;
+import com.hdl.linkpm.sdk.ota.bean.DownloadUrlBean;
 import com.hdl.linkpm.sdk.ota.bean.GatewayDriverBean;
 import com.hdl.photovoltaic.HDLApp;
 import com.hdl.photovoltaic.bean.ModBusBean;
@@ -210,6 +211,16 @@
                         this.uniGetNewDeviceFirmwares(data, callback);
                     }
                     break;
+                    //璁惧鏈湴鍥轰欢鍒楄〃
+                    case HDLUniMP.UNI_EVENT_REPLY_OTA_FIRMWARES_LOCAL: {
+                        this.uniGetLocalFirmwares(data, callback);
+                    }
+                    break;
+                    //璁惧鍥轰欢涓嬭浇
+                    case HDLUniMP.UNI_EVENT_REPLY_OTA_FIRMWARES_DOWNLOAD: {
+                        this.uniDeviceFirmwareDownload(data, callback);
+                    }
+                    break;
                     //璁惧鍥轰欢鍗囩骇
                     case HDLUniMP.UNI_EVENT_REPLY_OTA_FIRMWARES_UPGRADE: {
                         this.uniUpgradeDeviceFirmware(data, callback);
@@ -223,6 +234,16 @@
                     //璁惧鏂伴┍鍔ㄥ垪琛�
                     case HDLUniMP.UNI_EVENT_REPLY_OTA_DRIVER_NEW: {
                         this.uniGetNewGatewayDrivers(data, callback);
+                    }
+                    break;
+                    //璁惧鏈湴椹卞姩鍒楄〃
+                    case HDLUniMP.UNI_EVENT_REPLY_OTA_DRIVER_LOCAL: {
+                        this.uniGetLocalDrivers(data, callback);
+                    }
+                    break;
+                    //璁惧椹卞姩涓嬭浇
+                    case HDLUniMP.UNI_EVENT_REPLY_OTA_DRIVER_DOWNLOAD: {
+                        this.uniGatewayDriverDownload(data, callback);
                     }
                     break;
                     //璁惧椹卞姩鍗囩骇
@@ -338,14 +359,23 @@
     }
 
     /**
-     * 鍚戜簯绔彂璧枫�愯澶囧浐浠躲�戝崌绾TA鎸囦护
+     * 鑾峰彇銆愯澶囨湰鍦板浐浠躲�戝垪琛�
      */
-    private void uniUpgradeDeviceFirmware(Object data, DCUniMPJSCallback callback) {
+    private void uniGetLocalFirmwares(Object data, DCUniMPJSCallback callback) {
+        String hardwareModel = getKeyValue("hardwareModel", getKeyValue("data", data));//纭欢鍨嬪彿
+        String osImageId = getKeyValue("osImageId", getKeyValue("data", data));//绯荤粺闀滃儚id
+        String firmwareVersionId = getKeyValue("firmwareVersionId", getKeyValue("data", data));//绯荤粺闀滃儚id
+    }
+
+    /**
+     * 鍚戜簯绔彂璧枫�愯澶囧浐浠躲�戜笅杞芥寚浠�
+     */
+    private void uniDeviceFirmwareDownload(Object data, DCUniMPJSCallback callback) {
         String deviceOidId = getKeyValue("deviceOidId", getKeyValue("data", data));//璁惧id
         String firmwareVersionId = getKeyValue("firmwareVersionId", getKeyValue("data", data));//鍥轰欢鐗堟湰id
-        HdlOtaLogic.getInstance().upgradeDeviceFirmware(deviceOidId, firmwareVersionId, new CloudCallBeak<Boolean>() {
+        HdlOtaLogic.getInstance().getDeviceFirmwareDownloadUrl(firmwareVersionId, new CloudCallBeak<DownloadUrlBean>() {
             @Override
-            public void onSuccess(Boolean obj) {
+            public void onSuccess(DownloadUrlBean obj) {
                 uniCallbackData(obj, callback);
             }
 
@@ -354,6 +384,37 @@
                 uniCallbackData(null, e.getCode(), e.getMsg(), callback);
             }
         });
+    }
+
+    /**
+     * 鍚戜簯绔彂璧枫�愯澶囧浐浠躲�戝崌绾TA鎸囦护
+     */
+    private void uniUpgradeDeviceFirmware(Object data, DCUniMPJSCallback callback) {
+
+        String deviceMac = getKeyValue("mac", getKeyValue("data", data));//缃戝叧璁惧mac锛堟煡鎵緎ocket锛�
+        String deviceOidId = getKeyValue("deviceOidId", getKeyValue("data", data));//璁惧id
+        String firmwareVersionId = getKeyValue("firmwareVersionId", getKeyValue("data", data));//鍥轰欢鐗堟湰id
+
+        boolean isLocalConnect = HdlDeviceLogic.getInstance().isLocalConnect(deviceMac);
+        if (isLocalConnect) {
+            //鏈湴
+            //1,寤虹珛鏈湴鏈嶅姟锛�
+            // 2锛屽憡璇夌綉鍏虫墜鏈篿p鍜岀鍙o紱
+
+        } else {
+            //浜戠
+            HdlOtaLogic.getInstance().upgradeDeviceFirmware(deviceOidId, firmwareVersionId, new CloudCallBeak<Boolean>() {
+                @Override
+                public void onSuccess(Boolean obj) {
+                    uniCallbackData(obj, callback);
+                }
+
+                @Override
+                public void onFailure(HDLException e) {
+                    uniCallbackData(null, e.getCode(), e.getMsg(), callback);
+                }
+            });
+        }
     }
 
     /**
@@ -396,9 +457,20 @@
     }
 
     /**
-     * 鍚戜簯绔彂璧枫�愯澶囬┍鍔ㄣ�戝崌绾TA鎸囦护
+     * 鑾峰彇銆愯澶囨湰鍦伴┍鍔ㄣ�戝垪琛�
      */
-    private void uniUpgradeGatewayDriver(Object data, DCUniMPJSCallback callback) {
+    private void uniGetLocalDrivers(Object data, DCUniMPJSCallback callback) {
+        String driveCode = getKeyValue("driveCode", getKeyValue("data", data));//椹卞姩缂栧彿鎴栭┍鍔ㄥ悕绉�
+        String osImageId = getKeyValue("osImageId", getKeyValue("data", data));//椹卞姩绫诲瀷id
+        String driverVersionId = getKeyValue("driverVersionId", getKeyValue("data", data));//椹卞姩绫诲瀷id
+    }
+
+    /**
+     * 鍚戜簯绔彂璧枫�愯澶囬┍鍔ㄣ�戜笅杞芥寚浠�
+     */
+    private void uniGatewayDriverDownload(Object data, DCUniMPJSCallback callback) {
+
+
         String deviceOid = getKeyValue("oid", getKeyValue("data", data));//缃戝叧璁惧oid
         String driverVersionId = getKeyValue("driverVersionId", getKeyValue("data", data));//椹卞姩鐗堟湰id
         HdlOtaLogic.getInstance().upgradeGatewayDriver(deviceOid, driverVersionId, new CloudCallBeak<Boolean>() {
@@ -415,6 +487,35 @@
     }
 
     /**
+     * 鍚戜簯绔彂璧枫�愯澶囬┍鍔ㄣ�戝崌绾TA鎸囦护
+     */
+    private void uniUpgradeGatewayDriver(Object data, DCUniMPJSCallback callback) {
+
+        String deviceMac = getKeyValue("mac", getKeyValue("data", data));//缃戝叧璁惧mac锛堟煡鎵緎ocket锛�
+        String deviceOid = getKeyValue("oid", getKeyValue("data", data));//缃戝叧璁惧oid
+        String driverVersionId = getKeyValue("driverVersionId", getKeyValue("data", data));//椹卞姩鐗堟湰id
+        boolean isLocalConnect = HdlDeviceLogic.getInstance().isLocalConnect(deviceMac);
+        if (isLocalConnect) {
+            //鏈湴
+            //1,寤虹珛鏈湴鏈嶅姟锛�
+            // 2锛屽憡璇夌綉鍏虫墜鏈篿p鍜岀鍙o紱
+
+        } else {
+            HdlOtaLogic.getInstance().upgradeGatewayDriver(deviceOid, driverVersionId, new CloudCallBeak<Boolean>() {
+                @Override
+                public void onSuccess(Boolean obj) {
+                    uniCallbackData(obj, callback);
+                }
+
+                @Override
+                public void onFailure(HDLException e) {
+                    uniCallbackData(null, e.getCode(), e.getMsg(), callback);
+                }
+            });
+        }
+    }
+
+    /**
      * 閫嗗彉鍣ㄦ竻绌轰綇瀹卛d
      *
      * @param data     uni鏁版嵁

--
Gitblit v1.8.0