From e6a26ee148587327478d9a82624a820c907b6e16 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期三, 04 十一月 2020 14:58:15 +0800 Subject: [PATCH] 20201104 --- HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs | 149 +++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 135 insertions(+), 14 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs index b4c5dd0..41a0ab6 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs @@ -1,16 +1,49 @@ 锘縰sing System; +using HDL_ON.DriverLayer; using HDL_ON.Entity; - +using Shared; namespace HDL_ON.UI { public partial class RGBPage { + /// <summary> + /// 鏇存柊鍔熻兘鐘舵�� + /// </summary> + public static void UpdataStates(Light uFunction) + { + Application.RunOnMainThread(() => + { + try + { + if (bodyView == null) + return; + if (uFunction.functionType == bodyView.light.functionType && uFunction.sid == bodyView.light.sid) + { + if (!bodyView.onDimmerBar) + { + bodyView.dimmerBar.Progress = uFunction.brightness; + } + bodyView.dimmerBar.ProgressBarColor = uFunction.trait_on_off.value.ToString() == "on" ? CSS.CSS_Color.AuxiliaryColor1 : CSS.CSS_Color.PromptingColor2; + bodyView.btnSwitch.IsSelected = uFunction.trait_on_off.value.ToString() == "on"; + bodyView.btnCurColor.BackgroundColor = (uint)(0xFF000000 + bodyView.light.redColor * 256 * 256 + bodyView.light.greenColor * 256 + bodyView.light.blueColor); + } + } + catch (Exception ex) + { + MainPage.Log($"{bodyView.GetType().Name } UpdataStates error : {ex.Message}"); + } + }); + } + + void LoadEventList() { LoadColorChangeEvent(); LoadCollectionEvent(); LoadSwitchEvent(); - + LoadEvent_BackCenterColor(); + LoadEvent_DimmerBar(); + LoadEvet_ChangeFadeTime(); //鍥為��鍒锋柊淇℃伅浜嬩欢 actionRefresh = () => { btnFunctionName.Text = btnFunctionName_Out.Text = light.name; @@ -25,15 +58,22 @@ { DateTime colorChangeTime = DateTime.MinValue; colorPicker.ColorChaged += (sender2, e2) => { - if ((DateTime.Now - colorChangeTime).TotalMilliseconds > 50) + if ((DateTime.Now - colorChangeTime).TotalMilliseconds > 200) { - //lightLigicBytes[6] = e2[0]; - //lightLigicBytes[7] = e2[1]; - //lightLigicBytes[8] = e2[2]; - //Control.ControlBytesSend(Command.SetLogicLoopColor, lightRGB.SubnetID, lightRGB.DeviceID, lightLigicBytes, SendCount.Zero); + light.redColor = e2[0]; + light.greenColor = e2[1]; + light.blueColor = e2[2]; colorChangeTime = DateTime.Now; - btnCurColor.BackgroundColor = (uint)(0xFF000000 + e2[0] * 256 * 256 + e2[1] * 256 + e2[2]); + btnCurColor.BackgroundColor = (uint)(0xFF000000 + light.redColor * 256 * 256 + light.greenColor * 256 + light.blueColor); + //Control.Send(CommandType_A.write, this.light); + System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); + d.Add("color", (light.redColor * 256 * 256 + light.greenColor * 256 + light.blueColor).ToString()); + Control.ins.SendWriteCommand(light, d); } + }; + colorPicker.MouseUpEventHandler = (sender, e) => + { + var ss = btnCurColor.BackgroundColor; }; } @@ -46,10 +86,77 @@ { btnCollection.MouseUpEventHandler += (sender, e) => { btnCollection.IsSelected = light.collection = btnCollection_Out.IsSelected = !btnCollection.IsSelected; - DB_ResidenceData.residenceData.SaveResidenceData(); + light.SaveFunctionData(); }; } + /// <summary> + /// 鐏厜璋冨厜浜嬩欢 + /// </summary> + void LoadEvent_DimmerBar() + { + dimmerBar.OnStartTrackingTouchEvent = (sender, e)=>{ + onDimmerBar = true; + }; + dimmerBar.OnStopTrackingTouchEvent = (sender, e) => { + onDimmerBar = false; + light.brightness = dimmerBar.Progress; + System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); + d.Add("brightness", light.brightness.ToString()); + Control.ins.SendWriteCommand(light, d); + light.fadeTime = barFadeTime.Progress; + //Control.Send(CommandType_A.write, light); + }; + dimmerBar.OnProgressChangedEvent = (sender, e) => { + light.fadeTime = 0; + if (!btnSwitch.IsSelected) + { + dimmerBar.ProgressBarColor = CSS.CSS_Color.AuxiliaryColor1; + } + btnSwitch.IsSelected = e > 0 ? true : false; + light.brightness = e; + light.trait_on_off.value = e > 0 ? "on" : "off"; + + if (e == 0 || e == 100) + { + //Control.Send(CommandType_A.write, this.light); + System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); + d.Add("brightness", light.brightness.ToString()); + Control.ins.SendWriteCommand(light, d); + } + else + { + if (200 < (DateTime.Now - light.refreshTime).TotalMilliseconds) + { + light.refreshTime = DateTime.Now; + new System.Threading.Thread(() => + { + //Control.Send(CommandType_A.write, light); + System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); + d.Add("brightness", light.brightness.ToString()); + Control.ins.SendWriteCommand(light, d); + }) + { IsBackground = true }.Start(); + } + else + { + MainPage.Log("skip dimmer control!!"); + } + } + }; + } + + /// <summary> + /// 淇敼鐏厜娓愬彉鏃堕棿 + /// </summary> + void LoadEvet_ChangeFadeTime() + { + barFadeTime.OnProgressChangedEvent = (sender, e) => + { + light.fadeTime = e; + light.SaveFunctionData(); + }; + } /// <summary> /// 鍔犺浇寮�鍏充簨浠� /// </summary> @@ -58,16 +165,30 @@ btnSwitch.MouseUpEventHandler += (sender, e) => { btnSwitch.IsSelected = !btnSwitch.IsSelected; - + dimmerBar.ProgressBarColor = btnSwitch.IsSelected ? CSS.CSS_Color.AuxiliaryColor1 : CSS.CSS_Color.PromptingColor2; new System.Threading.Thread(() => { - var light = this.light as Light; - light.state = btnSwitch.IsSelected ? 1 : 0; - Control.Send("write", this.light, 3); + light.trait_on_off.value = btnSwitch.IsSelected ? "on" : "off"; + System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); + d.Add("on_off", light.trait_on_off.value.ToString()); + Control.ins.SendWriteCommand(light, d); }) { IsBackground = true }.Start(); }; - + } + /// <summary> + /// 鎭㈠榛樿棰滆壊 + /// </summary> + void LoadEvent_BackCenterColor() + { + btnRestoredPoint.MouseUpEventHandler = (sender, e) => + { + light.color = 0xFFFFFF; + btnCurColor.BackgroundColor = 0xFFFFFFFF; + System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); + d.Add("color", "FFFFFF"); + Control.ins.SendWriteCommand(light, d); + }; } } -- Gitblit v1.8.0