using System; using HDL_ON.Entity; using Shared; namespace HDL_ON.UI { public partial class RollingShutterPage { /// /// 更新窗帘 /// /// 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 { var progress = Convert.ToInt32(updateTemp.GetAttrState(FunctionAttributeKey.Percent)); bodyView.curtainSeekBar.Progress = progress; bodyView.btnProgress.Text = progress + "%"; //if (!bodyView.onCurtainAnimation) //{ // bodyView.CurtainAnimation(Convert.ToInt32(updateTemp.GetAttrState(FunctionAttributeKey.Percent))); //} } catch { } } }); } /// /// 正在执行窗帘动画 /// bool onCurtainAnimation = false; /// /// 窗帘动画 /// /// void CurtainAnimation(int progress) { onCurtainAnimation = true; //运行方向 打开(加进度):关闭(减进度) bool runningDirection = progress > curtainSeekBar.Progress; int curBarProgress = curtainSeekBar.Progress; btnProgress.Text = progress + "%"; new System.Threading.Thread(() => { try { while (progress != curBarProgress && onCurtainAnimation) { Application.RunOnMainThread(() => { if (runningDirection) { if (curtainSeekBar.Progress + 5 > progress) { curtainSeekBar.Progress = progress; } else { curtainSeekBar.Progress = curtainSeekBar.Progress + 5; } } else { if (curtainSeekBar.Progress - 5 < progress) { curtainSeekBar.Progress = progress; } else { curtainSeekBar.Progress = curtainSeekBar.Progress - 5; } } 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(); } /// /// 加载事件列表 /// void LoadEventList() { LoadEvent_ControlEvent(); LoadCollectionEvent(); //回退刷新信息事件 actionRefresh = () => { btnFunctionName.Text = btnFunctionName_Out.Text = function.name; btnFromFloor_Out.Text = btnFromFoorAndRoom.Text = function.GetRoomListName(); //function.SaveFunctionData(true); }; } /// /// 收藏功能按钮事件 /// void LoadCollectionEvent() { btnCollection.MouseUpEventHandler += (sender, e) => { btnCollection.IsSelected = function.collect = btnCollection_Out.IsSelected = !btnCollection.IsSelected; function.CollectFunction(); }; } /// /// 加载窗帘控制事件 /// void LoadEvent_ControlEvent() { 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 d = new System.Collections.Generic.Dictionary(); d.Add(FunctionAttributeKey.OnOff, function.trait_on_off.curValue.ToString()); DriverLayer.Control.Ins.SendWriteCommand(function, d); //CurtainAnimation(100); }; 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 d = new System.Collections.Generic.Dictionary(); 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 d = new System.Collections.Generic.Dictionary(); d.Add(FunctionAttributeKey.OnOff, function.trait_on_off.curValue.ToString()); DriverLayer.Control.Ins.SendWriteCommand(function, d); //CurtainAnimation(0); }; //btnMinusSignIcon.MouseUpEventHandler = (sender, e) => //{ // controlBar.Progress -= 1; // function.SetAttrState(FunctionAttributeKey.Percent, controlBar.Progress); // System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary(); // 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 d = new System.Collections.Generic.Dictionary(); // d.Add(FunctionAttributeKey.Percent, controlBar.Progress.ToString()); // DriverLayer.Control.Ins.SendWriteCommand(function, d); //}; btnCurtainStop.MouseDownEventHandler = (sender, e) => { btnCurtainStop.IsSelected = true; btnCurtainClose.IsSelected = false; btnCurtainOpen.IsSelected = false; }; btnCurtainOpen.MouseDownEventHandler = (sender, e) => { btnCurtainOpen.IsSelected = true; btnCurtainClose.IsSelected = false; btnCurtainStop.IsSelected = false; }; btnCurtainClose.MouseDownEventHandler = (sender, e) => { btnCurtainClose.IsSelected = true; btnCurtainOpen.IsSelected = false; btnCurtainStop.IsSelected = false; }; //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 d = new System.Collections.Generic.Dictionary(); // d.Add("percent", function.percent.ToString()); // Control.SendWriteCommand(function, d); // } // }) // { IsBackground = true }.Start(); //}; curtainSeekBar.OnStopTrackingTouchEvent = (sender, e) => { //controlBar.Progress = curtainSeekBar.Progress; btnProgress.Text = curtainSeekBar.Progress + "%"; new System.Threading.Thread(() => { function.SetAttrState(FunctionAttributeKey.Percent, e); function.refreshTime = DateTime.Now; System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary(); d.Add(FunctionAttributeKey.Percent, e.ToString()); DriverLayer.Control.Ins.SendWriteCommand(function, d); }) { IsBackground = true }.Start(); }; curtainSeekBar.OnProgressChangedEvent = (sender, e) => { btnProgress.Text = 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 d = new System.Collections.Generic.Dictionary(); // d.Add("percent", function.percent.ToString()); // Control.SendWriteCommand(function, d); // } // }) // { IsBackground = true }.Start(); }; //controlBar.OnStopTrackingTouchEvent = (sender, e) => //{ // curtainSeekBar.Progress = controlBar.Progress; // btnProgress.Text = curtainSeekBar.Progress + "%"; // new System.Threading.Thread(() => // { // function.SetAttrState(FunctionAttributeKey.Percent, e); // function.refreshTime = DateTime.Now; // System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary(); // d.Add("percent", e.ToString()); // DriverLayer.Control.Ins.SendWriteCommand(function, d); // }) // { IsBackground = true }.Start(); //}; } } }