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/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs | 224 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 213 insertions(+), 11 deletions(-) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs index 69ab0ce..26c55dc 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs @@ -2,6 +2,7 @@ using Shared; using System.Collections.Generic; using HDL_ON.Entity; +using HDL_ON.UI.CSS; namespace HDL_ON.UI.UI2.Intelligence.Automation { @@ -55,6 +56,88 @@ #region 缂栬緫璁惧鐘舵�� switch (device.spk) { + //缇ゆ帶 + case SPK.GroupControl: + int height = Application.GetRealHeight(50); + int attributesNameId=0; + int count = 0; + foreach (var attr in (device as GroupControl).attributes) + { + if (attr.key == FunctionAttributeKey.OnOff || + attr.key == FunctionAttributeKey.Brightness || + attr.key == FunctionAttributeKey.CCT || + attr.key == FunctionAttributeKey.RGB || + attr.key == FunctionAttributeKey.Colorful) + { + LogicView.FunTypeView view = new LogicView.FunTypeView(); + view.btnState.Name = "缇ゆ帶"; + view.frameLayout.Y = count * height; + fLayout.AddChidren(view.FLayoutView()); + count++; + switch (attr.key) + { + case FunctionAttributeKey.OnOff: + attributesNameId = StringId.switchLogic; + ///寮�鍏崇偣鍑讳簨浠� + view.btnClick.MouseUpEventHandler += (sender, e) => + { + SwitchViewMethod(device, view.btnState, 2); + }; + break; + case FunctionAttributeKey.Brightness: + attributesNameId = StringId.brightnesLogic; + view.btnState.Text = "5%";//浜у搧缁忕悊鏅撹緣瑕佹眰鏀圭殑 2021-11-06 + ///浜害鐐瑰嚮浜嬩欢 + view.btnClick.MouseUpEventHandler += (sender, e) => + { + BrightnessMethod(device, view.btnState, view.btnText.Text); + + }; + break; + case FunctionAttributeKey.CCT: + attributesNameId = StringId.ColorTemperature; + ///鑹叉俯鐐瑰嚮浜嬩欢 + view.btnClick.MouseUpEventHandler += (sender, e) => + { + ColorTemperatureMethod(device, view.btnState, view.btnText.Text); + + }; + break; + case FunctionAttributeKey.RGB: + attributesNameId = StringId.rgbsepan; + view.btnState.Tag = ""; + view.btnState.Width = Application.GetRealWidth(16); + view.btnState.Height = Application.GetRealWidth(16); + view.btnState.Radius = (uint)Application.GetRealWidth(8); + view.btnState.X = Application.GetRealWidth(375 - 48 - 16); + ///RGB鑹茬洏鐐瑰嚮浜嬩欢 + view.btnClick.MouseUpEventHandler += (sender, e) => + { + RgbColorDiskMethod(device, view.btnState, view.btnText.Text); + }; + break; + case FunctionAttributeKey.Colorful: + attributesNameId = StringId.ColorfulFunction; + view.btnState.Name = "colorful"; + ///寮�鍏崇偣鍑讳簨浠� + view.btnClick.MouseUpEventHandler += (sender, e) => + { + SwitchViewMethod(device, view.btnState, 2); + }; + break; + } + view.btnText.TextID = attributesNameId; + if (edit) + { + //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� + GetEditDeviceState(device, index, view.btnState, null, null, null, attr.key); + } + } + } + + //璁惧寤舵椂iewv + DelayView(fLayout, height* count); + break; //鎻掑骇(鏈塙SB) case SPK.PanelSocket: { @@ -113,8 +196,8 @@ break; //鐏厜寮�鍏� 浜害 case SPK.LightDimming: - case SPK.LightRGB: - case SPK.LightRGBW: + //case SPK.LightRGB: + //case SPK.LightRGBW: { #region 鐣岄潰 ///寮�鍏� @@ -146,6 +229,59 @@ { //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� GetEditDeviceState(device, index, lightSwitchView.btnState, brightnessView.btnState, null, null); + } + #endregion + } + break; + case SPK.LightRGB: + case SPK.LightRGBW: + { + #region 鐣岄潰 + ///寮�鍏� + LogicView.FunTypeView lightSwitchView = new LogicView.FunTypeView(); + lightSwitchView.btnText.TextID = StringId.switchLogic; + fLayout.AddChidren(lightSwitchView.FLayoutView()); + ///浜害 + LogicView.FunTypeView brightnessView = new LogicView.FunTypeView(); + brightnessView.frameLayout.Y = lightSwitchView.frameLayout.Bottom; + brightnessView.btnText.TextID = StringId.brightnesLogic; + fLayout.AddChidren(brightnessView.FLayoutView()); + brightnessView.btnState.Text = "5%";//浜у搧缁忕悊鏅撹緣瑕佹眰鏀圭殑 2021-11-06 + ///RGB鑹茬洏 + LogicView.FunTypeView rgbView = new LogicView.FunTypeView(); + rgbView.frameLayout.Y = brightnessView.frameLayout.Bottom; + rgbView.btnText.TextID = StringId.rgbsepan; + rgbView.btnState.Tag = ""; + rgbView.btnState.Width = Application.GetRealWidth(16); + rgbView.btnState.Height = Application.GetRealWidth(16); + rgbView.btnState.Radius = (uint)Application.GetRealWidth(8); + rgbView.btnState.X = Application.GetRealWidth(375 - 48 - 16); + fLayout.AddChidren(rgbView.FLayoutView()); + ///璁惧寤舵椂iewv + DelayView(fLayout, rgbView.frameLayout.Bottom); + #endregion + #region 鐐瑰嚮浜嬩欢 + ///寮�鍏崇偣鍑讳簨浠� + lightSwitchView.btnClick.MouseUpEventHandler += (sender, e) => + { + SwitchViewMethod(device, lightSwitchView.btnState, 2); + }; + ///浜害鐐瑰嚮浜嬩欢 + brightnessView.btnClick.MouseUpEventHandler += (sender, e) => + { + BrightnessMethod(device, brightnessView.btnState, brightnessView.btnText.Text); + + }; + ///RGB鑹茬洏鐐瑰嚮浜嬩欢 + rgbView.btnClick.MouseUpEventHandler += (sender, e) => + { + RgbColorDiskMethod(device, rgbView.btnState, rgbView.btnText.Text); + + }; + if (edit) + { + //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� + GetEditDeviceState(device, index, lightSwitchView.btnState, brightnessView.btnState, rgbView.btnState, null); } #endregion } @@ -229,10 +365,10 @@ ///寮�鍏� LogicView.FunTypeView curtainSwitchView = new LogicView.FunTypeView(); curtainSwitchView.btnText.TextID = StringId.switchLogic; - fLayout.AddChidren(curtainSwitchView.FLayoutView()); + //fLayout.AddChidren(curtainSwitchView.FLayoutView());//2023骞�04鏈�17鏃�16:27:10 浜у搧瑕佹眰鐨勫幓鎺� ///鐧惧垎姣� LogicView.FunTypeView crtainPercentumView = new LogicView.FunTypeView(); - crtainPercentumView.frameLayout.Y = curtainSwitchView.frameLayout.Bottom; + //crtainPercentumView.frameLayout.Y = curtainSwitchView.frameLayout.Bottom; crtainPercentumView.btnText.TextID = StringId.percentum; fLayout.AddChidren(crtainPercentumView.FLayoutView()); crtainPercentumView.btnState.Text = "5%";//浜у搧缁忕悊鏅撹緣瑕佹眰鏀圭殑 2021-11-06 @@ -331,6 +467,9 @@ { SwitchViewMethod(device, acSwitchVie.btnState, 2); }; + int min = device.GetAttribute("set_temp") == null ? 16 : device.GetAttribute("set_temp").min; + int max = device.GetAttribute("set_temp") == null ? 32 : device.GetAttribute("set_temp").max; + string unit = InpOrOutLogicMethod.Current.GetTemperatureUnit(device); ///娓╁害鐐瑰嚮浜嬩欢 temperatureView.btnClick.MouseUpEventHandler += (sender, e) => { @@ -344,11 +483,10 @@ //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�; string keyVlaue = "set_temp"; selectedState = device.spk + "_" + keyVlaue; - string set_temp_value = stateStr.Replace("鈩�", ""); + string set_temp_value = stateStr.Replace(unit, ""); //鏁版嵁灏佽 AddDictionary(keyVlaue, set_temp_value); - }); - + }, min, max, unit); }; ///妯″紡鐐瑰嚮浜嬩欢 @@ -435,6 +573,9 @@ ///娓╁害鐐瑰嚮浜嬩欢 temperatureView.btnClick.MouseUpEventHandler += (sender, e) => { + int min = device.GetAttribute("set_temp") == null ? 16 : device.GetAttribute("set_temp").min; + int max = device.GetAttribute("set_temp") == null ? 32 : device.GetAttribute("set_temp").max; + string unit = InpOrOutLogicMethod.Current.GetTemperatureUnit(device); string tempValue = temperatureView.btnState.Text; LogicView.TemperatureView tempView = new LogicView.TemperatureView(); tempView.FLayoutView(this, tempValue, (stateStr) => @@ -444,11 +585,11 @@ //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�; string keyVlaue = "set_temp"; selectedState = device.spk + "_" + keyVlaue; - string set_temp_value = stateStr.Replace("鈩�", ""); + string set_temp_value = stateStr.Replace(unit, ""); //鏁版嵁灏佽 AddDictionary(keyVlaue, set_temp_value); - }); + }, min, max, unit); }; ///妯″紡鐐瑰嚮浜嬩欢 @@ -746,6 +887,11 @@ } } break; + case SPK.GroupControl: + { + outputDevice.target_type = "5"; + } + break; } outputDevice.status.AddRange(dicSateteList); @@ -860,6 +1006,15 @@ } } break; + case SPK.GroupControl: + { + if (button.Name == "colorful") + { + keyVlaue = "colorful"; + } + + } + break; } //鏁版嵁灏佽 AddDictionary(keyVlaue, strValue); @@ -891,6 +1046,7 @@ case SPK.LightRGB: case SPK.LightRGBW: case SPK.LightCCT: + case SPK.GroupControl: { keyVlaue = "brightness"; } @@ -935,6 +1091,7 @@ switch (device.spk) { case SPK.LightCCT: + case SPK.GroupControl: { keyVlaue = "cct"; } @@ -946,6 +1103,48 @@ #endregion } + + /// <summary> + /// RGB鑹茬洏涓撶敤 + /// </summary> + /// <param name="device">璁惧</param> + /// <param name="button">鐘舵�佹帶浠�</param> + /// <param name="titleName">鏍囬</param> + private void RgbColorDiskMethod(Entity.Function device, Button button, string titleName) + { + LogicView.RGBColorView rgbColorView = new LogicView.RGBColorView(); + rgbColorView.LoadRGBDialog(button.Tag.ToString(), (rgbValueStr) => + { + button.BackgroundColor = rgbColorView.GetBackgroundColor(rgbValueStr); + //鐣岄潰鏄剧ず閫変腑鍊� + button.Tag = rgbValueStr; + //button.Text = rgbValueStr; + selectedState = device.spk + rgbValueStr.ToString(); + //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�; + string keyVlaue = ""; + switch (device.spk) + { + case SPK.LightRGB: + case SPK.GroupControl: + { + keyVlaue = "rgb"; + } + break; + case SPK.LightRGBW: + { + keyVlaue = "rgbw"; + } + break; + } + //鏁版嵁灏佽 + AddDictionary(keyVlaue, rgbValueStr); + }); + + } + + + + /// <summary> /// 鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� /// </summary> @@ -955,7 +1154,8 @@ /// <param name="button2">鏄剧ずBtn</param> /// <param name="button3">鏄剧ずBtn</param> /// <param name="button4">鏄剧ずBtn</param> - private void GetEditDeviceState(Entity.Function device, int index, Button button1, Button button2, Button button3, Button button4) + /// <param name="attribute">灞炴�ey</param> + private void GetEditDeviceState(Entity.Function device, int index, Button button1, Button button2, Button button3, Button button4, string attribute="") { Output outputs = Logic.currlogic.output[index]; var dicList = outputs.status; @@ -972,7 +1172,7 @@ this.btnDelay.Text = outputs.delay + "s"; this.strdelay = outputs.delay; } - InpOrOutLogicMethod.Current.EditDeviceState(device, dicList, button1, button2, button3, button4); + InpOrOutLogicMethod.Current.EditDeviceState(device, dicList, button1, button2, button3, button4, attribute); } /// <summary> /// 娣诲姞閫変腑鏁版嵁 @@ -1049,5 +1249,7 @@ } + + } } -- Gitblit v1.8.0