using System; using HDL_ON.Entity; using Shared; namespace HDL_ON.UI { public partial class MotorCurtainPage { /// /// 更新窗帘 /// /// public static void UpdataState(Curtain uCurtain) { Application.RunOnMainThread(() => { if (bodyView == null) return; if (uCurtain.functionType == bodyView.curtain.functionType && uCurtain.sid == bodyView.curtain.sid) { if (uCurtain.on_off == "stop") { bodyView.btnCurtainOpen.IsSelected = true; bodyView.btnCurtainClose.IsSelected = false; bodyView.btnCurtainStop.IsSelected = false; } else if (uCurtain.on_off == "on") { bodyView.btnCurtainOpen.IsSelected = true; bodyView.btnCurtainClose.IsSelected = false; bodyView.btnCurtainStop.IsSelected = false; } else if (uCurtain.on_off == "off") { bodyView.btnCurtainOpen.IsSelected = false; bodyView.btnCurtainClose.IsSelected = true; bodyView.btnCurtainStop.IsSelected = false; } bodyView.controlBar.Progress = bodyView.curtainSeekBar.Progress = Convert.ToInt32(uCurtain.openLevel); } }); } /// /// 加载事件列表 /// void LoadEventList() { LoadEvent_ControlEvent(); LoadCollectionEvent(); //回退刷新信息事件 actionRefresh = () => { btnFunctionName.Text = btnFunctionName_Out.Text = curtain.name; btnFromFloor_Out.Text = btnFromFoorAndRoom.Text = curtain.GetRoomListName(); }; } /// /// 收藏功能按钮事件 /// void LoadCollectionEvent() { btnCollection.MouseUpEventHandler += (sender, e) => { btnCollection.IsSelected = curtain.collection = btnCollection_Out.IsSelected = !btnCollection.IsSelected; DB_ResidenceData.residenceData.SaveResidenceData(); }; } /// /// 加载窗帘控制事件 /// void LoadEvent_ControlEvent() { btnCurtainClose.MouseUpEventHandler = (sender, e) => { btnCurtainClose.IsSelected = true; btnCurtainStop.IsSelected = false; btnCurtainOpen.IsSelected = false; curtain.on_off = "off"; curtain.openLevel = 0; Control.Send(CommandType_A.write, curtain); }; btnCurtainStop.MouseDownEventHandler = (sender, e) => { btnCurtainStop.IsSelected = true; btnCurtainClose.IsSelected = false; btnCurtainOpen.IsSelected = false; }; btnCurtainStop.MouseUpEventHandler = (sender, e) => { btnCurtainOpen.IsSelected = true; btnCurtainClose.IsSelected = false; btnCurtainStop.IsSelected = false; curtain.on_off = "stop"; Control.Send(CommandType_A.write, curtain); }; btnCurtainOpen.MouseUpEventHandler = (sender, e) => { btnCurtainOpen.IsSelected = true; btnCurtainClose.IsSelected = false; btnCurtainStop.IsSelected = false; curtain.on_off = "on"; curtain.openLevel = 100; Control.Send(CommandType_A.write, curtain); }; DateTime delayTime = DateTime.MinValue; btnMinusSignIcon.MouseDownEventHandler = (sender, e) => { if (curtain.openLevel > 1) { curtain.openLevel--; curtainSeekBar.Progress = controlBar.Progress = curtain.openLevel; delayTime = DateTime.Now; new System.Threading.Thread(() => { while(delayTime != DateTime.MaxValue) { System.Threading.Thread.Sleep(100); if((DateTime.Now - delayTime).TotalSeconds > 1) { if (curtain.openLevel < 1) { break; } curtain.openLevel--; Application.RunOnMainThread(() => { controlBar.Progress = curtain.openLevel; }); } } }) { IsBackground = true }.Start(); } }; btnMinusSignIcon.MouseUpEventHandler = (sender, e) => { delayTime = DateTime.MaxValue; Control.Send(CommandType_A.write, curtain); }; btnPlusSgnIcon.MouseDownEventHandler = (sender, e) => { if (curtain.openLevel < 100) { curtain.openLevel++; curtainSeekBar.Progress = controlBar.Progress = curtain.openLevel; delayTime = DateTime.Now; new System.Threading.Thread(() => { while (delayTime != DateTime.MaxValue) { System.Threading.Thread.Sleep(100); if ((DateTime.Now - delayTime).TotalSeconds > 1) { if (curtain.openLevel > 99) { break; } curtain.openLevel++; Application.RunOnMainThread(() => { controlBar.Progress = curtain.openLevel; }); } } }) { IsBackground = true }.Start(); } }; btnPlusSgnIcon.MouseUpEventHandler = (sender, e) => { delayTime = DateTime.MaxValue; Control.Send(CommandType_A.write, curtain); }; curtainSeekBar.OnProgressChangedEvent = (sender, e) => { if ((DateTime.Now - delayTime).TotalMilliseconds > 300) { delayTime = DateTime.Now; curtain.openLevel = e; controlBar.Progress = e; Control.Send(CommandType_A.write, curtain); } }; controlBar.OnProgressChangedEvent = (sender, e) => { if ((DateTime.Now - delayTime).TotalMilliseconds > 300) { delayTime = DateTime.Now; curtain.openLevel = e; curtainSeekBar.Progress = e; Control.Send(CommandType_A.write, curtain); } }; } } }