From d4811b7d34b45ff6b21b97f11da128b5572ec526 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期三, 03 三月 2021 16:03:03 +0800
Subject: [PATCH] 20210303-1

---
 HDL_ON/DAL/DriverLayer/Control.cs |   50 ++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 36 insertions(+), 14 deletions(-)

diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs
index e8827a2..1d8c208 100644
--- a/HDL_ON/DAL/DriverLayer/Control.cs
+++ b/HDL_ON/DAL/DriverLayer/Control.cs
@@ -141,7 +141,7 @@
                     {
                         //淇敼涓婚〉杩炴帴鐘舵��
                         HomePage.LoadEvent_CheckLinkStatus();
-                        MainPage.Log($"缃戝叧鍦ㄧ嚎锛屽埛鏂拌澶囩姸鎬�");
+                        MainPage.Log($"缃戝叧灞�鍩熺綉鍦ㄧ嚎锛屽埛鏂拌澶囩姸鎬�");
                         new System.Threading.Thread(() =>
                         {
                             System.Threading.Thread.Sleep(1000);
@@ -195,7 +195,7 @@
                         }
                         //淇敼涓婚〉杩炴帴鐘舵��
                         HomePage.LoadEvent_CheckLinkStatus();
-                        MainPage.Log($"缃戝叧鍦ㄧ嚎锛屽埛鏂拌澶囩姸鎬�");
+                        MainPage.Log($"缃戝叧浜戠鍦ㄧ嚎锛屽埛鏂拌澶囩姸鎬�");
                         new System.Threading.Thread(() =>
                         {
                             System.Threading.Thread.Sleep(1000);
@@ -682,7 +682,7 @@
                     }
                 }
 
-                MainPage.Log($"time 1 :{receiveObj.Topic}");
+                MainPage.Log($"灞�鍩熺綉淇℃伅: {receiveObj.Topic}");
 
 
                 //楠岃瘉鏈夋晥鏁版嵁闀垮害
@@ -733,9 +733,17 @@
         /// A鍗忚鏁版嵁
         /// </summary>
         /// <param name="updateBytes"></param>
-        public void UpdataFunctionStatus(string revString, byte[] usefulBytes)
+        public void UpdataFunctionStatus(string revString, byte[] usefulBytes,bool isCloudData = false)
         {
-            MainPage.Log($"A鍗忚鏇存柊鐘舵��:{revString}");
+
+            if (Ins.GatewayOnline_Local && isCloudData)//鏈湴閾炬帴锛岄櫎浜嗘秱楦﹁澶囨暟鎹箣澶栫殑浜戠鏁版嵁涓嶅鐞�
+            {
+                if (FunctionList.List.GetDeviceFunctionList(SPK.BrandType.Tuya).Count == 0)
+                {
+                    //MainPage.Log($"A鍗忚鏇存柊鐘舵��:鏈湴閾炬帴锛岄櫎浜嗘秱楦﹁澶囨暟鎹箣澶栫殑浜戠鏁版嵁涓嶅鐞�...");
+                    return;
+                }
+            }
             var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<AlinkFunctionStatusObj>(revString);
             if (temp != null)
             {
@@ -745,18 +753,27 @@
                 {
                     try
                     {
-                        //bool hadChange = false;//鐘舵�佹湁鍙樺寲鍐嶆洿鏂扮晫闈�
                         var localFunction = allLocalFuntion.Find((obj) => obj.sid == updateTemp.sid);
+                        if (Ins.GatewayOnline_Local && isCloudData)//鏈湴閾炬帴锛岄櫎浜嗘秱楦﹁澶囨暟鎹箣澶栫殑浜戠鏁版嵁涓嶅鐞�
+                        {
+                            if(!SPK.Get3tySpk(SPK.BrandType.All3tyBrand).Contains(localFunction.spk))
+                            {
+                                //MainPage.Log($"A鍗忚鏇存柊鐘舵��:鏈湴閾炬帴锛岄櫎浜嗘秱楦﹁澶囨暟鎹箣澶栫殑浜戠鏁版嵁涓嶅鐞�........");
+                                return;
+                            }
+                        }
+                        //MainPage.Log($"A鍗忚鏇存柊鐘舵��:{revString}");
+                        foreach (var attr in updateTemp.status)
+                        {
+                            var attrState = localFunction.status.Find((func) => func.key == attr.key);
+                            if(attrState!= null)
+                            {
+                                attrState.value = attr.value;
+                            }
+                        }
+
                         if (localFunction != null)
                         {
-                            //var updateInfoString = $"鏇存柊璁惧:{localFunction.name}";
-                            //foreach (var attr in updateTemp.status)
-                            //{
-                            //    updateInfoString += $"  key:{attr.key};value:{attr.value}";
-                            //}
-                            //MainPage.Log(updateInfoString);
-
-
                             //鏇存柊鐣岄潰鐘舵��
                             Function localObj = null;
                             switch (localFunction.spk)
@@ -1029,6 +1046,11 @@
                                 case SPK.ElectricTuyaFan:
                                 case SPK.ElectricTuyaWeepRobot:
                                 case SPK.ElectricTuyaWaterValve:
+                                case SPK.SensorPir:
+                                case SPK.SensorDoorWindow:
+                                case SPK.SensorSmoke:
+                                case SPK.SensorWater:
+                                case SPK.ClothesHanger:
                                     //璁惧鐘舵�佹帹閫�
                                     var myDevice = Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid,updateTemp.status);
                                     if (myDevice != null)

--
Gitblit v1.8.0