From 3f6685c77beeb12baf840733fb890860f4c26e7c Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期四, 25 七月 2024 17:25:59 +0800 Subject: [PATCH] 2024年07月25日17:24:45 --- HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs | 785 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 725 insertions(+), 60 deletions(-) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs index 4b7c2fa..9a2e707 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs @@ -2,6 +2,8 @@ using Shared; using System.Collections.Generic; using HDL_ON.Entity; +using HDL_ON.UI.CSS; +using System.Linq; namespace HDL_ON.UI.UI2.Intelligence.Automation { @@ -20,6 +22,10 @@ /// </summary> private Button btnDelay =null; /// <summary> + /// 褰撳墠璁惧 + /// </summary> + private Function device; + /// <summary> /// 瀹氫箟涓�涓褰曢�変腑璁惧鐘舵�佸垪琛紱 /// </summary> private List<Dictionary<string, string>> dicSateteList = new List<Dictionary<string, string>>(); @@ -30,6 +36,7 @@ public void Show(Entity.Function device, int index, bool edit) { #region 鐣岄潰甯冨眬 + this.device = device; this.BackgroundColor = CSS.CSS_Color.viewMiddle; LogicView.TopView topView = new LogicView.TopView(); this.AddChidren(topView.FLayoutView()); @@ -55,19 +62,142 @@ #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: + { + #region 鐣岄潰 + ///鎬绘帶寮�鍏� + LogicView.FunTypeView view1 = new LogicView.FunTypeView(); + view1.btnText.TextID = StringId.switchLogic; + //view1.btnState.Name = "鎬绘帶寮�鍏�"; + fLayout.AddChidren(view1.FLayoutView()); + ///璁惧寤舵椂iewv + DelayView(fLayout, view1.frameLayout.Bottom); + #endregion + #region 鐐瑰嚮浜嬩欢 + ///鎬绘帶寮�鍏崇偣鍑讳簨浠� + view1.btnClick.MouseUpEventHandler += (sender, e) => + { + SwitchViewMethod(device, view1.btnState, 2); + }; + if (edit) + { + //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� + GetEditDeviceState(device, index, view1.btnState, null, null, null); + } + #endregion + } + break; + case SPK.CommonSeries: + #region 鐣岄潰 + ///寮�鍏� + LogicView.FunTypeView SerriesSwitchView = new LogicView.FunTypeView(); + SerriesSwitchView.btnText.TextID = StringId.switchLogic; + fLayout.AddChidren(SerriesSwitchView.FLayoutView()); + + #endregion + ///寮�鍏崇偣鍑讳簨浠� + SerriesSwitchView.btnClick.MouseUpEventHandler += (sender, e) => + { + SwitchViewMethod(device, SerriesSwitchView.btnState, 2); + }; + + break; + //寮�鍏崇伅鍏� + case SPK.OtherCommon: case SPK.AirSwitch: case SPK.LightSwitch: - //鎻掑骇 - case SPK.PanelSocket: case SPK.ElectricSocket: + //鏈烘鎵� + case SPK.MechanicalArm: { #region 鐣岄潰 ///寮�鍏� LogicView.FunTypeView lightSwitchView = new LogicView.FunTypeView(); lightSwitchView.btnText.TextID = StringId.switchLogic; fLayout.AddChidren(lightSwitchView.FLayoutView()); - ///璁惧寤舵椂iewv DelayView(fLayout, lightSwitchView.frameLayout.Bottom); @@ -81,16 +211,15 @@ if (edit) { //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� - GetEditState(device, index, lightSwitchView.btnState, null, null, null); + GetEditDeviceState(device, index, lightSwitchView.btnState, null, null, null); } #endregion } break; //鐏厜寮�鍏� 浜害 case SPK.LightDimming: - case SPK.LightRGB: - case SPK.LightRGBW: - case SPK.LightCCT: + //case SPK.LightRGB: + //case SPK.LightRGBW: { #region 鐣岄潰 ///寮�鍏� @@ -102,7 +231,7 @@ brightnessView.frameLayout.Y = lightSwitchView.frameLayout.Bottom; brightnessView.btnText.TextID = StringId.brightnesLogic; fLayout.AddChidren(brightnessView.FLayoutView()); - //brightnessView.btnState.Text = "5%";//浜у搧缁忕悊鏅撹緣瑕佹眰鏀圭殑 2021-11-06 + brightnessView.btnState.Text = "5%";//浜у搧缁忕悊鏅撹緣瑕佹眰鏀圭殑 2021-11-06 ///璁惧寤舵椂iewv DelayView(fLayout, brightnessView.frameLayout.Bottom); #endregion @@ -121,7 +250,108 @@ if (edit) { //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� - GetEditState(device, index, lightSwitchView.btnState, brightnessView.btnState, null, null); + 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 + } + break; + case SPK.LightCCT: + { + #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 + ///鑹叉俯 + LogicView.FunTypeView colorTemperatureView = new LogicView.FunTypeView(); + colorTemperatureView.frameLayout.Y = brightnessView.frameLayout.Bottom; + colorTemperatureView.btnText.TextID = StringId.ColorTemperature; + fLayout.AddChidren(colorTemperatureView.FLayoutView()); + colorTemperatureView.btnState.Text = "2700k"; + ///璁惧寤舵椂iewv + DelayView(fLayout, colorTemperatureView.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); + + }; + ///鑹叉俯鐐瑰嚮浜嬩欢 + colorTemperatureView.btnClick.MouseUpEventHandler += (sender, e) => + { + ColorTemperatureMethod(device, colorTemperatureView.btnState, colorTemperatureView.btnText.Text); + + }; + if (edit) + { + //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� + GetEditDeviceState(device, index, lightSwitchView.btnState, brightnessView.btnState, colorTemperatureView.btnState, null); } #endregion } @@ -145,7 +375,7 @@ if (edit) { //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� - GetEditState(device, index, curtainSwitchView.btnState, null, null, null); + GetEditDeviceState(device, index, curtainSwitchView.btnState, null, null, null); } #endregion } @@ -157,10 +387,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 @@ -181,13 +411,51 @@ if (edit) { //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� - GetEditState(device, index, curtainSwitchView.btnState, crtainPercentumView.btnState, null, null); + GetEditDeviceState(device, index, curtainSwitchView.btnState, crtainPercentumView.btnState, null, null); + } + #endregion + } + break; + case SPK.CurtainDream: + { + #region 鐣岄潰 + ///鐧惧垎姣� + LogicView.FunTypeView crtainPercentumView = new LogicView.FunTypeView(); + crtainPercentumView.btnText.TextID = StringId.percentum; + fLayout.AddChidren(crtainPercentumView.FLayoutView()); + crtainPercentumView.btnState.Text = "5%";//浜у搧缁忕悊鏅撹緣瑕佹眰鏀圭殑 2021-11-06 + ///瑙掑害 + LogicView.FunTypeView AngleView = new LogicView.FunTypeView(); + AngleView.frameLayout.Y = crtainPercentumView.frameLayout.Bottom; + AngleView.btnText.TextID = StringId.Angle; + fLayout.AddChidren(AngleView.FLayoutView()); + AngleView.btnState.Text = "10掳"; + ///璁惧寤舵椂iewv + DelayView(fLayout, AngleView.frameLayout.Bottom); + #endregion + #region 鐐瑰嚮浜嬩欢 + + ///鐧惧垎姣旂偣鍑讳簨浠� + crtainPercentumView.btnClick.MouseUpEventHandler += (sender, e) => + { + BrightnessMethod(device, crtainPercentumView.btnState, crtainPercentumView.btnText.Text); + }; + ///瑙掑害鐐瑰嚮浜嬩欢 + AngleView.btnClick.MouseUpEventHandler += (sender, e) => + { + BrightnessMethod(device, AngleView.btnState, AngleView.btnText.Text); + }; + if (edit) + { + //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� + GetEditDeviceState(device, index, crtainPercentumView.btnState, AngleView.btnState, null, null); } #endregion } break; case SPK.AcStandard: case SPK.HvacAC: + case SPK.AcIr: { #region 鐣岄潰 ///寮�鍏� @@ -221,6 +489,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) => { @@ -234,11 +505,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); }; ///妯″紡鐐瑰嚮浜嬩欢 @@ -285,13 +555,14 @@ if (edit) { //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� - GetEditState(device, index, acSwitchVie.btnState, temperatureView.btnState, acModehView.btnState, acSpeedView.btnState); + GetEditDeviceState(device, index, acSwitchVie.btnState, temperatureView.btnState, acModehView.btnState, acSpeedView.btnState); } #endregion } break; - case SPK.FloorHeatStandard:case SPK.HvacFloorHeat: + case SPK.FloorHeatStandard: + case SPK.HvacFloorHeat: { #region 鐣岄潰 ///寮�鍏� @@ -324,6 +595,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) => @@ -333,11 +607,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); }; ///妯″紡鐐瑰嚮浜嬩欢 @@ -365,7 +639,7 @@ if (edit) { //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� - GetEditState(device, index, floorHeatingSwitchVie.btnState, temperatureView.btnState, floorHeatingModehView.btnState, null); + GetEditDeviceState(device, index, floorHeatingSwitchVie.btnState, temperatureView.btnState, floorHeatingModehView.btnState, null); } #endregion @@ -451,7 +725,216 @@ if (edit) { //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� - GetEditState(device, index, AirFreshSwitchVie.btnState, AirFreshSpeedView.btnState, null, null); + GetEditDeviceState(device, index, AirFreshSwitchVie.btnState, AirFreshSpeedView.btnState, null, null); + } + + #endregion + } + break; + //闊充箰 + case SPK.MusicStandard: + case SPK.AvMusic: + { + #region 鐣岄潰 + ///寮�鍏� + LogicView.FunTypeView switchVie = new LogicView.FunTypeView(); + switchVie.btnText.TextID = StringId.switchLogic; + fLayout.AddChidren(switchVie.FLayoutView()); + //鎻愮ず璇煶 + LogicView.FunTypeView funTypeView = new LogicView.FunTypeView(); + funTypeView.frameLayout.Y = switchVie.frameLayout.Bottom; + funTypeView.btnText.TextID = StringId.tishiyin; + fLayout.AddChidren(funTypeView.FLayoutView()); + ///闊抽噺 + LogicView.FunTypeView volView = new LogicView.FunTypeView(); + volView.frameLayout.Y = funTypeView.frameLayout.Bottom; + volView.btnText.TextID = StringId.volumeMusic; + fLayout.AddChidren(volView.FLayoutView()); + + //if (SPK.AvMusic == device.spk) + //{ + // //涓嶆敮鎸佺壒娈婅闊� + // volView.frameLayout.Y = Application.GetRealHeight(0); + //} + + + ///璁惧寤舵椂iewv + var delayView = DelayView(fLayout, volView.frameLayout.Bottom); + if (edit ) + { + Output outputs = Logic.currlogic.output[index]; + var dicList = outputs.status.Find((obj) => obj.ContainsValue(FunctionAttributeKey.OnOff)); + if (dicList != null) + { + if (dicList.ContainsValue( "off") || dicList.ContainsValue("pause")) + { + funTypeView.frameLayout.Visible = false; + volView.frameLayout.Visible = false; + delayView.frameLayout.Y = switchVie.frameLayout.Bottom; + } + } + } + #endregion + #region 鐐瑰嚮浜嬩欢 + ///寮�鍏崇偣鍑讳簨浠� + switchVie.btnClick.MouseUpEventHandler += (sender, e) => + { + SwitchViewMethod(device, switchVie.btnState, 2, (v) => { + if (v == "on") + { + funTypeView.frameLayout.Visible = true; + volView.frameLayout.Visible = true; + delayView.frameLayout.Y = volView.frameLayout.Bottom; + } + else + { + funTypeView.frameLayout.Visible = false; + volView.frameLayout.Visible = false; + delayView.frameLayout.Y = switchVie.frameLayout.Bottom; + } + }); + }; + ///鎻愮ず璇煶鐐瑰嚮浜嬩欢 + funTypeView.btnClick.MouseUpEventHandler += (sender, e) => + { + selectedState = device.spk + "_"; + Loading loading = new Loading(); + this.AddChidren(loading); + loading.Start(); + System.Threading.Tasks.Task.Run(() => + { + try + { + //HDL_ON.DriverLayer.Control.Ins.GetMusicDirectory(device); + //var palyListName = Music.SendMethod.mMethod.GetListName(device); + var palyList = Music.SendMethod.Current.GetSingleSongList(device, "hdl_special", ""); + List<string> songNameList = new List<string>(); + for (int i = 0; i < palyList.songs.Count; i++) + { + var song = palyList.songs[i]; + songNameList.Add(song.name); + } + Application.RunOnMainThread(() => + { + loading.Hide(); + PublicInterface publicInterface = new PublicInterface(); + publicInterface.FrameOrVv(this, songNameList, new List<string> { funTypeView.btnState.Text }, palyList.group, (index2) => + { + var songSelecetd = palyList.songs[index2]; + //鐣岄潰鏄剧ず閫変腑鍊� + funTypeView.btnState.Text = songSelecetd.name; + //鏁版嵁灏佽 + AddDictionary("playlist_name", palyList.group);//鍒楄〃鍚� + AddDictionary("song_name", songSelecetd.name);//姝屾洸鍚� + if (!string.IsNullOrEmpty(songSelecetd.url)) + { + //瀛樺湪url灏变竴璧峰彂閫佽繃鍘� + AddDictionary("url", songSelecetd.url); + } + + }, false); + + }); + } + catch { } + + }); + }; + ///闊抽噺鐐瑰嚮浜嬩欢 + volView.btnClick.MouseUpEventHandler += (sender, e) => + { + selectedState = device.spk + "_volume"; + new LogicView.TipPopView { }.InputBox(StringId.volumeMusic, volView.btnState.Text, (value) => + { + + //鐣岄潰鏄剧ず閫変腑鍊� + volView.btnState.Text = value; + //鏁版嵁灏佽 + AddDictionary("volume", value);//闊抽噺 + }, 0, 100); + }; + + if (edit) + { + //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� + GetEditDeviceState(device, index, switchVie.btnState, funTypeView.btnState, volView.btnState, null); + } + + #endregion + } + break; + //娴蜂俊鐢佃 + case SPK.ElectricalTvHisense: + { + #region 鐣岄潰 + ///寮�鍏� + LogicView.FunTypeView switchView = new LogicView.FunTypeView(); + switchView.btnText.TextID = StringId.switchLogic; + fLayout.AddChidren(switchView.FLayoutView()); + ///闊抽噺 + LogicView.FunTypeView volView = new LogicView.FunTypeView(); + volView.frameLayout.Y = switchView.frameLayout.Bottom; + volView.btnText.TextID = StringId.yinliang; + fLayout.AddChidren(volView.FLayoutView()); + + ///淇″彿婧� + LogicView.FunTypeView sourceView = new LogicView.FunTypeView(); + sourceView.frameLayout.Y = volView.frameLayout.Bottom; + sourceView.btnText.TextID = StringId.xinhaoyuan; + fLayout.AddChidren(sourceView.FLayoutView()); + + ///璁惧寤舵椂iewv + DelayView(fLayout, sourceView.frameLayout.Bottom); + #endregion + #region 鐐瑰嚮浜嬩欢 + ///寮�鍏崇偣鍑讳簨浠� + switchView.btnClick.MouseUpEventHandler += (sender, e) => + { + SwitchViewMethod(device, switchView.btnState, 2); + }; + ///闊抽噺鐐瑰嚮浜嬩欢 + volView.btnClick.MouseUpEventHandler += (sender, e) => + { + //selectedState = device.spk + "_volume"; + //new LogicView.TipPopView { }.InputBox(StringId.volumeMusic, volView.btnState.Text, (value) => + //{ + + // //鐣岄潰鏄剧ず閫変腑鍊� + // volView.btnState.Text = value; + // //鏁版嵁灏佽 + // AddDictionary("setvolume", value);//闊抽噺 + //}, 0, 100); + + BrightnessMethod(device, volView.btnState, volView.btnText.Text); + + }; + + ///淇″彿婧愮偣鍑讳簨浠� + sourceView.btnClick.MouseUpEventHandler += (sender, e) => + { + ///涔嬪墠鐨勭姸鎬佹枃鏈� + string currText = sourceView.btnState.Text; + //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�; + string key = "signal"; + selectedState = device.spk + "_" + key; + PublicInterface pif = new PublicInterface(); + var dic = pif.GetHisenseSignalSourceDic(); + pif.SingleSelectionShow(this, dic.Keys.ToList(), Language.StringByID(StringId.xinhaoyuan), currText + , (valueStr) => + { + //鐣岄潰鏄剧ず閫変腑鍊� + sourceView.btnState.Text = valueStr; + string value = pif.GetValue(dic, valueStr); + //鏁版嵁灏佽 + AddDictionary(key, value); + + }); + }; + + if (edit) + { + //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� + GetEditDeviceState(device, index, switchView.btnState, volView.btnState, sourceView.btnState, null); } #endregion @@ -468,7 +951,7 @@ Output outputDevice = new Output(); outputDevice.target_type = "1"; outputDevice.sid = device.sid; - outputDevice.delay= strdelay; + outputDevice.delay = strdelay; switch (device.spk) { case SPK.LightDimming: @@ -501,8 +984,10 @@ break; } case SPK.HvacAC: + case SPK.AcIr: case SPK.AcStandard: - case SPK.FloorHeatStandard:case SPK.HvacFloorHeat: + case SPK.FloorHeatStandard: + case SPK.HvacFloorHeat: { //鍋氫簡涓�涓壒娈婂鐞嗭紱 bool _bool = false; @@ -519,16 +1004,57 @@ if (!_bool) { //娌℃湁寮�鍏冲氨榛樿娣诲姞-寮�-灞炴�� - Dictionary<string, string> diction = new Dictionary<string, string>(); - diction.Add("key", "on_off"); - diction.Add("value", "on"); + Dictionary<string, string> diction = new Dictionary<string, string> + { + { "key", "on_off" }, + { "value", "on" } + }; dicSateteList.Add(diction); } } break; - + //闊充箰 + case SPK.MusicStandard: + case SPK.AvMusic: + { + string volume = "volume"; + var dicObj = dicSateteList.Find((dic) => dic.ContainsValue(volume)); + if (dicObj != null) + { + //鏈夐厤缃煶涔愰煶閲忓睘鎬э紝瑕侀噸鏂版帓鍒�,闊抽噺鍦ㄥ墠闈� + var dicList = new List<Dictionary<string, string>>(); + dicList.Add(dicObj);//鍏堟坊鍔犻煶閲忓睘鎬� + var diclist = dicSateteList.FindAll((dic) => !dic.ContainsValue(volume)); + dicList.AddRange(diclist);//鍐嶆坊鍔犲叾瀹冨睘鎬� + dicSateteList = dicList;//閲嶆柊璧嬪�� + } + var onoffDic = dicSateteList.Find((obj) => obj.ContainsValue("on_off")); + if (onoffDic != null) + { + if (onoffDic.ContainsValue("off")) + { + for(int i =0;i<dicSateteList.Count;) + { + var d = dicSateteList[i]; + if(!d.ContainsValue("on_off") || d.ContainsValue("delay")) + { + dicSateteList.Remove(d); + continue; + } + i++; + } + } + } + } + break; + case SPK.GroupControl: + { + outputDevice.target_type = "5"; + } + break; + } - outputDevice.status = dicSateteList; + outputDevice.status.AddRange(dicSateteList); if (edit) { @@ -555,7 +1081,7 @@ this.RemoveFromParent(); return; } - LogicMethod.CurrLogicMethod.RemoveAllView(); + LogicMethod.Current.RemoveAllView(); AddLogic addLogic = new AddLogic(); MainPage.BasePageView.AddChidren(addLogic); addLogic.Show(); @@ -569,12 +1095,12 @@ /// </summary> /// <param name="fLayout">鐖舵帶浠�</param> /// <param name="bottomY">鍦ㄥ摢涓帶浠朵笅闈�</param> - private void DelayView(FrameLayout fLayout, int bottomY) + private LogicView.FunTypeView DelayView(FrameLayout fLayout, int bottomY) { LogicView.FunTypeView delayView = new LogicView.FunTypeView(); delayView.frameLayout.Y = bottomY; delayView.btnText.TextID = StringId.Delay; - delayView.btnState.Text = strdelay + "s"; + delayView.btnState.Text = LogicMethod.Current.getTimeStr(strdelay); fLayout.AddChidren(delayView.FLayoutView()); ///璧嬪�煎璞� this.btnDelay = delayView.btnState; @@ -584,11 +1110,12 @@ InpOrOutLogicMethod inpOrOutLogicMethod = new InpOrOutLogicMethod(); inpOrOutLogicMethod.Delayed(this, strdelay, (value) => { - selectedState = "delay_" + strdelay; strdelay = value.ToString(); - delayView.btnState.Text = strdelay + "s"; + delayView.btnState.Text = LogicMethod.Current.getTimeStr(strdelay); + selectedState = "delay_" + strdelay; }); }; + return delayView; } @@ -598,16 +1125,17 @@ /// <param name="device"></param> /// <param name="button"></param> /// <param name="len">鏄剧ず閫夋嫨View鏁伴噺</param> - private void SwitchViewMethod(Entity.Function device, Button button, int len) + /// <param name="action">鐐瑰嚮鍥炶皟浜嬩欢锛岀敤鏉ョ粰闊充箰鍒锋柊鐣岄潰浣跨敤锛寃xr 2024-01-04 16:03:47</param> + private void SwitchViewMethod(Entity.Function device, Button button, int len,Action<string> action = null) { #region 鐣岄潰 FrameLayout frame = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence }; this.AddChidren(frame); LogicView.SwitchView switchView = new LogicView.SwitchView(); - switchView.FLayoutView(frame, len, button.Text, (strValue) => + switchView.FLayoutView(frame, len, button.Text, (value) => { int id = 0; - switch (strValue) + switch (value) { case "on": { @@ -625,32 +1153,63 @@ } break; } + //鐣岄潰鏄剧ず閫変腑鍊� button.TextID = id; - selectedState = device.spk + "_" + strValue; + selectedState = device.spk + "_" + value; //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�; - string keyVlaue = "on_off"; + string key = "on_off"; + switch (device.spk) + { + case SPK.PanelSocket: + { + //if (button.Name == "鎬绘帶寮�鍏�") + //{ + // key = "on_off_master"; + //} + } + break; + case SPK.GroupControl: + { + if (button.Name == "colorful") + { + key = "colorful"; + } + + } + break; + case SPK.ElectricalTvHisense: + { + if ("on" == value) + { + key = "wol"; + } + + } + break; + } + //鏁版嵁灏佽 - AddDictionary(keyVlaue, strValue); + AddDictionary(key, value); + action?.Invoke(value); }); #endregion } /// <summary> /// 浜害/鐧惧垎姣�=鍔熻兘涓嬩竴绾х晫闈� /// </summary> - /// <param name="device">璁惧瀵硅薄</param> - /// <param name="button">鏄剧ず鐘舵�佸璞�</param> - /// <param name="titleName">鏍囬</param> + /// <param name="device"></param> + /// <param name="button"></param> private void BrightnessMethod(Entity.Function device, Button button, string titleName) { #region 鐣岄潰 //涔嬪墠鐨勭姸鎬佸�� string stateVlaue = button.Text; LogicView.BrightnessView brightness = new LogicView.BrightnessView(); - brightness.FLayoutView(this, titleName, stateVlaue, (brightnesValue) => + brightness.FLayoutView(this, titleName, stateVlaue, (brightnesValue, unitStr) => { //鐣岄潰鏄剧ず閫変腑鍊� - button.Text = brightnesValue + "%"; + button.Text = brightnesValue + unitStr; selectedState = device.spk + brightnesValue.ToString(); //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�; string keyVlaue = ""; @@ -661,23 +1220,109 @@ case SPK.LightRGB: case SPK.LightRGBW: case SPK.LightCCT: + case SPK.GroupControl: { keyVlaue = "brightness"; } break; case SPK.CurtainRoller: case SPK.CurtainTrietex: + case SPK.CurtainDream: { keyVlaue = "percent"; + if (unitStr == "掳") + { + //瑙掑害 + keyVlaue = "angle"; + } } break; + case SPK.ElectricalTvHisense: + { + keyVlaue = "set_volume"; + } + break; + } //鏁版嵁灏佽 - AddDictionary(keyVlaue, brightnesValue); + AddDictionary(keyVlaue, brightnesValue); }); #endregion } + /// <summary> + /// 鑹叉俯(cct)=鍔熻兘涓嬩竴绾х晫闈� + /// </summary> + /// <param name="device"></param> + /// <param name="button"></param> + private void ColorTemperatureMethod(Entity.Function device, Button button, string titleName) + { + #region 鐣岄潰 + //涔嬪墠鐨勭姸鎬佸�� + string stateVlaue = button.Text; + LogicView.ColorTemperature brightness = new LogicView.ColorTemperature(); + brightness.FLayoutView(this, titleName, stateVlaue, (colorTemperatureValue, unitStr) => + { + //鐣岄潰鏄剧ず閫変腑鍊� + button.Text = colorTemperatureValue + unitStr; + selectedState = device.spk + colorTemperatureValue.ToString(); + //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�; + string keyVlaue = ""; + switch (device.spk) + { + case SPK.LightCCT: + case SPK.GroupControl: + { + keyVlaue = "cct"; + } + break; + } + //鏁版嵁灏佽 + AddDictionary(keyVlaue, colorTemperatureValue); + }); + #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> @@ -687,7 +1332,8 @@ /// <param name="button2">鏄剧ずBtn</param> /// <param name="button3">鏄剧ずBtn</param> /// <param name="button4">鏄剧ずBtn</param> - private void GetEditState(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; @@ -696,42 +1342,58 @@ if (dicList.Count != 0) { //鏈夋暟鎹噸鏂拌祴鍊� - dicSateteList = dicList; + dicSateteList.AddRange(dicList); } if (this.btnDelay != null) { ///寤舵椂鏄剧ず鏂囨湰 - this.btnDelay.Text = outputs.delay + "s"; + this.btnDelay.Text =LogicMethod.Current.getTimeStr(outputs.delay); this.strdelay = outputs.delay; } - InpOrOutLogicMethod.EditState(device, dicList, button1, button2, button3, button4); + InpOrOutLogicMethod.Current.EditDeviceState(device, dicList, button1, button2, button3, button4, attribute); } /// <summary> /// 娣诲姞閫変腑鏁版嵁 /// </summary> - /// <param name="KeyValue">璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�</param> - /// <param name="selectedValue">鐘舵�佸��</param> - private void AddDictionary(string KeyValue, string selectedValue) + /// <param name="key">璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�</param> + /// <param name="value">鐘舵�佸��</param> + private void AddDictionary(string key, string value) { //鏁版嵁灏佽 Dictionary<string, string> dic = new Dictionary<string, string>(); - LogicMethod.CurrLogicMethod.dictionary(dic, "key", KeyValue); - LogicMethod.CurrLogicMethod.dictionary(dic, "value", selectedValue); - AddDictionaryList(KeyValue, dic); + LogicMethod.Current.dictionary(dic, "key", key); + LogicMethod.Current.dictionary(dic, "value", value); + AddDictionaryList(key, dic); } /// <summary> /// 鏇存柊鏁版嵁鍒楄〃 /// </summary> - /// <param name="keyValue">璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�</param> + /// <param name="key">璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�</param> /// <param name="dictionary">娣诲姞閫変腑鏁版嵁</param> /// <returns></returns> - private void AddDictionaryList(string keyValue, Dictionary<string, string> dictionary) + private void AddDictionaryList(string key, Dictionary<string, string> dictionary) { + + if (this.device.spk == SPK.ElectricalTvHisense) + { + //鐗规畩澶勭悊 + if (key == "on_off") + { + key = "wol"; + } + else if (key == "wol") + { + key = "on_off"; + } + + } + + int indexValue = -1; for (int i = 0; i < dicSateteList.Count; i++) { var dic = dicSateteList[i]; - if (dic.ContainsValue(keyValue)) + if (dic.ContainsValue(key)) { //鍒ゆ柇鏄惁瀛樺湪 indexValue = i; @@ -753,6 +1415,7 @@ } } + /// <summary> /// 娣诲姞鐩爣 /// </summary> @@ -781,5 +1444,7 @@ } + + } } -- Gitblit v1.8.0