From acc8caee31c4be90bd38d1af18136b0e84f6fe94 Mon Sep 17 00:00:00 2001 From: wxr <wxr@hdlchina.com.cn> Date: 星期五, 27 九月 2024 14:01:19 +0800 Subject: [PATCH] Merge branch 'feature/v2.7_迭代' into feature/V2.7_Google --- HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs | 245 ++++++++++++++++++++++++------------------------ 1 files changed, 121 insertions(+), 124 deletions(-) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs index 63b9cac..9db7d82 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using HDL_ON.Entity; using HDL_ON.UI.CSS; +using System.Linq; namespace HDL_ON.UI.UI2.Intelligence.Automation { @@ -21,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>>(); @@ -31,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()); @@ -59,7 +65,7 @@ //缇ゆ帶 case SPK.GroupControl: int height = Application.GetRealHeight(50); - int attributesNameId=0; + int attributesNameId = 0; int count = 0; foreach (var attr in (device as GroupControl).attributes) { @@ -136,7 +142,7 @@ } //璁惧寤舵椂iewv - DelayView(fLayout, height* count); + DelayView(fLayout, height * count); break; //鎻掑骇(鏈塙SB) case SPK.PanelSocket: @@ -144,8 +150,8 @@ #region 鐣岄潰 ///鎬绘帶寮�鍏� LogicView.FunTypeView view1 = new LogicView.FunTypeView(); - view1.btnText.TextID = StringId.zongkogkaiguan; - view1.btnState.Name = "鎬绘帶寮�鍏�"; + view1.btnText.TextID = StringId.switchLogic; + //view1.btnState.Name = "鎬绘帶寮�鍏�"; fLayout.AddChidren(view1.FLayoutView()); ///璁惧寤舵椂iewv DelayView(fLayout, view1.frameLayout.Bottom); @@ -164,7 +170,23 @@ #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.ElectricSocket: @@ -196,8 +218,8 @@ break; //鐏厜寮�鍏� 浜害 case SPK.LightDimming: - //case SPK.LightRGB: - //case SPK.LightRGBW: + //case SPK.LightRGB: + //case SPK.LightRGBW: { #region 鐣岄潰 ///寮�鍏� @@ -433,6 +455,7 @@ break; case SPK.AcStandard: case SPK.HvacAC: + case SPK.HvacAcPanel: case SPK.AcIr: { #region 鐣岄潰 @@ -470,6 +493,7 @@ 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); + var setTempAttr = device.GetAttribute(FunctionAttributeKey.SetTemp); ///娓╁害鐐瑰嚮浜嬩欢 temperatureView.btnClick.MouseUpEventHandler += (sender, e) => { @@ -486,7 +510,7 @@ string set_temp_value = stateStr.Replace(unit, ""); //鏁版嵁灏佽 AddDictionary(keyVlaue, set_temp_value); - }, min, max, unit); + }, min, max, unit, setTempAttr.step); }; ///妯″紡鐐瑰嚮浜嬩欢 @@ -540,7 +564,7 @@ } break; case SPK.FloorHeatStandard: - case SPK.HvacFloorHeat: + case SPK.HvacFloorHeat:case SPK.HvacFloorHeatPanel: { #region 鐣岄潰 ///寮�鍏� @@ -564,6 +588,7 @@ DelayView(fLayout, floorHeatingModehView.frameLayout.Bottom); #endregion #region 鐐瑰嚮浜嬩欢 + var setTempAttr = device.GetAttribute(FunctionAttributeKey.SetTemp); ///寮�鍏崇偣鍑讳簨浠� floorHeatingSwitchVie.btnClick.MouseUpEventHandler += (sender, e) => { @@ -589,7 +614,7 @@ //鏁版嵁灏佽 AddDictionary(keyVlaue, set_temp_value); - }, min, max, unit); + }, min, max, unit, setTempAttr.step); }; ///妯″紡鐐瑰嚮浜嬩欢 @@ -714,14 +739,19 @@ 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; + volView.btnText.TextID = StringId.volumeMusic; fLayout.AddChidren(volView.FLayoutView()); //if (SPK.AvMusic == device.spk) @@ -729,12 +759,44 @@ // //涓嶆敮鎸佺壒娈婅闊� // volView.frameLayout.Y = Application.GetRealHeight(0); //} - + ///璁惧寤舵椂iewv - DelayView(fLayout, volView.frameLayout.Bottom); + 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) => { @@ -748,11 +810,11 @@ { //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>(); + 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]; + var song = palyList.songs[i]; songNameList.Add(song.name); } Application.RunOnMainThread(() => @@ -761,7 +823,7 @@ PublicInterface publicInterface = new PublicInterface(); publicInterface.FrameOrVv(this, songNameList, new List<string> { funTypeView.btnState.Text }, palyList.group, (index2) => { - var songSelecetd = palyList.songs[index2]; + var songSelecetd = palyList.songs[index2]; //鐣岄潰鏄剧ず閫変腑鍊� funTypeView.btnState.Text = songSelecetd.name; //鏁版嵁灏佽 @@ -773,7 +835,7 @@ AddDictionary("url", songSelecetd.url); } - },false); + }, false); }); } @@ -787,102 +849,18 @@ selectedState = device.spk + "_volume"; new LogicView.TipPopView { }.InputBox(StringId.volumeMusic, volView.btnState.Text, (value) => { - + //鐣岄潰鏄剧ず閫変腑鍊� - volView.btnState.Text =value; + volView.btnState.Text = value; //鏁版嵁灏佽 AddDictionary("volume", value);//闊抽噺 - },0,100); + }, 0, 100); }; if (edit) { //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� - GetEditDeviceState(device, index, funTypeView.btnState, volView.btnState, null, 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 sourceList = new List<string>(); - sourceList.Add("HDML 1"); - sourceList.Add("HDML 2"); - sourceList.Add("HDML 3"); - sourceList.Add("HDML 4"); - sourceList.Add("Live TV"); - sourceList.Add("PS"); - sourceList.Add("AV"); - pif.SingleSelectionShow(this, sourceList, Language.StringByID(StringId.xinhaoyuan), currText - , (valueStr) => - { - //鐣岄潰鏄剧ず閫変腑鍊� - sourceView.btnState.Text = valueStr; - string value = valueStr.Replace(" ", "_"); - //鏁版嵁灏佽 - AddDictionary(key, value); - - }); - }; - - if (edit) - { - //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� - GetEditDeviceState(device, index, switchView.btnState, volView.btnState, sourceView.btnState, null); + GetEditDeviceState(device, index, switchVie.btnState, funTypeView.btnState, volView.btnState, null); } #endregion @@ -933,9 +911,10 @@ } case SPK.HvacAC: case SPK.AcIr: + case SPK.HvacAcPanel: case SPK.AcStandard: case SPK.FloorHeatStandard: - case SPK.HvacFloorHeat: + case SPK.HvacFloorHeat:case SPK.HvacFloorHeatPanel: { //鍋氫簡涓�涓壒娈婂鐞嗭紱 bool _bool = false; @@ -975,6 +954,23 @@ 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; @@ -1026,12 +1022,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; @@ -1041,11 +1037,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; } @@ -1055,7 +1052,8 @@ /// <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 }; @@ -1082,6 +1080,7 @@ } break; } + //鐣岄潰鏄剧ず閫変腑鍊� button.TextID = id; selectedState = device.spk + "_" + value; @@ -1091,10 +1090,10 @@ { case SPK.PanelSocket: { - if (button.Name == "鎬绘帶寮�鍏�") - { - key = "on_off_master"; - } + //if (button.Name == "鎬绘帶寮�鍏�") + //{ + // key = "on_off_master"; + //} } break; case SPK.GroupControl: @@ -1106,11 +1105,11 @@ } break; - } //鏁版嵁灏佽 AddDictionary(key, value); + action?.Invoke(value); }); #endregion } @@ -1154,11 +1153,6 @@ //瑙掑害 keyVlaue = "angle"; } - } - break; - case SPK.ElectricalTvHisense: - { - keyVlaue = "set_volume"; } break; @@ -1266,7 +1260,7 @@ if (this.btnDelay != null) { ///寤舵椂鏄剧ず鏂囨湰 - this.btnDelay.Text = outputs.delay + "s"; + this.btnDelay.Text =LogicMethod.Current.getTimeStr(outputs.delay); this.strdelay = outputs.delay; } InpOrOutLogicMethod.Current.EditDeviceState(device, dicList, button1, button2, button3, button4, attribute); @@ -1292,6 +1286,8 @@ /// <returns></returns> private void AddDictionaryList(string key, Dictionary<string, string> dictionary) { + + int indexValue = -1; for (int i = 0; i < dicSateteList.Count; i++) { @@ -1317,7 +1313,8 @@ dicSateteList.Add(dictionary); } - } + } + /// <summary> /// 娣诲姞鐩爣 /// </summary> -- Gitblit v1.8.0