From bbd6b592a6b883e013ff1e0a574976ceba5009ea Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期四, 27 十月 2022 09:11:33 +0800 Subject: [PATCH] Merge branch 'dev--wxr' --- HDL_ON/UI/UI2/FuntionControlView/Acst/AcstSubPage.cs | 330 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 330 insertions(+), 0 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/Acst/AcstSubPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Acst/AcstSubPage.cs new file mode 100644 index 0000000..c0490ed --- /dev/null +++ b/HDL_ON/UI/UI2/FuntionControlView/Acst/AcstSubPage.cs @@ -0,0 +1,330 @@ +锘縰sing System; +using System.Collections.Generic; +using HDL_ON.DriverLayer; +using HDL_ON.Entity; +using HDL_ON.UI.CSS; +using Shared; + +namespace HDL_ON.UI +{ + public class AcstSubPage : FrameLayout + { + static AcstSubPage bodyView; + + Button btnTempValues; + Button btnHumiValues; + + Button btnSetTempValues; + DiyImageSeekBar tempBar; + Button btnPowerControl; + + Function function; + + uint curColor; + + string imageFolder = "blue"; + + public static void UpdateStatus(Function temp) + { + if(bodyView == null) + { + return; + } + Application.RunOnMainThread(() => { + bodyView.btnTempValues.Text = temp.GetAttrState(AcstSub_AttrEnum.room_temp.ToString()); + bodyView.btnHumiValues.Text = temp.GetAttrState(AcstSub_AttrEnum.room_humidity.ToString()); + + + int setTempValue = 0; + double dd = 0; + double.TryParse(temp.GetAttrState(AcstSub_AttrEnum.set_temp.ToString(), "--"), out dd); + setTempValue = Convert.ToInt32(dd); + if (setTempValue != 0) + bodyView.btnSetTempValues.Text = setTempValue.ToString(); + + bodyView.btnSetTempValues.Width = bodyView.btnSetTempValues.GetTextWidth() + Application.GetRealWidth(10); + + //int progress = 0; + //int.TryParse(temp.GetAttrState(AcstSub_AttrEnum.set_temp.ToString()), out progress); + bodyView.tempBar.Progress = setTempValue - 16; + if(temp.trait_on_off.curValue.ToString() == "on") + { + bodyView.btnPowerControl.IsSelected = true; + bodyView.tempBar.ProgressBarColor = bodyView.curColor; + bodyView.tempBar.IsOffline = false; + + } + else + { + bodyView.btnPowerControl.IsSelected = false; + bodyView.tempBar.ProgressBarColor = CSS_Color.DividingLineColor; + bodyView.tempBar.IsOffline = true; + } + }); + + } + + public AcstSubPage(Function temp, string path) + { + function = temp; + imageFolder = path; + switch (imageFolder) + { + case "blue": + curColor = CSS.CSS_Color.MainColor; + break; + case "orange": + curColor = 0xFFFFB848; + break; + case "purple": + curColor = 0xFF9175F3; + break; + } + bodyView = this; + } + + public void LoadPage(Action action) + { + new TopViewDiv(bodyView, function.name).LoadTopView_FunctionTop(function,action); + + var contentView = new FrameLayout() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealHeight(79), + Width = Application.GetRealWidth(343), + Height = Application.GetRealHeight(570), + BackgroundColor = CSS.CSS_Color.MainBackgroundColor, + Radius = (uint)Application.GetRealWidth(6), + }; + bodyView.AddChidren(contentView); + + + #region 娓╂箍搴︽暟鎹� + var tempHumiView = new FrameLayout() + { + Y = Application.GetRealWidth(58), + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(303), + Height = Application.GetRealWidth(175), + BackgroundImagePath = $"FunctionIcon/Acst/{imageFolder}/TempAndHumiBack.png" + }; + contentView.AddChidren(tempHumiView); + + var tempValuesView = new FrameLayout() + { + X = Application.GetRealWidth(21), + Y = Application.GetRealWidth(17), + Width = Application.GetRealWidth(130), + Height = Application.GetRealWidth(132), + }; + tempHumiView.AddChidren(tempValuesView); + btnTempValues = new Button() + { + Y = Application.GetRealWidth(45), + Height = Application.GetRealWidth(35), + IsBold = true, + TextSize = 30, + TextColor = CSS.CSS_Color.FirstLevelTitleColor, + TextAlignment = TextAlignment.TopRight, + Text = "---", + }; + btnTempValues.Text = function.GetAttrState(AcstSub_AttrEnum.room_temp.ToString()); + btnTempValues.Width = btnTempValues.GetTextWidth(); + btnTempValues.Gravity = Gravity.CenterHorizontal; + tempValuesView.AddChidren(btnTempValues); + var btnTempValuesUint = new Button() + { + X = btnTempValues.Right, + Y = Application.GetRealWidth(48), + TextAlignment = TextAlignment.TopLeft, + Width = Application.GetRealWidth(30), + Height = Application.GetRealWidth(30), + TextSize = 10, + TextColor = CSS.CSS_Color.FirstLevelTitleColor, + Text = "掳C" + }; + tempValuesView.AddChidren(btnTempValuesUint); + + + + var humiValuesView = new FrameLayout() + { + X = Application.GetRealWidth(130+21), + Y = Application.GetRealWidth(17), + Width = Application.GetRealWidth(130), + Height = Application.GetRealWidth(132), + }; + tempHumiView.AddChidren(humiValuesView); + btnHumiValues = new Button() + { + Y = Application.GetRealWidth(45), + Height = Application.GetRealWidth(35), + IsBold = true, + TextSize = 30, + TextColor = CSS.CSS_Color.FirstLevelTitleColor, + Text = "---", + TextAlignment = TextAlignment.TopRight, + }; + btnHumiValues.Text = function.GetAttrState(AcstSub_AttrEnum.room_humidity.ToString()); + btnHumiValues.Width = btnTempValues.GetTextWidth(); + btnHumiValues.Gravity = Gravity.CenterHorizontal; + humiValuesView.AddChidren(btnHumiValues); + var btnHumiValuesUint = new Button() + { + X = btnTempValues.Right, + Y = Application.GetRealWidth(48), + TextAlignment = TextAlignment.TopLeft, + Width = Application.GetRealWidth(30), + Height = Application.GetRealWidth(30), + TextSize = 10, + TextColor = CSS.CSS_Color.FirstLevelTitleColor, + Text = "%" + }; + humiValuesView.AddChidren(btnHumiValuesUint); + + + EventHandler<MouseEventArgs> eventHandler = (sender, e) => { + var page = new AcstSubHistoryPage(function); + MainPage.BasePageView.AddChidren(page); + page.LoadPage(); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + }; + var btnClick = new Button(); + tempHumiView.AddChidren(btnClick); + btnClick.MouseUpEventHandler = eventHandler; + + #endregion + + + btnSetTempValues = new Button() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealHeight(260), + Width = Application.GetRealWidth(77), + Height = Application.GetRealHeight(90), + TextAlignment = TextAlignment.TopRight, + TextColor = CSS.CSS_Color.FirstLevelTitleColor, + IsBold = true, + TextSize = 60, + Text = function.GetAttrState(AcstSub_AttrEnum.set_temp.ToString(), "--") + }; + contentView.AddChidren(btnSetTempValues); + int setTempValue = 0; + double dd = 0; + double.TryParse(function.GetAttrState(AcstSub_AttrEnum.set_temp.ToString(), "--"), out dd); + setTempValue = Convert.ToInt32(dd); + if (setTempValue != 0) + btnSetTempValues.Text = setTempValue.ToString(); + //bodyView.btnSetTempValues.Width = bodyView.btnSetTempValues.GetTextWidth() + Application.GetRealWidth(10); + + + + var btnSetTempUnit = new Button() + { + X = btnSetTempValues.Right + Application.GetRealWidth(3), + Y = Application.GetRealHeight(267), + Width = Application.GetRealWidth(30), + Height = Application.GetRealHeight(50), + TextSize = 23, + TextColor = CSS.CSS_Color.FirstLevelTitleColor, + Text = "掳C", + TextAlignment = TextAlignment.TopLeft, + }; + contentView.AddChidren(btnSetTempUnit); + + + + var btnMinValuesText = new Button() + { + X = Application.GetRealWidth(35), + Y = Application.GetRealHeight(388), + Width = Application.GetRealWidth(30), + Height = Application.GetRealHeight(52), + Text = "16", + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.PromptingColor1, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + }; + contentView.AddChidren(btnMinValuesText); + + + int progress = 0; + int.TryParse(function.GetAttrState(FunctionAttributeKey.SetTemp),out progress); + + tempBar = new DiyImageSeekBar() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealHeight(378), + Width = Application.GetRealWidth(238), + Height = Application.GetRealHeight(72), + SeekBarViewHeight = Application.GetRealHeight(14), + ThumbImagePath = "FunctionIcon/Acst/ThumbImage.png", + ThumbImageHeight = Application.GetRealHeight(51), + ProgressBarColor = function.trait_on_off.curValue.ToString() == "on" ? curColor : CSS_Color.DividingLineColor, + MaxValue = 14, + Progress = progress + 16, + SeekBarPadding = Application.GetRealWidth(20), + IsProgressTextShow = false, + ProgressChangeDelayTime = 0, + //Enable = function.trait_on_off.curValue.ToString() == "off", + //IsOffline = function.trait_on_off.curValue.ToString() == "off", + }; + contentView.AddChidren(tempBar); + tempBar.OnProgressChangedEvent = (sender, e) => { + btnSetTempValues.Text = (e + 16).ToString(); + }; + tempBar.OnStopTrackingTouchEvent = (sender, e) => { + new System.Threading.Thread(() => { + var d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.SetTemp, (e+16).ToString()); + Control.Ins.SendWriteCommand(function, d); + }) + { IsBackground = true }.Start(); + + }; + + var btnMaxValuesText = new Button() + { + X = tempBar.Right + Application.GetRealWidth(10), + Y = btnMinValuesText.Y, + Width = Application.GetRealWidth(45), + Height = Application.GetRealHeight(52), + Text = "30", + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.PromptingColor1, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + }; + contentView.AddChidren(btnMaxValuesText); + + + + + + btnPowerControl = new Button() + { + Y = Application.GetRealHeight(496), + Gravity = Gravity.CenterHorizontal, + Width = Application.GetRealWidth(46), + Height = Application.GetRealWidth(46), + UnSelectedImagePath = "FunctionIcon/Acst/grey/PowerOffIcon.png", + SelectedImagePath = $"FunctionIcon/Acst/{imageFolder}/PowerIcon.png", + TextAlignment = TextAlignment.Center, + IsSelected = function.trait_on_off.curValue.ToString() == "on" + }; + contentView.AddChidren(btnPowerControl); + btnPowerControl.MouseUpEventHandler = (sender, e) => { + btnPowerControl.IsSelected = !btnPowerControl.IsSelected; + + new System.Threading.Thread(() => { + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.OnOff, btnPowerControl.IsSelected ? "on" : "off"); + Control.Ins.SendWriteCommand(function, d); + }) + { IsBackground = true }.Start(); + }; + + Control.Ins.SendReadCommand(function); + + } + } +} -- Gitblit v1.8.0