using System; using HDL_ON.Entity; using HDL_ON.UI.Music; using Shared; namespace HDL_ON.UI { public partial class FunctionControlZone { /// /// 更新开关状态 /// /// public static void UpdataOnOffState(Function upfunc) { if(bodyDiv!= null) { Application.RunOnMainThread(() => { if(bodyDiv.Tag.ToString() == upfunc.sid) { for (var o = 0; o < bodyDiv.ChildrenCount; o++) { if (bodyDiv.GetChildren(o).GetType() == typeof(Button)) { var btn = bodyDiv.GetChildren(o) as Button; if (btn.Tag != null) { if (btn.Tag.ToString() == upfunc.sid + "_Switch")// + "_DimmerBar") { btn.IsSelected = upfunc.trait_on_off.value.ToString() == "on"; } } } else if (bodyDiv.GetChildren(o).GetType() == typeof(DiyImageSeekBar)) { var btn = bodyDiv.GetChildren(o) as DiyImageSeekBar; if (btn.Tag != null) { if (btn.Tag.ToString() == upfunc.sid + "_DimmerBar") { //btn.Progress = (upfunc as Light).trait_brightness.value.value.ToString() == "on"; } } } } } }); } } /// /// 更新亮度状态 /// /// static void UpdataBrightnessState(Function upfunc) { } /// /// 加载功能收藏按钮事件 /// void LoadEvent_FunctionCollection() { btnCollectionIcon.MouseUpEventHandler += (sender, e) => { btnCollectionIcon.IsSelected = function.collection = !btnCollectionIcon.IsSelected; function.SaveFunctionData(); }; } /// /// 加载场景控制事件 /// void LoadEvent_ControlScene() { EventHandler upEvent = (sender, e) => { Control.Send(function); string msg = function.name + Language.StringByID(StringId.AlreadyOpened); new PublicAssmebly().TipMsgAutoClose(msg, false); }; btnName.MouseUpEventHandler = upEvent; btnFromFloor.MouseUpEventHandler = upEvent; bodyDiv.MouseUpEventHandler = upEvent; } /// /// 开关事件 /// void LoadEvent_SwitchFunction(Button btnSwitch) { btnSwitch.MouseUpEventHandler = (sender, e) => { btnSwitch.IsSelected = !btnSwitch.IsSelected; new System.Threading.Thread(() => { function.trait_on_off.value = btnSwitch.IsSelected ? "on" : "off"; //Control.Send(CommandType_A.write, function); System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary(); d.Add("on_off", function.trait_on_off.value.ToString()); Control.SendWriteCommand(function, d); }) { IsBackground = true }.Start(); }; } #region 灯光的事件列表 /// /// 灯光开关事件 /// void LoadEvent_LightSwitch(Button btnSwitch) { btnSwitch.MouseUpEventHandler += (sender, e) => { btnSwitch.IsSelected = !btnSwitch.IsSelected; new System.Threading.Thread(() => { if (function.functionCategory == FunctionCategory.Light) { var light = function as Light; light.trait_on_off.value = btnSwitch.IsSelected ? "on" : "off"; //Control.Send(CommandType_A.write, function); System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary(); d.Add("on_off", function.trait_on_off.value.ToString()); Control.SendWriteCommand(function, d); } }) { IsBackground = true }.Start(); }; } /// /// 灯光亮度调节事件 /// void LoadEvent_LightDimming(DiyImageSeekBar dimmerControlBar) { if(function.functionType == FunctionType.Dimmer || function.functionType == FunctionType.RGB) { var light = function as Light; dimmerControlBar.OnStartTrackingTouchEvent = (sender, e) => { onDimmerBar = true; (bodyDiv.Parent as VerticalScrolViewLayout).ScrollEnabled = false; }; dimmerControlBar.OnStopTrackingTouchEvent = (sender, e) => { onDimmerBar = false; (bodyDiv.Parent as VerticalScrolViewLayout).ScrollEnabled = true; light.brightness = dimmerControlBar.Progress; System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary(); d.Add("brightness", light.brightness.ToString()); Control.SendWriteCommand(light, d); }; dimmerControlBar.OnProgressChangedEvent = (sender, e) => { light.brightness = e; light.trait_on_off.value = e > 0 ? "on" : "off"; if (e == 0 || e == 100) { //Control.Send(CommandType_A.write, light); System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary(); d.Add("brightness", light.brightness.ToString()); Control.SendWriteCommand(light, d); } else { var tm = (DateTime.Now - light.refreshTime).TotalMilliseconds; Console.WriteLine("skip time "+tm); if (300 < tm) { light.refreshTime = DateTime.Now; new System.Threading.Thread(() => { System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary(); d.Add("brightness", light.brightness.ToString()); Control.SendWriteCommand(light, d); }) { IsBackground = true }.Start(); } } }; } } #endregion #region 窗帘的事件列表 /// /// 加载窗帘控制事件 /// /// /// /// void LoadEvent_ControlCurtain(Button btnStop, Button btnOpen, Button btnClose, Curtain curtain) { btnClose.MouseUpEventHandler = (sender, e) => { btnClose.IsSelected = true; btnStop.IsSelected = false; btnOpen.IsSelected = false; curtain.trait_on_off.value = "off"; //Control.Send(CommandType_A.write, curtain); System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary(); d.Add("on_off", curtain.trait_on_off.value.ToString()); Control.SendWriteCommand(curtain, d); }; btnStop.MouseDownEventHandler = (sender, e) => { btnStop.IsSelected = true; btnClose.IsSelected = false; btnOpen.IsSelected = false; }; btnStop.MouseUpEventHandler = (sender, e) => { btnOpen.IsSelected = true; btnClose.IsSelected = false; btnStop.IsSelected = false; curtain.trait_on_off.value = "stop"; //Control.Send(CommandType_A.write, curtain); System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary(); d.Add("on_off", curtain.trait_on_off.value.ToString()); Control.SendWriteCommand(curtain, d); }; btnOpen.MouseUpEventHandler = (sender, e) => { btnOpen.IsSelected = true; btnClose.IsSelected = false; btnStop.IsSelected = false; curtain.trait_on_off.value = "on"; //Control.Send(CommandType_A.write, curtain); System.Collections.Generic.Dictionary d = new System.Collections.Generic.Dictionary(); d.Add("on_off", curtain.trait_on_off.value.ToString()); Control.SendWriteCommand(curtain, d); }; } #endregion #region 空调事件 #endregion /// /// 音乐控制事件列表 /// /// /// /// /// void LoadEvent_ControlMusic(Button btnPlay,Button btnNext,Button btnPrev, A31MusicModel a31player) { ///上一曲点击事件 btnPrev.MouseDownEventHandler = (sender, e) => { btnPrev.IsSelected = true; SendMethod.Previous(a31player); }; btnPrev.MouseUpEventHandler = (sender, e) => { btnPrev.IsSelected = false; }; ///暂停/播放点击事件 btnPlay.MouseDownEventHandler = (sender, e) => { if (btnPlay.IsSelected) { btnPlay.IsSelected = false; SendMethod.Pause(a31player); a31player.A31PlayStatus.status = "pause"; } else { btnPlay.IsSelected = true; SendMethod.Play(a31player); a31player.A31PlayStatus.status = "play"; } }; ///下一曲点击事件 btnNext.MouseDownEventHandler = (sender, e) => { btnNext.IsSelected = true; SendMethod.Next(a31player); }; btnNext.MouseUpEventHandler = (sender, e) => { btnNext.IsSelected = false; }; } /// /// 控制界面跳转 /// void LoadEvent_DivSkipEvent() { var eventHandler = new PublicAssmebly().LoadEvent_SkipFunctionControlPage(function, btnCollectionIcon, btnName, btnFromFloor); this.MouseUpEventHandler = eventHandler; btnName.MouseUpEventHandler = eventHandler; btnFromFloor.MouseUpEventHandler = eventHandler; } } }