From ed25f1dd70fb96ee181c8c2e53c7d57a3412afbe Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期一, 01 二月 2021 19:05:16 +0800
Subject: [PATCH] 1

---
 HDL_ON/DAL/DriverLayer/Control.cs |   74 ++++++++++++++++++++++++++++++++----
 1 files changed, 65 insertions(+), 9 deletions(-)

diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs
index b0442fa..91f0f1b 100644
--- a/HDL_ON/DAL/DriverLayer/Control.cs
+++ b/HDL_ON/DAL/DriverLayer/Control.cs
@@ -1,4 +1,4 @@
-using System;
+锘縰sing System;
 using System.Collections.Generic;
 using System.Text;
 using HDL_ON.Entity;
@@ -86,6 +86,10 @@
                     {
                         if (IsRemote)//濡傛灉鏄繙绋�
                         {
+                            if(DB_ResidenceData.Instance.HomeGateway == null)
+                            {
+                                return;
+                            }
                             if (!DB_ResidenceData.Instance.HomeGateway.gatewayStatus)//杩滅▼鎯呭喌涓嬶紝缃戝叧鏈摼鎺ユ湇鍔″櫒涓嶈兘淇敼涓婚〉缃戝叧鐘舵��
                             {
                                 new System.Threading.Thread(() => {
@@ -188,6 +192,11 @@
         /// </summary>
         public void SearchLoaclGateway()
         {
+            //2021-01-15 : 浣忓畢娌℃湁缁戝畾缃戝叧鐨勬椂鍊欎笉鐢ㄦ悳绱紝骞朵笖涓嶈兘閾炬帴mqtt
+            if(DB_ResidenceData.Instance.HomeGateway == null)
+            {
+                return;
+            }
             var ggg = DB_ResidenceData.Instance.GatewayType == 0 ? "涓�绔彛" : "A缃戝叧";
             var ggg1 = MainPage.InternetStatus == 1 ? "4G" : "wifi";
             MainPage.Log($"鎼滅储缃戝叧鍒楄〃锛岀綉鍏崇被鍨�:{ggg};缃戠粶绫诲瀷:{ggg1}");
@@ -270,8 +279,9 @@
         /// </summary>
         /// <param name="commandString"></param>
         /// <param name="function"></param>
+        /// <param name="useRemote">鏄惁鐩存帴浣跨敤杩滅▼鍙戦��</param>
         /// <returns></returns>
-        public void SendWriteCommand(Function function, Dictionary<string, string> commandDictionary)
+        public void SendWriteCommand(Function function, Dictionary<string, string> commandDictionary, bool useRemote = false)
         {
             function.controlCounter++;
             function.refreshTime = DateTime.Now;
@@ -301,7 +311,7 @@
             MainPage.Log($"鍙戦�佹暟鎹�:{Newtonsoft.Json.JsonConvert.SerializeObject(commandDictionary)}");
 
             //杩滅▼閫氳
-            if (Ins.IsRemote)
+            if (Ins.IsRemote || useRemote == true)
             {
                 DAL.Server.HttpServerRequest httpServer = new DAL.Server.HttpServerRequest();
                 //ALink鎺у埗銆丅us鎺у埗浣跨敤鍚屼竴涓帴鍙f帶鍒讹紝鐢变簯绔礋璐hВ鏋�
@@ -370,6 +380,30 @@
         {
             var pm = new DAL.Server.HttpServerRequest();
             var pack = pm.RefreshDeviceStatus(functionIds);
+        }
+        /// <summary>
+        /// 璇诲彇鍔熻兘璇︾粏鏁版嵁
+        /// </summary>
+        /// <param name="functionIds"></param>
+        public void ReadFunctionsInfo(List<string> functionIds)
+        {
+            var pm = new DAL.Server.HttpServerRequest();
+            var pack = pm.GetDeviceInfoList(functionIds);
+            if(pack!= null&& pack.Data!=null)
+            {
+                var ddd = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Function>>(pack.Data.ToString());
+                if(ddd!= null)
+                {
+                    foreach(var function in ddd)
+                    {
+                        var temp = FunctionList.List.GetDeviceFunctionList().Find((obj) => obj.deviceId == function.deviceId);
+                        if(temp!= null)
+                        {
+                            temp = function;
+                        }
+                    }
+                }
+            }
         }
 
         /// <summary>
@@ -442,8 +476,16 @@
         {
             if (Ins.IsRemote)
             {
-                var pm = new DAL.Server.HttpServerRequest();
-                var result = pm.ExecuteScene(scene.userSceneId);
+                //浜戠鍋氬鐞嗗彂閫佷竴绔彛鍦烘櫙
+                //if (DB_ResidenceData.Instance.GatewayType == 0)
+                //{
+                //    new Control_Udp().ControlBusScenes(scene);
+                //}
+                //else
+                {
+                    var pm = new DAL.Server.HttpServerRequest();
+                    var result = pm.ExecuteScene(scene.userSceneId);
+                }
             }
             else
             {
@@ -858,14 +900,28 @@
                                     }
                                     break;
                                 case SPK.ElectricTV:
+                                    break;
+                                case SPK.ElectricTuyaAirCleaner:
+                                case SPK.ElectricTuyaFan:
+                                case SPK.ElectricTuyaWeepRobot:
+                                case SPK.ElectricTuyaWaterValve:
+                                    //璁惧鐘舵�佹帹閫�
+                                    var myDevice = Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp);
+                                    if (myDevice != null)
+                                    {
+                                        localObj = myDevice;
+                                    }
                                     break;
                                 default:
                                     break;
                             }
-                            HomePage.UpdataFunctionStates(localObj);
-                            RoomPage.UpdataStates(localObj);
-                            FunctionPage.UpdataStates(localObj);
-                            ClassificationPage.UpdataInfo(localObj);
+                            if (localObj != null)
+                            {
+                                HomePage.UpdataFunctionStates(localObj);
+                                RoomPage.UpdataStates(localObj);
+                                FunctionPage.UpdataStates(localObj);
+                                ClassificationPage.UpdataInfo(localObj);
+                            }
                         }
                     }
                     catch (Exception ex)

--
Gitblit v1.8.0