From d41f1d4a478c1afcc43f3a5abb0ba76e376bc7c1 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期二, 09 三月 2021 15:23:25 +0800
Subject: [PATCH] 2

---
 HDL_ON/Common/ApiUtlis.cs |  148 +++++++++++++++++++++++++++---------------------
 1 files changed, 83 insertions(+), 65 deletions(-)

diff --git a/HDL_ON/Common/ApiUtlis.cs b/HDL_ON/Common/ApiUtlis.cs
index 8b144ce..3141f5d 100644
--- a/HDL_ON/Common/ApiUtlis.cs
+++ b/HDL_ON/Common/ApiUtlis.cs
@@ -46,7 +46,7 @@
         public bool GatewayOnlineVerification()
         {
             bool result = DB_ResidenceData.Instance.HomeGateway.gatewayStatus;
-
+            DriverLayer.Control.Ins.GatewayOnline_Cloud = result;
             if (!result)
             {
 
@@ -159,46 +159,59 @@
                         {
                             deviceList = new DevcieApiPack();
                         }
+                        string delFile = "";
+                        if (FunctionList.List.GetDeviceFunctionList().Count > 0)
                         {
-                            if (FunctionList.List.GetDeviceFunctionList().Count > 0)
+
+                            for (int i = 0; i < FunctionList.List.GetDeviceFunctionList().Count;)
                             {
-                                for (int i = 0; i < FunctionList.List.GetDeviceFunctionList().Count;)
+                                var localFunction = FunctionList.List.GetDeviceFunctionList()[i];
+                                if (localFunction.Spk_Prefix == FunctionCategory.Music || string.IsNullOrEmpty(localFunction.Spk_Prefix))
                                 {
-                                    var localFunction = FunctionList.List.GetDeviceFunctionList()[i];
-                                    if (localFunction.functionCategory == FunctionCategory.Music)
-                                    {
-                                        i++;
-                                        continue;
-                                    }
-                                    var newFunction = deviceList.list.Find((obj) => obj.deviceId == localFunction.deviceId);
-                                    if (newFunction == null)//濡傛灉浜戠鏈�鏂版暟鎹病鏈夎鏉℃暟鎹紝鍒欐湰鍦伴渶瑕佸垹鎺夎鏁版嵁璁板綍
-                                    {
-                                        FunctionList.List.DeleteFunction(localFunction);
-                                    }
-                                    else
-                                    {
-                                        MainPage.Log($"deviceType:{localFunction.spk} local:{localFunction.modifyTime} server:{newFunction.modifyTime}");
-                                        i++;
-                                        if (localFunction.modifyTime != newFunction.modifyTime)
-                                        {
-                                            //鍙紭鍖�
-                                            localFunction.name = newFunction.name;
-                                            localFunction.collect = newFunction.collect;
-                                            localFunction.modifyTime = newFunction.modifyTime;
-                                            localFunction.roomIds = newFunction.roomIds;
-                                            localFunction.bus = newFunction.bus;
-                                            localFunction.SaveFunctionFile();
-                                        }
-                                        deviceList.list.Remove(newFunction);//鎿嶄綔瀹岀殑鏁版嵁娓呯悊鎺夛紝鍓╀笅鐨勫氨鏄柊澧炵殑鍔熻兘
-                                    }
+                                    i++;
+                                    continue;
                                 }
+                                var newFunction = deviceList.list.Find((obj) => obj.deviceId == localFunction.deviceId);
+                                //if (newFunction == null)//濡傛灉浜戠鏈�鏂版暟鎹病鏈夎鏉℃暟鎹紝鍒欐湰鍦伴渶瑕佸垹鎺夎鏁版嵁璁板綍
+                                //{
+                                //    FunctionList.List.DeleteFunction(localFunction);
+                                //}
+                                //else
+                                //{
+                                //    MainPage.Log($"deviceType:{localFunction.spk} local:{localFunction.modifyTime} server:{newFunction.modifyTime}");
+                                //    i++;
+                                //    //if (localFunction.modifyTime != newFunction.modifyTime)
+                                //    //{
+                                //    //    //鍙紭鍖�
+                                //    //    localFunction.name = newFunction.name;
+                                //    //    localFunction.collect = newFunction.collect;
+                                //    //    localFunction.modifyTime = newFunction.modifyTime;
+                                //    //    localFunction.roomIds = newFunction.roomIds;
+                                //    //    localFunction.bus = newFunction.bus;
+                                //    //    localFunction.SaveFunctionFile();
+                                //    //}
+                                //    localFunction = newFunction;
+                                //    localFunction.SaveFunctionFile();
+                                //    deviceList.list.Remove(newFunction);//鎿嶄綔瀹岀殑鏁版嵁娓呯悊鎺夛紝鍓╀笅鐨勫氨鏄柊澧炵殑鍔熻兘
+                                //}
+
+                                if (delFile == localFunction.savePath)
+                                {
+                                    i++;
+                                    continue;
+                                }
+                                delFile = localFunction.savePath;
+                                FunctionList.List.DeleteFunction(localFunction);
+
                             }
-                            //澶勭悊鍓╀笅鐨勬柊澧炲姛鑳�
-                            foreach (var newFunction in deviceList.list)
-                            {
-                                newFunction.SaveFunctionFile();
-                                FunctionList.List.IniFunctionList(newFunction.savePath);
-                            }
+
+
+                        }
+                        //澶勭悊鍓╀笅鐨勬柊澧炲姛鑳�
+                        foreach (var newFunction in deviceList.list) 
+                        {
+                            newFunction.SaveFunctionFile();
+                            FunctionList.List.IniFunctionList(newFunction.savePath);
                         }
                         endTime = DateTime.Now.AddSeconds(5);
                     }
@@ -217,39 +230,40 @@
                         if (sceneList == null)
                         {
                             sceneList = new List<Scene>();
-                            for (int i = 0; i < FunctionList.List.scenes.Count;)
+                        }
+                        for (int i = 0; i < FunctionList.List.scenes.Count;)
+                        {
+                            var localScene = FunctionList.List.scenes[i];
+                            if (localScene == null)
                             {
-                                var localScene = FunctionList.List.scenes[i];
-                                if (localScene == null)
-                                {
-                                    FunctionList.List.scenes.Remove(localScene);
-                                    continue;
-                                }
-                                var newScene = sceneList.Find((obj) => obj.userSceneId == localScene.userSceneId);
-                                if (newScene == null)//濡傛灉浜戠鏈�鏂版暟鎹病鏈夎鏉℃暟鎹紝鍒欐湰鍦伴渶瑕佸垹鎺夎鏁版嵁璁板綍
-                                {
-                                    FunctionList.List.DeleteScene(localScene, false);
-                                }
-                                else
-                                {
-                                    i++;
-                                    if (localScene.modifyTime != newScene.modifyTime)
-                                    {
-                                        localScene.name = newScene.name;
-                                        localScene.collect = newScene.collect;
-                                        localScene.modifyTime = newScene.modifyTime;
-                                        localScene.roomIds = newScene.roomIds;
-                                        localScene.SaveSceneFile();
-                                    }
-                                    sceneList.Remove(newScene);//鎿嶄綔瀹岀殑鏁版嵁娓呯悊鎺夛紝鍓╀笅鐨勫氨鏄柊澧炵殑鍔熻兘
-                                }
+                                FunctionList.List.scenes.Remove(localScene);
+                                continue;
                             }
-                            //澶勭悊鍓╀笅鐨勬柊澧炲姛鑳�
-                            foreach (var newScene in sceneList)
+                            var newScene = sceneList.Find((obj) => obj.userSceneId == localScene.userSceneId);
+                            if (newScene == null)//濡傛灉浜戠鏈�鏂版暟鎹病鏈夎鏉℃暟鎹紝鍒欐湰鍦伴渶瑕佸垹鎺夎鏁版嵁璁板綍
                             {
-                                newScene.SaveSceneFile();
-                                FunctionList.List.scenes.Add(newScene);
+                                FunctionList.List.DeleteScene(localScene, false);
                             }
+                            else
+                            {
+                                i++;
+                                if (localScene.modifyTime != newScene.modifyTime)
+                                {
+                                    localScene.name = newScene.name;
+                                    localScene.collect = newScene.collect;
+                                    localScene.modifyTime = newScene.modifyTime;
+                                    localScene.roomIds = newScene.roomIds;
+                                    localScene.image = newScene.image;
+                                    localScene.SaveSceneFile();
+                                }
+                                sceneList.Remove(newScene);//鎿嶄綔瀹岀殑鏁版嵁娓呯悊鎺夛紝鍓╀笅鐨勫氨鏄柊澧炵殑鍔熻兘
+                            }
+                        }
+                        //澶勭悊鍓╀笅鐨勬柊澧炲姛鑳�
+                        foreach (var tempScene in sceneList)
+                        {
+                            tempScene.SaveSceneFile();
+                            FunctionList.List.scenes.Add(tempScene);
                         }
                         //濡傛灉鏄竴绔彛闇�瑕佹彁鍓嶄笅杞藉満鏅暟鎹紝鍚﹀垯鎺у埗涓嶄簡涓�绔彛鍦烘櫙
                         if (DB_ResidenceData.Instance.GatewayType == 0)
@@ -302,6 +316,10 @@
                         waitPage.Hide();
                         waitPage.RemoveFromParent();
                     });
+                    //涓嶈�冭檻缃戝叧鎯呭喌锛岀洿鎺ヨ闃�
+                    DAL.Mqtt.MqttClient.InitState();
+
+                    FunctionList.List.Read3tyFunctionStatus();
                 }
             });
             downloadDataThread.IsBackground = true;

--
Gitblit v1.8.0