From 6d73bf6e816570291865674bef8bce8972e4de3f Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期三, 01 十二月 2021 16:32:57 +0800 Subject: [PATCH] 2021-12-01-01 --- HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs | 322 +++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 234 insertions(+), 88 deletions(-) diff --git a/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs b/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs index 99f2f6e..cdaef53 100644 --- a/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs +++ b/HDL_ON/UI/UI2/2-Classification/FunctionControlZoneBLL.cs @@ -1,5 +1,8 @@ 锘縰sing System; +using System.Collections.Generic; +using HDL_ON.DriverLayer; using HDL_ON.Entity; +using HDL_ON.UI.Music; using Shared; namespace HDL_ON.UI @@ -7,43 +10,99 @@ public partial class FunctionControlZone { /// <summary> + /// 鏇存柊寮�鍏崇姸鎬� + /// </summary> + /// <param name="upfunc"></param> + 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.curValue.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 = Convert.ToInt32(upfunc.GetAttrState(FunctionAttributeKey.Brightness)); + } + } + } + } + + } + }); + } + } + /// <summary> + /// 鏇存柊浜害鐘舵�� + /// </summary> + /// <param name="upfunc"></param> + static void UpdataBrightnessState(Function upfunc) + { + + } + + /// <summary> /// 鍔犺浇鍔熻兘鏀惰棌鎸夐挳浜嬩欢 /// </summary> void LoadEvent_FunctionCollection() { btnCollectionIcon.MouseUpEventHandler += (sender, e) => { - btnCollectionIcon.IsSelected = function.collection = !btnCollectionIcon.IsSelected; - DB_ResidenceData.residenceData.SaveResidenceData(); + btnCollectionIcon.IsSelected = function.collect = !btnCollectionIcon.IsSelected; + function.CollectFunction(); }; - } - /// <summary> - /// 鍔犺浇鍦烘櫙鎺у埗浜嬩欢 - /// </summary> - void LoadEvent_ControlScene() - { - EventHandler<MouseEventArgs> 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; } /// <summary> /// 寮�鍏充簨浠� /// </summary> - void LoadEvent_SwitchFunction(Button btnSwitch) + void LoadEvent_SwitchFunction(Button btnSwitch,FunctionAttributes fadeTime = null) { + btnSwitch.MouseUpEventHandler = (sender, e) => { btnSwitch.IsSelected = !btnSwitch.IsSelected; + + if(SPK.NotStatusSpkList.Contains( function.spk )) + { + new System.Threading.Thread(() => { + System.Threading.Thread.Sleep(2000); + Application.RunOnMainThread(() => { + btnSwitch.IsSelected = !btnSwitch.IsSelected; + }); + }) { IsBackground = true }.Start(); + } + new System.Threading.Thread(() => { - function.on_off = btnSwitch.IsSelected ? "on" : "off"; - Control.Send(CommandType_A.write, function); + function.trait_on_off.curValue = btnSwitch.IsSelected ? "on" : "off"; + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.OnOff, function.trait_on_off.curValue.ToString()); + if(fadeTime!= null) + { + int result = 0; + int.TryParse(fadeTime.curValue.ToString(), out result); + d.Add(FunctionAttributeKey.FadeTime, result.ToString()); + } + Control.Ins.SendWriteCommand(function, d); }) { IsBackground = true }.Start(); }; @@ -60,11 +119,12 @@ btnSwitch.IsSelected = !btnSwitch.IsSelected; new System.Threading.Thread(() => { - if (function.functionCategory == FunctionCategory.Light) + if (SPK.LightSpkList().Contains( function.spk)) { - var light = function as Light; - light.on_off = btnSwitch.IsSelected ? "on" : "off"; - Control.Send(CommandType_A.write, function); + function.trait_on_off.curValue = btnSwitch.IsSelected ? "on" : "off"; + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add("on_off", function.trait_on_off.curValue.ToString()); + Control.Ins.SendWriteCommand(function, d); } }) { IsBackground = true }.Start(); @@ -76,67 +136,49 @@ /// </summary> void LoadEvent_LightDimming(DiyImageSeekBar dimmerControlBar) { - //if (function.functionType == FunctionType.Dimmer || function.functionType == FunctionType.RGB) - //{ - // if (dimmerControlBar == null) - // return; - // var light = function as Light; - // dimmerControlBar.OnProgressChangedEvent += (sender, e) => - // { - // if ((DateTime.Now - light.refreshTime).TotalMilliseconds > 200)//璋冨厜鍛戒护鍙戦�侀棿闅斾簨浠� - // { - // new System.Threading.Thread(() => - // { - // light.refreshTime = DateTime.Now; - // light.brightness = e; - // Control.Send(CommandType_A.write, function); - // }) - // { IsBackground = true }.Start(); - // } - // }; - // dimmerControlBar.OnStopTrackingTouchEvent += (sender, e) => - // { - // light.brightness = dimmerControlBar.Progress; - // Control.Send(CommandType_A.write, function); - // }; - //} - if(function.functionType == FunctionType.Dimmer || function.functionType == FunctionType.RGB) + if(function.spk == SPK.LightDimming || function.spk == SPK.LightRGB) { - var light = function as Light; dimmerControlBar.OnStartTrackingTouchEvent = (sender, e) => { onDimmerBar = true; + (bodyDiv.Parent as VerticalScrolViewLayout).ScrollEnabled = false; }; dimmerControlBar.OnStopTrackingTouchEvent = (sender, e) => { onDimmerBar = false; - light.brightness = dimmerControlBar.Progress; - Control.Send(CommandType_A.write, light); + (bodyDiv.Parent as VerticalScrolViewLayout).ScrollEnabled = true; + function.SetAttrState(FunctionAttributeKey.Brightness, dimmerControlBar.Progress.ToString()); + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.Brightness, dimmerControlBar.Progress.ToString()); + Control.Ins.SendWriteCommand(function, d); }; dimmerControlBar.OnProgressChangedEvent = (sender, e) => { - light.brightness = e; - light.on_off = e > 0 ? "on" : "off"; + dimmerControlBar.ProgressBarColor = CSS.CSS_Color.AuxiliaryColor1; + //light.brightness = e; + //light.trait_on_off.curValue = e > 0 ? "on" : "off"; - if (e == 0 || e == 100) - { - Control.Send(CommandType_A.write, light); - } - else - { - if (200 < (DateTime.Now - light.refreshTime).TotalMilliseconds) - { - light.refreshTime = DateTime.Now; - new System.Threading.Thread(() => - { - Control.Send(CommandType_A.write, light); - }) - { IsBackground = true }.Start(); - } - else - { - MainPage.Log("skip dimmer control!!"); - } - } + //if (e == 0 || e == 100) + //{ + // //Control.Send(CommandType_A.write, light); + // System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); + // d.Add("brightness", light.brightness.ToString()); + // Control.Ins.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<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); + // d.Add("brightness", light.brightness.ToString()); + // Control.Ins.SendWriteCommand(light, d); + // }) + // { IsBackground = true }.Start(); + // } + //} }; - } } @@ -150,30 +192,29 @@ /// <param name="btnStop"></param> /// <param name="btnOpen"></param> /// <param name="btnClose"></param> - void LoadEvent_ControlCurtain(Button btnStop, Button btnOpen, Button btnClose, Curtain curtain) + void LoadEvent_ControlCurtain(Button btnStop, Button btnOpen, Button btnClose, Function curtain) { btnClose.MouseUpEventHandler = (sender, e) => { btnClose.IsSelected = true; btnStop.IsSelected = false; btnOpen.IsSelected = false; - curtain.on_off = "off"; - Control.Send(CommandType_A.write, curtain); + curtain.trait_on_off.curValue = "off"; + curtain.SetAttrState(FunctionAttributeKey.Percent, 0); + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.OnOff, curtain.trait_on_off.curValue.ToString()); + Control.Ins.SendWriteCommand(curtain, d); }; - btnStop.MouseDownEventHandler = (sender, e) => + btnStop.MouseUpEventHandler = (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.on_off = "stop"; - Control.Send(CommandType_A.write, curtain); + curtain.trait_on_off.curValue = "stop"; + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.OnOff, curtain.trait_on_off.curValue.ToString()); + Control.Ins.SendWriteCommand(curtain, d); }; btnOpen.MouseUpEventHandler = (sender, e) => @@ -181,14 +222,117 @@ btnOpen.IsSelected = true; btnClose.IsSelected = false; btnStop.IsSelected = false; - curtain.on_off = "on"; - Control.Send(CommandType_A.write, curtain); + curtain.trait_on_off.curValue = "on"; + curtain.SetAttrState(FunctionAttributeKey.Percent, 100); + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.OnOff, curtain.trait_on_off.curValue.ToString()); + Control.Ins.SendWriteCommand(curtain, d); }; } #endregion + + /// <summary> + /// 鍔犺浇鏅捐。鏋舵帶鍒朵簨浠� + /// </summary> + void LoadEvent_ControlClothesHanger(Function function, Button btnUp, Button btnDown) + { + btnUp.MouseDownEventHandler = (sender, e) => + { + btnUp.IsSelected = true; + }; + btnUp.MouseUpEventHandler = (sender, e) => + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(2000); + Application.RunOnMainThread(() => + { + btnUp.IsSelected = false; + }); + }) + { IsBackground = true }.Start(); + function.SetAttrState(FunctionAttributeKey.Position, "up"); + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.Position, "up"); + Control.Ins.SendWriteCommand(function, d); + }; + + btnDown.MouseDownEventHandler = (sender, e) => + { + btnDown.IsSelected = true; + }; + btnDown.MouseUpEventHandler = (sender, e) => + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(2000); + Application.RunOnMainThread(() => + { + btnDown.IsSelected = false; + }); + }) + { IsBackground = true }.Start(); + function.SetAttrState(FunctionAttributeKey.Position, "down"); + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.Position, "down"); + Control.Ins.SendWriteCommand(function, d); + }; + } + + #region 绌鸿皟浜嬩欢 #endregion + + /// <summary> + /// 闊充箰鎺у埗浜嬩欢鍒楄〃 + /// </summary> + /// <param name="btnStop"></param> + /// <param name="btnOpen"></param> + /// <param name="btnClose"></param> + /// <param name="curtain"></param> + void LoadEvent_ControlMusic(Button btnPlay,Button btnNext,Button btnPrev, A31MusicModel a31player) + { + if (a31player == null) + return; + ///涓婁竴鏇茬偣鍑讳簨浠� + 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; + }; + + } /// <summary> /// 鎺у埗鐣岄潰璺宠浆 @@ -197,6 +341,8 @@ { var eventHandler = new PublicAssmebly().LoadEvent_SkipFunctionControlPage(function, btnCollectionIcon, btnName, btnFromFloor); this.MouseUpEventHandler = eventHandler; + btnName.MouseUpEventHandler = eventHandler; + btnFromFloor.MouseUpEventHandler = eventHandler; } -- Gitblit v1.8.0