| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using HDL_ON.DriverLayer; |
| | | using HDL_ON.Entity; |
| | | using HDL_ON.UI.Music; |
| | | using Shared; |
| | | |
| | | namespace HDL_ON.UI |
| | |
| | | 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 LoadCollectionEvent() |
| | | 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) => { |
| | | bodyDiv.BorderColor = CSS.CSS_Color.MainColor; |
| | | bodyDiv.BorderWidth = (uint)Application.GetRealWidth(5); |
| | | Control.Send(function); |
| | | new System.Threading.Thread(() => { |
| | | System.Threading.Thread.Sleep(1000); |
| | | Application.RunOnMainThread(() => { |
| | | bodyDiv.BorderColor = CSS.CSS_Color.MainColor; |
| | | bodyDiv.BorderWidth = (uint)Application.GetRealWidth(0); |
| | | }); |
| | | }) { IsBackground = true }.Start(); |
| | | }; |
| | | 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(); |
| | | }; |
| | |
| | | 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(); |
| | |
| | | /// </summary> |
| | | void LoadEvent_LightDimming(DiyImageSeekBar dimmerControlBar) |
| | | { |
| | | if (function.functionType == FunctionType.Dimmer || function.functionType == FunctionType.RGB) |
| | | if(function.spk == SPK.LightDimming || function.spk == SPK.LightRGB) |
| | | { |
| | | if (dimmerControlBar == null) |
| | | return; |
| | | |
| | | var light = function as Light; |
| | | dimmerControlBar.OnProgressChangedEvent += (sender, e) => |
| | | { |
| | | dimmerControlBar.Tag = DateTime.Now; |
| | | if ((DateTime.Now - (DateTime)(dimmerControlBar.Tag)).TotalMilliseconds < 200)//调光命令发送间隔事件 |
| | | { |
| | | new System.Threading.Thread(() => |
| | | { |
| | | light.brightness = e; |
| | | Control.Send(CommandType_A.write, function); |
| | | dimmerControlBar.Tag = DateTime.Now; |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | dimmerControlBar.OnStartTrackingTouchEvent = (sender, e) => { |
| | | onDimmerBar = true; |
| | | (bodyDiv.Parent as VerticalScrolViewLayout).ScrollEnabled = false; |
| | | }; |
| | | dimmerControlBar.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | light.brightness = dimmerControlBar.Progress; |
| | | Control.Send(CommandType_A.write, function); |
| | | dimmerControlBar.OnStopTrackingTouchEvent = (sender, e) => { |
| | | onDimmerBar = false; |
| | | (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) => { |
| | | 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); |
| | | // 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(); |
| | | // } |
| | | //} |
| | | }; |
| | | } |
| | | |
| | | } |
| | | #endregion |
| | | |
| | |
| | | /// <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) => |
| | |
| | | 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> |
| | | /// 控制界面跳转 |
| | | /// </summary> |
| | | void LoadEvent_DivSkipEvent() |
| | | { |
| | | EventHandler<MouseEventArgs> eventHandler = (sender, e) => |
| | | { |
| | | //跳转到功能信息设置页面 |
| | | switch (function.functionType) |
| | | { |
| | | case FunctionType.Relay: |
| | | var relayView = new RelayPage(function as Light); |
| | | MainPage.BasePageView.AddChidren(relayView); |
| | | relayView.LoadPage(btnCollectionIcon, btnName, btnFromFloor); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | break; |
| | | case FunctionType.RGB: |
| | | var rgbView = new RGBPage(function as Light); |
| | | MainPage.BasePageView.AddChidren(rgbView); |
| | | rgbView.LoadPage(btnCollectionIcon, btnName, btnFromFloor); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | break; |
| | | case FunctionType.Dimmer: |
| | | var dimmerView = new DimmerPage(function as Light); |
| | | MainPage.BasePageView.AddChidren(dimmerView); |
| | | dimmerView.LoadPage(btnCollectionIcon, btnName, btnFromFloor); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | break; |
| | | case FunctionType.MotorCurtain: |
| | | var skinView = new MotorCurtainPage(function as Curtain); |
| | | MainPage.BasePageView.AddChidren(skinView); |
| | | skinView.LoadPage(btnCollectionIcon, btnName, btnFromFloor); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | break; |
| | | case FunctionType.Curtain: |
| | | var curtainView = new CurtainModulePage(function as Curtain); |
| | | MainPage.BasePageView.AddChidren(curtainView); |
| | | curtainView.LoadPage(btnCollectionIcon, btnName, btnFromFloor); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | break; |
| | | case FunctionType.RollingShutter: |
| | | var rollingShutterView = new RollingShutterPage(function as Curtain); |
| | | MainPage.BasePageView.AddChidren(rollingShutterView); |
| | | rollingShutterView.LoadPage(btnCollectionIcon, btnName, btnFromFloor); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | break; |
| | | case FunctionType.AC: |
| | | var acView = new ACPage(function as AC); |
| | | MainPage.BasePageView.AddChidren(acView); |
| | | acView.LoadPage(btnCollectionIcon, btnName, btnFromFloor); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | break; |
| | | } |
| | | }; |
| | | var eventHandler = new PublicAssmebly().LoadEvent_SkipFunctionControlPage(function, btnCollectionIcon, btnName, btnFromFloor); |
| | | this.MouseUpEventHandler = eventHandler; |
| | | btnName.MouseUpEventHandler = eventHandler; |
| | | btnFromFloor.MouseUpEventHandler = eventHandler; |
| | | } |
| | | |
| | | |
| | | } |
| | | } |