| | |
| | | using System; |
| | | using HDL_ON.DriverLayer; |
| | | using HDL_ON.Entity; |
| | | using HDL_ON.UI.Music; |
| | | using Shared; |
| | |
| | | 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 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) => { |
| | | Control.Send(function); |
| | | Control.ins.ControlScene(function as Scene); |
| | | string msg = function.name + Language.StringByID(StringId.AlreadyOpened); |
| | | new PublicAssmebly().TipMsgAutoClose(msg, false); |
| | | }; |
| | |
| | | btnSwitch.IsSelected = !btnSwitch.IsSelected; |
| | | new System.Threading.Thread(() => |
| | | { |
| | | function.on_off = btnSwitch.IsSelected ? "on" : "off"; |
| | | 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.on_off.ToString()); |
| | | Control.SendWriteCommand(function, d); |
| | | 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"; |
| | | 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.on_off.ToString()); |
| | | Control.SendWriteCommand(function, d); |
| | | 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 (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) |
| | | { |
| | | 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; |
| | | //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.SendWriteCommand(light, d); |
| | | Control.ins.SendWriteCommand(light, d); |
| | | }; |
| | | dimmerControlBar.OnProgressChangedEvent = (sender, e) => { |
| | | light.brightness = e; |
| | | light.on_off = e > 0 ? "on" : "off"; |
| | | light.trait_on_off.value = 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.SendWriteCommand(light, d); |
| | | Control.ins.SendWriteCommand(light, d); |
| | | } |
| | | else |
| | | { |
| | | if (200 < (DateTime.Now - light.refreshTime).TotalMilliseconds) |
| | | var tm = (DateTime.Now - light.refreshTime).TotalMilliseconds; |
| | | Console.WriteLine("skip time "+tm); |
| | | if (300 < tm) |
| | | { |
| | | light.refreshTime = DateTime.Now; |
| | | 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.SendWriteCommand(light, d); |
| | | Control.ins.SendWriteCommand(light, d); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | else |
| | | { |
| | | MainPage.Log("skip dimmer control!!"); |
| | | } |
| | | } |
| | | }; |
| | | |
| | | } |
| | | |
| | | } |
| | |
| | | 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.on_off.ToString()); |
| | | Control.SendWriteCommand(curtain, d); |
| | | 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.on_off.ToString()); |
| | | Control.SendWriteCommand(curtain, d); |
| | | 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.on_off.ToString()); |
| | | Control.SendWriteCommand(curtain, d); |
| | | d.Add("on_off", curtain.trait_on_off.value.ToString()); |
| | | Control.ins.SendWriteCommand(curtain, d); |
| | | }; |
| | | } |
| | | #endregion |