From 43b0d5870d528f23ecd6aeceb6cfd4325188b46f Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期四, 01 七月 2021 15:50:43 +0800 Subject: [PATCH] Revert "1" --- HDL_ON/UI/UI2/FuntionControlView/Curtain/RollingShutterPageBLL.cs | 255 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 238 insertions(+), 17 deletions(-) diff --git a/HDL_ON/UI/UI2/FuntionControlView/Curtain/RollingShutterPageBLL.cs b/HDL_ON/UI/UI2/FuntionControlView/Curtain/RollingShutterPageBLL.cs index c8f1c0f..511c748 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/Curtain/RollingShutterPageBLL.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/Curtain/RollingShutterPageBLL.cs @@ -1,10 +1,103 @@ 锘縰sing System; using HDL_ON.Entity; +using Shared; namespace HDL_ON.UI { public partial class RollingShutterPage { + /// <summary> + /// 鏇存柊绐楀笜 + /// </summary> + /// <param name="updateTemp"></param> + public static void UpdataState(Function updateTemp) + { + Application.RunOnMainThread(() => { + if (bodyView == null) + return; + if (bodyView.onControl) + return; + if (updateTemp.spk == bodyView.function.spk && updateTemp.sid == bodyView.function.sid) + { + var percentString = updateTemp.GetAttrState(FunctionAttributeKey.Percent); + int percent = 0; + int.TryParse(percentString, out percent); + bodyView.btnCurtainOpen.IsSelected = percent > 0; + bodyView.btnCurtainClose.IsSelected = percent == 0; + try + { + if (!bodyView.onCurtainAnimation) + { + bodyView.CurtainAnimation(Convert.ToInt32(updateTemp.GetAttrState(FunctionAttributeKey.Percent))); + } + } + catch { } + } + }); + } + + /// <summary> + /// 姝e湪鎵ц绐楀笜鍔ㄧ敾 + /// </summary> + bool onCurtainAnimation = false; + /// <summary> + /// 绐楀笜鍔ㄧ敾 + /// </summary> + /// <param name="progress"></param> + void CurtainAnimation(int progress) + { + onCurtainAnimation = true; + //杩愯鏂瑰悜 鎵撳紑锛堝姞杩涘害锛夛細鍏抽棴锛堝噺杩涘害锛� + bool runningDirection = progress > curtainSeekBar.Progress; + int curBarProgress = curtainSeekBar.Progress; + new System.Threading.Thread(() => + { + try + { + while (progress != curBarProgress && onCurtainAnimation) + { + Application.RunOnMainThread(() => + { + if (runningDirection) + { + if (curtainSeekBar.Progress + 10 > progress) + { + curtainSeekBar.Progress = progress; + } + else + { + curtainSeekBar.Progress = curtainSeekBar.Progress + 10; + } + } + else + { + if (curtainSeekBar.Progress - 10 < progress) + { + curtainSeekBar.Progress = progress; + } + else + { + curtainSeekBar.Progress = curtainSeekBar.Progress - 10; + } + } + curBarProgress = curtainSeekBar.Progress; + }); + System.Threading.Thread.Sleep(100); + } + } + catch { } + finally + { + new System.Threading.Thread(() => { + System.Threading.Thread.Sleep(3000); + onCurtainAnimation = false; + }) + { IsBackground = true, Priority = System.Threading.ThreadPriority.Lowest }.Start(); + } + }).Start(); + } + + /// <summary> /// 鍔犺浇浜嬩欢鍒楄〃 /// </summary> @@ -14,9 +107,11 @@ LoadCollectionEvent(); //鍥為��鍒锋柊淇℃伅浜嬩欢 - actionRefresh = () => { + actionRefresh = () => + { btnFunctionName.Text = btnFunctionName_Out.Text = function.name; btnFromFloor_Out.Text = btnFromFoorAndRoom.Text = function.GetRoomListName(); + //function.SaveFunctionData(true); }; } /// <summary> @@ -24,36 +119,162 @@ /// </summary> void LoadCollectionEvent() { - btnCollection.MouseUpEventHandler += (sender, e) => { - btnCollection.IsSelected = function.collection = btnCollection_Out.IsSelected = !btnCollection.IsSelected; - DB_ResidenceData.residenceData.SaveResidenceData(); + btnCollection.MouseUpEventHandler += (sender, e) => + { + btnCollection.IsSelected = function.collect = btnCollection_Out.IsSelected = !btnCollection.IsSelected; + function.CollectFunction(); }; } /// <summary> - /// 鍔犺浇绐楀笜寮�鍏冲仠鎸夐挳鎺у埗浜嬩欢 + /// 鍔犺浇绐楀笜鎺у埗浜嬩欢 /// </summary> void LoadEvent_ControlEvent() { - btnCurtainClose.MouseDownEventHandler += (sender, e) => { - btnCurtainClose.IsSelected = true; - }; - btnCurtainClose.MouseUpEventHandler += (sender, e) => { - btnCurtainClose.IsSelected = false; + btnCurtainClose.MouseUpEventHandler = (sender, e) => + { + //new System.Threading.Thread(() => { + // System.Threading.Thread.Sleep(2000); + // Application.RunOnMainThread(() => { + // btnCurtainClose.IsSelected = false; + // }); + //}) + //{ IsBackground = true }.Start(); + function.trait_on_off.curValue = "off"; + function.SetAttrState(FunctionAttributeKey.Percent, 0); + System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); + d.Add(FunctionAttributeKey.OnOff, function.trait_on_off.curValue.ToString()); + DriverLayer.Control.Ins.SendWriteCommand(function, d); + CurtainAnimation(0); }; - btnCurtainStop.MouseDownEventHandler += (sender, e) => { + btnCurtainStop.MouseUpEventHandler = (sender, e) => + { + new System.Threading.Thread(() => { + System.Threading.Thread.Sleep(2000); + Application.RunOnMainThread(() => { + btnCurtainStop.IsSelected = false; + }); + }) + { IsBackground = true }.Start(); + function.trait_on_off.curValue = "stop"; + System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); + d.Add(FunctionAttributeKey.OnOff, function.trait_on_off.curValue.ToString()); + DriverLayer.Control.Ins.SendWriteCommand(function, d); + onCurtainAnimation = false; + }; + + btnCurtainOpen.MouseUpEventHandler = (sender, e) => + { + //new System.Threading.Thread(() => { + // System.Threading.Thread.Sleep(2000); + // Application.RunOnMainThread(() => { + // btnCurtainOpen.IsSelected = false; + // }); + //}) + //{ IsBackground = true }.Start(); + function.trait_on_off.curValue = "on"; + function.SetAttrState(FunctionAttributeKey.Percent, 100); + System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); + d.Add(FunctionAttributeKey.OnOff, function.trait_on_off.curValue.ToString()); + DriverLayer.Control.Ins.SendWriteCommand(function, d); + CurtainAnimation(100); + }; + + btnMinusSignIcon.MouseUpEventHandler = (sender, e) => + { + controlBar.Progress -= 1; + function.SetAttrState(FunctionAttributeKey.Percent, controlBar.Progress); + System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); + d.Add(FunctionAttributeKey.Percent, controlBar.Progress.ToString()); + DriverLayer.Control.Ins.SendWriteCommand(function, d); + }; + + btnPlusSgnIcon.MouseUpEventHandler = (sender, e) => + { + controlBar.Progress += 1; + function.SetAttrState(FunctionAttributeKey.Percent, controlBar.Progress); + System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); + d.Add(FunctionAttributeKey.Percent, controlBar.Progress.ToString()); + DriverLayer.Control.Ins.SendWriteCommand(function, d); + }; + + + btnCurtainStop.MouseDownEventHandler = (sender, e) => + { btnCurtainStop.IsSelected = true; }; - btnCurtainStop.MouseUpEventHandler += (sender, e) => { - btnCurtainStop.IsSelected = false; + btnCurtainOpen.MouseDownEventHandler = (sender, e) => + { + btnCurtainOpen.IsSelected = true; + btnCurtainClose.IsSelected = false; + }; + btnCurtainClose.MouseDownEventHandler = (sender, e) => + { + btnCurtainClose.IsSelected = true; + btnCurtainOpen.IsSelected = false; }; - btnCurtainOpen.MouseDownEventHandler += (sender, e) => { - btnCurtainOpen.IsSelected = true; + + //curtainSeekBar.OnProgressChangedEvent = (sender, e) => + //{ + // controlBar.Progress = curtainSeekBar.Progress; + // new System.Threading.Thread(() => + // { + // if (controlBar.Progress == 0 || controlBar.Progress == 100 || (DateTime.Now - function.refreshTime).TotalMilliseconds > 300) + // { + // function.percent = e; + // function.refreshTime = DateTime.Now; + // System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); + // d.Add("percent", function.percent.ToString()); + // Control.SendWriteCommand(function, d); + // } + // }) + // { IsBackground = true }.Start(); + //}; + curtainSeekBar.OnStopTrackingTouchEvent = (sender, e) => + { + controlBar.Progress = curtainSeekBar.Progress; + new System.Threading.Thread(() => + { + function.SetAttrState(FunctionAttributeKey.Percent, e); + function.refreshTime = DateTime.Now; + System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); + d.Add(FunctionAttributeKey.Percent, e.ToString()); + DriverLayer.Control.Ins.SendWriteCommand(function, d); + }) + { IsBackground = true }.Start(); }; - btnCurtainOpen.MouseUpEventHandler += (sender, e) => { - btnCurtainOpen.IsSelected = false; + + //controlBar.OnProgressChangedEvent = (sender, e) => + //{ + // curtainSeekBar.Progress = controlBar.Progress; + // new System.Threading.Thread(() => + // { + // if (controlBar.Progress == 0 || controlBar.Progress == 100 || (DateTime.Now - function.refreshTime).TotalMilliseconds > 300) + // { + // function.percent = e; + // function.refreshTime = DateTime.Now; + // System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); + // d.Add("percent", function.percent.ToString()); + // Control.SendWriteCommand(function, d); + // } + // }) + // { IsBackground = true }.Start(); + //}; + + controlBar.OnStopTrackingTouchEvent = (sender, e) => + { + curtainSeekBar.Progress = controlBar.Progress; + new System.Threading.Thread(() => + { + function.SetAttrState(FunctionAttributeKey.Percent, e); + function.refreshTime = DateTime.Now; + System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); + d.Add("percent", e.ToString()); + DriverLayer.Control.Ins.SendWriteCommand(function, d); + }) + { IsBackground = true }.Start(); }; } -- Gitblit v1.8.0