| | |
| | | using System; |
| | | 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.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"; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | /// <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(); |
| | | function.SaveFunctionData(); |
| | | }; |
| | | } |
| | | /// <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(); |
| | | Control.ins.ControlScene(function as Scene); |
| | | string msg = function.name + Language.StringByID(StringId.AlreadyOpened); |
| | | new PublicAssmebly().TipMsgAutoClose(msg, false); |
| | | }; |
| | | btnName.MouseUpEventHandler = upEvent; |
| | | btnFromFloor.MouseUpEventHandler = upEvent; |
| | |
| | | btnSwitch.IsSelected = !btnSwitch.IsSelected; |
| | | new System.Threading.Thread(() => |
| | | { |
| | | function.on_off = btnSwitch.IsSelected ? "on" : "off"; |
| | | Control.Send(CommandType_A.write, function); |
| | | function.trait_on_off.value = btnSwitch.IsSelected ? "on" : "off"; |
| | | //Control.Send(CommandType_A.write, function); |
| | | System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); |
| | | d.Add("on_off", function.trait_on_off.value.ToString()); |
| | | Control.ins.SendWriteCommand(function, d); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | }; |
| | |
| | | if (function.functionCategory == FunctionCategory.Light) |
| | | { |
| | | var light = function as Light; |
| | | light.on_off = btnSwitch.IsSelected ? "on" : "off"; |
| | | Control.Send(CommandType_A.write, function); |
| | | light.trait_on_off.value = btnSwitch.IsSelected ? "on" : "off"; |
| | | //Control.Send(CommandType_A.write, function); |
| | | System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); |
| | | d.Add("on_off", function.trait_on_off.value.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.functionType == FunctionType.Dimmer || function.functionType == FunctionType.RGB) |
| | | { |
| | | 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)//调光命令发送间隔事件 |
| | | 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<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); |
| | | d.Add("brightness", light.brightness.ToString()); |
| | | Control.ins.SendWriteCommand(light, d); |
| | | }; |
| | | dimmerControlBar.OnProgressChangedEvent = (sender, e) => { |
| | | light.brightness = e; |
| | | light.trait_on_off.value = e > 0 ? "on" : "off"; |
| | | |
| | | if (e == 0 || e == 100) |
| | | { |
| | | new System.Threading.Thread(() => |
| | | //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.brightness = e; |
| | | Control.Send(CommandType_A.write, function); |
| | | dimmerControlBar.Tag = DateTime.Now; |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | 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(); |
| | | } |
| | | } |
| | | }; |
| | | dimmerControlBar.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | light.brightness = dimmerControlBar.Progress; |
| | | Control.Send(CommandType_A.write, function); |
| | | }; |
| | | } |
| | | |
| | | } |
| | | #endregion |
| | | |
| | |
| | | btnClose.IsSelected = true; |
| | | btnStop.IsSelected = false; |
| | | btnOpen.IsSelected = false; |
| | | curtain.on_off = "off"; |
| | | Control.Send(CommandType_A.write, curtain); |
| | | curtain.trait_on_off.value = "off"; |
| | | curtain.percent = 0; |
| | | System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); |
| | | d.Add("on_off", curtain.trait_on_off.value.ToString()); |
| | | Control.ins.SendWriteCommand(curtain, d); |
| | | }; |
| | | |
| | | btnStop.MouseDownEventHandler = (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.value = "stop"; |
| | | //curtain.percent = 0; |
| | | System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); |
| | | d.Add("on_off", curtain.trait_on_off.value.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.value = "on"; |
| | | curtain.percent = 100; |
| | | System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); |
| | | d.Add("on_off", curtain.trait_on_off.value.ToString()); |
| | | Control.ins.SendWriteCommand(curtain, d); |
| | | }; |
| | | } |
| | | #endregion |
| | |
| | | #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) |
| | | { |
| | | ///上一曲点击事件 |
| | | 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; |
| | | } |
| | | |
| | | |
| | | } |
| | | } |