From 6d73bf6e816570291865674bef8bce8972e4de3f Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期三, 01 十二月 2021 16:32:57 +0800 Subject: [PATCH] 2021-12-01-01 --- HDL_ON/Entity/FunctionList.cs | 229 +++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 143 insertions(+), 86 deletions(-) diff --git a/HDL_ON/Entity/FunctionList.cs b/HDL_ON/Entity/FunctionList.cs index 9f60e5f..b76cae2 100644 --- a/HDL_ON/Entity/FunctionList.cs +++ b/HDL_ON/Entity/FunctionList.cs @@ -5,6 +5,7 @@ using HDL_ON.Common; using HDL_ON.DAL; using HDL_ON.DAL.Server; +using HDL_ON.DriverLayer; using Shared; namespace HDL_ON.Entity @@ -101,6 +102,7 @@ return Functions.FindAll((obj) => spkList.Contains(obj.spk)); } + /// <summary> /// 绾㈠瀹濆垪琛� /// </summary> @@ -108,15 +110,26 @@ { return Functions.FindAll((obj) => obj.spk == SPK.IrModule); } - #endregion + + /// <summary> + /// 闊充箰鍒楄〃 + /// </summary> + /// <returns></returns> + public List<Function> GetMusicList() + { + var spkList = SPK.MusicSpkList(); + return Functions.FindAll((obj) => spkList.Contains(obj.spk)); + } + + /// <summary> /// 鐜浼犳劅鍣ㄥ垪琛� /// </summary> public List<Function> GetEnvirSensorsList() { - var spkList = SPK.EnvironSpkList(); - return Functions.FindAll((obj) => spkList.Contains(obj.spk)); + var spkList = SPK.EnvironDeviceSpkList(); + return Functions.FindAll((obj) => spkList.Contains(obj.spk)); } /// <summary> /// 瀹夐槻璁惧鍒楄〃 @@ -128,9 +141,29 @@ } /// <summary> - /// 鍙瀵硅鍒楄〃 + /// 鍙瀵硅鍒楄〃,褰撲负null鎴杝ize涓�0鍒欎笉鏄剧ず鍙瀵硅icon /// </summary> - public UI.UI2.FuntionControlView.Video.VideoClouds videoIntercom; + // public UI.UI2.FuntionControlView.Video.VideoClouds videoIntercom; + public List<UI.UI2.FuntionControlView.Video.Video> videoIntercom = new List<UI.UI2.FuntionControlView.Video.Video>(); + + List<Function> _OtherBrandFunction; + /// <summary> + /// 绗笁鏂瑰搧鐗屽姛鑳� + /// </summary> + public List<Function> OtherBrandFunction + { + get + { + if(_OtherBrandFunction == null) + { + _OtherBrandFunction = new List<Function>(); + var spkList = SPK.GetAll3tySPK(); + _OtherBrandFunction = Functions.FindAll((obj) => spkList.Contains(obj.spk)); + } + return _OtherBrandFunction; + } + } + /// <summary> /// 鍦烘櫙鍒楄〃 @@ -140,7 +173,8 @@ /// <summary> /// 瀹夐槻鍒楄〃 /// </summary> - public List<Security> securities = new List<Security>(); + public List<SecurityAlarm> securities = new List<SecurityAlarm>(); + /// <summary> /// 鍔犺浇鍔熻兘鍒楄〃 @@ -152,67 +186,79 @@ /// <para>false:鐩存帴鏃犳潯浠舵坊鍔�</para></param> public void IniFunctionList(string filePath, bool checkRepeat = false) { - // todo 澧炲姞璁惧锛屽鍔犲姛鑳借繘鍔熻兘鍒楄〃 - if (filePath.StartsWith("FunctionData_")) + try { - var functionDataBytes = FileUtlis.Files.ReadFile(filePath); - var functionDataString = System.Text.Encoding.UTF8.GetString(functionDataBytes); - var tempFunction = Newtonsoft.Json.JsonConvert.DeserializeObject<Function>(functionDataString); - if (tempFunction == null) + // todo 澧炲姞璁惧锛屽鍔犲姛鑳借繘鍔熻兘鍒楄〃 + if (filePath.StartsWith("FunctionData_")) { - MainPage.Log("null"); - FileUtlis.Files.DeleteFile(filePath); - return; - } - if (checkRepeat == true) - { - //妫�娴嬮噸澶� - for (int i = 0; i < Functions.Count; i++) - { - if (Functions[i].deviceId == tempFunction.deviceId) - { - //鍏堢Щ闄ゆ帀鍐嶅姞 - Functions.RemoveAt(i); - Functions.Add(tempFunction); - return; - } - } - } - Functions.Add(tempFunction); - } - else if (filePath.StartsWith("SceneData_")) - { - var sceneDataBytes = FileUtlis.Files.ReadFile(filePath); - var sceneDataString = System.Text.Encoding.UTF8.GetString(sceneDataBytes); - var tempScene = Newtonsoft.Json.JsonConvert.DeserializeObject<Scene>(sceneDataString); - List.scenes.Add(tempScene); - } - else if (filePath.StartsWith("SecurityData_")) - { - var dataBytes = FileUtlis.Files.ReadFile(filePath); - var dataString = System.Text.Encoding.UTF8.GetString(dataBytes); - var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<Security>(dataString); - if (temp == null) - { - MainPage.Log("null"); - FileUtlis.Files.DeleteFile(filePath); - return; - } - if (checkRepeat == true) - { - //妫�娴嬮噸澶� - for (int i = 0; i < securities.Count; i++) + var functionDataBytes = FileUtlis.Files.ReadFile(filePath); + var functionDataString = System.Text.Encoding.UTF8.GetString(functionDataBytes); + var tempFunction = Newtonsoft.Json.JsonConvert.DeserializeObject<Function>(functionDataString); + if (tempFunction == null) { - if (securities[i].sid == temp.sid) + MainPage.Log("null"); + FileUtlis.Files.DeleteFile(filePath); + return; + } + //闊充箰閮ㄥ垎瑕佷慨鏀� + //if(tempFunction.spk.ToString() == SPK.MusicStandard) + //{ + // UI.Music.A31MusicModel.A31MusicModelList.Add(Newtonsoft.Json.JsonConvert.DeserializeObject<UI.Music.A31MusicModel>(functionDataString)); + //} + if (checkRepeat == true) + { + //妫�娴嬮噸澶� + for (int i = 0; i < Functions.Count; i++) { - //鍏堢Щ闄ゆ帀鍐嶅姞 - securities.RemoveAt(i); - securities.Add(temp); - return; + if (Functions[i].deviceId == tempFunction.deviceId) + { + //鍏堢Щ闄ゆ帀鍐嶅姞 + Functions.RemoveAt(i); + Functions.Add(tempFunction); + return; + } } } + Functions.Add(tempFunction); } - securities.Add(temp); + if (filePath.StartsWith("SceneData_")) + { + var sceneDataBytes = FileUtlis.Files.ReadFile(filePath); + var sceneDataString = System.Text.Encoding.UTF8.GetString(sceneDataBytes); + var tempScene = Newtonsoft.Json.JsonConvert.DeserializeObject<Scene>(sceneDataString); + List.scenes.Add(tempScene); + } + else if (filePath.StartsWith("SecurityData_")) + { + var dataBytes = FileUtlis.Files.ReadFile(filePath); + var dataString = System.Text.Encoding.UTF8.GetString(dataBytes); + var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<SecurityAlarm>(dataString); + if (temp == null) + { + MainPage.Log("null"); + FileUtlis.Files.DeleteFile(filePath); + return; + } + if (checkRepeat == true) + { + //妫�娴嬮噸澶� + for (int i = 0; i < securities.Count; i++) + { + if (securities[i].sid == temp.sid) + { + //鍏堢Щ闄ゆ帀鍐嶅姞 + securities.RemoveAt(i); + securities.Add(temp); + return; + } + } + } + securities.Add(temp); + } + } + catch (Exception ex) + { + MainPage.Log($"IniFunctionList error : {ex.Message}"); } } @@ -240,11 +286,14 @@ break; case SPK.BrandType.Tuya: - foreach (var function in Functions) + lock (Functions) { - if (SPK.Get3tySpk(SPK.BrandType.Tuya).Contains(function.spk)) + foreach (var function in Functions) { - resultFunctions.Add(function); + if (SPK.Get3tySpk(SPK.BrandType.Tuya).Contains(function.spk)) + { + resultFunctions.Add(function); + } } } break; @@ -254,6 +303,9 @@ return Functions; } + + + /// <summary> /// 娓呯┖璁惧鍔熻兘鍒楄〃 @@ -308,6 +360,7 @@ List.scenes.Remove(scene); } } + /// <summary> /// 鍒犻櫎鏈湴鍔熻兘鍙婃枃浠� /// </summary> @@ -372,24 +425,18 @@ { foreach (var function in GetDeviceFunctionList(SPK.BrandType.Hdl)) { - switch (function.Spk_Prefix) - { - case FunctionCategory.Music: - case FunctionCategory.DryContact: - continue; - } - DriverLayer.Control.Ins.SendReadCommand(function); - //switch (function.Spk_Prefix) - //{ - // case FunctionCategory.Light: - // case FunctionCategory.Electric: - // case FunctionCategory.Curtain: - // case FunctionCategory.AC: - // case FunctionCategory.FloorHeat: - // case FunctionCategory.Sensor: - // DriverLayer.Control.Ins.SendReadCommand(function); - // break; - //} + Control.Ins.SendReadCommand(function); + } + if(DB_ResidenceData.Instance.GatewayType == 1) + { + Dictionary<string, string> pairs = new Dictionary<string, string>(); + string sendId = Control.Ins.msg_id.ToString(); + pairs.Add("id", sendId); + pairs.Add("time_stamp", Utlis.GetTimestamp()); + var readSecurityStatusJson = Newtonsoft.Json.JsonConvert.SerializeObject(pairs); + var sendBytes = Control.Ins.ConvertSendBodyData(CommunicationTopic.ct.ReadSecurityStatus, readSecurityStatusJson); + MainPage.Log($"鏈湴閫氳 璇诲彇瀹夐槻鐘舵��:{readSecurityStatusJson}"); + new Control_Udp().SendLocalHdlLinkData(sendBytes, sendId); } } else @@ -425,6 +472,7 @@ }) { IsBackground = true }.Start(); } + #region 鍦烘櫙鐩稿叧 /// <summary> /// 娣诲姞鍦烘櫙 @@ -436,11 +484,20 @@ var revPack = pm.AddScene(scene); if (revPack.Code == StateCode.SUCCESS) { - var sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(revPack.Data.ToString()); - tempScene = sceneList.Find((obj) => obj.sid == scene.sid); - var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(tempScene)); - FileUtlis.Files.WriteFileByBytes(scene.savePath, ssd); - result = tempScene; + if (MainPage.NoLoginMode) + { + var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(scene)); + FileUtlis.Files.WriteFileByBytes(scene.savePath, ssd); + result = scene; + } + else + { + var sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(revPack.Data.ToString()); + tempScene = sceneList.Find((obj) => obj.sid == scene.sid); + var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(tempScene)); + FileUtlis.Files.WriteFileByBytes(scene.savePath, ssd); + result = tempScene; + } } else { -- Gitblit v1.8.0