From 1a0a7f736c6d2e7129e7591d40bed67ec7c0f09a Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期五, 05 二月 2021 10:47:42 +0800
Subject: [PATCH] 2021-02-05 1.编译冲突修改

---
 HDL_ON/DAL/DriverLayer/Control.cs |   83 ++++++++++++++++++++++++++++++++++++-----
 1 files changed, 72 insertions(+), 11 deletions(-)

diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs
index 861a54d..5d85428 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;
@@ -300,8 +310,9 @@
 
             MainPage.Log($"鍙戦�佹暟鎹�:{Newtonsoft.Json.JsonConvert.SerializeObject(commandDictionary)}");
 
+            //useRemote = true;
             //杩滅▼閫氳
-            if (Ins.IsRemote)
+            if (Ins.IsRemote || useRemote == true)
             {
                 DAL.Server.HttpServerRequest httpServer = new DAL.Server.HttpServerRequest();
                 //ALink鎺у埗銆丅us鎺у埗浣跨敤鍚屼竴涓帴鍙f帶鍒讹紝鐢变簯绔礋璐hВ鏋�
@@ -342,14 +353,14 @@
         public void SwtichFunctions(bool open,List<Function> functions)
         {
             var count = 0;
-            var logString = open ? "鎵撳紑" : "鍏抽棴";
+            var logString = open ? "鎵撳紑\r\n" : "鍏抽棴\r\n";
             List<ApiAlinkControlActionObj> actionObjs = new List<ApiAlinkControlActionObj>();
             Dictionary<string, string> d = new Dictionary<string, string>();
             d.Add(FunctionAttributeKey.OnOff, open ? "on" : "off");
             var pm = new DAL.Server.HttpServerRequest();
             foreach (var temp in functions)
             {
-                logString += temp.spk + ":" + temp.sid;
+                logString += temp.spk + ":" + temp.sid + "\r\n";
                 var apiControlData = temp.GetApiControlData(d);
                 actionObjs.Add(apiControlData);
                 count++;
@@ -370,6 +381,34 @@
         {
             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;
+                            if (SPK.Get3tySpk(SPK.BrandType.Tuya).Contains(temp.spk))
+                            {
+                                Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(temp.sid, temp.status);
+                            }
+                        }
+                    }
+                }
+            }
         }
 
         /// <summary>
@@ -442,8 +481,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 +905,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.sid,updateTemp.status);
+                                    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