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/FuntionControlView/Light/RGBPageBLL.cs | 251 ++++++++++++++++++++++++++++--------------------- 1 files changed, 142 insertions(+), 109 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs index 023c828..776e6d0 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs @@ -6,65 +6,96 @@ { public partial class RGBPage { + + public override void RemoveFromParent() + { + bodyView = null; + base.RemoveFromParent(); + } /// <summary> /// 鏇存柊鍔熻兘鐘舵�� /// </summary> public static void UpdataStates(Function updateTemp) { - Application.RunOnMainThread((() => + if(bodyView == null) { - try - { - if (bodyView == null) - return; - if (updateTemp.spk == bodyView.function.spk && updateTemp.sid == bodyView.function.sid) - { + return; + } - if (updateTemp.trait_on_off.curValue.ToString() == "on") + Application.RunOnMainThread((() => { - //瑙e喅閮ㄥ垎瀹夊崜鎵嬫満锛屽埛鏂板浘鐗囨椂浼氬彉灏忛棶棰� - if (bodyView.colorPicker.ColorImagePath != "FunctionIcon/Light/ColorWheel.png") + try { - bodyView.colorPicker.ColorImagePath = "FunctionIcon/Light/ColorWheel.png"; + if (bodyView == null) + return; + if (updateTemp.spk == bodyView.function.spk && updateTemp.sid == bodyView.function.sid) + { + + if (updateTemp.trait_on_off.curValue.ToString() == "on") + { + //瑙e喅閮ㄥ垎瀹夊崜鎵嬫満锛屽埛鏂板浘鐗囨椂浼氬彉灏忛棶棰� + if (bodyView.colorPicker.ColorImagePath != "FunctionIcon/Light/ColorWheel.png") + { + bodyView.colorPicker.ColorImagePath = "FunctionIcon/Light/ColorWheel.png"; + } + bodyView.dimmerBar.ProgressBarColor = CSS.CSS_Color.AuxiliaryColor1; + bodyView.btnSwitch.IsSelected = true; + if (!bodyView.onDimmerBar) + { + bodyView.dimmerBar.Progress = Convert.ToInt32(updateTemp.GetAttrState(FunctionAttributeKey.Brightness)); + } + } + //鐘舵�佷竴鏍锋椂,涓嶅啀鍒锋柊瑙嗗浘 + else if (updateTemp.trait_on_off.curValue.ToString() == "off" && bodyView.btnSwitch.IsSelected == true) + { + //瑙e喅閮ㄥ垎瀹夊崜鎵嬫満锛屽埛鏂板浘鐗囨椂浼氬彉灏忛棶棰� + if (bodyView.colorPicker.ColorImagePath != "FunctionIcon/Light/ColorWheelGray.png") + { + bodyView.colorPicker.ColorImagePath = "FunctionIcon/Light/ColorWheelGray.png"; + } + //bodyView.colorPicker.ColorImagePath = "FunctionIcon/Light/ColorWheelGray.png"; + bodyView.dimmerBar.ProgressBarColor = CSS.CSS_Color.PromptingColor2; + bodyView.btnSwitch.IsSelected = false; + //鑹茬洏鐨勫渾鐐归殣钘� + bodyView.btnWhiteRound.Visible = false; + } + bodyView.btnCurColor.BackgroundColor = (uint)(0xFF000000 + bodyView.lightTemp.GetRGBcolor(updateTemp.GetAttrState(FunctionAttributeKey.RGB))); + bodyView.lastColor = bodyView.lightTemp.GetRGBbytes(updateTemp); + if (bodyView.lightTemp.GetRGBcolor(updateTemp.GetAttrState(FunctionAttributeKey.RGB)) == 16777215 && bodyView.btnCurColor.BorderColor != 0x00000000) + { + bodyView.btnCurColor.BorderColor = CSS.CSS_Color.PromptingColor2; + } + else + { + bodyView.btnCurColor.BorderColor = 0x00000000; + } + try + { + var colorfulState = updateTemp.GetAttribute(FunctionAttributeKey.Colorful); + if (colorfulState != null) + { + if (bodyView.btnColorfulSwitch != null) + { + bodyView.btnColorfulSwitch.IsSelected = colorfulState.curValue.ToString() == "on"; + } + } + } + catch (Exception ex) + { + MainPage.Log($"鏇存柊RGB 鐐僵寮�鍏崇姸鎬佸紓甯�:{ex.Message}"); + } + } } - bodyView.dimmerBar.ProgressBarColor = CSS.CSS_Color.AuxiliaryColor1; - bodyView.btnSwitch.IsSelected = true; - if (!bodyView.onDimmerBar) + catch (Exception ex) { - bodyView.dimmerBar.Progress = Convert.ToInt32(updateTemp.GetAttrState(FunctionAttributeKey.Brightness)); + MainPage.Log($"{bodyView.GetType().Name} UpdataStates error : {ex.Message}"); } - } - //鐘舵�佷竴鏍锋椂,涓嶅啀鍒锋柊瑙嗗浘 - else if (updateTemp.trait_on_off.curValue.ToString() == "off" && bodyView.btnSwitch.IsSelected == true) - { - //瑙e喅閮ㄥ垎瀹夊崜鎵嬫満锛屽埛鏂板浘鐗囨椂浼氬彉灏忛棶棰� - if (bodyView.colorPicker.ColorImagePath != "FunctionIcon/Light/ColorWheelGray.png") + finally { - bodyView.colorPicker.ColorImagePath = "FunctionIcon/Light/ColorWheelGray.png"; } - //bodyView.colorPicker.ColorImagePath = "FunctionIcon/Light/ColorWheelGray.png"; - bodyView.dimmerBar.ProgressBarColor = CSS.CSS_Color.PromptingColor2; - bodyView.btnSwitch.IsSelected = false; - //鑹茬洏鐨勫渾鐐归殣钘� - bodyView.btnWhiteRound.Visible = false; - } - bodyView.btnCurColor.BackgroundColor = (uint)(0xFF000000 + bodyView.lightTemp.GetRGBcolor(updateTemp.GetAttrState(FunctionAttributeKey.RGB))); - bodyView.lastColor = bodyView.lightTemp.GetRGBbytes(updateTemp); - if (bodyView.lightTemp.GetRGBcolor(updateTemp.GetAttrState(FunctionAttributeKey.RGB)) == 16777215 && bodyView.btnCurColor.BorderColor != 0x00000000) - { - bodyView.btnCurColor.BorderColor = CSS.CSS_Color.PromptingColor2; - } - else - { - bodyView.btnCurColor.BorderColor = 0x00000000; - } - } - } - catch (Exception ex) - { - MainPage.Log($"{bodyView.GetType().Name } UpdataStates error : {ex.Message}"); - } - })); + })); + + } @@ -88,23 +119,23 @@ /// </summary> void LoadColorChangeEvent() { - //if (!function.online) - //{ - // new Tip() - // { - // CloseTime = 1, - // Text = Language.StringByID(StringId.DeviceOfflineCannotOption), - // Direction = AMPopTipDirection.None, - // }.Show(MainPage.BaseView); - // return; - //} + if (!function.isOnline()) + { + new Tip() + { + CloseTime = 1, + Text = Language.StringByID(StringId.DeviceOfflineCannotOption), + Direction = AMPopTipDirection.None, + }.Show(MainPage.BaseView); + return; + } DateTime colorChangeTime = DateTime.MinValue; //bool send = false; //褰撳墠鐐瑰嚮鐨勩�愮偣銆戞槸鍚︽纭� bool pointIsRight = false; //鍦嗙殑鍗婂緞(鑰冭檻杈圭晫,闇�瑕佽缃畠鐨勫崐寰勬瘮杈冨皬涓�鐐�) - int circleR = colorPicker.Width / 2 - Application.GetRealWidth(12); + int circleR = colorPicker.Width / 2 - Application.GetRealWidth(2); colorPicker.ColorChaged += (sender2, e2) => { if (function.trait_on_off.curValue.ToString() == "off" || pointIsRight == false) @@ -148,24 +179,7 @@ { //褰撻紶鏍囩偣涓嬩簨浠跺鐞� colorPicker.MouseDownEventHandler(sender, e); - //if (function.trait_on_off.curValue.ToString() == "off") - //{ - // return; - //} - //pointIsRight = this.CheckPoint(circleR, colorPicker.Width / 2, colorPicker.Height / 2, (int)e.X, (int)e.Y); - //if (pointIsRight == false) - //{ - // //鐐圭殑鍖哄煙涓嶆槸鍦嗙洏鍐� - // return; - //} - ////鏄剧ず鐧界偣 - //btnWhiteRound.X = (int)e.X - btnWhiteRound.Width / 2; - //btnWhiteRound.Y = (int)e.Y - btnWhiteRound.Height / 2; - //if (btnWhiteRound.Visible == false) - //{ - // btnWhiteRound.Visible = true; - //} - //btnCurColor.BackgroundColor = (uint)(0xFF000000 + lightTemp.GetRGBcolor(function)); + }; var colorChangeEvent = new System.Threading.Thread(() => { @@ -216,24 +230,36 @@ dimmerBar.OnStopTrackingTouchEvent = (sender, e) => { - //if (!function.online) - //{ - // new Tip() - // { - // CloseTime = 1, - // Text = Language.StringByID(StringId.DeviceOfflineCannotOption), - // Direction = AMPopTipDirection.None, - // }.Show(MainPage.BaseView); - // return; - //} - curDimmerStatus = false; + if (!function.isOnline()) + { + new Tip() + { + CloseTime = 1, + Text = Language.StringByID(StringId.DeviceOfflineCannotOption), + Direction = AMPopTipDirection.None, + }.Show(MainPage.BaseView); + return; + } + if(dimmerBar.Progress==0|| dimmerBar.Progress == 100) + { + if (dimmerBar.Progress == 0) + { + //瑙e喅閮ㄥ垎瀹夊崜鎵嬫満锛屽埛鏂板浘鐗囨椂浼氬彉灏忛棶棰� + if (bodyView.colorPicker.ColorImagePath != "FunctionIcon/Light/ColorWheelGray.png") + { + bodyView.colorPicker.ColorImagePath = "FunctionIcon/Light/ColorWheelGray.png"; + } + } + return; + } + onDimmerBar = curDimmerStatus = false; function.SetAttrState(FunctionAttributeKey.Brightness, dimmerBar.Progress); System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); d.Add(FunctionAttributeKey.Brightness, dimmerBar.Progress.ToString()); Control.Ins.SendWriteCommand(function, d); }; - //if (function.online) + if (function.isOnline()) { dimmerBar.OnStartTrackingTouchEvent = (sender, e) => { @@ -254,25 +280,25 @@ d.Add(FunctionAttributeKey.Brightness, e.ToString()); Control.Ins.SendWriteCommand(function, d); } - else - { - if (350 < (DateTime.Now - function.refreshTime).TotalMilliseconds) - { - function.refreshTime = DateTime.Now; - new System.Threading.Thread(() => - { - //Control.Send(CommandType_A.write, function); - System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); - d.Add(FunctionAttributeKey.Brightness, e.ToString()); - Control.Ins.SendWriteCommand(function, d); - }) - { IsBackground = true }.Start(); - } - else - { - MainPage.Log("skip dimmer control!!"); - } - } + //else + //{ + // if (350 < (DateTime.Now - function.refreshTime).TotalMilliseconds) + // { + // function.refreshTime = DateTime.Now; + // new System.Threading.Thread(() => + // { + // //Control.Send(CommandType_A.write, function); + // System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); + // d.Add(FunctionAttributeKey.Brightness, e.ToString()); + // Control.Ins.SendWriteCommand(function, d); + // }) + // { IsBackground = true }.Start(); + // } + // else + // { + // MainPage.Log("skip dimmer control!!"); + // } + //} }; } } @@ -286,6 +312,9 @@ barFadeTime.OnStopTrackingTouchEvent = (sender, e) => { function.SetAttrState(FunctionAttributeKey.FadeTime, e.ToString()); + var d = new System.Collections.Generic.Dictionary<string, string>(); + d.Add(FunctionAttributeKey.FadeTime, e.ToString()); + //Control.Ins.SendWriteCommand(function, d); function.SaveFunctionFile(); }; } @@ -305,6 +334,10 @@ function.trait_on_off.curValue = btnSwitch.IsSelected ? "on" : "off"; System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); d.Add(FunctionAttributeKey.OnOff, function.trait_on_off.curValue.ToString()); + if (function.GetAttribute(FunctionAttributeKey.FadeTime) != null) + { + d.Add(FunctionAttributeKey.FadeTime, barFadeTime.Progress.ToString()); + } if (btnSwitch.IsSelected) { if(function.lastBrightness == 0) @@ -330,10 +363,10 @@ { btnRestoredPoint.MouseUpEventHandler = (sender, e) => { - //if (!function.online) - //{ - // return; - //} + if (!function.isOnline()) + { + return; + } if(function.trait_on_off.curValue.ToString() == "off") { return; -- Gitblit v1.8.0