From 30dd2bff4bcb91be35c058bcd84a3049b7ee35ff Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期五, 06 九月 2024 17:46:01 +0800
Subject: [PATCH] 2024年09月06日17:45:55

---
 app/src/main/res/layout/fragment_me.xml                                            |    4 
 app/src/main/java/com/hdl/photovoltaic/ui/LoginActivity.java                       |  185 ++++++++++--------
 app/src/main/res/drawable/device_debug.png                                         |    0 
 app/src/main/java/com/hdl/photovoltaic/enums/DeviceType.java                       |    1 
 app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java                           |    7 
 app/src/main/res/values/strings.xml                                                |    5 
 app/src/main/java/com/hdl/photovoltaic/HDLApp.java                                 |    2 
 app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java                      |   16 +
 app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java               |   13 
 app/src/main/java/com/hdl/photovoltaic/other/HdlOtaLogic.java                      |   17 +
 app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java              |   27 ++
 app/src/main/java/com/hdl/photovoltaic/ui/me/MeFragment.java                       |   20 +
 app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java             |    6 
 app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java                   |    2 
 app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java               |    8 
 app/src/main/res/values-zh/strings.xml                                             |    4 
 app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java |   48 ++--
 app/src/main/java/com/hdl/photovoltaic/config/ConstantManage.java                  |    8 
 app/src/main/res/values-en/strings.xml                                             |    4 
 app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java                   |  169 +++++++++++++---
 20 files changed, 369 insertions(+), 177 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
index a379365..899d732 100644
--- a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
+++ b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
@@ -192,7 +192,7 @@
                 HDLSDKSPUtils.clear();
 
                 //閲嶆柊鐧婚檰,榛樿鍚屾剰闅愮鏀跨瓥
-                UserConfigManage.getInstance().setAcceiptPolicy(true);
+                UserConfigManage.getInstance().setAcceiptPolicy(false);
                 //閲嶆柊璁惧畾涓�涓椂闂�
                 UserConfigManage.getInstance().setLoginDateTime(0);
                 UserConfigManage.getInstance().Save();
diff --git a/app/src/main/java/com/hdl/photovoltaic/config/ConstantManage.java b/app/src/main/java/com/hdl/photovoltaic/config/ConstantManage.java
index 5eb78b2..168d9ba 100644
--- a/app/src/main/java/com/hdl/photovoltaic/config/ConstantManage.java
+++ b/app/src/main/java/com/hdl/photovoltaic/config/ConstantManage.java
@@ -22,12 +22,14 @@
     public static final String message_count = "message_count";
     public static final String homepage_title_tab_switch = "homepage_title_tab_switch";
 
-    public static final String home_del= "home_del";
+    public static final String home_del = "home_del";
 
     //缃戠粶鐘舵�佸彂鐢熷彉鍖�
     public static final String network_change_post = "network_change";
-    //鐢电珯鐘舵��
-    public static final String station_status = "station_status";
+    //鐢电珯鐣岄潰
+    public static final String station_page = "station_status";
+    //娑堟伅鐣岄潰
+    public static final String uni_open_message_page = "message_page";
     public static final String station_edit = "station_edit";
 
 
diff --git a/app/src/main/java/com/hdl/photovoltaic/enums/DeviceType.java b/app/src/main/java/com/hdl/photovoltaic/enums/DeviceType.java
index 88ecb85..7d3d337 100644
--- a/app/src/main/java/com/hdl/photovoltaic/enums/DeviceType.java
+++ b/app/src/main/java/com/hdl/photovoltaic/enums/DeviceType.java
@@ -4,6 +4,7 @@
     String inv = "INV";//閫嗗彉鍣�
     String bms = "BMS";//BMS鎺у埗鐩�
     String battery = "BATTERY";//鐢垫睜鍗曞厓
+    String load_centre = "LOAD_CENTRE";//璐熻浇鎺у埗涓績
 
 }
 
diff --git a/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java b/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java
index f87d37e..369f28a 100644
--- a/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java
+++ b/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java
@@ -95,6 +95,8 @@
     public static final String POST_Device_startup = "/home-wisdom/app/powerStation/device/inverter/startup";
     //鑾峰彇璁惧璇︽儏锛堜簯绔級
     public static final String POST_Device_info = "/home-wisdom/app/device/info";
+    //鑾峰彇鐢电珯涓嬭礋杞芥帶鍒朵腑蹇冨垪琛�
+    public static final String POST_Device_loadCentreDevices = "/home-wisdom/app/powerStation/device/loadCentreDevices";
 
 
     //endregion
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
index d91f1db..d93086a 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
@@ -3,9 +3,6 @@
 import android.os.SystemClock;
 import android.text.TextUtils;
 
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
 import com.google.gson.Gson;
 import com.google.gson.JsonArray;
 import com.google.gson.JsonObject;
@@ -35,7 +32,6 @@
 import com.hdl.sdk.link.core.config.HDLLinkConfig;
 import com.hdl.sdk.link.gateway.HDLLinkLocalGateway;
 import com.hdl.sdk.link.gateway.type.GatewayMasterType;
-import com.huawei.hms.support.api.entity.core.JosBaseReq;
 
 
 import java.lang.reflect.Type;
@@ -1062,36 +1058,107 @@
      * @param cloudCallBeak 杩斿洖閫嗗彉鍣ㄥ垪琛�
      */
     public void getCurrentHomeLocalAndCloudGatewayList(String homeId, CloudCallBeak<List<GatewayBean>> cloudCallBeak) {
-        HdlDeviceLogic.getInstance().searchCurrentHomeGateway(homeId, new GatewayCallBack() {
+        searchCurrentHomeGateway(homeId, new GatewayCallBack() {
             @Override
             public void onSuccess(List<GatewayBean> gatewayBeanList) {
                 //灞�鍩熺綉鏈�2绉嶆儏鍐�(1:鏈夊眬鍩熺綉锛屾湁澶栫綉锛�2:鏈夊眬鍩熺綉锛屾病鏈夊缃�);
-                HdlDeviceLogic.getInstance().getCloudInverterDeviceList(homeId, new CloudCallBeak<List<CloudInverterDeviceBean>>() {
+                //鍚戜簯绔幏鍙栭�嗗彉鍣ㄥ垪琛�
+                getCloudInverterDeviceList(homeId, new CloudCallBeak<List<CloudInverterDeviceBean>>() {
                     @Override
-                    public void onSuccess(List<CloudInverterDeviceBean> list) {
-                        List<String> removeSidList = new ArrayList<>();
-                        for (int j = 0; j < HDLLinkLocalGateway.getInstance().getGatewayList().size(); j++) {
-                            GatewayBean gatewayBean = HDLLinkLocalGateway.getInstance().getGatewayList().get(j);
-                            if (!querySidInverter(list, gatewayBean.getSid())) {
-                                //鏈湴鏈夛紝浜戠娌℃湁,鍒犻櫎鏈湴锛�
-                                removeSidList.add(gatewayBean.getSid());
+                    public void onSuccess(List<CloudInverterDeviceBean> inverterDeviceList) {
+                        //鍚戜簯绔幏鍙栬礋杞戒腑蹇冨垪琛�
+                        getLoadCentreDeviceList(homeId, new CloudCallBeak<List<CloudInverterDeviceBean>>() {
+                            @Override
+                            public void onSuccess(List<CloudInverterDeviceBean> loadCentreDeviceList) {
+                                if (loadCentreDeviceList != null) {
+                                    //鍚堝苟璐熻浇涓績璁惧鍒楄〃锛岀劧鍚庡湪涓�璧峰仛澶勭悊
+                                    inverterDeviceList.addAll(loadCentreDeviceList);
+                                }
+                                List<String> removeSidList = new ArrayList<>();
+                                for (int j = 0; j < HDLLinkLocalGateway.getInstance().getGatewayList().size(); j++) {
+                                    GatewayBean gatewayBean = HDLLinkLocalGateway.getInstance().getGatewayList().get(j);
+                                    if (querySidInverter(inverterDeviceList, gatewayBean.getSid())) {
+                                        //鏈湴鏈夛紝浜戠娌℃湁,鍒犻櫎鏈湴锛�
+                                        removeSidList.add(gatewayBean.getSid());
+                                    }
+                                }
+                                for (int i = 0; i < removeSidList.size(); i++) {
+                                    //鍒犻櫎鏈湴鐨勯�嗗彉鍣�
+                                    removeLocalInverter(removeSidList.get(i));
+                                }
+                                //鎯呭喌1:鏈夊眬鍩熺綉锛屾湁澶栫綉锛�
+                                setDeviceRemoteInfo(inverterDeviceList, homeId, cloudCallBeak);
                             }
-                        }
-                        for (int i = 0; i < removeSidList.size(); i++) {
-                            //鍒犻櫎鏈湴鐨勯�嗗彉鍣�
-                            removeLocalInverter(removeSidList.get(i));
-                        }
-                        //鎯呭喌1:鏈夊眬鍩熺綉锛屾湁澶栫綉锛�
-                        setDeviceRemoteInfo(list, homeId, cloudCallBeak);
+
+                            @Override
+                            public void onFailure(HDLException e) {
+                                //鍚戜簯绔幏鍙栬礋杞戒腑蹇冭澶囧垪琛ㄥけ璐ュ悗锛屼粛鐒跺鐞嗛�嗗彉鍣ㄨ澶囧垪琛�
+                                List<String> removeSidList = new ArrayList<>();
+                                for (int j = 0; j < HDLLinkLocalGateway.getInstance().getGatewayList().size(); j++) {
+                                    GatewayBean gatewayBean = HDLLinkLocalGateway.getInstance().getGatewayList().get(j);
+                                    if (querySidInverter(inverterDeviceList, gatewayBean.getSid())) {
+                                        //鏈湴鏈夛紝浜戠娌℃湁,鍒犻櫎鏈湴锛�
+                                        removeSidList.add(gatewayBean.getSid());
+                                    }
+                                }
+                                for (int i = 0; i < removeSidList.size(); i++) {
+                                    //鍒犻櫎鏈湴鐨勯�嗗彉鍣�
+                                    removeLocalInverter(removeSidList.get(i));
+                                }
+                                //鎯呭喌1:鏈夊眬鍩熺綉锛屾湁澶栫綉锛�
+                                setDeviceRemoteInfo(inverterDeviceList, homeId, cloudCallBeak);
+                            }
+                        });
+
+
                     }
 
                     @Override
                     public void onFailure(HDLException e) {
                         ///鎯呭喌2:鏈夊眬鍩熺綉锛屾病鏈夊缃�;
                         //鏈湴鏈夐�嗗彉鍣ㄥ垪琛�,鑾峰彇浜戠缁戝畾閫嗗彉鍣ㄥけ璐�,榛樿杩斿洖鏈湴閫嗗彉鍣ㄥ垪琛�;
-                        if (cloudCallBeak != null) {
-                            cloudCallBeak.onSuccess(getCurrentHomeGatewayList(homeId));
-                        }
+                        //鍚戜簯绔幏鍙栬礋杞戒腑蹇冨垪琛�
+                        getLoadCentreDeviceList(homeId, new CloudCallBeak<List<CloudInverterDeviceBean>>() {
+                            @Override
+                            public void onSuccess(List<CloudInverterDeviceBean> loadCentreDeviceList) {
+                                if (loadCentreDeviceList == null) {
+                                    if (cloudCallBeak != null) {
+                                        cloudCallBeak.onSuccess(getCurrentHomeGatewayList(homeId));
+                                    }
+                                    return;
+                                }
+                                List<String> removeSidList = new ArrayList<>();
+                                for (int j = 0; j < HDLLinkLocalGateway.getInstance().getGatewayList().size(); j++) {
+                                    GatewayBean gatewayBean = HDLLinkLocalGateway.getInstance().getGatewayList().get(j);
+                                    if (gatewayBean.getSpk().equals(INVERTER_DEVICE_SPK)) {
+                                        //涓嶆槸璐熻浇涓績鐨剆pk涓嶅仛澶勭悊锛�
+                                        continue;
+                                    }
+                                    if (querySidInverter(loadCentreDeviceList, gatewayBean.getSid())) {
+                                        //鏈湴鏈夛紝浜戠娌℃湁,鍒犻櫎鏈湴锛�
+                                        removeSidList.add(gatewayBean.getSid());
+                                    }
+                                }
+                                for (int i = 0; i < removeSidList.size(); i++) {
+                                    //鍒犻櫎鏈湴鐨勯�嗗彉鍣�
+                                    removeLocalInverter(removeSidList.get(i));
+                                }
+                                //鎯呭喌1:鏈夊眬鍩熺綉锛屾湁澶栫綉锛�
+                                setDeviceRemoteInfo(loadCentreDeviceList, homeId, cloudCallBeak);
+                            }
+
+                            @Override
+                            public void onFailure(HDLException e) {
+                                //鍚戜簯绔幏鍙栬礋杞戒腑蹇冭澶囧垪琛ㄥけ璐ュ悗锛岄粯璁よ繑鍥炴湰鍦伴�嗗彉鍣ㄥ垪琛�;
+                                if (cloudCallBeak != null) {
+                                    cloudCallBeak.onSuccess(getCurrentHomeGatewayList(homeId));
+                                }
+                            }
+                        });
+
+//                        if (cloudCallBeak != null) {
+//                            cloudCallBeak.onSuccess(getCurrentHomeGatewayList(homeId));
+//                        }
                     }
                 });
             }
@@ -1099,7 +1166,7 @@
             @Override
             public void onError(HDLLinkException e) {
                 //澶栫綉鍙湁1绉嶆儏鍐�(鏈湴鎼滅储閫嗗彉鍣ㄥ垪琛ㄥけ璐ヤ簡)
-                HdlDeviceLogic.getInstance().getCloudInverterDeviceList(homeId, new CloudCallBeak<List<CloudInverterDeviceBean>>() {
+                getCloudInverterDeviceList(homeId, new CloudCallBeak<List<CloudInverterDeviceBean>>() {
                     @Override
                     public void onSuccess(List<CloudInverterDeviceBean> list) {
                         //澶栫綉杩涙潵鍏堛�愰粯璁ゃ�戞竻绌烘湰鍦伴�嗗彉鍣ㄥ垪琛�
@@ -1169,19 +1236,21 @@
     }
 
     /**
-     * 閫氳繃sid鏌ヨ閫嗗彉鍣�
+     * 閫氳繃sid鏌ヨ閫嗗彉鍣ㄦ槸鍚﹀瓨缁戝畾鍦ㄤ簯绔�
      *
      * @param list 浜戠涓婇�嗗彉鍣ㄥ垪琛�
-     * @return 瀛樺湪涓簍rue, 鍚﹀垯涓篺alse
+     * @return true涓嶅瓨鍦紝鍚﹀垯瀛樺湪
      */
     private boolean querySidInverter(List<CloudInverterDeviceBean> list, String sid) {
+        int exists_value = -1;
         for (int i = 0; i < list.size(); i++) {
             CloudInverterDeviceBean cloudInverterDeviceBean = list.get(i);
             if (sid.equals(cloudInverterDeviceBean.getSid())) {
-                return true;
+                exists_value = 1;
+                break;
             }
         }
-        return false;
+        return exists_value == -1;
     }
 
     /**
@@ -1493,6 +1562,43 @@
         });
     }
 
+
+    /**
+     * 鑾峰彇鐢电珯涓嬭礋杞芥帶鍒朵腑蹇冨垪琛�
+     *
+     * @param homeId 鐢电珯id
+     */
+    public void getLoadCentreDeviceList(String homeId, CloudCallBeak<List<CloudInverterDeviceBean>> cloudCallBeak) {
+        String requestUrl = HttpApi.POST_Device_loadCentreDevices;
+        JsonObject json = new JsonObject();
+        json.addProperty("homeId", homeId);
+        // json.addProperty("zoneType", "password");//鍖哄煙
+
+        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
+            @Override
+            public void onSuccess(String jsonStr) {
+                if (TextUtils.isEmpty(jsonStr)) {
+                    if (cloudCallBeak != null) {
+                        cloudCallBeak.onSuccess(new ArrayList<>());
+                    }
+                }
+                Type type = new TypeToken<List<CloudInverterDeviceBean>>() {
+                }.getType();
+                List<CloudInverterDeviceBean> list = new Gson().fromJson(jsonStr, type);
+                if (cloudCallBeak != null) {
+                    cloudCallBeak.onSuccess(list);
+                }
+            }
+
+            @Override
+            public void onFailure(HDLException e) {
+                if (cloudCallBeak != null) {
+                    cloudCallBeak.onFailure(e);
+                }
+            }
+        });
+    }
+
     /**
      * 鍒锋柊閫嗗彉鍣ㄧ紦瀛樹俊鎭�(鍖呮嫭璁剧疆mqtt绉橀挜锛�
      * 娉�: //鐩殑鏄负浜嗚幏鍙栨嬁鍒扮綉鍏矷D锛宮qtt閫氳绉橀挜绛変俊鎭紝缂撳瓨鏈湴閫嗗彉鍣ㄥ垪琛ㄩ噷闈紝鍙戦�佹暟鎹暟鎹椂鑷姩鍘荤紦瀛樺垪琛ㄩ噷闈㈠幓鏌ユ壘锛�
@@ -1555,7 +1661,7 @@
      */
     public List<String> getGatewaySpk() {
         List<String> spks = new ArrayList<>();
-        spks.add(DEVICE_SPK);
+        spks.add(INVERTER_DEVICE_SPK);
         return spks;
     }
 
@@ -1571,5 +1677,8 @@
         return false;
     }
 
-    public final String DEVICE_SPK = "energy.hdl_inverter";
+    /**
+     * 閫嗗彉鍣╯pk
+     */
+    public final String INVERTER_DEVICE_SPK = "energy.hdl_inverter";
 }
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlOtaLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlOtaLogic.java
index 4606be1..dd92a50 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlOtaLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlOtaLogic.java
@@ -143,13 +143,19 @@
      * 鍓嶆彁鏉′欢:璁惧鑷姩涓婃姤oid淇℃伅缁欎簯绔�
      *
      * @param deviceOidId oid浜戠id
+     * @param oid         璁惧oid
+     * @param homeId      鐢电珯id
      * @param callBack    -
      */
-    public void getCurrentDeviceFirmwares(String deviceOidId, CloudCallBeak<List<DeviceFirmwareBean>> callBack) {
+    public void getCurrentDeviceFirmwares(String deviceOidId, String oid, String homeId, CloudCallBeak<List<DeviceFirmwareBean>> callBack) {
         String requestUrl = HttpApi.POST_OTA_GET_DeviceFirmwares;
         JsonObject json = new JsonObject();
-        json.addProperty("deviceOidId", deviceOidId);
-        json.addProperty("homeId", UserConfigManage.getInstance().getHomeId());
+        if (!TextUtils.isEmpty(deviceOidId)) {
+            json.addProperty("deviceOidId", deviceOidId);
+        } else {
+            json.addProperty("oid", oid);
+        }
+        json.addProperty("homeId", homeId);
         HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
             @Override
             public void onSuccess(String json) {
@@ -263,12 +269,13 @@
      * 鍓嶆彁鏉′欢:璁惧鑷姩涓婃姤oid淇℃伅缁欎簯绔�
      *
      * @param oid      缃戝叧璁惧oid
+     * @param homeId   鐢电珯id
      * @param callBack -
      */
-    public void getCurrentGatewayDrivers(String oid, CloudCallBeak<List<GatewayDriverBean>> callBack) {
+    public void getCurrentGatewayDrivers(String oid, String homeId, CloudCallBeak<List<GatewayDriverBean>> callBack) {
         String requestUrl = HttpApi.POST_OTA_GET_GatewayDrivers;
         JsonObject json = new JsonObject();
-        json.addProperty("homeId", UserConfigManage.getInstance().getHomeId());
+        json.addProperty("homeId", homeId);
         json.addProperty("oid", oid);
 
         HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
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 d1ad4eb..ab8b31b 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -264,7 +264,6 @@
                     }
                     break;
 
-
                 }
 
             } else if (HDLUniMP.UNI_EVENT_REPLY_DEVICE_MODEL.equals(topic)) {
@@ -529,9 +528,17 @@
                     break;
                     //娑堟伅涓績
                     case HDLUniMP.UNI_EVENT_REPLY_MINE_MESSAGE_CENTER: {
+                        String homeId = getKeyValue("homeId", getKeyValue("data", data));
+                        String isShowFault = getKeyValue("isShowFault", getKeyValue("data", data));
                         Intent intent = new Intent();
                         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                         intent.setClass(HDLApp.getInstance(), MessageCenterList.class);
+                        if (!TextUtils.isEmpty(homeId)) {
+                            intent.putExtra("homeId", homeId);
+                        }
+                        if (!TextUtils.isEmpty(isShowFault)) {
+                            intent.putExtra("isShowFault", isShowFault);
+                        }
                         HDLApp.getInstance().startActivity(intent);
                     }
                     break;
@@ -1196,7 +1203,9 @@
      */
     private void uniGetCurrentDeviceFirmwares(String type, Object data, DCUniMPJSCallback callback) {
         String deviceOidId = getKeyValue("deviceOidId", getKeyValue("data", data));//浜戠涓婅澶噄d
-        HdlOtaLogic.getInstance().getCurrentDeviceFirmwares(deviceOidId, new CloudCallBeak<List<DeviceFirmwareBean>>() {
+        String oid = getKeyValue("oid", getKeyValue("data", data));//璁惧oid
+        String homeId = getKeyValue("homeId", getKeyValue("data", data));//鐢电珯id
+        HdlOtaLogic.getInstance().getCurrentDeviceFirmwares(deviceOidId, oid, homeId, new CloudCallBeak<List<DeviceFirmwareBean>>() {
             @Override
             public void onSuccess(List<DeviceFirmwareBean> obj) {
                 uniSuccessCallback(type, obj, callback);
@@ -1447,7 +1456,8 @@
      */
     private void uniGetCurrentGatewayDrivers(String type, Object data, DCUniMPJSCallback callback) {
         String deviceOid = getKeyValue("oid", getKeyValue("data", data));
-        HdlOtaLogic.getInstance().getCurrentGatewayDrivers(deviceOid, new CloudCallBeak<List<GatewayDriverBean>>() {
+        String homeId = getKeyValue("homeId", getKeyValue("data", data));//鐢电珯id
+        HdlOtaLogic.getInstance().getCurrentGatewayDrivers(deviceOid, homeId, new CloudCallBeak<List<GatewayDriverBean>>() {
             @Override
             public void onSuccess(List<GatewayDriverBean> obj) {
                 uniSuccessCallback(type, obj, callback);
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java
index cbf332e..eeae8e0 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java
@@ -658,12 +658,13 @@
                     }
                 });
             }
-        } else if (event.getTopic().contains(ConstantManage.station_status)) {
-            currentFragmentIndex = 1;
-            bottomViewChangeOfStyle();
-            showFragment();
-            HdlCommonLogic.getInstance().postEventBusSticky(ConstantManage.homepage_title_tab_switch, event.getType());
-
+        } else if (event.getTopic().contains(ConstantManage.homepage_title_tab_switch)) {
+            if (event.getType().contains(ConstantManage.station_page)) {
+                //浠庨椤垫寚瀹氱數绔欑姸鎬佹墦寮�鐢电珯鐣岄潰
+                currentFragmentIndex = 1;
+                bottomViewChangeOfStyle();
+                showFragment();
+            }
         }
     }
 
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/LoginActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/LoginActivity.java
index 0caff88..f070056 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/LoginActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/LoginActivity.java
@@ -236,91 +236,8 @@
                     getDialog();
                     return;
                 }
-                showLoading(getString(R.string.home_login_be_logging_in));
-                HdlAccountLogic.getInstance().regionByAccount(account, new CloudCallBeak<HDLUserRegionBean>() {
-                    @Override
-                    public void onSuccess(HDLUserRegionBean obj) {
-                        //寮�鍙戠幆澧�
-//                        String APP_REGIONURL_TEST = "http://47.114.131.143:27199";
-//                        AppConfigManage.setUserRegionUrl(APP_REGIONURL_TEST);
-                        //鍒濆鍖栨湇鍔″煙鍚�
-                        AppConfigManage.setUserRegionUrl(obj.getRegionUrl());
-                        HDLLinkPMUser.getInstance().setUserRegionUrl(AppConfigManage.getUserRegionUrl());
-                        HdlAccountLogic.getInstance().loginByPassword(account, password, new ILoginCallBack() {
-                            @Override
-                            public void onSuccess(HDLLoginBean obj) {
-                                if (UserConfigManage.getInstance().isBAccount()) {
-                                    restoreButtonStyleToInitializeState();
-                                    //瀹夎鍟嗚烦杞晫闈�
-                                    startActivity(BPowerStationActivity.class);
-                                    hideLoading();
-                                    finish();
-                                } else {
-                                    //C绔渶瑕佸厛鑾峰彇鐢电珯鍒楄〃;
-                                    HdlResidenceLogic.getInstance().getResidenceIdList("", "", new CloudCallBeak<List<HouseIdBean>>() {
-                                        @Override
-                                        public void onSuccess(List<HouseIdBean> obj) {
-                                            hideLoading();
-                                            HdlResidenceLogic.getInstance().setHouseIdList(obj);
-                                            restoreButtonStyleToInitializeState();
-                                            if (UserConfigManage.getInstance().isBAccount()) {
-                                                //瀹夎鍟嗚烦杞晫闈�
-                                                startActivity(BPowerStationActivity.class);
-                                            } else {
-                                                //C绔敤鎴疯烦杞晫闈�
-                                                startActivity(CPowerStationActivity.class);
-
-                                            }
-                                            finish();
-                                        }
-
-                                        @Override
-                                        public void onFailure(HDLException e) {
-                                            hideLoading();
-                                            restoreButtonStyleToInitializeState();
-                                            if (UserConfigManage.getInstance().isBAccount()) {
-                                                //瀹夎鍟嗚烦杞晫闈�
-                                                startActivity(BPowerStationActivity.class);
-                                            } else {
-                                                //C绔敤鎴疯烦杞晫闈�
-                                                startActivity(CPowerStationActivity.class);
-                                            }
-                                            finish();
-                                        }
-                                    });
-                                }
-                            }
-
-                            @Override
-                            public void onFailure(HDLException e) {
-                                hideLoading();
-                                if (e.getCode() == 10019) {
-                                    //鐢ㄦ埛宸茬粡琚攣瀹氶敊璇爜
-                                    try {
-                                        if (e.getmExtra() != null) {
-                                            if (System.currentTimeMillis() < e.getmExtra().getUnlockTime()) {
-                                                long time = e.getmExtra().getUnlockTime() - System.currentTimeMillis();
-                                                int minute = Integer.parseInt(TimeUtils.getMinuteTime(time));
-                                                HdlThreadLogic.toast(_mActivity, e.getMsg() + getString(R.string.residue) + minute + getString(R.string.minute) + "(" + e.getCode() + ")");
-                                            }
-                                        }
-                                    } catch (Exception ee) {
-                                        HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")");
-                                    }
-
-                                } else {
-                                    HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")");
-                                }
-                            }
-                        });
-                    }
-
-                    @Override
-                    public void onFailure(HDLException e) {
-                        hideLoading();
-                        HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")");
-                    }
-                });
+                //鐧诲綍
+                Login(account, password);
 
 
             }
@@ -351,6 +268,101 @@
                 Intent intent = new Intent();
                 intent.setClass(LoginActivity.this, ChangePassword.class);
                 startActivity(intent);
+            }
+        });
+
+    }
+
+    /**
+     * 鐧诲綍
+     *
+     * @param account  璐﹀彿
+     * @param password 瀵嗙爜
+     */
+    private void Login(String account, String password) {
+        showLoading(getString(R.string.home_login_be_logging_in));
+        HdlAccountLogic.getInstance().regionByAccount(account, new CloudCallBeak<HDLUserRegionBean>() {
+            @Override
+            public void onSuccess(HDLUserRegionBean obj) {
+                //寮�鍙戠幆澧�
+//                        String APP_REGIONURL_TEST = "http://47.114.131.143:27199";
+//                        AppConfigManage.setUserRegionUrl(APP_REGIONURL_TEST);
+                //鍒濆鍖栨湇鍔″煙鍚�
+                AppConfigManage.setUserRegionUrl(obj.getRegionUrl());
+                HDLLinkPMUser.getInstance().setUserRegionUrl(AppConfigManage.getUserRegionUrl());
+                HdlAccountLogic.getInstance().loginByPassword(account, password, new ILoginCallBack() {
+                    @Override
+                    public void onSuccess(HDLLoginBean obj) {
+                        if (UserConfigManage.getInstance().isBAccount()) {
+                            restoreButtonStyleToInitializeState();
+                            //瀹夎鍟嗚烦杞晫闈�
+                            startActivity(BPowerStationActivity.class);
+                            hideLoading();
+                            finish();
+                        } else {
+                            //C绔渶瑕佸厛鑾峰彇鐢电珯鍒楄〃;
+                            HdlResidenceLogic.getInstance().getResidenceIdList("", "", new CloudCallBeak<List<HouseIdBean>>() {
+                                @Override
+                                public void onSuccess(List<HouseIdBean> obj) {
+                                    hideLoading();
+                                    HdlResidenceLogic.getInstance().setHouseIdList(obj);
+                                    restoreButtonStyleToInitializeState();
+                                    if (UserConfigManage.getInstance().isBAccount()) {
+                                        //瀹夎鍟嗚烦杞晫闈�
+                                        startActivity(BPowerStationActivity.class);
+                                    } else {
+                                        //C绔敤鎴疯烦杞晫闈�
+                                        startActivity(CPowerStationActivity.class);
+
+                                    }
+                                    finish();
+                                }
+
+                                @Override
+                                public void onFailure(HDLException e) {
+                                    hideLoading();
+                                    restoreButtonStyleToInitializeState();
+                                    if (UserConfigManage.getInstance().isBAccount()) {
+                                        //瀹夎鍟嗚烦杞晫闈�
+                                        startActivity(BPowerStationActivity.class);
+                                    } else {
+                                        //C绔敤鎴疯烦杞晫闈�
+                                        startActivity(CPowerStationActivity.class);
+                                    }
+                                    finish();
+                                }
+                            });
+                        }
+                    }
+
+                    @Override
+                    public void onFailure(HDLException e) {
+                        hideLoading();
+                        if (e.getCode() == 10019) {
+                            //鐢ㄦ埛宸茬粡琚攣瀹氶敊璇爜
+                            try {
+                                if (e.getmExtra() != null) {
+                                    if (System.currentTimeMillis() < e.getmExtra().getUnlockTime()) {
+                                        long time = e.getmExtra().getUnlockTime() - System.currentTimeMillis();
+                                        int minute = Integer.parseInt(TimeUtils.getMinuteTime(time));
+                                        HdlThreadLogic.toast(_mActivity, e.getMsg() + getString(R.string.residue) + minute + getString(R.string.minute) + "(" + e.getCode() + ")");
+                                    }
+                                }
+                            } catch (Exception ee) {
+                                HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")");
+                            }
+
+                        } else {
+                            HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")");
+                        }
+                    }
+                });
+            }
+
+            @Override
+            public void onFailure(HDLException e) {
+                hideLoading();
+                HdlThreadLogic.toast(_mActivity, e.getMsg() + "(" + e.getCode() + ")");
             }
         });
 
@@ -543,6 +555,9 @@
                 UserConfigManage.getInstance().setAcceiptPolicy(true);
                 viewBinding.homeLoginPrivacyCheckIv.setSelected(true);
                 confirmationCancelDialog.dismiss();
+                String account = viewBinding.homeLoginAccountEt.getText().toString().replace(" ", "");
+                String password = viewBinding.homeLoginPasswordEt.getText().toString().replace(" ", "");
+                Login(account, password);
             }
         });
         confirmationCancelDialog.setNoOnclickListener(new ConfirmationCancelDialog.onNoOnclickListener() {
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java
index c056421..a2fbcd5 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java
@@ -128,7 +128,7 @@
         viewBinding.homeAllIl.parentLl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                HdlCommonLogic.getInstance().postEventBus(ConstantManage.station_status, PowerStationStatus.All);
+                HdlCommonLogic.getInstance().postEventBus(ConstantManage.homepage_title_tab_switch,ConstantManage.station_page, PowerStationStatus.All);
 
             }
         });
@@ -136,21 +136,21 @@
         viewBinding.homeFaultsIl.parentLl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                HdlCommonLogic.getInstance().postEventBus(ConstantManage.station_status, PowerStationStatus.malfunction);
+                HdlCommonLogic.getInstance().postEventBus(ConstantManage.homepage_title_tab_switch,ConstantManage.station_page, PowerStationStatus.malfunction);
             }
         });
         //绂荤嚎
         viewBinding.homeOfflineIl.parentLl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                HdlCommonLogic.getInstance().postEventBus(ConstantManage.station_status, PowerStationStatus.off);
+                HdlCommonLogic.getInstance().postEventBus(ConstantManage.homepage_title_tab_switch,ConstantManage.station_page, PowerStationStatus.off);
             }
         });
         //寰呮帴鍏�
         viewBinding.homeConnectedIl.parentLl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                HdlCommonLogic.getInstance().postEventBus(ConstantManage.station_status, PowerStationStatus.connecting);
+                HdlCommonLogic.getInstance().postEventBus(ConstantManage.homepage_title_tab_switch,ConstantManage.station_page, PowerStationStatus.connecting);
             }
         });
         //鏃堕棿閫夋嫨鍣�
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/me/MeFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/me/MeFragment.java
index b9f25f8..1b855c0 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/me/MeFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/me/MeFragment.java
@@ -189,6 +189,15 @@
                 }
             }
         });
+        //璁惧璋冭瘯
+        viewBinding.fragmentMeLineDeviceDebugIl.fragmentMeLineRightIconClickIv.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                //璁惧璋冭瘯
+                String path = HDLUniMP.UNI_EVENT_OPEN_MINE_DEVICEDEBUG;
+                HdlUniLogic.getInstance().openUniMP(path, null);
+            }
+        });
         //鍛樺伐绠$悊锛堜富璐﹀彿鎵嶆樉绀猴級
         viewBinding.fragmentMeLineUserManagementIl.fragmentMeLineRightIconClickIv.setOnClickListener(new View.OnClickListener() {
             @Override
@@ -197,6 +206,7 @@
                 HdlUniLogic.getInstance().openUniMP(path, null);
             }
         });
+        //璁剧疆
         viewBinding.fragmentMeLineSetIl.fragmentMeLineRightIconClickIv.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -205,6 +215,7 @@
                 startActivity(intent);
             }
         });
+        //鍏充簬
         viewBinding.fragmentMeLineAsregardsIl.fragmentMeLineCl.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -230,15 +241,18 @@
      * 鍒濆鍖栫晫闈�
      */
     private void initView() {
-
+        //璁惧璋冭瘯
+        viewBinding.fragmentMeLineDeviceDebugIl.fragmentMeLineLeftIconIv.setImageResource(R.drawable.device_debug);
+        viewBinding.fragmentMeLineDeviceDebugIl.fragmentMeLineTitleIv.setText(R.string.device_debugging);
+        //鍛樺伐绠$悊
         viewBinding.fragmentMeLineUserManagementIl.fragmentMeLineLeftIconIv.setImageResource(R.drawable.user_management);
         viewBinding.fragmentMeLineUserManagementIl.fragmentMeLineTitleIv.setText(R.string.staff_management);
         viewBinding.fragmentMeLineUserManagementIl.getRoot().setVisibility(View.GONE);//鍏堥殣钘�,璇诲彇鍒版湁闄愭潈鍦ㄦ樉绀�
 //        viewBinding.fragmentMeLineUserManagementIl.fragmentMeLineV.setVisibility(View.VISIBLE);
-
+        //璁惧
         viewBinding.fragmentMeLineSetIl.fragmentMeLineLeftIconIv.setImageResource(R.drawable.set);
         viewBinding.fragmentMeLineSetIl.fragmentMeLineTitleIv.setText(R.string.me_set);
-
+        //鍏充簬
         viewBinding.fragmentMeLineAsregardsIl.fragmentMeLineLeftIconIv.setImageResource(R.drawable.asregards);
         viewBinding.fragmentMeLineAsregardsIl.fragmentMeLineTitleIv.setText(R.string.me_regard);
 //        viewBinding.fragmentMeLineAsregardsIl.fragmentMeLineV.setVisibility(View.VISIBLE);
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java
index f7ccd18..b9bb740 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java
@@ -59,8 +59,8 @@
     private int mTotalCount = 0; //鎬绘潯鏁�
     private int mCurrentPage = 0; // 褰撳墠椤电爜
     private int mCurrentTotal = 0; // 鎬婚〉鐮�
-    private String mDeviceTypeFilterKye = FilterType.deviceType;//杩囨护绫诲瀷 deviceType锛圛NV 锛氶�嗗彉鍣紱BMS 锛欱MS鎺у埗鐩掞紱BATTERY 锛氱數姹犲崟鍏冿級
-    private String mDeviceTypeFilterValue = FilterType.all;//杩囨护绫诲瀷鍊� deviceType锛圛NV 锛氶�嗗彉鍣紱BMS 锛欱MS鎺у埗鐩掞紱BATTERY 锛氱數姹犲崟鍏冿級
+    private String mDeviceTypeFilterKye = FilterType.deviceType;//杩囨护绫诲瀷 deviceType锛圛NV 锛氶�嗗彉鍣紱BMS 锛欱MS鎺у埗鐩掞紱BATTERY 锛氱數姹犲崟鍏冿紱"LOAD_CENTRE"锛氳礋杞芥帶鍒朵腑蹇冿級
+    private String mDeviceTypeFilterValue = FilterType.all;//杩囨护绫诲瀷鍊� deviceType锛圛NV 锛氶�嗗彉鍣紱BMS 锛欱MS鎺у埗鐩掞紱BATTERY 锛氱數姹犲崟鍏冿紱"LOAD_CENTRE"锛氳礋杞芥帶鍒朵腑蹇�
 
     private String mTypeFilterKye = FilterType.all;//杩囨护绫诲瀷 type锛團AULT 锛氭晠闅滐紱 WARN 锛氬憡璀︼紱 EVENT 锛氫簨浠�(鎻愮ず)锛夛紱
     private String mTypeFilterValue = FilterType.all;//杩囨护绫诲瀷鍊� type锛團AULT 锛氭晠闅滐紱 WARN 锛氬憡璀︼紱 EVENT 锛氫簨浠�(鎻愮ず)锛夛紱
@@ -609,6 +609,7 @@
         map.put(getString(R.string.alarm_all_device_inverter), "INV");
         map.put(getString(R.string.alarm_all_device_bms), "BMS");
         map.put(getString(R.string.alarm_all_device_battery_cell), "BATTERY");
+        map.put(getString(R.string.alarm_all_device_load_centre), "LOAD_CENTRE");
         map.put(getString(R.string.alarm_all_grade), "");//璁剧瓑绾у叏閮�
         map.put(getString(R.string.alarm_all_grade_malfunction), "FAULT");
         map.put(getString(R.string.alarm_all_grade_warning), "WARN");
@@ -641,6 +642,7 @@
                 stringList.add(getString(R.string.alarm_all_device_inverter));
                 stringList.add(getString(R.string.alarm_all_device_bms));
                 stringList.add(getString(R.string.alarm_all_device_battery_cell));
+                stringList.add(getString(R.string.alarm_all_device_load_centre));
             }
             break;
             case FilterType.type: {
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java b/app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java
index 89fcca9..bce1e08 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/newC/MessageCenterList.java
@@ -61,7 +61,7 @@
     private int mTotalCount1 = 0;//娑堟伅鏁伴噺鎬绘暟
 
     private int mTotalCount2 = 0;//娑堟伅鏁伴噺鎬绘暟
-    private String mDeviceTypeFilterKye = FilterType.deviceType;//杩囨护绫诲瀷 deviceType锛圛NV 锛氶�嗗彉鍣紱BMS 锛欱MS鎺у埗鐩掞紱BATTERY 锛氱數姹犲崟鍏冿級
+    private String mDeviceTypeFilterKye = FilterType.all;//杩囨护绫诲瀷 deviceType锛圛NV 锛氶�嗗彉鍣紱BMS 锛欱MS鎺у埗鐩掞紱BATTERY 锛氱數姹犲崟鍏冿級
     private String mDeviceTypeFilterValue = FilterType.all;//杩囨护绫诲瀷鍊� deviceType锛圛NV 锛氶�嗗彉鍣紱BMS 锛欱MS鎺у埗鐩掞紱BATTERY 锛氱數姹犲崟鍏冿級
 
     private String mTypeFilterKye = FilterType.all;//杩囨护绫诲瀷 type锛團AULT 锛氭晠闅滐紱 WARN 锛氬憡璀︼紱 EVENT 锛氫簨浠�(鎻愮ず)锛夛紱
@@ -76,6 +76,7 @@
     //     *                                timeType锛圱ODAY 锛氫粖澶╋紱LAST_3_DAYS: 杩�3澶╋紱LAST_7_DAYS 锛氳繎7澶╋紱LAST_30_DAYS 锛氳繎30澶╋級锛�
     private boolean isLoadingMore = false; // 鏍囪姝e湪鍔犺浇鏇村鏁版嵁
     LinearLayoutManager mLayoutManager;
+
 
     @Override
     public Object getContentView() {
@@ -94,7 +95,7 @@
         //鍒濆鍖栫晫闈㈢洃鍚櫒
         initEvent();
         //杩涙潵璇诲彇涓�娆℃暟鎹�(涓轰簡鏇存柊currentPage锛宑urrentTotal杩欎釜鍊�)
-        loadNextPageMessageList(1, true, FilterType.all, FilterType.all, FilterType.all, FilterType.all, FilterType.all, FilterType.all);
+        loadNextPageMessageList(1, true, mDeviceTypeFilterKye, mDeviceTypeFilterValue, mTypeFilterKye, mTypeFilterValue, mTimeTypeFilterKye, mTimeTypeFilterValue);
     }
 
     @Override
@@ -241,7 +242,7 @@
                 if (isAlarmDeviceClick) {
                     return;//闃叉澶氭鐐瑰嚮
                 }
-                mDeviceTypeFilterKye = FilterType.deviceType;
+                mDeviceTypeFilterKye = FilterType.all;
                 mDeviceTypeFilterValue = FilterType.all;
                 mTypeFilterKye = FilterType.all;
                 mTypeFilterValue = FilterType.all;
@@ -262,7 +263,7 @@
                 if (!isAlarmDeviceClick) {
                     return;//闃叉澶氭鐐瑰嚮
                 }
-                mDeviceTypeFilterKye = FilterType.deviceType;
+                mDeviceTypeFilterKye = FilterType.all;
                 mDeviceTypeFilterValue = FilterType.all;
                 mTypeFilterKye = FilterType.all;
                 mTypeFilterValue = FilterType.all;
@@ -344,6 +345,22 @@
     }
 
     private void initData() {
+        try {
+            Intent intent = getIntent();
+            if (intent != null) {
+                String isShowFault = intent.getStringExtra("isShowFault");
+                if (isShowFault.equals("true")) {
+                    //榛樿鏁呴殰鍏ㄩ儴
+                    mDeviceTypeFilterKye = FilterType.all;
+                    mDeviceTypeFilterValue = FilterType.all;
+                    mTypeFilterKye = FilterType.type;
+                    mTypeFilterValue = "FAULT";
+                    mTimeTypeFilterKye = FilterType.all;
+                    mTimeTypeFilterValue = FilterType.all;
+                }
+            }
+        } catch (Exception ignored) {
+        }
     }
 
     /**
@@ -570,6 +587,7 @@
         map.put(getString(R.string.alarm_all_device_inverter), "INV");
         map.put(getString(R.string.alarm_all_device_bms), "BMS");
         map.put(getString(R.string.alarm_all_device_battery_cell), "BATTERY");
+        map.put(getString(R.string.alarm_all_device_load_centre), "LOAD_CENTRE");
         map.put(getString(R.string.alarm_all_grade), "");//璁剧瓑绾у叏閮�
         map.put(getString(R.string.alarm_all_grade_malfunction), "FAULT");
         map.put(getString(R.string.alarm_all_grade_warning), "WARN");
@@ -602,6 +620,7 @@
                 stringList.add(getString(R.string.alarm_all_device_inverter));
                 stringList.add(getString(R.string.alarm_all_device_bms));
                 stringList.add(getString(R.string.alarm_all_device_battery_cell));
+                stringList.add(getString(R.string.alarm_all_device_load_centre));
             }
             break;
             case FilterType.type: {
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java
index c1c7ad4..e1ab804 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java
@@ -18,7 +18,6 @@
 import com.hdl.photovoltaic.R;
 import com.hdl.photovoltaic.bean.PageNumberObject;
 import com.hdl.photovoltaic.config.ConstantManage;
-import com.hdl.photovoltaic.config.UserConfigManage;
 import com.hdl.photovoltaic.databinding.FragmentHouseListBinding;
 import com.hdl.photovoltaic.base.CustomBaseFragment;
 import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch;
@@ -94,7 +93,7 @@
     /**
      * 杩樺師鏉′欢鐨勫垵濮嬪寲鐘舵��
      */
-    private void InitializationState() {
+    private void initializationState() {
         key = SortValue.all;
         value = SortValue.all;
         installedCapacityMinValue = "";
@@ -130,7 +129,7 @@
                 }
                 isClickPowerStationLabel = true;
                 selectedTitleLabelStyle();
-                InitializationState();
+                initializationState();
                 getStatusOverview();
                 loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
 
@@ -676,10 +675,10 @@
 
 
         } else if (eventBus.getTopic().equals(ConstantManage.homepage_title_tab_switch)) {
+            // 鍙栨秷绮樻�т簨浠�
+            EventBus.getDefault().removeStickyEvent(eventBus);
             //鎺ユ敹澶栭儴鐐瑰嚮浜嬩欢
             if (eventBus.getType().equals(HomepageTitleTabSwitch.powerstation.toString())) {
-                // 鍙栨秷绮樻�т簨浠�
-                EventBus.getDefault().removeStickyEvent(eventBus);
                 HdlLogLogic.print("姝e湪鐐瑰嚮銆愮數绔欍��");
 //                if (!isReadData) {
 //                    //1锛屼粠棣栭〉-鏁呴殰-杩涙潵-鐢电珯锛堜笉璇诲彇锛�
@@ -690,27 +689,28 @@
                 //2024骞�06鏈�24鏃�14:34:01 浜у搧缁忕悊瑕佹眰杩涘幓鐢电珯鍒楄〃閮借璇诲彇 涓旈粯璁よ繘鍘婚兘鏄粯璁ょ數绔欐爣绛�
                 isClickPowerStationLabel = true;
                 selectedTitleLabelStyle();
-                InitializationState();
+                initializationState();
                 getStatusOverview();
                 loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
-
-
-            } else if (eventBus.getType().equals(PowerStationStatus.All)) {
-                isClickPowerStationLabel = true;
-                selectedTitleLabelStyle();
-                viewBinding.powerStationAllIl.parentLl.performClick();
-            } else if (eventBus.getType().equals(PowerStationStatus.malfunction)) {
-                isClickPowerStationLabel = true;
-                selectedTitleLabelStyle();
-                viewBinding.powerStationFaultsIl.parentLl.performClick();
-            } else if (eventBus.getType().equals(PowerStationStatus.off)) {
-                isClickPowerStationLabel = true;
-                selectedTitleLabelStyle();
-                viewBinding.powerStationOfflineIl.parentLl.performClick();
-            } else if (eventBus.getType().equals(PowerStationStatus.connecting)) {
-                isClickPowerStationLabel = true;
-                selectedTitleLabelStyle();
-                viewBinding.powerStationConnectedIl.parentLl.performClick();
+            } else if (eventBus.getType().equals(ConstantManage.station_page)) {
+                //閫氳繃棣栭〉鐢电珯杩涙潵鐨�
+                if (eventBus.getData().equals(PowerStationStatus.All)) {
+                    isClickPowerStationLabel = true;
+                    selectedTitleLabelStyle();
+                    viewBinding.powerStationAllIl.parentLl.performClick();
+                } else if (eventBus.getData().equals(PowerStationStatus.malfunction)) {
+                    isClickPowerStationLabel = true;
+                    selectedTitleLabelStyle();
+                    viewBinding.powerStationFaultsIl.parentLl.performClick();
+                } else if (eventBus.getData().equals(PowerStationStatus.off)) {
+                    isClickPowerStationLabel = true;
+                    selectedTitleLabelStyle();
+                    viewBinding.powerStationOfflineIl.parentLl.performClick();
+                } else if (eventBus.getData().equals(PowerStationStatus.connecting)) {
+                    isClickPowerStationLabel = true;
+                    selectedTitleLabelStyle();
+                    viewBinding.powerStationConnectedIl.parentLl.performClick();
+                }
             } else if (eventBus.getType().equals(ConstantManage.station_edit)) {
                 //缂栬緫鍚庢洿鏂颁竴涓嬩綇瀹呭垪琛�
                 //loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
diff --git a/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java
index dbbb72d..7db0753 100644
--- a/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java
+++ b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java
@@ -60,9 +60,8 @@
     public final static String UNI_EVENT_REPLY_DEVICE_REMOTEINFO = "set_device_remoteInfo";//璁剧疆璁惧杩滅▼淇℃伅edit_name
     public final static String UNI_EVENT_REPLY_DEVICE_EDIT_NAME = "edit_name";//璁惧鍚嶇О淇敼(淇敼鏄簯绔痮id鍚嶇О锛岃澶囦娇鐢╩odbus鍗忚淇敼)
     public final static String UNI_EVENT_REPLY_DEVICE_NOT_RUN_DEVICE_LIST = "not_run_device_list";//鑾峰彇鏈繍琛岄�嗗彉鍣ㄥ垪琛�
-    public final static String UNI_EVENT_REPLY_DEVICE_OPEN_DEVICE_LIST= "open_device_list";//蹇嵎寮�鍚�嗗彉鍣�
-    public final static String UNI_EVENT_REPLY_DEVICE_OPEN_DEVICE_info= "device_info";//鑾峰彇璁惧璇︽儏
-
+    public final static String UNI_EVENT_REPLY_DEVICE_OPEN_DEVICE_LIST = "open_device_list";//蹇嵎寮�鍚�嗗彉鍣�
+    public final static String UNI_EVENT_REPLY_DEVICE_OPEN_DEVICE_info = "device_info";//鑾峰彇璁惧璇︽儏
 
 
     /*********OTA妯″潡*********/
@@ -161,6 +160,8 @@
     public final static String UNI_EVENT_OPEN_HOME_Null_C = "pages/powerStationDetail/tabbarPage";//鏃犵數绔欐椂锛堜笉闇�瑕佷紶鍙傛暟锛�
     public final static String UNI_EVENT_OPEN_DEVICE_DETAILS = "pages/powerStationDetail/childPage/device/detail";//璁惧璇︽儏
     public final static String UNI_EVENT_OPEN_MINE_MINESTAFFMANAGER = "pages/mine/mineStaffManager";//B绔墦寮�鍛樺伐绠$悊鐣岄潰
+    public final static String UNI_EVENT_OPEN_MINE_DEVICEDEBUG = "pages/deviceDebug/searchInverterList";//B绔墦寮�璁惧璋冭瘯鐣岄潰
+
 
     public final static String UNI_EVENT_OPEN_DEVICESCAN = "pages/powerStation/deviceScan";//璺冲埌uni鎵簩缁寸爜鐣岄潰
     /*********璁惧妯″潡*********/
diff --git a/app/src/main/res/drawable/device_debug.png b/app/src/main/res/drawable/device_debug.png
new file mode 100644
index 0000000..192f487
--- /dev/null
+++ b/app/src/main/res/drawable/device_debug.png
Binary files differ
diff --git a/app/src/main/res/layout/fragment_me.xml b/app/src/main/res/layout/fragment_me.xml
index e5b2113..a5d248e 100644
--- a/app/src/main/res/layout/fragment_me.xml
+++ b/app/src/main/res/layout/fragment_me.xml
@@ -103,6 +103,10 @@
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/fragment_me_icon_parent_cl">
+        <!--璁惧璋冭瘯-->
+        <include
+            android:id="@+id/fragment_me_line_device_debug_il"
+            layout="@layout/fragment_me_line" />
         <!--涓昏处鍙锋墠鏄剧ず-->
         <include
             android:id="@+id/fragment_me_line_user_management_il"
diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml
index 51dead0..7e552d5 100644
--- a/app/src/main/res/values-en/strings.xml
+++ b/app/src/main/res/values-en/strings.xml
@@ -176,7 +176,7 @@
     <!--寮规-->
     <string name="loading_cancel">Cancel</string>
     <string name="loading_affirm">Confirm</string>
-    <string name="loading_agree">Agree</string>
+    <string name="loading_agree">Agree and sign in</string>
     <string name="loading_on_agree">Disagree</string>
     <string name="loading_privacy">Privacy policy and terms of service</string>
     <string name="loading_privacy_server">To better protect your legitimate rights and interests, please read and agree to the following agreements 銆奝rivacy Policy銆� and 銆奣erms of Service銆�.</string>
@@ -229,6 +229,7 @@
     <string name="alarm_all_device_inverter">inverter</string>
     <string name="alarm_all_device_bms">BMS control box</string>
     <string name="alarm_all_device_battery_cell">Battery unit</string>
+    <string name="alarm_all_device_load_centre">Load centre</string>
     <string name="alarm_all_grade">All grades</string>
     <string name="alarm_all_grade_malfunction">malfunction</string>
     <string name="alarm_all_grade_warning">warning</string>
@@ -327,5 +328,6 @@
     <string name="capture_no_result2">No results were scanned, it may not be a valid QR code</string>
     <string name="scan_cancel">Cancel</string>
     <string name="not_delivery_qr_code">Not delivery of QR code.</string>
+    <string name="device_debugging">Device debugging</string>
 
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml
index 22faba8..8436167 100644
--- a/app/src/main/res/values-zh/strings.xml
+++ b/app/src/main/res/values-zh/strings.xml
@@ -175,7 +175,7 @@
     <!--寮规-->
     <string name="loading_cancel">鍙栨秷</string>
     <string name="loading_affirm">纭</string>
-    <string name="loading_agree">鍚屾剰</string>
+    <string name="loading_agree">鍚屾剰骞剁櫥褰�</string>
     <string name="loading_on_agree">涓嶅悓鎰�</string>
     <string name="loading_privacy">闅愮鏉冩斂绛栧強鏈嶅姟鏉℃</string>
     <string name="loading_privacy_server">涓轰簡鏇村ソ鐨勪繚闅滄偍鐨勫悎娉曟潈鐩婏紝璇锋偍闃呰骞跺悓鎰忎互涓嬪崗璁�婇殣绉佹潈鏀跨瓥銆嬪拰銆婃湇鍔℃潯娆俱��</string>
@@ -228,6 +228,7 @@
     <string name="alarm_all_device_inverter">閫嗗彉鍣�</string>
     <string name="alarm_all_device_bms">BMS鎺у埗鐩�</string>
     <string name="alarm_all_device_battery_cell">鐢垫睜鍗曞厓</string>
+    <string name="alarm_all_device_load_centre">璐熻浇涓績</string>
     <string name="alarm_all_grade">鍏ㄩ儴绛夌骇</string>
     <string name="alarm_all_grade_malfunction">鏁呴殰</string>
     <string name="alarm_all_grade_warning">璀﹀憡</string>
@@ -324,6 +325,7 @@
     <string name="capture_no_result2">娌℃湁鎵弿鍑虹粨鏋滐紝鍙兘涓嶆槸鏈夋晥鐨勪簩缁寸爜</string>
     <string name="scan_cancel">鍙栨秷</string>
     <string name="not_delivery_qr_code">涓嶆槸浜や粯浜岀淮鐮�.</string>
+    <string name="device_debugging">璁惧璋冩祴</string>
 
 
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a25c6a1..15d4ebd 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -175,7 +175,7 @@
     <!--寮规-->
     <string name="loading_cancel">鍙栨秷</string>
     <string name="loading_affirm">纭</string>
-    <string name="loading_agree">鍚屾剰</string>
+    <string name="loading_agree">鍚屾剰骞剁櫥褰�</string>
     <string name="loading_on_agree">涓嶅悓鎰�</string>
     <string name="loading_privacy">闅愮鏉冩斂绛栧強鏈嶅姟鏉℃</string>
     <string name="loading_privacy_server">涓轰簡鏇村ソ鐨勪繚闅滄偍鐨勫悎娉曟潈鐩婏紝璇锋偍闃呰骞跺悓鎰忎互涓嬪崗璁�婇殣绉佹潈鏀跨瓥銆嬪拰銆婃湇鍔℃潯娆俱��</string>
@@ -228,6 +228,7 @@
     <string name="alarm_all_device_inverter">閫嗗彉鍣�</string>
     <string name="alarm_all_device_bms">BMS鎺у埗鐩�</string>
     <string name="alarm_all_device_battery_cell">鐢垫睜鍗曞厓</string>
+    <string name="alarm_all_device_load_centre">璐熻浇涓績</string>
     <string name="alarm_all_grade">鍏ㄩ儴绛夌骇</string>
     <string name="alarm_all_grade_malfunction">鏁呴殰</string>
     <string name="alarm_all_grade_warning">璀﹀憡</string>
@@ -245,7 +246,6 @@
     <string name="already_the_first_one">宸茬粡鏄涓�涓簡.</string>
     <string name="restarting_please_wait">閲嶅惎涓�,璇风瓑寰呪��</string>
     <string name="port_conflict">搴旂敤鍐茬獊锛岄渶瑕佸叧闂璷npro鎴栬�呭叾瀹冪増鏈殑璋冭瘯杞欢鐒跺悗鍐嶉噸鏂板惎鍔ㄨ繖涓蒋浠惰瘯璇�</string>
-
 
 
     <string name="cancel_download_successfully">鍙栨秷涓嬭浇鎴愬姛.</string>
@@ -326,6 +326,7 @@
     <string name="capture_no_result2">娌℃湁鎵弿鍑虹粨鏋滐紝鍙兘涓嶆槸鏈夋晥鐨勪簩缁寸爜</string>
     <string name="scan_cancel">鍙栨秷</string>
     <string name="not_delivery_qr_code">涓嶆槸浜や粯浜岀淮鐮�.</string>
+    <string name="device_debugging">璁惧璋冩祴</string>
 
 
 </resources>
\ No newline at end of file

--
Gitblit v1.8.0