From b69d7735274b8d0f741da8a6bb8b8e1347477a5a Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期四, 19 三月 2020 17:14:16 +0800 Subject: [PATCH] 20200319 --- HDL_ON/UI/UI2/FuntionControlView/Light/DimmerPageBLL.cs | 75 ++++++++++++++++++++++++++++++++++--- 1 files changed, 68 insertions(+), 7 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/DimmerPageBLL.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/DimmerPageBLL.cs index d03631c..da9b79a 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/Light/DimmerPageBLL.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/Light/DimmerPageBLL.cs @@ -1,22 +1,46 @@ 锘縰sing System; using HDL_ON.Entity; - +using Shared; namespace HDL_ON.UI { public partial class DimmerPage { + /// <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) + { + bodyView.dimmerBar.Progress = uFunction.brightness; + bodyView.dimmerBar.WaveColor = uFunction.on_off == 1 ? CSS.CSS_Color.AuxiliaryColor1 : CSS.CSS_Color.PromptingColor2; + bodyView.btnSwitch.IsSelected = uFunction.on_off == 1; + } + } + catch (Exception ex) + { + MainPage.Log($"{bodyView.GetType().Name } UpdataStates error : {ex.Message}"); + } + }); + } + void LoadEventList() { - LoadSwitchEvent(); LoadCollectionEvent(); + LoadEvent_DimmerBar(); //鍥為��鍒锋柊淇℃伅浜嬩欢 actionRefresh = () => { btnFunctionName.Text = btnFunctionName_Out.Text = light.name; btnFromFloor_Out.Text = btnFromFoorAndRoom.Text = light.GetRoomListName(); }; } - /// <summary> /// 鏀惰棌鍔熻兘鎸夐挳浜嬩欢 @@ -30,6 +54,44 @@ } /// <summary> + /// 鐏厜璋冨厜浜嬩欢 + /// </summary> + void LoadEvent_DimmerBar() + { + DateTime dimmerTime = DateTime.MinValue; + dimmerBar.OnProgressChangedEvent = (sender, e) => { + if (!btnSwitch.IsSelected) + { + dimmerBar.WaveColor = CSS.CSS_Color.AuxiliaryColor1; + } + btnSwitch.IsSelected = e > 0 ? true : false; + light.brightness = e; + light.on_off = e > 0 ? 1 : 0; + + if (e == 0 || e == 100) + { + Control.Send("write", this.light); + } + else + { + if (dimmerTime.AddMilliseconds(500) < DateTime.Now) + { + dimmerTime = DateTime.Now; + new System.Threading.Thread(() => + { + Control.Send("write", light); + }) + { IsBackground = true }.Start(); + } + else + { + MainPage.Log("skip control!!"); + } + } + }; + } + + /// <summary> /// 鍔犺浇寮�鍏充簨浠� /// </summary> void LoadSwitchEvent() @@ -37,12 +99,11 @@ btnSwitch.MouseUpEventHandler += (sender, e) => { btnSwitch.IsSelected = !btnSwitch.IsSelected; - + dimmerBar.WaveColor = 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.on_off = btnSwitch.IsSelected ? 1 : 0; + Control.Send("write", this.light); }) { IsBackground = true }.Start(); }; -- Gitblit v1.8.0