From 5eeafe3af80bfd88306bd8ad9e76c8f4b51ca35f Mon Sep 17 00:00:00 2001 From: hxb <hxb@hdlchina.com.cn> Date: 星期四, 17 十二月 2020 14:16:20 +0800 Subject: [PATCH] 增加本地发送的重发机制 --- HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs | 1255 +++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 1,032 insertions(+), 223 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..95c6385 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs @@ -17,10 +17,6 @@ /// 瀹氫箟涓�涓彉閲忥紝璁板綍閫変腑鐘舵�� /// </summary> private string selectedState = "unknown"; - /// <summary> - /// 瀹氫箟涓�涓彉閲忥紝璁板綍閫変腑鐘舵�佽褰曞睘鎬� - /// </summary> - private string keyVlaue = ""; public void Show(Entity.Function device, int index, bool edit) { #region 鐣岄潰甯冨眬 @@ -39,152 +35,468 @@ 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.functionType) + { + //寮�鍏崇伅鍏� light.Switch + case FunctionType.Dimmer: + case FunctionType.RGB: + case FunctionType.RGBW: + case FunctionType.ColorTemperature: + { + //2琛ㄧず(寮�锛屽叧)鍔熻兘 + SwitchBrightnessView(fLayout, device, index, edit, 2); + } + break; + case FunctionType.Relay: + { + //2琛ㄧず(寮�锛屽叧)鍔熻兘 + SwitchView(fLayout, device, index, edit, 2); + } + break; + //绐楀笜 + case FunctionType.Curtain: + { + //3琛ㄧず(寮�锛屽叧锛屾殏鍋�)鍔熻兘 + SwitchView(fLayout, device, index, edit, 3); + } + break; + case FunctionType.MotorCurtain: + case FunctionType.RollingShutter: + { + //3琛ㄧず(寮�锛屽叧锛屾殏鍋�)鍔熻兘 + SwitchBrightnessView(fLayout, device, index, edit, 3); + } + break; + case FunctionType.AC: + { + #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) => + { + FrameLayout frame = new FrameLayout + { + BackgroundColor = CSS.CSS_Color.viewTrans60lucence, + }; + this.AddChidren(frame); + LogicView.TimeView view = new LogicView.TimeView(); + view.FLayoutView(frame); + EventHandler<MouseEventArgs> removefLayout = (sender1, e1) => + { + //绉婚櫎fLayout鐣岄潰 + frame.RemoveFromParent(); + }; + //鍙栨秷鐐瑰嚮浜嬩欢 + view.btnCancel.MouseUpEventHandler += removefLayout; + + //鍒濆鍖栧垪琛� + var temperatureList = new List<string>(); + for (int i = 16; i < 32; i++) + { + //娣诲姞鏁版嵁 + temperatureList.Add(i.ToString() + "鈩�"); + temperatureList.Add((i + 0.5).ToString() + "鈩�"); + + } + + //鍔犺浇鏁版嵁鐣岄潰鐨勮缃柟娉�(鍒楄〃浜掍笉鑱斿姩) + view.mUIPickerView.setNPicker(temperatureList, null, null); + + //榛樿鍒濆閫変腑鐘舵�� + view.mUIPickerView.setCurrentItems(9, 0, 0); + //瀹氫箟涓�涓眬閮ㄥ彉閲忚褰曢�変腑鏃堕棿 + string temperature = "25鈩�"; + for (int i = 0; i < temperatureList.Count; i++) + { + if (temperatureList[i] == temperatureView.btnState.Text) + { + //鏇存柊鐘舵�� + view.mUIPickerView.setCurrentItems(i, 0, 0); + //鏇存柊鐘舵�� + temperature = temperatureList[i]; + break; + } + } + //閫変腑鏃堕棿鍥炶皟鏂规硶,鏃堕棿鍙樺寲涓�娆″洖璋冧竴娆� + view.mUIPickerView.OnSelectChangeEvent += (index1, index2, index3) => + { + temperature = temperatureList[index1]; + }; + //纭畾鐐瑰嚮浜嬩欢 + view.btnConfirm.MouseUpEventHandler += (sender2, e2) => + { + Dictionary<string, string> dic = new Dictionary<string, string>(); + LogicMethod.dictionary(dic, "key", "set_temp"); + string keyVlaue = "set_temp"; + string set_temp_value = temperature.Replace("鈩�", ""); + LogicMethod.dictionary(dic, "value", set_temp_value); + selectedState = device.functionType + "_set_temp"; + AddDictionaryData(dicSateteList, keyVlaue, dic); + RemView(frame); + temperatureView.btnState.Text = temperature; + + }; + }; + ///妯″紡鐐瑰嚮浜嬩欢 + acModehView.btnClick.MouseUpEventHandler += (sender, e) => + { + + List<string> modeStr = new List<string> { + Language.StringByID(StringId.coolLogic), + Language.StringByID(StringId.heatingLogic), + Language.StringByID(StringId.autoLogic), + Language.StringByID(StringId.dehumidifyLogic), + }; + FrameLayout frame = new FrameLayout + { + BackgroundColor = CSS.CSS_Color.viewTrans60lucence, + }; + this.AddChidren(frame); + LogicView.DateView modeView = new LogicView.DateView(); + modeView.btnTitle.TextID = StringId.modeLogic; + modeView.FLayoutView(frame, modeStr.Count); + modeView.btnCancel.MouseUpEventHandler += (sender2, e2) => + { + frame.RemoveFromParent(); + }; + ///瀹氫箟涓�涓狟tn璁板綍閫変腑鐘舵�� + Button checkBtn = new Button + { + Tag = "unknown", + }; + for (int i = 0; i < modeStr.Count; i++) + { + LogicView.CheckView modeTypeView = new LogicView.CheckView(); + modeTypeView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i); + modeView.frameLayout.AddChidren(modeTypeView.FLayoutView()); + modeTypeView.btnText.Text = modeStr[i]; + modeTypeView.btnClick.Tag = modeStr[i];//鏍囪 + + if (acModehView.btnState.Text == modeStr[i]) + { + //鏄剧ず涔嬪墠鐨勯�変腑鐘舵�� + checkBtn.IsSelected = false; + modeTypeView.btnCheckIcon.IsSelected = true; + checkBtn = modeTypeView.btnCheckIcon; + checkBtn.Tag = modeTypeView.btnClick.Tag.ToString(); + } + //鏄熸湡鐨勭偣鍑讳簨浠� + modeTypeView.btnClick.MouseUpEventHandler += (sender1, e1) => + { + checkBtn.IsSelected = false; + modeTypeView.btnCheckIcon.IsSelected = true; + checkBtn = modeTypeView.btnCheckIcon; + checkBtn.Tag = modeTypeView.btnClick.Tag.ToString(); + }; + + } + modeView.btnConfirm.MouseUpEventHandler += (sender1, e1) => + { + if (checkBtn.Tag.ToString() == "unknown") + { + return; + } + + Dictionary<string, string> dic = new Dictionary<string, string>(); + LogicMethod.dictionary(dic, "key", "mode"); + string keyVlaue = "mode"; + LogicMethod.dictionary(dic, "value", GetModeValueString(checkBtn.Tag.ToString(), keyVlaue)); + acModehView.btnState.Text = checkBtn.Tag.ToString(); + selectedState = device.functionType + "_mode"; + AddDictionaryData(dicSateteList, keyVlaue, dic); + RemView(frame); + }; + }; + ///椋庨�熺偣鍑讳簨浠� + acSpeedView.btnClick.MouseUpEventHandler += (sender, e) => + { + + List<string> speedStr = new List<string> { + Language.StringByID(StringId.LowWindSpeed), + Language.StringByID(StringId.MiddleWindSpeed), + Language.StringByID(StringId.HighWindSpeed), + Language.StringByID(StringId.Auto), + }; + FrameLayout frame = new FrameLayout + { + BackgroundColor = CSS.CSS_Color.viewTrans60lucence, + }; + this.AddChidren(frame); + LogicView.DateView speedView = new LogicView.DateView(); + speedView.btnTitle.TextID = StringId.modeLogic; + speedView.FLayoutView(frame, speedStr.Count); + speedView.btnCancel.MouseUpEventHandler += (sender2, e2) => + { + frame.RemoveFromParent(); + }; + ///瀹氫箟涓�涓狟tn璁板綍閫変腑鐘舵�� + Button checkBtn = new Button + { + Tag = "unknown", + }; + for (int i = 0; i < speedStr.Count; i++) + { + LogicView.CheckView speedTypeView = new LogicView.CheckView(); + speedTypeView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i); + speedView.frameLayout.AddChidren(speedTypeView.FLayoutView()); + speedTypeView.btnText.Text = speedStr[i]; + speedTypeView.btnClick.Tag = speedStr[i];//鏍囪 + + if (acModehView.btnState.Text == speedStr[i]) + { + //鏄剧ず涔嬪墠鐨勯�変腑鐘舵�� + checkBtn.IsSelected = false; + speedTypeView.btnCheckIcon.IsSelected = true; + checkBtn = speedTypeView.btnCheckIcon; + checkBtn.Tag = speedTypeView.btnClick.Tag.ToString(); + } + //鏄熸湡鐨勭偣鍑讳簨浠� + speedTypeView.btnClick.MouseUpEventHandler += (sender1, e1) => + { + checkBtn.IsSelected = false; + speedTypeView.btnCheckIcon.IsSelected = true; + checkBtn = speedTypeView.btnCheckIcon; + checkBtn.Tag = speedTypeView.btnClick.Tag.ToString(); + }; + + } + speedView.btnConfirm.MouseUpEventHandler += (sender1, e1) => + { + if (checkBtn.Tag.ToString() == "unknown") + { + return; + } + + Dictionary<string, string> dic = new Dictionary<string, string>(); + LogicMethod.dictionary(dic, "key", "fan"); + string keyVlaue = "fan"; + LogicMethod.dictionary(dic, "value", GetModeValueString(checkBtn.Tag.ToString(), keyVlaue)); + acSpeedView.btnState.Text = checkBtn.Tag.ToString(); + selectedState = device.functionType + "_fan"; + AddDictionaryData(dicSateteList, keyVlaue, dic); + RemView(frame); + }; + }; + if (edit) + { + GetEditState(device, index, acSwitchVie.btnState, temperatureView.btnState, acModehView.btnState, acSpeedView.btnState); + } + + #endregion + } + break; + case FunctionType.FloorHeating: + { + #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) => + { + FrameLayout frame = new FrameLayout + { + BackgroundColor = CSS.CSS_Color.viewTrans60lucence, + }; + this.AddChidren(frame); + LogicView.TimeView view = new LogicView.TimeView(); + view.FLayoutView(frame); + EventHandler<MouseEventArgs> removefLayout = (sender1, e1) => + { + //绉婚櫎fLayout鐣岄潰 + frame.RemoveFromParent(); + }; + //鍙栨秷鐐瑰嚮浜嬩欢 + view.btnCancel.MouseUpEventHandler += removefLayout; + + //鍒濆鍖栧垪琛� + var temperatureList = new List<string>(); + for (int i = 16; i < 32; i++) + { + //娣诲姞鏁版嵁 + temperatureList.Add(i.ToString() + "鈩�"); + temperatureList.Add((i + 0.5).ToString() + "鈩�"); + + } + + //鍔犺浇鏁版嵁鐣岄潰鐨勮缃柟娉�(鍒楄〃浜掍笉鑱斿姩) + view.mUIPickerView.setNPicker(temperatureList, null, null); + + //榛樿鍒濆閫変腑鐘舵�� + view.mUIPickerView.setCurrentItems(9, 0, 0); + //瀹氫箟涓�涓眬閮ㄥ彉閲忚褰曢�変腑鏃堕棿 + string temperature = "25鈩�"; + for (int i = 0; i < temperatureList.Count; i++) + { + if (temperatureList[i] == temperatureView.btnState.Text) + { + //鏇存柊鐘舵�� + view.mUIPickerView.setCurrentItems(i, 0, 0); + //鏇存柊鐘舵�� + temperature = temperatureList[i]; + break; + } + } + //閫変腑鏃堕棿鍥炶皟鏂规硶,鏃堕棿鍙樺寲涓�娆″洖璋冧竴娆� + view.mUIPickerView.OnSelectChangeEvent += (index1, index2, index3) => + { + temperature = temperatureList[index1]; + }; + //纭畾鐐瑰嚮浜嬩欢 + view.btnConfirm.MouseUpEventHandler += (sender2, e2) => + { + Dictionary<string, string> dic = new Dictionary<string, string>(); + LogicMethod.dictionary(dic, "key", "set_temp"); + string keyVlaue = "set_temp"; + string set_temp_value = temperature.Replace("鈩�", ""); + LogicMethod.dictionary(dic, "value", set_temp_value); + selectedState = device.functionType + "_set_temp"; + AddDictionaryData(dicSateteList, keyVlaue, dic); + RemView(frame); + temperatureView.btnState.Text = temperature; + + }; + }; + ///妯″紡鐐瑰嚮浜嬩欢 + floorHeatingModehView.btnClick.MouseUpEventHandler += (sender, e) => + { + List<string> modeStr = new List<string> { + Language.StringByID(StringId.dayMode), + Language.StringByID(StringId.nightMode), + Language.StringByID(StringId.leaveMode), + Language.StringByID(StringId.ordinaryMode), + Language.StringByID(StringId.timeMode), + }; + FrameLayout frame = new FrameLayout + { + BackgroundColor = CSS.CSS_Color.viewTrans60lucence, + }; + this.AddChidren(frame); + LogicView.DateView modeView = new LogicView.DateView(); + modeView.btnTitle.TextID = StringId.modeLogic; + modeView.FLayoutView(frame, modeStr.Count); + modeView.btnCancel.MouseUpEventHandler += (sender2, e2) => + { + frame.RemoveFromParent(); + }; + ///瀹氫箟涓�涓狟tn璁板綍閫変腑鐘舵�� + Button checkBtn = new Button + { + Tag = "unknown", + }; + for (int i = 0; i < modeStr.Count; i++) + { + LogicView.CheckView modeTypeView = new LogicView.CheckView(); + modeTypeView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i); + modeView.frameLayout.AddChidren(modeTypeView.FLayoutView()); + modeTypeView.btnText.Text = modeStr[i]; + modeTypeView.btnClick.Tag = modeStr[i];//鏍囪 + + if (floorHeatingModehView.btnState.Text == modeStr[i]) + { + //鏄剧ず涔嬪墠鐨勯�変腑鐘舵�� + checkBtn.IsSelected = false; + modeTypeView.btnCheckIcon.IsSelected = true; + checkBtn = modeTypeView.btnCheckIcon; + checkBtn.Tag = modeTypeView.btnClick.Tag.ToString(); + } + //鏄熸湡鐨勭偣鍑讳簨浠� + modeTypeView.btnClick.MouseUpEventHandler += (sender1, e1) => + { + checkBtn.IsSelected = false; + modeTypeView.btnCheckIcon.IsSelected = true; + checkBtn = modeTypeView.btnCheckIcon; + checkBtn.Tag = modeTypeView.btnClick.Tag.ToString(); + }; + + } + modeView.btnConfirm.MouseUpEventHandler += (sender1, e1) => + { + if (checkBtn.Tag.ToString() == "unknown") + { + return; + } + + Dictionary<string, string> dic = new Dictionary<string, string>(); + LogicMethod.dictionary(dic, "key", "mode"); + string keyVlaue = "mode"; + LogicMethod.dictionary(dic, "value", GetModeValueString(checkBtn.Tag.ToString(), "FloorHeating")); + floorHeatingModehView.btnState.Text = checkBtn.Tag.ToString(); + selectedState = device.functionType + "_mode"; + AddDictionaryData(dicSateteList, keyVlaue, dic); + RemView(frame); + }; + }; + if (edit) + { + GetEditState(device, index, floorHeatingSwitchVie.btnState, temperatureView.btnState, floorHeatingModehView.btnState, null); + } + + #endregion + } + break; + + } + #endregion + #region 淇濆瓨鐐瑰嚮鏃堕棿 saveView.btnClick.MouseUpEventHandler += (sen, e) => { @@ -224,8 +536,305 @@ addLogic.Show(); MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; }; - #endregion + + } + /// <summary> + /// 鑾峰彇妯″紡/椋庨�熼敭鍊� + /// </summary> + /// <param name="text"></param> + /// <param name="type"></param> + /// <returns></returns> + private string GetModeValueString(string text, string type) + { + string str = ""; + switch (type) + { + case "mode": + { + if (text == Language.StringByID(StringId.coolLogic)) + { + str = "cool"; + } + else if (text == Language.StringByID(StringId.heatingLogic)) + { + str = "heat"; + } + else if (text == Language.StringByID(StringId.autoLogic)) + { + str = "auto"; + } + else if (text == Language.StringByID(StringId.dehumidifyLogic)) + { + str = "dry"; + } + } + break; + case "fan": + { + if (text == Language.StringByID(StringId.HighWindSpeed)) + { + str = "high"; + } + else if (text == Language.StringByID(StringId.MiddleWindSpeed)) + { + str = "medium"; + } + else if (text == Language.StringByID(StringId.LowWindSpeed)) + { + str = "low"; + } + else if (text == Language.StringByID(StringId.Auto)) + { + str = "auto"; + } + } + break; + case "FloorHeating": + { + if (text == Language.StringByID(StringId.dayMode)) + { + str = "day"; + } + else if (text == Language.StringByID(StringId.nightMode)) + { + str = "night"; + } + else if (text == Language.StringByID(StringId.leaveMode)) + { + str = "away"; + } + else if (text == Language.StringByID(StringId.ordinaryMode)) + { + str = "normal"; + } + else if (text == Language.StringByID(StringId.timeMode)) + { + str = "timer"; + } + } + break; + } + return str; + } + /// <summary> + ///寮�鍏�=鐣岄潰 + /// </summary> + /// <param name="fLayout"></param> + /// <param name="device"></param> + /// <param name="index"></param> + /// <param name="edit"></param> + /// <param name="intView">閫変腑View鐨勬暟閲�</param> + private void SwitchView(FrameLayout fLayout, Entity.Function device, int index, bool edit, int intView) + { + #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, intView); + }; + if (edit) + { + GetEditState(device, index, curtainSwitchView.btnState, null, null, null); + } + #endregion + + } + /// <summary> + ///锛堝紑鍏�+浜害/鐧惧垎姣�)鐣岄潰 + /// </summary> + /// <param name="fLayout"></param> + /// <param name="device"></param> + /// <param name="index"></param> + /// <param name="edit"></param> + /// <param name="intView">閫変腑View鐨勬暟閲�</param> + private void SwitchBrightnessView(FrameLayout fLayout, Entity.Function device, int index, bool edit, int intView) + { + #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; + if (device.functionType == FunctionType.MotorCurtain || device.functionType == FunctionType.RollingShutter) + { + + brightnessView.btnText.TextID = StringId.percentum; + } + else + { + brightnessView.btnText.TextID = StringId.brightnesLogic; + } + fLayout.AddChidren(brightnessView.FLayoutView()); + #endregion + #region 鐐瑰嚮浜嬩欢 + ///寮�鍏崇偣鍑讳簨浠� + lightSwitchView.btnClick.MouseUpEventHandler += (sender, e) => + { + SwitchViewMethod(device, lightSwitchView.btnState, intView); + }; + ///浜害鐐瑰嚮浜嬩欢 + brightnessView.btnClick.MouseUpEventHandler += (sender, e) => + { + BrightnessMethod(device, brightnessView.btnState, brightnessView.btnText.Text); + }; + if (edit) + { + GetEditState(device, index, lightSwitchView.btnState, brightnessView.btnState, null, null); + } + #endregion + + } + /// <summary> + /// 寮�鍏�=鍔熻兘涓嬩竴绾х晫闈� + /// </summary> + /// <param name="device"></param> + /// <param name="button"></param> + /// <param name="len">鏄剧ず閫夋嫨View鏁伴噺</param> + private void SwitchViewMethod(Entity.Function device, Button button, int len) + { + #region 鐣岄潰 + FrameLayout frame = new FrameLayout + { + BackgroundColor = CSS.CSS_Color.viewTrans60lucence, + }; + this.AddChidren(frame); + LogicView.SwitchView switchView = new LogicView.SwitchView(); + switchView.FLayoutView(frame, len); + #endregion + + #region 鐐瑰嚮浜嬩欢 + Dictionary<string, string> dic = new Dictionary<string, string>(); + LogicMethod.dictionary(dic, "key", "on_off"); + string keyVlaue = "on_off"; + //寮�-鐐瑰嚮浜嬩欢 + switchView.btnOn.MouseUpEventHandler += (sender2, e2) => + { + LogicMethod.dictionary(dic, "value", "on"); + button.TextID = StringId.onLogic; + selectedState = device.functionType + "_on"; + AddDictionaryData(dicSateteList, keyVlaue, dic); + RemView(frame); + }; + //鍏�-鐐瑰嚮浜嬩欢 + switchView.btnOff.MouseUpEventHandler += (sender3, e3) => + { + LogicMethod.dictionary(dic, "value", "off"); + button.TextID = StringId.offLogic; + selectedState = device.functionType + "_off"; + AddDictionaryData(dicSateteList, keyVlaue, dic); + RemView(frame); + + }; + //鏆傚仠-鐐瑰嚮浜嬩欢 + switchView.btnStop.MouseUpEventHandler += (sender3, e3) => + { + LogicMethod.dictionary(dic, "value", "stop"); + button.TextID = StringId.stop; + selectedState = device.functionType + "_stop"; + AddDictionaryData(dicSateteList, keyVlaue, dic); + RemView(frame); + + }; + ///鏄剧ず涔嬪墠鐘舵�� + if (button.Text != "") + { + if (button.Text == switchView.btnOn.Text) + { + switchView.btnOn.TextColor = CSS.CSS_Color.textConfirmColor; + } + else if (button.Text == switchView.btnOff.Text) + { + switchView.btnOff.TextColor = CSS.CSS_Color.textConfirmColor; + } + else if (button.Text == switchView.btnStop.Text) + { + switchView.btnOff.TextColor = CSS.CSS_Color.textConfirmColor; + } + } + #endregion + + + } + /// <summary> + /// 浜害/鐧惧垎姣�=鍔熻兘涓嬩竴绾х晫闈� + /// </summary> + /// <param name="device"></param> + /// <param name="button"></param> + private void BrightnessMethod(Entity.Function device, Button button, string titleName) + { + #region 鐣岄潰 + FrameLayout frame = new FrameLayout + { + BackgroundColor = CSS.CSS_Color.viewTrans60lucence, + }; + this.AddChidren(frame); + LogicView.BrightnessView brightness = new LogicView.BrightnessView(); + brightness.btnTitle.Text = titleName; + brightness.FLayoutView(frame); + #endregion + #region 鐐瑰嚮浜嬩欢 + int brightnesValue = 0; + Dictionary<string, string> dic = new Dictionary<string, string>(); + LogicMethod.dictionary(dic, "key", "brightness"); + string keyVlaue = "brightness"; + //鈥旂偣鍑讳簨浠� + brightness.btn_subtract_click.MouseUpEventHandler += (sender2, e2) => + { + if (brightnesValue > 0) + { + brightnesValue -= 1; + brightness.seekBarVol.Progress = brightnesValue; + } + }; + //+鐐瑰嚮浜嬩欢 + brightness.btn_add_click.MouseUpEventHandler += (sende2, e2) => + { + if (brightnesValue < 100) + { + brightnesValue += 1; + brightness.seekBarVol.Progress = brightnesValue; + + } + }; + //杩涘害鏉℃粦鍔ㄧ偣鍑讳簨浠� + EventHandler<int> progressclick = (sender2, e2) => + { + brightnesValue = brightness.seekBarVol.Progress; + }; + brightness.seekBarVol.OnProgressChangedEvent += progressclick; + brightness.seekBarVol.OnStopTrackingTouchEvent += progressclick; + //纭畾鐐瑰嚮浜嬩欢 + brightness.btnConfirm.MouseUpEventHandler += (sende2, e2) => + { + if (brightnesValue == 0) + { + return; + } + + LogicMethod.dictionary(dic, "value", brightnesValue.ToString()); + selectedState = device.functionType + brightnesValue.ToString(); + AddDictionaryData(dicSateteList, keyVlaue, dic); + button.Text = brightnesValue.ToString(); + RemView(frame); + + }; + //鏄剧ず涔嬪墠鐘舵�� + if (button.Text != "") + { + brightnesValue = int.Parse(button.Text); + brightness.seekBarVol.Progress = brightnesValue; + } + #endregion + } /// <summary> @@ -240,17 +849,22 @@ /// 鏄剧ず缂栬緫涔嬪墠鐨勮澶囩姸鎬� /// </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>>; - + //娓呴櫎涔嬪墠鏃ф暟鎹� + dicSateteList.Clear(); + if (dicList.Count != 0) + { + //鏈夋暟鎹噸鏂拌祴鍊� + dicSateteList = dicList; + } switch (device.functionType) { //寮�鍏崇伅鍏� @@ -270,12 +884,281 @@ } } break; + case FunctionType.Dimmer: + case FunctionType.RGB: + case FunctionType.RGBW: + case FunctionType.ColorTemperature: + { + foreach (var dic in dicList) + { + string value = dic["value"]; + switch (dic["key"]) + { + case "on_off": + { + if (value == "on") + { + button1.Text = Language.StringByID(StringId.onLogic); + } + else + { + button1.Text = Language.StringByID(StringId.offLogic); + } + } + break; + case "brightness": + { + button2.Text = value; + } + break; + } + + } + } + break; + case FunctionType.Curtain: + { + foreach (var dic in dicList) + { + string value = dic["value"]; + switch (value) + { + case "on": + { + button1.Text = Language.StringByID(StringId.onLogic); + } + break; + case "off": + { + button1.Text = Language.StringByID(StringId.offLogic); + } + break; + case "stop": + { + button1.Text = Language.StringByID(StringId.stop); + } + break; + } + } + } + break; + case FunctionType.MotorCurtain: + case FunctionType.RollingShutter: + { + + foreach (var dic in dicList) + { + string value = dic["value"]; + switch (dic["key"]) + { + case "on_off": + { + switch (value) + { + case "on": + { + button1.Text = Language.StringByID(StringId.onLogic); + } + break; + case "off": + { + button1.Text = Language.StringByID(StringId.offLogic); + } + break; + case "stop": + { + button1.Text = Language.StringByID(StringId.stop); + } + break; + } + } + break; + case "brightness": + { + + button2.Text = value; + } + break; + } + + } + } + break; + case FunctionType.AC: + { + foreach (var dic in dicList) + { + string value = dic["value"]; + switch (dic["key"]) + { + case "on_off": + { + switch (value) + { + case "on": + { + button1.Text = Language.StringByID(StringId.onLogic); + } + break; + case "off": + { + button1.Text = Language.StringByID(StringId.offLogic); + } + break; + } + } + break; + case "set_temp": + { + button2.Text = value + "鈩�"; + } + break; + case "mode": + { + switch (value) + { + case "cool": + { + button3.Text = Language.StringByID(StringId.coolLogic); + } + break; + case "heat": + { + button3.Text = Language.StringByID(StringId.heatingLogic); + } + break; + case "auto": + { + button3.Text = Language.StringByID(StringId.autoLogic); + } + break; + case "dry": + { + button3.Text = Language.StringByID(StringId.dehumidifyLogic); + } + break; + } + + + + } + break; + case "fan": + { + switch (value) + { + case "high": + { + button4.Text = Language.StringByID(StringId.HighWindSpeed); + } + break; + case "medium": + { + button4.Text = Language.StringByID(StringId.MiddleWindSpeed); + } + break; + case "low": + { + button4.Text = Language.StringByID(StringId.LowWindSpeed); + } + break; + case "auto": + { + button4.Text = Language.StringByID(StringId.Auto); + } + break; + } + + + } + break; + + + } + + } + + } + break; + case FunctionType.FloorHeating: + { + + foreach (var dic in dicList) + { + string value = dic["value"]; + switch (dic["key"]) + { + case "on_off": + { + switch (value) + { + case "on": + { + button1.Text = Language.StringByID(StringId.onLogic); + } + break; + case "off": + { + button1.Text = Language.StringByID(StringId.offLogic); + } + break; + } + } + break; + case "set_temp": + { + button2.Text = value + "鈩�"; + } + break; + case "mode": + { + switch (value) + { + case "day": + { + button3.Text = Language.StringByID(StringId.dayMode); + } + break; + case "night": + { + button3.Text = Language.StringByID(StringId.nightMode); + } + break; + + case "away": + { + button3.Text = Language.StringByID(StringId.leaveMode); + } + break; + case "normal": + { + button3.Text = Language.StringByID(StringId.ordinaryMode); + } + break; + case "timer": + { + button3.Text = Language.StringByID(StringId.timeMode); + } + break; + } + + + + } + break; + + } + + } + + } + break; } } /// <summary> - /// 娣诲姞閫変腑鏁版嵁 + /// 娣诲姞澶勭悊閫変腑鏁版嵁 /// </summary> /// <param name="dicList">瀛樺偍鏁版嵁鍒楄〃</param> /// <param name="keyValue">璇嗗埆璁惧</param> @@ -309,7 +1192,6 @@ } } - /// <summary> /// 娣诲姞鐩爣 /// </summary> @@ -337,80 +1219,7 @@ } } - /// <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