From 592974441a4df95fffd9167c90192da1a390b1c2 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期二, 06 六月 2023 11:51:12 +0800
Subject: [PATCH] Merge branch 'Dev-Branch'

---
 HDL_ON/DAL/DriverLayer/Control.cs |  142 +++++++++++++++++++++++++++++++++--------------
 1 files changed, 100 insertions(+), 42 deletions(-)

diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs
index bd951d5..da0a7b2 100644
--- a/HDL_ON/DAL/DriverLayer/Control.cs
+++ b/HDL_ON/DAL/DriverLayer/Control.cs
@@ -138,45 +138,51 @@
             }
             set
             {
-                if (_GatewayOnline_Cloud != value)
+                try
                 {
-                    _GatewayOnline_Cloud = value;
-                    if (GatewayOnline_Local)
+                    if (_GatewayOnline_Cloud != value)
                     {
-                        return;
-                    }
-                    if (value)
-                    {
-                        if (DB_ResidenceData.Instance.HomeGateway == null)
+                        _GatewayOnline_Cloud = value;
+                        if (GatewayOnline_Local)
                         {
                             return;
                         }
-                        if (!DB_ResidenceData.Instance.HomeGateway.gatewayStatus)//杩滅▼鎯呭喌涓嬶紝缃戝叧鏈摼鎺ユ湇鍔″櫒涓嶈兘淇敼涓婚〉缃戝叧鐘舵��
+                        if (value)
                         {
+                            if (DB_ResidenceData.Instance.HomeGateway == null)
+                            {
+                                return;
+                            }
+                            if (!DB_ResidenceData.Instance.HomeGateway.gatewayStatus)//杩滅▼鎯呭喌涓嬶紝缃戝叧鏈摼鎺ユ湇鍔″櫒涓嶈兘淇敼涓婚〉缃戝叧鐘舵��
+                            {
+                                new System.Threading.Thread(() =>
+                                {
+                                    System.Threading.Thread.Sleep(3000);
+                                    var pm = new DAL.Server.HttpServerRequest();
+                                    pm.GetGatewayInfo();
+                                })
+                                { IsBackground = true }.Start();
+                                return;
+                            }
+                            //淇敼涓婚〉杩炴帴鐘舵��
+                            HomePage.LoadEvent_CheckLinkStatus();
+                            MainPage.Log($"缃戝叧浜戠鍦ㄧ嚎锛屽埛鏂拌澶囩姸鎬�");
                             new System.Threading.Thread(() =>
                             {
-                                System.Threading.Thread.Sleep(3000);
-                                var pm = new DAL.Server.HttpServerRequest();
-                                pm.GetGatewayInfo();
+                                System.Threading.Thread.Sleep(1000);
+                                FunctionList.List.ReadAllFunctionStatus();
                             })
-                            { IsBackground = true }.Start();
-                            return;
+                            { IsBackground = true, Priority = System.Threading.ThreadPriority.AboveNormal }.Start();
                         }
-                        //淇敼涓婚〉杩炴帴鐘舵��
-                        HomePage.LoadEvent_CheckLinkStatus();
-                        MainPage.Log($"缃戝叧浜戠鍦ㄧ嚎锛屽埛鏂拌澶囩姸鎬�");
-                        new System.Threading.Thread(() =>
+                        else
                         {
-                            System.Threading.Thread.Sleep(1000);
-                            FunctionList.List.ReadAllFunctionStatus();
-                        })
-                        { IsBackground = true, Priority = System.Threading.ThreadPriority.AboveNormal }.Start();
+                            //淇敼涓婚〉杩炴帴鐘舵��
+                            HomePage.LoadEvent_CheckLinkStatus();
+                        }
                     }
-                    else
-                    {
-                        //淇敼涓婚〉杩炴帴鐘舵��
-                        HomePage.LoadEvent_CheckLinkStatus();
-                    }
+                }catch(Exception ex)
+                {
+                    MainPage.Log($"Set GatewayCloudOnline Error:{ex.Message}");
                 }
             }
         }
@@ -251,7 +257,8 @@
         public void SearchLoaclGateway()
         {
             //2021-01-15 : 浣忓畢娌℃湁缁戝畾缃戝叧鐨勬椂鍊欎笉鐢ㄦ悳绱紝骞朵笖涓嶈兘閾炬帴mqtt
-            if (DB_ResidenceData.Instance.HomeGateway == null || string.IsNullOrEmpty(DB_ResidenceData.Instance.HomeGateway.gatewayId))
+            if (DB_ResidenceData.Instance.HomeGateway == null || string.IsNullOrEmpty(DB_ResidenceData.Instance.HomeGateway.gatewayId) ||
+                    !UserInfo.Current.IsLogin)
             {
                 return;
             }
@@ -458,7 +465,6 @@
                 return true;
             }
 
-
             //MainPage.Log($"鍙戦�佹暟鎹�:{Newtonsoft.Json.JsonConvert.SerializeObject(commandDictionary)}");
 
             ///绗笁鏂规秱楦﹁澶囩粺涓�浣跨敤杩滅▼鎺у埗
@@ -510,6 +516,7 @@
                         var sendBytes = Ins.ConvertSendBodyData(CommunicationTopic.ct.ControlFunctionTopic, functionControlDataJson);
                         new Control_Udp().SendLocalHdlLinkData(sendBytes, functionControlDataObj.id, resend);
                         MainPage.Log($"鏈湴閫氳 鍙戦�丠DL-Link鏁版嵁:{functionControlDataJson}");
+                            Ins.myTcpClient.SendMessage(sendBytes);
                     }
                 }
                 //杩滅▼閫氳
@@ -1082,7 +1089,8 @@
                     }
                 }
                 else if (receiveObj.Topic == CommunicationTopic.ct.ReadStatus + "_reply" ||
-                    receiveObj.Topic == CommunicationTopic.ct.ControlFunctionTopic + "_reply" ||
+                    receiveObj.Topic == CommunicationTopic.ct.ControlFunctionTopic + "_reply" || 
+                    receiveObj.Topic == CommunicationTopic.ct.ControlGroupControlTopic + "_reply" || 
                     receiveObj.Topic == CommunicationTopic.ct.GatewayUpStatus ||
                     receiveObj.Topic.Contains(CommunicationTopic.ct.GatewayUpSortTopic))
                 {
@@ -1175,11 +1183,62 @@
 
         }
 
+
         /// <summary>
         /// 鏇存柊璁惧鐘舵��
         /// A鍗忚鏁版嵁
         /// </summary>
-        /// <param name="updateBytes"></param>
+        public void UpdataGroupControlStatus(string revString, byte[] usefulBytes, bool isCloudData = false)
+        {
+            var temp = JsonConvert.DeserializeObject<AlinkFunctionStatusObj>(revString);
+            if (temp != null)
+            {
+                Control_Udp.ReceiveRepeatManager(temp.id, usefulBytes);
+                var allLocalFuntion = FunctionList.List.groupControls;
+                foreach (var updateTemp in temp.objects)
+                {
+                    try
+                    {
+                        var localFunction = allLocalFuntion.Find((obj) => obj.sid == updateTemp.sid);
+                        if (localFunction == null)
+                        {
+                            continue;
+                        }
+                        MainPage.Log($"鏀跺埌鏁版嵁:{revString}");
+                        foreach (var attr in updateTemp.status)
+                        {
+                            localFunction.time_stamp = temp.time_stamp;
+                            localFunction.SetAttrState(attr.key, attr.value);
+
+                        }
+
+                        //鏇存柊鐣岄潰鐘舵��
+                        switch (localFunction.spk)
+                        {
+                            case SPK.ElectricEnergy:
+                                EnergyMainPage.UpdataStatus(localFunction);
+                                break;
+                        }
+
+                        HomePage.UpdataFunctionStates(localFunction);
+                        RoomPage.UpdataStates(localFunction);
+                        FunctionPage.UpdataStates(localFunction);
+                        ClassificationPage.UpdataInfo(localFunction);
+
+                    }
+                    catch (Exception ex)
+                    {
+                        MainPage.Log($"A鍗忚鏇存柊鐘舵�佸紓甯�:{ex.Message}");
+                    }
+                }
+            }
+        }
+
+
+        /// <summary>
+        /// 鏇存柊璁惧鐘舵��
+        /// A鍗忚鏁版嵁
+        /// </summary>
         public void UpdataFunctionStatus(string revString, byte[] usefulBytes, bool isCloudData = false)
         {
             ////test 浜戠杩炴帴鎴愬姛鏃讹紝涓嶉�傜敤鏈湴鏁版嵁鏇存柊
@@ -1231,21 +1290,20 @@
                             }
                         }
 
-                        if (SPK.MusicSpkList().Contains(localFunction.spk))
-                        {
-                            MainPage.Log($"闊充箰鏀跺埌鏁版嵁:{revString}");
-
-                        }
+                        //if (SPK.MusicSpkList().Contains(localFunction.spk))
+                        //{
+                        //    if (updateTemp.status.Count < 3)
+                        //    {
+                        //        ///鏄煶涔愬姛鑳界殑
+                        //        ///涓婃姤灞炴�у皯3鏉′笉鍋氬鐞�
+                        //        return;
+                        //    }
+                        //}
+                        MainPage.Log($"鏀跺埌鏁版嵁:{revString}");
                         foreach (var attr in updateTemp.status)
                         {
                             localFunction.time_stamp = temp.time_stamp;
                             localFunction.SetAttrState(attr.key, attr.value);
-                            if (SPK.MusicSpkList().Contains(localFunction.spk))
-                            {
-                                Console.WriteLine("闊充箰鎾斁鍣ㄦ坊鍔犵紦瀛樻暟鎹�=======" + revString);
-
-                            }
-
 
                         }
 

--
Gitblit v1.8.0