From eda3fb873e59544ff36301b51e05aef64f87b0f9 Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期五, 27 八月 2021 13:21:21 +0800 Subject: [PATCH] Merge branch 'newBranch1' of http://172.16.1.23:6688/r/~wxr/HDL_APP_Project into newBranch1 --- HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs | 791 +++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 530 insertions(+), 261 deletions(-) diff --git a/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs b/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs index 1880dad..2b40f4b 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs @@ -1,6 +1,8 @@ -锘縰sing System; +using System; using Shared; using System.Collections.Generic; +using HDL_ON.Entity; + namespace HDL_ON.UI.UI2.Intelligence.Automation { public class TargetDeviceFunList : FrameLayout @@ -17,10 +19,6 @@ /// 瀹氫箟涓�涓彉閲忥紝璁板綍閫変腑鐘舵�� /// </summary> private string selectedState = "unknown"; - /// <summary> - /// 瀹氫箟涓�涓彉閲忥紝璁板綍閫変腑鐘舵�佽褰曞睘鎬� - /// </summary> - private string keyVlaue = ""; public void Show(Entity.Function device, int index, bool edit) { #region 鐣岄潰甯冨眬 @@ -39,164 +37,438 @@ Height = Application.GetRealHeight(667 - 64), }; this.AddChidren(fLayout); - #endregion - switch (device.functionType) - { - //寮�鍏崇伅鍏� light.Switch - case FunctionType.Dimmer: - { - LogicView.FunTypeView lightSwitchView = new LogicView.FunTypeView(); - lightSwitchView.btnText.TextID = StringId.switchLogic; - lightSwitchView.btnState.Text = ""; - fLayout.AddChidren(lightSwitchView.FLayoutView()); - lightSwitchView.btnClick.MouseUpEventHandler += (sender, e) => - { - FrameLayout frame = new FrameLayout - { - BackgroundColor = CSS.CSS_Color.viewTrans60lucence, - }; - this.AddChidren(frame); - SwitchViewMethod(frame, device, lightSwitchView.btnState, 2); - }; - if (edit) - { - GetEditState(device, edit, index, lightSwitchView.btnState, null, null, null); - } - } - break; - case FunctionType.RGB: - { - LogicView.FunTypeView lightSwitchView = new LogicView.FunTypeView(); - lightSwitchView.btnText.TextID = StringId.switchLogic; - lightSwitchView.btnState.Text = ""; - fLayout.AddChidren(lightSwitchView.FLayoutView()); - lightSwitchView.btnClick.MouseUpEventHandler += (sender, e) => - { - FrameLayout frame = new FrameLayout - { - BackgroundColor = CSS.CSS_Color.viewTrans60lucence, - }; - this.AddChidren(frame); - SwitchViewMethod(frame, device, lightSwitchView.btnState, 2); - }; - if (edit) - { - GetEditState(device, edit, index, lightSwitchView.btnState, null, null, null); - } - - } - break; - case FunctionType.RGBW: - { - LogicView.FunTypeView lightSwitchView = new LogicView.FunTypeView(); - lightSwitchView.btnText.TextID = StringId.switchLogic; - lightSwitchView.btnState.Text = ""; - fLayout.AddChidren(lightSwitchView.FLayoutView()); - lightSwitchView.btnClick.MouseUpEventHandler += (sender, e) => - { - FrameLayout frame = new FrameLayout - { - BackgroundColor = CSS.CSS_Color.viewTrans60lucence, - }; - this.AddChidren(frame); - SwitchViewMethod(frame, device, lightSwitchView.btnState, 2); - }; - if (edit) - { - GetEditState(device, edit, index, lightSwitchView.btnState, null, null, null); - } - - } - break; - case FunctionType.CCT: - { - LogicView.FunTypeView lightSwitchView = new LogicView.FunTypeView(); - lightSwitchView.btnText.TextID = StringId.switchLogic; - lightSwitchView.btnState.Text = ""; - fLayout.AddChidren(lightSwitchView.FLayoutView()); - lightSwitchView.btnClick.MouseUpEventHandler += (sender, e) => - { - FrameLayout frame = new FrameLayout - { - BackgroundColor = CSS.CSS_Color.viewTrans60lucence, - }; - this.AddChidren(frame); - SwitchViewMethod(frame, device, lightSwitchView.btnState, 2); - }; - if (edit) - { - GetEditState(device, edit, index, lightSwitchView.btnState, null, null, null); - } - - } - break; - case FunctionType.Relay: - { - LogicView.FunTypeView lightSwitchView = new LogicView.FunTypeView(); - lightSwitchView.btnText.TextID = StringId.switchLogic; - lightSwitchView.btnState.Text = ""; - fLayout.AddChidren(lightSwitchView.FLayoutView()); - lightSwitchView.btnClick.MouseUpEventHandler += (sender, e) => - { - FrameLayout frame = new FrameLayout - { - BackgroundColor = CSS.CSS_Color.viewTrans60lucence, - }; - this.AddChidren(frame); - SwitchViewMethod(frame, device, lightSwitchView.btnState, 2); - }; - if (edit) - { - GetEditState(device, edit, index, lightSwitchView.btnState, null, null, null); - } - - } - break; - //绐楀笜 - case FunctionType.Curtain: - { - LogicView.FunTypeView lightSwitchView = new LogicView.FunTypeView(); - lightSwitchView.btnText.TextID = StringId.switchLogic; - lightSwitchView.btnState.Text = ""; - fLayout.AddChidren(lightSwitchView.FLayoutView()); - lightSwitchView.btnClick.MouseUpEventHandler += (sender, e) => - { - FrameLayout frame = new FrameLayout - { - BackgroundColor = CSS.CSS_Color.viewTrans60lucence, - }; - this.AddChidren(frame); - SwitchViewMethod(frame, device, lightSwitchView.btnState, 2); - }; - if (edit) - { - GetEditState(device, edit, index, lightSwitchView.btnState, null, null, null); - } - - } - break; - } - - - #region 淇濆瓨 ///淇濆瓨View LogicView.SaveView saveView = new LogicView.SaveView(); saveView.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(24), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight); saveView.btnSave.TextID = StringId.completeLogic; this.AddChidren(saveView.FLayoutView()); + #endregion + #region 缂栬緫璁惧鐘舵�� + switch (device.spk) + { + //寮�鍏崇伅鍏� light.Switch + case SPK.LightDimming: + case SPK.LightRGB: + case SPK.LightRGBW: + 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()); + #endregion + #region 鐐瑰嚮浜嬩欢 + ///寮�鍏崇偣鍑讳簨浠� + lightSwitchView.btnClick.MouseUpEventHandler += (sender, e) => + { + SwitchViewMethod(device, lightSwitchView.btnState, 2); + }; + ///浜害鐐瑰嚮浜嬩欢 + brightnessView.btnClick.MouseUpEventHandler += (sender, e) => + { + BrightnessMethod(device, brightnessView.btnState, brightnessView.btnText.Text); + + }; + if (edit) + { + //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� + GetEditState(device, index, lightSwitchView.btnState, brightnessView.btnState, null, null); + } + #endregion + } + break; + case SPK.LightSwitch: + { + #region 鐣岄潰 + ///寮�鍏� + LogicView.FunTypeView lightSwitchView = new LogicView.FunTypeView(); + lightSwitchView.btnText.TextID = StringId.switchLogic; + fLayout.AddChidren(lightSwitchView.FLayoutView()); + #endregion + #region 鐐瑰嚮浜嬩欢 + ///寮�鍏崇偣鍑讳簨浠� + lightSwitchView.btnClick.MouseUpEventHandler += (sender, e) => + { + SwitchViewMethod(device, lightSwitchView.btnState, 2); + }; + if (edit) + { + //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� + GetEditState(device, index, lightSwitchView.btnState, null, null, null); + } + #endregion + } + break; + //绐楀笜 + case SPK.CurtainSwitch: + case SPK.CurtainTrietex: + case SPK.CurtainRoller: + { + #region 鐣岄潰 + ///寮�鍏� + LogicView.FunTypeView curtainSwitchView = new LogicView.FunTypeView(); + curtainSwitchView.btnText.TextID = StringId.switchLogic; + fLayout.AddChidren(curtainSwitchView.FLayoutView()); + #endregion + #region 鐐瑰嚮浜嬩欢 + ///寮�鍏崇偣鍑讳簨浠� + curtainSwitchView.btnClick.MouseUpEventHandler += (sender, e) => + { + SwitchViewMethod(device, curtainSwitchView.btnState, 3); + }; + if (edit) + { + //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� + GetEditState(device, index, curtainSwitchView.btnState, null, null, null); + } + #endregion + } + break; + case SPK.AcStandard: + { + #region 鐣岄潰 + ///寮�鍏� + LogicView.FunTypeView acSwitchVie = new LogicView.FunTypeView(); + acSwitchVie.btnText.TextID = StringId.switchLogic; + fLayout.AddChidren(acSwitchVie.FLayoutView()); + + ///娓╁害 + LogicView.FunTypeView temperatureView = new LogicView.FunTypeView(); + temperatureView.frameLayout.Y = acSwitchVie.frameLayout.Bottom; + temperatureView.btnText.TextID = StringId.temperatureLogic; + fLayout.AddChidren(temperatureView.FLayoutView()); + + ///妯″紡 + LogicView.FunTypeView acModehView = new LogicView.FunTypeView(); + acModehView.frameLayout.Y = temperatureView.frameLayout.Bottom; + acModehView.btnText.TextID = StringId.modeLogic; + fLayout.AddChidren(acModehView.FLayoutView()); + + ///椋庨�� + LogicView.FunTypeView acSpeedView = new LogicView.FunTypeView(); + acSpeedView.frameLayout.Y = acModehView.frameLayout.Bottom; + acSpeedView.btnText.TextID = StringId.speedLogic; + fLayout.AddChidren(acSpeedView.FLayoutView()); + #endregion + #region 鐐瑰嚮浜嬩欢 + ///寮�鍏崇偣鍑讳簨浠� + acSwitchVie.btnClick.MouseUpEventHandler += (sender, e) => + { + SwitchViewMethod(device, acSwitchVie.btnState, 2); + }; + ///娓╁害鐐瑰嚮浜嬩欢 + temperatureView.btnClick.MouseUpEventHandler += (sender, e) => + { + ///涔嬪墠鐨勭姸鎬佹枃鏈� + string tempValue = temperatureView.btnState.Text; + LogicView.TemperatureView tempView = new LogicView.TemperatureView(); + tempView.FLayoutView(this, tempValue, (stateStr) => + { + //鐣岄潰鏄剧ず閫変腑鍊� + temperatureView.btnState.Text = stateStr; + //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�; + string keyVlaue = "set_temp"; + selectedState = device.spk + "_" + keyVlaue; + string set_temp_value = stateStr.Replace("鈩�", ""); + //鏁版嵁灏佽 + AddDictionary(keyVlaue, set_temp_value); + }); + + + }; + ///妯″紡鐐瑰嚮浜嬩欢 + acModehView.btnClick.MouseUpEventHandler += (sender, e) => + { + ///涔嬪墠鐨勭姸鎬佹枃鏈� + string currText = acModehView.btnState.Text; + //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�; + string keyVlaue = "mode"; + selectedState = device.spk + "_" + keyVlaue; + PublicInterface modeView = new PublicInterface(); + var modeListStr = modeView.GetViewList(keyVlaue); + modeView.SingleSelectionShow(this, modeListStr, Language.StringByID(StringId.modeLogic), currText + , (stateValue) => + { + //鐣岄潰鏄剧ず閫変腑鍊� + acModehView.btnState.Text = stateValue; + //鏁版嵁灏佽 + AddDictionary(keyVlaue, modeView.GetModeValueString(stateValue, keyVlaue)); + }); + + }; + ///椋庨�熺偣鍑讳簨浠� + acSpeedView.btnClick.MouseUpEventHandler += (sender, e) => + { + + ///涔嬪墠鐨勭姸鎬佹枃鏈� + string currText = acSpeedView.btnState.Text; + //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�; + string keyVlaue = "fan"; + selectedState = device.spk + "_" + keyVlaue; + PublicInterface speedView = new PublicInterface(); + var speedListStr = speedView.GetViewList(keyVlaue); + speedView.SingleSelectionShow(this, speedListStr, Language.StringByID(StringId.speedLogic), currText + , (stateValue) => + { + //鐣岄潰鏄剧ず閫変腑鍊� + acSpeedView.btnState.Text = stateValue; + //鏁版嵁灏佽 + AddDictionary(keyVlaue, speedView.GetModeValueString(stateValue, keyVlaue)); + + }); + }; + if (edit) + { + //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� + GetEditState(device, index, acSwitchVie.btnState, temperatureView.btnState, acModehView.btnState, acSpeedView.btnState); + } + + #endregion + } + break; + case SPK.FloorHeatStandard: + { + #region 鐣岄潰 + ///寮�鍏� + LogicView.FunTypeView floorHeatingSwitchVie = new LogicView.FunTypeView(); + floorHeatingSwitchVie.btnText.TextID = StringId.switchLogic; + fLayout.AddChidren(floorHeatingSwitchVie.FLayoutView()); + + ///娓╁害 + LogicView.FunTypeView temperatureView = new LogicView.FunTypeView(); + temperatureView.frameLayout.Y = floorHeatingSwitchVie.frameLayout.Bottom; + temperatureView.btnText.TextID = StringId.temperatureLogic; + fLayout.AddChidren(temperatureView.FLayoutView()); + + ///妯″紡 + LogicView.FunTypeView floorHeatingModehView = new LogicView.FunTypeView(); + floorHeatingModehView.frameLayout.Y = temperatureView.frameLayout.Bottom; + floorHeatingModehView.btnText.TextID = StringId.modeLogic; + fLayout.AddChidren(floorHeatingModehView.FLayoutView()); + + + #endregion + #region 鐐瑰嚮浜嬩欢 + ///寮�鍏崇偣鍑讳簨浠� + floorHeatingSwitchVie.btnClick.MouseUpEventHandler += (sender, e) => + { + + SwitchViewMethod(device, floorHeatingSwitchVie.btnState, 2); + }; + ///娓╁害鐐瑰嚮浜嬩欢 + temperatureView.btnClick.MouseUpEventHandler += (sender, e) => + { + string tempValue = temperatureView.btnState.Text; + LogicView.TemperatureView tempView = new LogicView.TemperatureView(); + tempView.FLayoutView(this, tempValue, (stateStr) => + { + //鐣岄潰鏄剧ず閫変腑鍊� + temperatureView.btnState.Text = stateStr; + //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�; + string keyVlaue = "set_temp"; + selectedState = device.spk + "_" + keyVlaue; + string set_temp_value = stateStr.Replace("鈩�", ""); + //鏁版嵁灏佽 + AddDictionary(keyVlaue, set_temp_value); + + }); + + }; + ///妯″紡鐐瑰嚮浜嬩欢 + floorHeatingModehView.btnClick.MouseUpEventHandler += (sender, e) => + { + + + ///涔嬪墠鐨勭姸鎬佹枃鏈� + string currText = floorHeatingModehView.btnState.Text; + //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�; + string keyVlaue = "mode"; + selectedState = device.spk + "_" + keyVlaue; + PublicInterface modeView = new PublicInterface(); + var modeListStr = modeView.GetViewList("floorheatingmode"); + modeView.SingleSelectionShow(this, modeListStr, Language.StringByID(StringId.modeLogic), currText + , (stateValue) => + { + //鐣岄潰鏄剧ず閫変腑鍊� + floorHeatingModehView.btnState.Text = stateValue; + //鏁版嵁灏佽 + AddDictionary(keyVlaue, modeView.GetModeValueString(stateValue, "floorheatingmode")); + }); + + }; + if (edit) + { + //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� + GetEditState(device, index, floorHeatingSwitchVie.btnState, temperatureView.btnState, floorHeatingModehView.btnState, null); + } + + #endregion + } + break; + case SPK.AirFreshStandard: + { + #region 鐣岄潰 + ///寮�鍏� + LogicView.FunTypeView AirFreshSwitchVie = new LogicView.FunTypeView(); + AirFreshSwitchVie.btnText.TextID = StringId.switchLogic; + fLayout.AddChidren(AirFreshSwitchVie.FLayoutView()); + + ///椋庨�� + LogicView.FunTypeView AirFreshSpeedView = new LogicView.FunTypeView(); + AirFreshSpeedView.frameLayout.Y = AirFreshSwitchVie.frameLayout.Bottom; + AirFreshSpeedView.btnText.TextID = StringId.speedLogic; + fLayout.AddChidren(AirFreshSpeedView.FLayoutView()); + #endregion + #region 鐐瑰嚮浜嬩欢 + ///寮�鍏崇偣鍑讳簨浠� + AirFreshSwitchVie.btnClick.MouseUpEventHandler += (sender, e) => + { + + SwitchViewMethod(device, AirFreshSwitchVie.btnState, 2); + }; + ///椋庨�熺偣鍑讳簨浠� + AirFreshSpeedView.btnClick.MouseUpEventHandler += (sender, e) => + { + //瀹氫箟涓�涓复鏃跺垪琛� + List<string> fanAttrList = new List<string>(); + //鍔ㄦ�佽鍙栨柊椋庨閫熷垪琛� + var fanAttr = device.GetAttribute(FunctionAttributeKey.FanSpeed); + foreach (var fanAttrValue in fanAttr.value) + { + switch (fanAttrValue) + { + case "high": + { + fanAttrList.Add(Language.StringByID(StringId.HighWindSpeed)); + } + break; + case "medium": + { + fanAttrList.Add(Language.StringByID(StringId.MiddleWindSpeed)); + } + break; + case "low": + { + + fanAttrList.Add(Language.StringByID(StringId.LowWindSpeed)); + } + break; + case "auto": + { + fanAttrList.Add(Language.StringByID(StringId.Auto)); + break; + } + + } + } + ///涔嬪墠鐨勭姸鎬佹枃鏈� + string currText = AirFreshSpeedView.btnState.Text; + //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�; + string keyVlaue = "fan"; + selectedState = device.spk + "_" + keyVlaue; + PublicInterface speedView = new PublicInterface(); + var speedListStr = fanAttrList;// speedView.GetViewList(keyVlaue); + speedView.SingleSelectionShow(this, speedListStr, Language.StringByID(StringId.speedLogic), currText + , (stateValue) => + { + //鐣岄潰鏄剧ず閫変腑鍊� + AirFreshSpeedView.btnState.Text = stateValue; + //鏁版嵁灏佽 + AddDictionary(keyVlaue, speedView.GetModeValueString(stateValue, keyVlaue)); + + }); + }; + if (edit) + { + //鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� + GetEditState(device, index, AirFreshSwitchVie.btnState, AirFreshSpeedView.btnState, null, null); + } + + #endregion + } + break; + + } + #endregion + #region 淇濆瓨鐐瑰嚮浜嬩欢 saveView.btnClick.MouseUpEventHandler += (sen, e) => { - - if (selectedState != "unknown") { Output outputDevice = new Output(); outputDevice.target_type = "1"; outputDevice.sid = device.sid; + switch (device.spk) + { + case SPK.LightDimming: + case SPK.LightRGB: + case SPK.LightRGBW: + case SPK.LightCCT: + { + //璋冨厜鍋氫簡涓�涓壒娈婂鐞嗭紱 + if (dicSateteList.Count > 1) + { + foreach (var dictionary in dicSateteList) + { + string keyValue = dictionary["key"]; + if (keyValue == "on_off") + { + if (dictionary["value"] == "off") + { + //绉婚櫎鍒楄〃鎵�鏈夋暟鎹� + dicSateteList.Clear(); + //閲嶆柊娣诲姞-鍏�-灞炴�ф暟鎹� + Dictionary<string, string> diction = new Dictionary<string, string>(); + diction.Add("key", "on_off"); + diction.Add("value", "off"); + dicSateteList.Add(diction); + break; + } + } + } + } + break; + } + case SPK.AcStandard: + case SPK.FloorHeatStandard: + case SPK.AirFreshStandard: + { + //鍋氫簡涓�涓壒娈婂鐞嗭紱 + bool _bool = false; + for (int i = 0; i < dicSateteList.Count; i++) + { + var dic = dicSateteList[i]; + if (dic.ContainsValue("on_off")) + { + //鍒ゆ柇鏄惁瀛樺湪 + _bool = true; + break; + } + } + if (!_bool) + { + //娌℃湁寮�鍏冲氨榛樿娣诲姞-寮�-灞炴�� + Dictionary<string, string> diction = new Dictionary<string, string>(); + diction.Add("key", "on_off"); + diction.Add("value", "on"); + dicSateteList.Add(diction); + } + } + break; + } outputDevice.status = dicSateteList; + if (edit) { + //鏇存柊寤舵椂鏃堕棿 + outputDevice.delay = Logic.currlogic.output[index].delay; //绉婚櫎鏃ф暟鎹� Logic.currlogic.output.RemoveAt(index); //鏂版暟鎹彃鍏ユ棫鏁版嵁鐨勪綅缃�; @@ -218,75 +490,147 @@ this.RemoveFromParent(); return; } - LogicMethod.RemoveAllView(); + LogicMethod.CurrLogicMethod.RemoveAllView(); AddLogic addLogic = new AddLogic(); MainPage.BasePageView.AddChidren(addLogic); addLogic.Show(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; - #endregion } /// <summary> - /// 绉婚櫎鎺т欢 + /// 寮�鍏�=鍔熻兘涓嬩竴绾х晫闈� /// </summary> - /// <param name="frame"></param> - private void RemView(FrameLayout frame) + /// <param name="device"></param> + /// <param name="button"></param> + /// <param name="len">鏄剧ず閫夋嫨View鏁伴噺</param> + private void SwitchViewMethod(Entity.Function device, Button button, int len) { - frame.RemoveFromParent(); + #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) => + { + int id = 0; + switch (strValue) + { + case "on": + { + id = StringId.onLogic; + } + break; + case "off": + { + id = StringId.offLogic; + } + break; + case "stop": + { + id = StringId.stop; + } + break; + } + //鐣岄潰鏄剧ず閫変腑鍊� + button.TextID = id; + selectedState = device.spk + "_" + strValue; + //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�; + string keyVlaue = "on_off"; + //鏁版嵁灏佽 + AddDictionary(keyVlaue, strValue); + }); + #endregion + } + /// <summary> + /// 浜害/鐧惧垎姣�=鍔熻兘涓嬩竴绾х晫闈� + /// </summary> + /// <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) => + { + //鐣岄潰鏄剧ず閫変腑鍊� + button.Text = brightnesValue + "%"; + selectedState = device.spk + brightnesValue.ToString(); + //璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�; + string keyVlaue = ""; + switch (device.spk) + { + //寮�鍏崇伅鍏� light.Switch + case SPK.LightDimming: + case SPK.LightRGB: + case SPK.LightRGBW: + case SPK.LightCCT: + { + keyVlaue = "brightness"; + } + break; + case SPK.CurtainRoller: + case SPK.CurtainTrietex: + { + keyVlaue = "percent"; + } + break; + } + //鏁版嵁灏佽 + AddDictionary(keyVlaue, brightnesValue); + }); + #endregion + } /// <summary> /// 鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� /// </summary> /// <param name="device">缂栬緫璁惧</param> - /// <param name="edit">缂栬緫鐘舵��</param> /// <param name="index">缂栬緫鏁版嵁鐨勭储寮�</param> /// <param name="button1">鏄剧ずBtn</param> /// <param name="button2">鏄剧ずBtn</param> /// <param name="button3">鏄剧ずBtn</param> /// <param name="button4">鏄剧ずBtn</param> - private void GetEditState(Entity.Function device, bool edit, int index, Button button1, Button button2, Button button3, Button button4) + private void GetEditState(Entity.Function device, int index, Button button1, Button button2, Button button3, Button button4) { Output outputs = Logic.currlogic.output[index]; - var dicList = outputs.status as List<Dictionary<string, string>>; - - switch (device.functionType) + var dicList = outputs.status; + //娓呴櫎涔嬪墠鏃ф暟鎹� + dicSateteList.Clear(); + if (dicList.Count != 0) { - //寮�鍏崇伅鍏� - case FunctionType.Relay: - { - foreach (var dic in dicList) - { - string value = dic["value"]; - if (value == "on") - { - button1.Text = Language.StringByID(StringId.onLogic); - } - else - { - button1.Text = Language.StringByID(StringId.offLogic); - } - } - } - break; - + //鏈夋暟鎹噸鏂拌祴鍊� + dicSateteList = dicList; } - + InpOrOutLogicMethod.EditState(device, dicList, button1, button2, button3, button4); } /// <summary> /// 娣诲姞閫変腑鏁版嵁 /// </summary> - /// <param name="dicList">瀛樺偍鏁版嵁鍒楄〃</param> - /// <param name="keyValue">璇嗗埆璁惧</param> - /// <param name="dictionary">閫変腑鏁版嵁</param> + /// <param name="KeyValue">璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�</param> + /// <param name="selectedValue">鐘舵�佸��</param> + private void AddDictionary(string KeyValue, string selectedValue) + { + //鏁版嵁灏佽 + Dictionary<string, string> dic = new Dictionary<string, string>(); + LogicMethod.CurrLogicMethod.dictionary(dic, "key", KeyValue); + LogicMethod.CurrLogicMethod.dictionary(dic, "value", selectedValue); + AddDictionaryList(KeyValue, dic); + } + /// <summary> + /// 鏇存柊鏁版嵁鍒楄〃 + /// </summary> + /// <param name="keyValue">璁惧灞炴�у�硷紝浜戦泙涓婂畾涔夊ソ鐨�</param> + /// <param name="dictionary">娣诲姞閫変腑鏁版嵁</param> /// <returns></returns> - private void AddDictionaryData(List<Dictionary<string, string>> dicList, string keyValue, Dictionary<string, string> dictionary) + private void AddDictionaryList(string keyValue, Dictionary<string, string> dictionary) { int indexValue = -1; - for (int i = 0; i < dicList.Count; i++) + for (int i = 0; i < dicSateteList.Count; i++) { - var dic = dicList[i]; + var dic = dicSateteList[i]; if (dic.ContainsValue(keyValue)) { //鍒ゆ柇鏄惁瀛樺湪 @@ -298,18 +642,17 @@ if (indexValue != -1) { //瀛樺湪绉婚櫎 - dicList.RemoveAt(indexValue); + dicSateteList.RemoveAt(indexValue); //閲嶆柊娣诲姞 - dicList.Insert(indexValue, dictionary); + dicSateteList.Insert(indexValue, dictionary); } else { //鏂版坊鍔� - dicList.Add(dictionary); + dicSateteList.Add(dictionary); } } - /// <summary> /// 娣诲姞鐩爣 /// </summary> @@ -337,80 +680,6 @@ } } - /// <summary> - /// 寮�鍏冲姛鑳藉睍寮�鐣岄潰 - /// </summary> - /// <param name="frame"></param> - /// <param name="device"></param> - /// <param name="button"></param> - /// <param name="len"></param> - public void SwitchViewMethod(FrameLayout frame, Entity.Function device, Button button, int len) - { - LogicView.SwitchView switchView = new LogicView.SwitchView(); - switchView.FLayoutView(frame, len); - - Button btnOn = new Button - { - TextAlignment = TextAlignment.Center, - TextSize = LogicView.TextSize.text16, - TextColor = CSS.CSS_Color.textCancelColor, - TextID = StringId.onLogic, - Height = Application.GetRealHeight(44), - Width = Application.GetRealWidth(343), - - }; - switchView.frameLayout.AddChidren(btnOn); - Button btnLine = new Button - { - Height = 1, - BackgroundColor = CSS.CSS_Color.viewLine, - Y = btnOn.Bottom, - }; - switchView.frameLayout.AddChidren(btnLine); - Button btnOff = new Button - { - Y = btnLine.Bottom, - TextAlignment = TextAlignment.Center, - TextSize = LogicView.TextSize.text16, - TextColor = CSS.CSS_Color.textCancelColor, - TextID = StringId.offLogic, - Height = Application.GetRealHeight(44), - Width = Application.GetRealWidth(343), - }; - switchView.frameLayout.AddChidren(btnOff); - - Dictionary<string, string> dic = new Dictionary<string, string>(); - LogicMethod.dictionary(dic, "key", "on_off"); - keyVlaue = "on_off"; - - btnOn.MouseUpEventHandler += (sender2, e2) => - { - LogicMethod.dictionary(dic, "value", "on"); - RemView(frame); - button.TextID = StringId.onLogic; - selectedState = device.functionType + "_on"; - AddDictionaryData(dicSateteList, keyVlaue, dic); - }; - btnOff.MouseUpEventHandler += (sender3, e3) => - { - LogicMethod.dictionary(dic, "value", "off"); - RemView(frame); - button.TextID = StringId.offLogic; - selectedState = device.functionType + "_off"; - AddDictionaryData(dicSateteList, keyVlaue, dic); - }; - if (button.Text != "") - { - if (button.Text == btnOn.Text) - { - btnOn.TextColor = CSS.CSS_Color.textConfirmColor; - } - else - { - btnOff.TextColor = CSS.CSS_Color.textConfirmColor; - } - } - } } } -- Gitblit v1.8.0