| | |
| | | |
| | | namespace HDL_ON.UI |
| | | { |
| | | |
| | | |
| | | public partial class HomePage |
| | | { |
| | | |
| | | /// <summary> |
| | | /// 修改显示的功能类型 |
| | | /// 设备功能/场景功能 |
| | |
| | | }; |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 更新灯光显示状态 |
| | | /// </summary> |
| | | /// <param name="light"></param> |
| | | public static void UpdataLightView(Light light) |
| | | public static void UpdataFunctionStates(Function function) |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (bodyView != null) |
| | | try |
| | | { |
| | | foreach (var dic in LightViews) |
| | | if (bodyView != null) |
| | | { |
| | | if (dic.Key == light.sid) |
| | | foreach (var view in bodyView.functionViews) |
| | | { |
| | | var state = light.on_off == 1; |
| | | var view = dic.Value; |
| | | for (int i = 0; i < view.ChildrenCount; i++) |
| | | if (view.Tag.ToString() == function.sid) |
| | | { |
| | | if (view.GetChildren(i).GetType() == typeof(Button)) |
| | | var state = function.on_off == "on"; |
| | | for (int i = 0; i < view.ChildrenCount; i++) |
| | | { |
| | | var btn = view.GetChildren(i) as Button; |
| | | btn.IsSelected = state; |
| | | if (btn.Tag != null && btn.Tag.ToString() == "state") |
| | | if (view.GetChildren(i).GetType() == typeof(Button)) |
| | | { |
| | | btn.Text = light.lastState; |
| | | var btn = view.GetChildren(i) as Button; |
| | | btn.IsSelected = state; |
| | | if (btn.Tag != null && btn.Tag.ToString() == "state") |
| | | { |
| | | btn.Text = function.lastState; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log($"HomePage updata funciton states error {ex.Message}"); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 加载继电器开关事件 |
| | | /// 加载场景控制事件 |
| | | /// </summary> |
| | | /// <param name="btnCoverd"></param> |
| | | void LoadEvent_ControlScene(Button btnCoverd ,Function function) |
| | | { |
| | | btnCoverd.MouseDownEventHandler = (sender, e) => |
| | | { |
| | | btnCoverd.IsSelected = true; |
| | | }; |
| | | btnCoverd.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | Control.Send(function as Scene); |
| | | new System.Threading.Thread(() => |
| | | { |
| | | System.Threading.Thread.Sleep(200); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | btnCoverd.IsSelected = false; |
| | | }); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | }; |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 加载灯光开关事件 |
| | | /// </summary> |
| | | /// <param name="function"></param> |
| | | /// <param name="btnSwitch"></param> |
| | | /// <param name="view"></param> |
| | | void LoadRelaySwitchEvent(Function function, Button btnSwitch, FrameLayout view) |
| | | void LoadEvent_SwitchFunction(Function function, Button btnSwitch) |
| | | { |
| | | |
| | | btnSwitch.MouseUpEventHandler += (sender, e) => |
| | | btnSwitch.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | if (function.functionCategory == FunctionType.Light) |
| | | btnSwitch.IsSelected = !btnSwitch.IsSelected; |
| | | new System.Threading.Thread(() => |
| | | { |
| | | var curState = !btnSwitch.IsSelected; |
| | | for (int i = 0; i < view.ChildrenCount; i++) |
| | | { |
| | | if (view.GetChildren(i).GetType() == typeof(Button)) |
| | | { |
| | | var btn = view.GetChildren(i) as Button; |
| | | btn.IsSelected = curState; |
| | | } |
| | | } |
| | | new System.Threading.Thread(() => |
| | | { |
| | | var light = function as Light; |
| | | light.on_off = btnSwitch.IsSelected ? 1 : 0; |
| | | Control.Send("write", function); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | function.on_off = btnSwitch.IsSelected ? "on" : "off"; |
| | | Control.Send(CommandType_A.write, function); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | }; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 加载窗帘控制事件 |
| | | /// </summary> |
| | | void LoadEvent_ControlCurtain(Curtain curtain, Button btnClose, Button btnOpen) |
| | | { |
| | | btnClose.MouseDownEventHandler = (sender, e) => |
| | | { |
| | | btnClose.IsSelected = true; |
| | | }; |
| | | btnClose.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | btnClose.IsSelected = false; |
| | | curtain.on_off = "off"; |
| | | Control.Send(CommandType_A.write, curtain); |
| | | }; |
| | | |
| | | btnOpen.MouseDownEventHandler = (sender, e) => |
| | | { |
| | | btnOpen.IsSelected = true; |
| | | }; |
| | | btnOpen.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | btnOpen.IsSelected = false; |
| | | curtain.on_off = "on"; |
| | | Control.Send(CommandType_A.write, curtain); |
| | | }; |
| | | } |
| | | |
| | | } |
| | | } |