From d76b0e40e5bb127fd33aa1f7842447a1df0628d5 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期日, 30 七月 2023 22:16:34 +0800 Subject: [PATCH] Update PublicAssmeblyBLL.cs --- HDL_ON/Entity/Function/Function.cs | 259 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 249 insertions(+), 10 deletions(-) diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs index f180034..a5ec58e 100644 --- a/HDL_ON/Entity/Function/Function.cs +++ b/HDL_ON/Entity/Function/Function.cs @@ -100,7 +100,7 @@ /// <returns></returns> public FunctionAttributes GetAttribute(string key) { - var attr = attributes.Find((a) => a.key == key); + var attr = GetFunctionAttributes().Find((a) => a.key == key); return attr; } @@ -109,7 +109,7 @@ /// </summary> /// <param name="key"></param> /// <returns></returns> - public string GetAttrState(string key , string defaultValue = "0") + public string GetAttrState(string key, string defaultValue = "0") { //涓�绾ф煡璇eyValue鍊� var attrState = attributes.Find((s) => s.key == key.ToString()); @@ -171,6 +171,9 @@ string iconPath = spk.Replace(".", ""); switch (spk) { + case SPK.AirSwitchP3: + iconPath = "electricalbreaker"; + break; case SPK.PanelSocket: iconPath = "electricalsocket"; break; @@ -277,6 +280,10 @@ /// </summary> public string extDevId = string.Empty; /// <summary> + /// 鐗╃悊璁惧(妯″潡)鍨嬪彿 + /// </summary> + public string omodel = string.Empty; + /// <summary> /// 璁惧spk /// </summary> public string spk = ""; @@ -368,6 +375,39 @@ /// attri /// </summary> public List<FunctionAttributes> attributes = new List<FunctionAttributes>(); + + public List<FunctionAttributes> GetFunctionAttributes() + { + if (spk == SPK.GroupControl) + { + var list = new List<FunctionAttributes>(); + var gc = FunctionList.List.groupControls.Find((obj) => obj.sid == sid); + if (gc != null) + { + foreach (var temp in gc.sids) + { + var light = FunctionList.List.GetLightList().Find((obj) => obj.sid == temp.sid); + if (light != null) + { + foreach (var attr in light.attributes) + { + if (list.Find((obj) => obj.key == attr.key) == null) + { + list.Add(attr); + } + } + } + } + } + + return list; + } + else + { + return attributes; + } + } + /// <summary> /// 鎴块棿ID鍒楄〃 @@ -690,9 +730,9 @@ /// <summary> /// 淇濆瓨鎴块棿缁戝畾淇℃伅 /// </summary> - public void UpdataRoomIds() + public async void UpdataRoomIds() { - new System.Threading.Thread(() => + new System.Threading.Thread( () => { var pack = ApiUtlis.Ins.HttpRequest.UpdataDevcieBindRoomInfo(this); //鐩存帴淇濆瓨鏈湴锛� @@ -762,7 +802,38 @@ public SceneFunction ConvertSceneFunction() { var sFunc = new SceneFunction(); - foreach (var attr in attributes) + + var list = new List<FunctionAttributes>(); + if (spk == SPK.GroupControl) + { + lock (list) + { + var gc = FunctionList.List.groupControls.Find((obj) => obj.sid == sid); + if (gc != null) + { + foreach (var temp in gc.sids) + { + var light = FunctionList.List.GetLightList().Find((obj) => obj.sid == temp.sid); + if (light != null) + { + foreach (var attr in light.attributes) + { + if (list.Find((obj) => obj.key == attr.key) == null) + { + list.Add(attr); + } + } + } + } + } + } + } + else + { + list.AddRange(attributes); + } + + foreach (var attr in list) { //绐楀笜鍚屾椂鍙戦�佸紑鍏宠窡鐧惧垎姣斾細鏈夐棶棰橈紝 if(spk == SPK.CurtainRoller || spk == SPK.CurtainTrietex || spk == SPK.CurtainDream) @@ -774,7 +845,35 @@ continue; } } + }else if (spk == SPK.GroupControl) + { + sFunc.type = "5"; } + + string us = ""; + switch (attr.key) + { + case FunctionAttributeKey.SetTemp: + case FunctionAttributeKey.RoomTemp: + us = "掳C"; + var tempType = attributes.Find((obj) => obj.key == FunctionAttributeKey.TempType); + if (tempType != null) + { + us = tempType.curValue.ToString(); + } + break; + case FunctionAttributeKey.Percent: + case FunctionAttributeKey.Brightness: + us = "%"; + break; + case FunctionAttributeKey.CCT: + us = "K"; + break; + case FunctionAttributeKey.Angle: + us = "掳"; + break; + } + switch (attr.key) { @@ -787,11 +886,15 @@ case FunctionAttributeKey.CCT: case FunctionAttributeKey.RGB: case FunctionAttributeKey.Angle: + case FunctionAttributeKey.Colorful: + case FunctionAttributeKey.ColorfulBegin: + case FunctionAttributeKey.ColorfulEnd: + case FunctionAttributeKey.ColorfulTime: case "security": //case FunctionAttributeKey.FadeTime: if (attr.curValue.ToString() == "{}") { - if (attr.key == FunctionAttributeKey.OnOff) + if (attr.key == FunctionAttributeKey.OnOff || attr.key == FunctionAttributeKey.Colorful) { attr.curValue = "off"; } @@ -830,13 +933,16 @@ { vv = 26; } - sFunc.status.Add(new SceneFunctionStatus() { key = attr.key, value = Convert.ToInt32(vv).ToString(), max = attr.max, min = attr.min }); + sFunc.status.Add(new SceneFunctionStatus() { + UintString = us, + key = attr.key, value = Convert.ToInt32(vv).ToString(), max = attr.max, min = attr.min }) ; } else { - sFunc.status.Add(new SceneFunctionStatus() { key = attr.key, value = attr.curValue.ToString(), max = attr.max, min = attr.min }); + sFunc.status.Add(new SceneFunctionStatus() { + UintString = us, + key = attr.key, value = attr.curValue.ToString(), max = attr.max, min = attr.min }); } - break; } } @@ -1041,6 +1147,10 @@ /// 褰撳墠鍊� /// </summary> public object curValue = new object(); + /// <summary> + /// 灞炴�у崟浣� + /// </summary> + public string unit=string.Empty; } /// <summary> @@ -1048,6 +1158,79 @@ /// </summary> public static class FunctionAttributeKey { + #region 涓夌浉绌哄紑灞炴�� + /// <summary> + /// A鐩稿姛鐜� + /// </summary> + public const string PowerA = "power_a"; + /// <summary> + /// B鐩稿姛鐜� + /// </summary> + public const string PowerB = "power_b"; + /// <summary> + /// C鐩稿姛鐜� + /// </summary> + public const string PowerC = "power_c"; + /// <summary> + /// A鐩哥數鍘� + /// </summary> + public const string VoltageA = "voltage_a"; + /// <summary> + /// B鐩哥數鍘� + /// </summary> + public const string VoltageB = "voltage_b"; + /// <summary> + /// C鐩哥數鍘� + /// </summary> + public const string VoltageC = "voltage_c"; + /// <summary> + /// A鐩哥數娴� + /// </summary> + public const string CurrentA = "current_a"; + /// <summary> + /// B鐩哥數娴� + /// </summary> + public const string CurrentB = "current_b"; + /// <summary> + /// C鐩哥數娴� + /// </summary> + public const string CurrentC = "current_c"; + /// <summary> + /// A鐩告俯搴� + /// </summary> + public const string TempA = "temp_a"; + /// <summary> + /// B鐩告俯搴� + /// </summary> + public const string TempB = "temp_b"; + /// <summary> + /// C鐩告俯搴� + /// </summary> + public const string TempC = "temp_c"; + /// <summary> + /// 杩囨祦鍊� + /// </summary> + public const string MaxCurrent = "max_current"; + /// <summary> + /// 杩囨俯鍊� + /// </summary> + public const string MaxTemp = "max_temp"; + /// <summary> + /// A鐩哥數閲� + /// </summary> + public const string ElectricityA = "electricity_a"; + /// <summary> + /// B鐩哥數閲� + /// </summary> + public const string ElectricityB = "electricity_b"; + /// <summary> + /// C鐩哥數閲� + /// </summary> + public const string ElectricityC = "electricity_c"; + + #endregion + + public const string _null = ""; /// <summary> /// 瀹夐槻甯冮槻鐘舵�� @@ -1061,6 +1244,22 @@ /// 浜害 /// </summary> public const string Brightness = "brightness"; + /// <summary> + /// 鐐僵寮�鍏� + /// </summary> + public const string Colorful = "colorful"; + /// <summary> + /// 鐐僵寮�鍚鑹� + /// </summary> + public const string ColorfulBegin = "colorful_begin"; + /// <summary> + /// 鐐僵缁撴潫棰滆壊 + /// </summary> + public const string ColorfulEnd = "colorful_end"; + /// <summary> + /// 鐐僵杩愯鏃堕棿 + /// </summary> + public const string ColorfulTime = "colorful_time"; /// <summary> /// 棰滆壊 /// </summary> @@ -1372,11 +1571,15 @@ /// <summary> /// 缇ゆ帶锛堣嚜瀹氫箟锛� /// </summary> - public const string GroupControl = "GroupControl"; + public const string GroupControl = "groupControl"; /// <summary> /// 閫氱敤寮�鍏� /// </summary> public const string OtherCommon = "other.common"; + /// <summary> + /// 搴忓垪 + /// </summary> + public const string CommonSeries = "other.series"; /// <summary> /// 澶у崕鎽勫儚澶� /// </summary> @@ -1411,10 +1614,25 @@ list.Add(DoorLock); return list; } + + + /// <summary> + /// 鐚溂(鏃pk) + /// </summary> + public const string Peephole = "peephole"; + + /// <summary> + /// 鐚溂(鏂皊pk 鏆傛椂娌$敤) + /// </summary> + //public const string PeepholeEz = "security.peephole.ez"; /// <summary> /// 钀ょ煶瑙嗛闂ㄩ攣 /// </summary> public const string VideoDoorLock="security.door.ezviz"; + /// <summary> + /// 钀ょ煶鎽勫儚澶� + /// </summary> + public const string Ev_Ipcam = "security.ipcam.ez"; /// <summary> /// 钀ょ煶瑙嗛闂ㄩ攣spk鍒楄〃 /// </summary> @@ -1423,6 +1641,17 @@ { var list = new List<string>(); list.Add(VideoDoorLock); + return list; + } + + /// <summary> + /// 钀ょ煶鎽勫儚澶磗pk鍒楄〃 + /// </summary> + /// <returns></returns> + public static List<string> GetEvIpcamSPKList() + { + var list = new List<string>(); + list.Add(Ev_Ipcam); return list; } @@ -1656,6 +1885,10 @@ /// </summary> public const string SensorPir = "sensor.pir"; /// <summary> + /// 浜轰綋瀛樺湪浼犳劅鍣� + /// </summary> + public const string SensorPirHold = "sensor.pir_hold"; + /// <summary> /// 锛堥棬绐椾紶鎰熷櫒锛� /// </summary> public const string SensorDoorWindow = "sensor.doorwindow"; @@ -1710,6 +1943,7 @@ var spkList = new List<string>(); //spkList.Add(SensorLight); spkList.Add(SensorPir); + spkList.Add(SensorPirHold); spkList.Add(SensorHelp); spkList.Add(SensorDoorWindow); spkList.Add(SensorSmoke); @@ -1900,6 +2134,10 @@ /// 鏅鸿兘绌哄紑 /// </summary> public const string AirSwitch = "electrical.breaker"; + /// <summary> + /// 涓夌浉鏅鸿兘绌哄紑 + /// </summary> + public const string AirSwitchP3 = "electrical.breakerP3"; #region 娑傞甫 /// <summary> @@ -1953,6 +2191,7 @@ spkList.Add(ElectricTuyaWaterValve); spkList.Add(ElectricTuyaWaterValve2); spkList.Add(AirSwitch); + spkList.Add(AirSwitchP3); return spkList; } -- Gitblit v1.8.0