From 7fdae87bc3de46b5b012f8987c6902cd8b054323 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期四, 16 五月 2024 18:17:11 +0800
Subject: [PATCH] 2024年05月16日18:17:09

---
 app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java |  164 ++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 126 insertions(+), 38 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 1975031..f764262 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -34,6 +34,7 @@
 import com.hdl.photovoltaic.config.UserConfigManage;
 import com.hdl.photovoltaic.internet.HttpServer.MyNanoHttpServer;
 import com.hdl.photovoltaic.internet.TcpClient;
+import com.hdl.photovoltaic.internet.api.HttpApi;
 import com.hdl.photovoltaic.internet.api.TopicApi;
 import com.hdl.photovoltaic.listener.CloudCallBeak;
 import com.hdl.photovoltaic.listener.LinkCallBack;
@@ -43,6 +44,7 @@
 import com.hdl.photovoltaic.ui.bean.Geolocation;
 import com.hdl.photovoltaic.ui.bean.LinkBean;
 import com.hdl.photovoltaic.ui.bean.OidBean;
+import com.hdl.photovoltaic.ui.bean.UnCountBean;
 import com.hdl.photovoltaic.ui.me.AsRegardsActivity;
 import com.hdl.photovoltaic.ui.me.PersonalDataActivity;
 import com.hdl.photovoltaic.ui.me.SetActivity;
@@ -63,6 +65,7 @@
 import com.hdl.sdk.link.core.connect.HDLModBusConnect;
 import com.hdl.sdk.link.core.connect.HDLUdpConnect;
 import com.hdl.sdk.link.gateway.HDLLinkLocalGateway;
+import com.huawei.hms.api.Api;
 
 import org.greenrobot.eventbus.EventBus;
 import org.json.JSONObject;
@@ -89,6 +92,8 @@
  */
 public class HdlUniLogic implements HDLUniMPSDKManager.IOnOtherUniMPEventCallBack {
     private static volatile HdlUniLogic sHdlUniLogic;
+
+    public final static String separator="---";
 
     /**
      * 鑾峰彇褰撳墠瀵硅薄
@@ -126,8 +131,8 @@
             }
             String type = getKeyValue("type", data);//灏忕被
             String logTag = getKeyValue("logTag", data);//鏍囪uni鎸囦护
-            String mode_type = "澶х被->" + topic + "--->" + "灏忕被->" + type;//鐢ㄦ潵鎵撳嵃鐨�
-            HdlLogLogic.print(logTag + ":" + "uni--->鍙戦��--->" + mode_type + "\r\n" + data, true);
+            String mode_type = "澶х被-" + topic + "---" + "灏忕被-" + type;//鐢ㄦ潵鎵撳嵃鐨�
+            HdlLogLogic.print(logTag + ":" + "uni---鍙戦��---" + mode_type + "\r\n" + data, true);
             if (HDLUniMP.UNI_EVENT_REPLY_USER_MODEL.equals(topic)) {
                 //鐢ㄦ埛妯″潡
                 switch (type) {
@@ -236,7 +241,6 @@
                     case HDLUniMP.UNI_EVENT_REPLY_DEVICE_TIME: {
                         this.uniGetInverterTime(mode_type, data, callback);
                     }
-
                     break;
                     //閫嗗彉鍣ㄦ椂闂寸紪杈�
                     case HDLUniMP.UNI_EVENT_REPLY_DEVICE_TIME_EDIT: {
@@ -268,6 +272,11 @@
                         this.uniGetMessageNumber(mode_type, data, callback);
                     }
                     break;
+                    //鍒濆鍖栭�嗗彉鍣�
+                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_INITIALIZEINVERTER: {
+                        this.setInitializeGateway(mode_type, data, callback);
+                    }
+                    break;
 
                 }
 
@@ -275,36 +284,57 @@
                 WifiUtils wifiUtils = WifiUtils.getInstance();
                 //wifi妯″潡
                 switch (type) {
-                    //鑾峰彇wifi鍒楄〃
-                    case HDLUniMP.UNI_EVENT_REPLY_WIFI_LIST: {
+                    //鑾峰彇鎵嬫満wifi鍒楄〃
+                    case HDLUniMP.UNI_EVENT_REPLY_PHONE_WIFI_LIST: {
                         if (callback != null) {
                             uniCallbackData(mode_type, wifiUtils.getScanResult(), callback);
                         }
                     }
                     break;
-                    //褰撳墠wifi璇︽儏
-                    case HDLUniMP.UNI_EVENT_REPLY_WIFI_PHONE_INFO: {
+                    //鑾峰彇鎵嬫満褰撳墠wifi璇︽儏
+                    case HDLUniMP.UNI_EVENT_REPLY_PHONE_WIFI_INFO: {
                         if (callback != null) {
                             uniCallbackData(mode_type, wifiUtils.getCurrentConnectWifiInfo(), callback);
                         }
                     }
                     break;
-                    //閰嶇疆WiFi淇℃伅缁欓�嗗彉鍣�
-                    case HDLUniMP.UNI_EVENT_REPLY_WIFI_SET_DEVICE: {
-                        String mac = getKeyValue("mac", getKeyValue("data", data));//
-                        String wif_type = getKeyValue("wif_type", getKeyValue("data", data));//1锛氱儹鐐�,2锛氭棤绾縲ifi,3锛氫互澶綉
-                        String ssid = getKeyValue("ssid", getKeyValue("data", data));//
-                        String password = getKeyValue("password", getKeyValue("data", data));//
-                        startTcpThreadSendAccountAndPassword(mode_type, ssid, password, callback);
-
-                    }
-                    break;
                     //鎵撳紑鎵嬫満Wifi璁剧疆鐣岄潰
-                    case HDLUniMP.UNI_EVENT_REPLY_OPEN_WIFI_SETTINGS: {
+                    case HDLUniMP.UNI_EVENT_REPLY_PHONE_OPEN_WIFI_SETTINGS: {
                         Intent intent = new Intent(Settings.ACTION_WIFI_SETTINGS);
+                        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                         HDLApp.getInstance().startActivity(intent);
                     }
+                    //閫嗗彉鍣╓iFi淇℃伅閰嶇疆
+                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_WIFI_SET: {
+                        uniGetAndSetNetwork(mode_type, data, TopicApi.DELETING_GATEWAY_WIFI_EDIT, callback);
+                    }
                     break;
+                    //閫嗗彉鍣╓iFi淇℃伅鑾峰彇
+                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_WIFI_GET: {
+                        uniGetAndSetNetwork(mode_type, data, TopicApi.DELETING_GATEWAY_WIFI_GET, callback);
+                    }
+                    break;
+                    //閫嗗彉鍣ㄧ儹鐐归厤缃�
+                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_HOTSPOT_SET: {
+                        uniGetAndSetNetwork(mode_type, data, TopicApi.DELETING_GATEWAY_HOTSPOT_EDIT, callback);
+                    }
+                    break;
+                    //閫嗗彉鍣ㄧ儹鐐硅幏鍙�
+                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_HOTSPOT_GET: {
+                        uniGetAndSetNetwork(mode_type, data, TopicApi.DELETING_GATEWAY_HOTSPOT_GET, callback);
+                    }
+                    break;
+                    //閫嗗彉鍣ㄤ互澶綉閰嶇疆
+                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_ETHERNET_SET: {
+                        uniGetAndSetNetwork(mode_type, data, TopicApi.DELETING_GATEWAY_ETHERNET_EDIT, callback);
+                    }
+                    break;
+                    //閫嗗彉鍣ㄤ互澶綉鑾峰彇
+                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_ETHERNET_GET: {
+                        uniGetAndSetNetwork(mode_type, data, TopicApi.DELETING_GATEWAY_ETHERNET_GET, callback);
+                    }
+                    break;
+
                 }
             } else if (HDLUniMP.UNI_EVENT_REPLY_OTA_MODEL.equals(topic)) {
                 //OTA鍗囩骇妯″潡
@@ -427,6 +457,7 @@
                         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                         intent.setClass(HDLApp.getInstance(), SetActivity.class);
                         HDLApp.getInstance().startActivity(intent);
+
                     }
                     break;
 
@@ -460,7 +491,7 @@
                     //涓撻棬鏀堕泦uni鏃ュ織
                     case HDLUniMP.UNI_EVENT_REPLY_OTHER_UNI_LOG: {
                         String customizeContentFormat = getKeyValue("customizeContentFormat", getKeyValue("data", data));
-                        HdlLogLogic.print("uni--->log--->" + customizeContentFormat, true);
+                        HdlLogLogic.print("uni---log---" + customizeContentFormat, true);
 
                     }
                     break;
@@ -483,7 +514,7 @@
             }
 
         } catch (Exception e) {
-            HdlLogLogic.print("uni--->鍙戦��--->" + e.getMessage(), true);
+            HdlLogLogic.print("uni---鍙戦��---" + e.getMessage(), true);
         }
 
     }
@@ -498,7 +529,7 @@
     public void openUniMP(String path, JSONObject jsonObject) {
         JSONObject json = this.createdJSONObject(jsonObject, true);
         HDLUniMPSDKManager.getInstance().openUniMP(HDLUniMP.UNI_APP_ID, path, json, HdlUniLogic.this);
-        HdlLogLogic.print("uni--->缁勮uni鍙戦�佹暟鎹牸寮�--->" + json, false);
+        HdlLogLogic.print("uni---缁勮uni鍙戦�佹暟鎹牸寮�---" + json, false);
     }
 
     /**
@@ -512,7 +543,7 @@
         try {
             HDLUniMPSDKManager.getInstance().sendUniMPEvent(HDLUniMP.UNI_APP_ID, topic, getJSONObject(callBackBaseBean));
         } catch (Exception e) {
-            HdlLogLogic.print("uni--->鍘熺敓涓诲姩鍚戝皬绋嬪簭鍙戦�侀�氱煡浜嬩欢--->" + e.getMessage(), false);
+            HdlLogLogic.print("uni---鍘熺敓涓诲姩鍚戝皬绋嬪簭鍙戦�侀�氱煡浜嬩欢---" + e.getMessage(), false);
         }
     }
 
@@ -525,6 +556,41 @@
     //endregion
 
     //region ******uni鎺ュ彛鏂规硶******
+
+
+    /**
+     * 鑾峰彇鎴栬�呴厤缃�嗗彉鍣ㄧ綉缁滐紙鍖呮嫭閫嗗彉鍣ㄧ儹鐐癸紝wifi锛屼互澶綉锛変俊鎭�
+     */
+    private void uniGetAndSetNetwork(String type, Object data, String TopicApi, DCUniMPJSCallback callback) {
+        String mac = getKeyValue("mac", getKeyValue("data", data));
+        JsonObject jObject = null;
+        String attribute_data = getKeyValue("attribute_data", getKeyValue("data", data));
+        if (!TextUtils.isEmpty(attribute_data)) {
+            try {
+                jObject = new Gson().fromJson(attribute_data, JsonObject.class);
+            } catch (Exception ignored) {
+                jObject = new JsonObject();
+            }
+        }
+        //瑙e瘑璐熻浇鏁版嵁(鍐欏瘑閽ョ粰缃戝叧涓�瀹氭槸鏄庢枃锛屽洜涓洪偅鏃剁綉鍏宠繕娌℃湁瀵嗛挜)
+        TcpClient.getInstance().sendDataToLinkGateway(mac, false, TopicApi, jObject, "", new HDLLinkCallBack() {
+            @Override
+            public void onSuccess(String msg) {
+                if (callback != null) {
+                    uniCallbackData(type, msg, callback);
+                }
+
+            }
+
+            @Override
+            public void onError(HDLLinkException e) {
+                if (callback != null) {
+                    uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
+                }
+            }
+        });
+    }
+
 
     /**
      * 鑾峰彇浣嶇疆淇℃伅,鍖呮嫭缁忕含搴�
@@ -730,7 +796,7 @@
             @Override
             public void onSuccess(Boolean b) {
                 if (b) {
-                    HdlLogLogic.print("鏈湴鍗囩骇--->", true);
+                    HdlLogLogic.print("鏈湴鍗囩骇---", true);
                     //鏈湴
                     //1,寤虹珛鏈湴鏈嶅姟锛�
                     //2,鍛婅瘔缃戝叧鎵嬫満ip鍜岀鍙o紱
@@ -768,7 +834,7 @@
                         }
                     });
                 } else {
-                    HdlLogLogic.print("鍦ㄧ嚎鍗囩骇--->", true);
+                    HdlLogLogic.print("鍦ㄧ嚎鍗囩骇---", true);
                     //杩滅▼鍗囩骇闇�瑕佹娴嬪湪閫嗗彉鍣ㄦ湁娌℃湁杩炴帴涓婁簯
                     HdlDeviceLogic.getInstance().checkInverterConnectedCloud(homeId, deviceMac, new CloudCallBeak<CloudInverterDeviceBean>() {
                         @Override
@@ -807,7 +873,7 @@
 
             @Override
             public void onFailure(HDLException e) {
-                HdlLogLogic.print("鍦ㄧ嚎鍗囩骇--->", true);
+                HdlLogLogic.print("鍦ㄧ嚎鍗囩骇---", true);
                 //杩滅▼鍗囩骇闇�瑕佹娴嬪湪閫嗗彉鍣ㄦ湁娌℃湁杩炴帴涓婁簯
                 HdlDeviceLogic.getInstance().checkInverterConnectedCloud(homeId, deviceMac, new CloudCallBeak<CloudInverterDeviceBean>() {
                     @Override
@@ -982,7 +1048,7 @@
             @Override
             public void onSuccess(Boolean b) {
                 if (b) {
-                    HdlLogLogic.print("鏈湴鍗囩骇--->", true);
+                    HdlLogLogic.print("鏈湴鍗囩骇---", true);
                     //鏈湴
                     //1,寤虹珛鏈湴鏈嶅姟锛�
                     // 2锛屽憡璇夌綉鍏虫墜鏈篿p鍜岀鍙o紱
@@ -1020,7 +1086,7 @@
                         }
                     });
                 } else {
-                    HdlLogLogic.print("鍦ㄧ嚎鍗囩骇--->", true);
+                    HdlLogLogic.print("鍦ㄧ嚎鍗囩骇---", true);
                     //杩滅▼鍗囩骇闇�瑕併�愭娴嬨�戝湪閫嗗彉鍣ㄦ湁娌℃湁杩炴帴涓婁簯
                     HdlDeviceLogic.getInstance().checkInverterConnectedCloud(homeId, deviceMac, new CloudCallBeak<CloudInverterDeviceBean>() {
                         @Override
@@ -1059,7 +1125,7 @@
 
             @Override
             public void onFailure(HDLException e) {
-                HdlLogLogic.print("鍦ㄧ嚎鍗囩骇--->", true);
+                HdlLogLogic.print("鍦ㄧ嚎鍗囩骇---", true);
                 //杩滅▼鍗囩骇闇�瑕併�愭娴嬨�戝湪閫嗗彉鍣ㄦ湁娌℃湁杩炴帴涓婁簯
                 HdlDeviceLogic.getInstance().checkInverterConnectedCloud(homeId, deviceMac, new CloudCallBeak<CloudInverterDeviceBean>() {
                     @Override
@@ -1265,9 +1331,9 @@
      */
     private void uniGetMessageNumber(String type, Object data, DCUniMPJSCallback callback) {
         String homeId = getKeyValue("homeId", getKeyValue("data", data));
-        HdlMessageLogic.getInstance().getMessageUntreatedCount(homeId, new CloudCallBeak<String>() {
+        HdlMessageLogic.getInstance().getMessageUntreatedCount(homeId, new CloudCallBeak<UnCountBean>() {
             @Override
-            public void onSuccess(String data) {
+            public void onSuccess(UnCountBean data) {
                 uniCallbackData(type, data, callback);
             }
 
@@ -1720,6 +1786,28 @@
         ).start();
     }
 
+    /**
+     * 鍒濆鍖栦綘閫嗗彉鍣�
+     *
+     * @param type     璐﹀彿
+     * @param data     uni璇锋眰鏁版嵁
+     * @param callback uni鍥炶皟
+     */
+    public void setInitializeGateway(String type, Object data, DCUniMPJSCallback callback) {
+        String mac = getKeyValue("mac", getKeyValue("data", data));
+        HdlDeviceLogic.getInstance().initializeInverter(mac, new LinkCallBack<Boolean>() {
+            @Override
+            public void onSuccess(Boolean obj) {
+                uniCallbackData(type, obj, callback);
+            }
+
+            @Override
+            public void onError(HDLLinkException e) {
+                uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
+            }
+        });
+    }
+
 
     /**
      * 鍙戦�乵odbus鍗忚鏁版嵁
@@ -1739,7 +1827,7 @@
         String tempData = getKeyValue("data", data);
         if (TextUtils.isEmpty(tempData)) {
             uniCallbackData(type, null, -2, "data鍐呭涓虹┖", callback);
-            //HdlLogLogic.print("data鍐呭涓虹┖--->", false);
+            //HdlLogLogic.print("data鍐呭涓虹┖---", false);
             return;
         }
         ModBusBean modBusBean = new Gson().fromJson(tempData, ModBusBean.class);
@@ -1751,24 +1839,24 @@
 //        }
         if (modBusBean.getMac() == null || modBusBean.getData() == null) {
             uniCallbackData(type, null, -2, "鍙戦�佸け璐�,(mac鎴栬�卭id)涓虹┖", callback);
-            //HdlLogLogic.print("uni--->鍙戦��--->ModBus--->鍙戦�佸け璐�,(mac鎴栬�卭id)涓虹┖." + Arrays.toString(modBusBean.getData()), true);
+            //HdlLogLogic.print("uni---鍙戦��---ModBus---鍙戦�佸け璐�,(mac鎴栬�卭id)涓虹┖." + Arrays.toString(modBusBean.getData()), true);
             return;
         }
 
-        //HdlLogLogic.print("uni--->鍙戦��--->ModBus--->" + Arrays.toString(modBusBean.getData()), true);
+        //HdlLogLogic.print("uni---鍙戦��---ModBus---" + Arrays.toString(modBusBean.getData()), true);
         //鍙戦�乵odbus鍗忚
         HDLModBusConnect.getInstance().Send(modBusBean.getMac(), modBusBean.getData(), new ModbusCallBack() {
             @Override
             public void onSuccess(int[] data) {
                 uniCallbackData(type, data, callback);
-//                HdlLogLogic.print("uni--->鎺ユ敹--->ModBus--->" + Arrays.toString(data), true);
+//                HdlLogLogic.print("uni---鎺ユ敹---ModBus---" + Arrays.toString(data), true);
 
             }
 
             @Override
             public void onError(HDLLinkException e) {
                 uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
-//                HdlLogLogic.print("uni--->鎺ユ敹--->ModBus--->" + e.getMsg() + "(" + e.getCode() + ")", true);
+//                HdlLogLogic.print("uni---鎺ユ敹---ModBus---" + e.getMsg() + "(" + e.getCode() + ")", true);
             }
         });
     }
@@ -1804,7 +1892,7 @@
             uniCallBackBaseBean.setData(data);
             return getJSONObject(uniCallBackBaseBean);
         } catch (Exception e) {
-            HdlLogLogic.print("uni--->缁勮鍙戦�佺粰uni鏁版嵁鏍煎紡鏈夊紓甯�--->" + e.getMessage(), false);
+            HdlLogLogic.print("uni---缁勮鍙戦�佺粰uni鏁版嵁鏍煎紡鏈夊紓甯�---" + e.getMessage(), false);
         }
         return new JSONObject();
     }
@@ -1829,10 +1917,10 @@
             if (callback != null) {
                 callback.invoke(getJSONObject(uniCallBackBaseBean));
 //                callback.invoke(uniCallBackBaseBean);
-                HdlLogLogic.print("uni--->鍥炲--->" + type + "--->" + new Gson().toJson(uniCallBackBaseBean), true);
+                HdlLogLogic.print("uni---鍥炲---" + type + "---" + new Gson().toJson(uniCallBackBaseBean), true);
             }
         } catch (Exception e) {
-            HdlLogLogic.print("uni--->鍥炲--->" + type + "--->" + e.getMessage(), true);
+            HdlLogLogic.print("uni---鍥炲---" + type + "---" + e.getMessage(), true);
         }
 
 

--
Gitblit v1.8.0