From 41995c4cd30ca1c5a814ea0af6f70d3b86368137 Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期五, 20 八月 2021 09:07:07 +0800 Subject: [PATCH] 2021-08-20 09:06:44 --- HDL_ON/DAL/DriverLayer/Control.cs | 164 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 135 insertions(+), 29 deletions(-) diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs index 559605c..99c5b0e 100644 --- a/HDL_ON/DAL/DriverLayer/Control.cs +++ b/HDL_ON/DAL/DriverLayer/Control.cs @@ -26,7 +26,6 @@ public class Control { - static Control _control; public static Control Ins { @@ -283,6 +282,30 @@ /// </summary> public void ControlScene(Scene scene) { + //浣撻獙妯″紡 + if(MainPage.NoLoginMode) + { + foreach(var sceneFunction in scene.functions) + { + var revString = ""; + var upDataObj = new AlinkFunctionStatusObj(); + upDataObj.id = "999"; + upDataObj.objects = new List<AlinkStatusData>(); + var asd = new AlinkStatusData() { deviceId = sceneFunction.localFunction.deviceId, sid = sceneFunction.sid }; + var status1 = new List<AttributesStatus>(); + foreach (var dic in sceneFunction.status) + { + status1.Add(new AttributesStatus() { key = dic.key, value = dic.value }); + } + asd.status = status1; + upDataObj.objects.Add(asd); + revString = Newtonsoft.Json.JsonConvert.SerializeObject(upDataObj); + UpdataFunctionStatus(revString, null, true); + } + return; + } + + //杩滅▼鎴栬�呮帶鍒秎ink缃戝叧鍦烘櫙 if (!Ins.GatewayOnline_Local || DB_ResidenceData.Instance.GatewayType == 1) { new System.Threading.Thread(() => @@ -299,6 +322,15 @@ } } } + /// <summary> + /// 瀹夐槻鎺у埗 + /// </summary> + public void ControlArm() + { + DAL.Server.HttpServerRequest httpServer = new DAL.Server.HttpServerRequest(); + //var pack = httpServer.GetSecurityAlarmLogList + } + /// <summary> /// 鍙戦�佸懡浠� @@ -336,10 +368,31 @@ } } + ///dome鎺у埗 + if (MainPage.NoLoginMode) + { + var revString = ""; + var upDataObj = new AlinkFunctionStatusObj(); + upDataObj.id = "999"; + upDataObj.objects = new List<AlinkStatusData>(); + var asd = new AlinkStatusData() { deviceId = function.deviceId, sid = function.sid }; + var status1 = new List<AttributesStatus>(); + foreach (var dic in commandDictionary) + { + status1.Add(new AttributesStatus() { key = dic.Key, value = dic.Value }); + } + asd.status = status1; + upDataObj.objects.Add(asd); + revString = Newtonsoft.Json.JsonConvert.SerializeObject(upDataObj); + UpdataFunctionStatus(revString, null, true); + return; + } + + //MainPage.Log($"鍙戦�佹暟鎹�:{Newtonsoft.Json.JsonConvert.SerializeObject(commandDictionary)}"); ///绗笁鏂规秱楦﹁澶囩粺涓�浣跨敤杩滅▼鎺у埗 - switch(function.spk) + switch (function.spk) { case SPK.ElectricTuyaAirCleaner: case SPK.ElectricTuyaFan: @@ -361,16 +414,6 @@ } else { - ////杩滅▼閫氳 - //if (Ins.GatewayOnline_Local == false && Ins.GatewayOnline_Cloud == true) - //{ - // DAL.Server.HttpServerRequest httpServer = new DAL.Server.HttpServerRequest(); - // //ALink鎺у埗銆丅us鎺у埗浣跨敤鍚屼竴涓帴鍙f帶鍒讹紝鐢变簯绔礋璐hВ鏋� - // var apiControlData = function.GetApiControlData(commandDictionary); - // var actionObjs = new List<ApiAlinkControlActionObj>(); - // actionObjs.Add(apiControlData); - // var pack = httpServer.ControlDevice(actionObjs); - //} //鏈湴閫氳 if (Ins.GatewayOnline_Local) { @@ -399,6 +442,25 @@ //杩滅▼閫氳 else { + //Bug淇锛氫竴绔彛杩滅▼鎺у埗璋冨厜璁惧鐨勮皟鍏夊睘鎬ф椂锛屾棤娉曟帶鍒跺埌0锛屽弽澶嶆í璺炽�� + //鍥犱负On + 杩滅▼鎺у埗鍙戦�佺粰浜戠浣跨敤鐨勬槸link鍗忚鏁版嵁锛屾潹娑涗腑杞粰楂樿儨澶勭悊鏃跺�欓�昏緫涓婃湁鍐茬獊锛屽鑷存棤娉曞崟鐙帶鍒朵寒搴﹀�硷紝闇�瑕佸悓鏃跺彂閫佸紑鍏冲�间笌浜害鍊笺�� + if (DB_ResidenceData.Instance.GatewayType == 0) + { + if (commandDictionary.Count == 1) + { + if (commandDictionary.ContainsKey(FunctionAttributeKey.Brightness)) + { + commandDictionary.Add(FunctionAttributeKey.OnOff, commandDictionary[FunctionAttributeKey.Brightness] == "0" ? "off" : "on"); + } + } + if(function.spk == SPK.LightCCT) + { + if (!commandDictionary.ContainsKey(FunctionAttributeKey.CCT)) + { + commandDictionary.Add(FunctionAttributeKey.CCT, function.GetAttrState(FunctionAttributeKey.CCT)); + } + } + } DAL.Server.HttpServerRequest httpServer = new DAL.Server.HttpServerRequest(); //ALink鎺у埗銆丅us鎺у埗浣跨敤鍚屼竴涓帴鍙f帶鍒讹紝鐢变簯绔礋璐hВ鏋� var apiControlData = function.GetApiControlData(commandDictionary); @@ -414,29 +476,59 @@ /// </summary> public void SwtichFunctions(bool open,List<Function> functions) { + //dome妯″紡鎺у埗 + if(MainPage.NoLoginMode) + { + new System.Threading.Thread(() => + { + foreach (var temp in functions) + { + Dictionary<string, string> d1 = new Dictionary<string, string>(); + d1.Add(FunctionAttributeKey.OnOff, open ? "on" : "off"); + SendWriteCommand(temp, d1); + System.Threading.Thread.Sleep(100); + } + }) + { IsBackground = true }.Start(); + return; + } + var count = 0; - 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) + //涓�绔彛鍏ㄥ紑鍏ㄥ叧闇�瑕佸欢鏃跺彂閫� + if (DB_ResidenceData.Instance.GatewayType == 0) { - logString += temp.spk + ":" + temp.sid + "\r\n"; - var apiControlData = temp.GetApiControlData(d); - actionObjs.Add(apiControlData); - count++; - if (count > 9) + new System.Threading.Thread(() => { - var result = pm.ControlDevice(actionObjs); - actionObjs = new List<ApiAlinkControlActionObj>(); - count = 0; - MainPage.Log(logString); - logString = ""; - } + foreach (var temp in functions) + { + var apiControlData = temp.GetApiControlData(d); + var result = pm.ControlDevice(new List<ApiAlinkControlActionObj>() { apiControlData }); + System.Threading.Thread.Sleep(100); + } + }) + { IsBackground = true }.Start(); } - var pack = pm.ControlDevice(actionObjs); - MainPage.Log(logString); + else + { + foreach (var temp in functions) + { + var apiControlData = temp.GetApiControlData(d); + actionObjs.Add(apiControlData); + count++; + if (count > 9) + { + var result = pm.ControlDevice(actionObjs); + actionObjs = new List<ApiAlinkControlActionObj>(); + count = 0; + System.Threading.Thread.Sleep(100); + } + } + var pack = pm.ControlDevice(actionObjs); + } } public void SendApiReadCommand(List<string> functionIds) @@ -559,7 +651,7 @@ } } /// <summary> - /// 杞崲閫氳鏁版嵁 + /// 杞崲鍙戦�佹暟鎹� /// </summary> public byte[] ConvertSendBodyData(string topic, string bodyDataString) { @@ -621,8 +713,9 @@ //} receiveObj.BodyDataString = res[1]; - if (receiveObj.Topic == CommunicationTopic.SearchLoaclGatewayReply) + if (receiveObj.Topic == CommunicationTopic.SearchLoaclGatewayReply || receiveObj.Topic == CommunicationTopic.GatewayBroadcast) { + var bodyJObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack>(res[1]); if (bodyJObj == null) { @@ -837,6 +930,19 @@ } EnvironmentalPage.LoadEvent_UpdataStatus(localFunction); break; + case SPK.SensorEnvironment: + case SPK.SensorEnvironment2: + case SPK.SensorEnvironment3: + if (localFunction.GetAttributes().Contains(FunctionAttributeKey.Temperature)) + { + HomePage.LoadEvent_RefreshEnvirIndoorTemp(); + } + if (localFunction.GetAttributes().Contains(FunctionAttributeKey.Humidity)) + { + HomePage.LoadEvent_RefreshEnvirIndoorHumi(); + } + EnvironmentalPage.LoadEvent_UpdataStatus(localFunction); + break; case SPK.ElectricSocket: SocketPage.UpdataState(localFunction); break; -- Gitblit v1.8.0