using System; using HDL_ON.Entity; using Shared; namespace HDL_ON.UI { public partial class RollingShutterPage { /// /// 更新窗帘 /// /// 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; } if ((DateTime.Now - uCurtain.refreshTime).TotalMilliseconds > 300) { 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); System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary(); d.Add("on_off", curtain.on_off.ToString()); Control.SendWriteCommand(curtain, d); }; 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); System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary(); d.Add("on_off", curtain.on_off.ToString()); Control.SendWriteCommand(curtain, d); }; 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); System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary(); d.Add("on_off", curtain.on_off.ToString()); Control.SendWriteCommand(curtain, d); }; DateTime delayTime = DateTime.MinValue; btnMinusSignIcon.MouseLongEventHandler = (sender, e) => { //if (curtain.openLevel > 1) //{ // curtain.openLevel--; // controlBar.Progress = curtainSeekBar.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.MinValue; //Control.Send(CommandType_A.write, curtain); curtain.openLevel--; System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary(); d.Add("openLevel", curtain.openLevel.ToString()); Control.SendWriteCommand(curtain, d); }; btnPlusSgnIcon.MouseLongEventHandler = (sender, e) => { //if (curtain.openLevel > 1) //{ // curtain.openLevel++; // controlBar.Progress = curtainSeekBar.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.MinValue; //Control.Send(CommandType_A.write, curtain); curtain.openLevel++; System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary(); d.Add("openLevel", curtain.openLevel.ToString()); Control.SendWriteCommand(curtain, d); }; curtainSeekBar.OnProgressChangedEvent = (sender, e) => { controlBar.Progress = curtainSeekBar.Progress; new System.Threading.Thread(() => { if ((DateTime.Now - delayTime).TotalMilliseconds > 300) { delayTime = DateTime.Now; curtain.openLevel = e; //Control.Send(CommandType_A.write, curtain); System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary(); d.Add("openLevel", curtain.openLevel.ToString()); Control.SendWriteCommand(curtain, d); curtain.refreshTime = DateTime.Now; } }) { IsBackground = true }.Start(); }; controlBar.OnProgressChangedEvent = (sender, e) => { curtainSeekBar.Progress = controlBar.Progress; new System.Threading.Thread(() => { MainPage.Log(delayTime.ToLongTimeString()); if ((DateTime.Now - delayTime).TotalMilliseconds > 300) { delayTime = DateTime.Now; curtain.openLevel = e; //Control.Send(CommandType_A.write, curtain); System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary(); d.Add("openLevel", curtain.openLevel.ToString()); Control.SendWriteCommand(curtain, d); curtain.refreshTime = DateTime.Now; } }) { IsBackground = true }.Start(); }; } } }