From a715181089be0d31cd737a5367ffd02690b9d77f Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期四, 12 十一月 2020 13:36:01 +0800 Subject: [PATCH] 20201112 --- HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs | 246 +++++++++++++++++++++++++++++++++---------------- 1 files changed, 166 insertions(+), 80 deletions(-) diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs b/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs index 28f6aaf..34d37c8 100644 --- a/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs +++ b/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs @@ -1,5 +1,6 @@ 锘縰sing System; using System.Collections.Generic; +using HDL_ON.DriverLayer; using HDL_ON.Entity; using HDL_ON.UI.CSS; using Shared; @@ -10,6 +11,8 @@ { /// <summary> /// 鏇存柊鐣岄潰淇℃伅 + /// 鏇存柊鍔熻兘鎵撳紑鏁伴噺 + /// 鏇存柊鍏ㄥ叧鍔熻兘鐘舵�� /// </summary> /// <param name="function"></param> public static void UpdataInfo(Function function) @@ -17,7 +20,7 @@ Application.RunOnMainThread(() => { if (bodyView == null) return; - UpdataFunctionOnCount(function.functionCategory); + UpdataFunctionOnCount(function.functionCategory,function.functionType); UpdataCloseAllButton(function); }); } @@ -26,44 +29,93 @@ /// 鏇存柊鍔熻兘鎵撳紑鏁伴噺 /// </summary> /// <param name="functionCategory"></param> - static void UpdataFunctionOnCount(FunctionCategory functionCategory) + static void UpdataFunctionOnCount(FunctionCategory functionCategory, FunctionType functionType) { - for (int i = 0; i < bodyView.functionsPageView.ChildrenCount; i++) + try { - if (bodyView.functionsPageView.GetChildren(i).GetType() == typeof(FrameLayout)) + for (int i = 0; i < bodyView.functionsPageView.ChildrenCount; i++) { - var view1 = bodyView.functionsPageView.GetChildren(i) as FrameLayout; - for (int j = 0; j < view1.ChildrenCount; j++) + if (bodyView.functionsPageView.GetChildren(i).GetType() == typeof(FrameLayout)) { - if (view1.GetChildren(j).GetType() == typeof(FrameLayout)) + var view1 = bodyView.functionsPageView.GetChildren(i) as FrameLayout; + for (int j = 0; j < view1.ChildrenCount; j++) { - var view2 = view1.GetChildren(j) as FrameLayout; - for (var k = 0; k < view2.ChildrenCount; k++) + if (view1.GetChildren(j).GetType() == typeof(FrameLayout)) { - if (view2.GetChildren(k).GetType() == typeof(FrameLayout)) + var view2 = view1.GetChildren(j) as FrameLayout; + for (var k = 0; k < view2.ChildrenCount; k++) { - var view3 = view2.GetChildren(j) as FrameLayout; - for (var o = 0; o < view3.ChildrenCount; o++) + if (view2.GetChildren(k).GetType() == typeof(FrameLayout)) { - if (view3.GetChildren(o).GetType() == typeof(Button)) + var view3 = view2.GetChildren(j) as FrameLayout; + if(view3== null) { - var btn = view3.GetChildren(o) as Button; - if (btn.Tag != null && btn.Tag.ToString() == functionCategory + "_onCount") + continue; + } + for (var o = 0; o < view3.ChildrenCount; o++) + { + if (view3.GetChildren(o).GetType() == typeof(Button)) { - string btnText = "0/0"; - switch (functionCategory) + var btn = view3.GetChildren(o) as Button; + if (btn.Tag != null) { - case FunctionCategory.AC: - btnText = DB_ResidenceData.residenceData.functionList.aCs.FindAll((obj) => obj.on_off == "on").Count + "/" + DB_ResidenceData.residenceData.functionList.lights.Count; - break; - case FunctionCategory.Curtain: - btnText = DB_ResidenceData.residenceData.functionList.curtains.FindAll((obj) => obj.on_off == "on").Count + "/" + DB_ResidenceData.residenceData.functionList.lights.Count; - break; - case FunctionCategory.Light: - btnText = DB_ResidenceData.residenceData.functionList.lights.FindAll((obj) => obj.on_off == "on").Count + "/" + DB_ResidenceData.residenceData.functionList.lights.Count; - break; + if (btn.Tag.ToString() == functionCategory + "_onCount") + { + string btnText = "0"; + switch (functionCategory) + { + case FunctionCategory.Thermostat: + switch (functionType) + { + case FunctionType.FloorHeating: + btnText = DB_ResidenceData.functionList.floorHeatings.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count.ToString(); + break; + case FunctionType.AC: + btnText = DB_ResidenceData.functionList.aCs.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count.ToString(); + break; + } + break; + case FunctionCategory.Curtain: + btnText = DB_ResidenceData.functionList.curtains.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count.ToString(); + break; + case FunctionCategory.Light: + btnText = DB_ResidenceData.functionList.lights.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count.ToString(); + break; + case FunctionCategory.Electrical: + btnText = DB_ResidenceData.functionList.electricals.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count.ToString(); + break; + } + btn.Text = btnText; + } + else if (btn.Tag.ToString() == functionCategory + "_AllControl") + { + var openCount = 0; + switch (functionCategory) + { + case FunctionCategory.Thermostat: + switch (functionType) + { + case FunctionType.FloorHeating: + openCount = DB_ResidenceData.functionList.floorHeatings.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count; + break; + case FunctionType.AC: + openCount = DB_ResidenceData.functionList.aCs.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count; + break; + } + break; + case FunctionCategory.Curtain: + openCount = DB_ResidenceData.functionList.curtains.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count; + break; + case FunctionCategory.Light: + openCount = DB_ResidenceData.functionList.lights.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count; + break; + case FunctionCategory.Electrical: + openCount = DB_ResidenceData.functionList.electricals.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count; + break; + } + btn.IsSelected = openCount != 0; + } } - btn.Text = btnText; } } } @@ -73,8 +125,11 @@ } } } + catch (Exception ex) + { + MainPage.Log($"鏇存柊鍏ㄥ叧鎸夐挳寮傚父 : {ex.Message}"); + } } - /// <summary> /// 鏇存柊鍏ㄥ叧鍔熻兘鐘舵�� /// </summary> @@ -94,7 +149,7 @@ var btn = view1.GetChildren(j) as Button; if (btn.Tag != null && btn.Tag.ToString() == "AllClose") { - if (function.on_off == "on") + if (function.trait_on_off.value.ToString() == "on") { btn.Visible = true; } @@ -102,8 +157,16 @@ { foreach (var rId in function.roomIdList) { - var r = DB_ResidenceData.residenceData.rooms.Find(s => s.sid == rId); - var ssd = r.functions.FindAll((obj) => obj.on_off == "on" && obj.functionCategory != FunctionCategory.Scene); + if(rId == null) + { + continue; + } + var r = DB_ResidenceData.rooms.Find(s => s.sid == rId); + if(r == null) + { + continue; + } + var ssd = r.GetRoomFunctions(false).FindAll((obj) => obj.trait_on_off.value.ToString() == "on" && obj.functionCategory != FunctionCategory.Scene); var sss = ssd.Count; if (sss == 0) { @@ -125,36 +188,51 @@ { try { - btn.Visible = false; - foreach (var f in room.functions) - { - if(f.functionCategory == FunctionCategory.Scene) - { - continue; - } - if (f.on_off == "on") - { - btn.Visible = true; - return; - } - } btn.MouseUpEventHandler = (sender, e) => { Action action = () => { - foreach (var f in room.functions) + new System.Threading.Thread(() => { - if (f.functionCategory == FunctionCategory.Scene) + foreach (var f in room.GetRoomFunctions(false)) { - continue; + if (f.functionCategory == FunctionCategory.Scene) + { + continue; + } + + f.trait_on_off.value = "off"; + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add("on_off", f.trait_on_off.value.ToString()); + Control.ins.SendWriteCommand(f, d); } - f.on_off = "off"; - Control.Send(CommandType_A.write, f); - } + + foreach (var m in Music.A31MusicModel.A31MusicModelList) + { + if (m.roomIdList.Contains(room.sid)) + { + Music.SendMethod.Pause(m); + } + } + }) + { IsBackground = true }.Start(); + btn.Visible = false; }; new PublicAssmebly().TipMsg(StringId.Tip, StringId.TipCloseAllFunctionInRoom, action); }; + foreach (var f in room.GetRoomFunctions(false)) + { + if (f.functionCategory == FunctionCategory.Scene) + { + continue; + } + if (f.trait_on_off.value.ToString() == "on") + { + btn.Visible = true; + break; + } + } } catch (Exception ex) { @@ -228,27 +306,41 @@ /// <summary> /// 鍏抽棴鎵撳紑鍏ㄩ儴閫変腑绫诲瀷鍔熻兘 /// </summary> - void LoadEvent_SwitchFunction(Button btn,FunctionCategory functionCategory) + void LoadEvent_SwitchFunction(Button btn, ShowFunction functionCategory) { btn.MouseUpEventHandler = (sender, e) => { btn.IsSelected = !btn.IsSelected; - switch(functionCategory) + var onoff = btn.IsSelected ? "on" : "off"; + switch (functionCategory) { - case FunctionCategory.AC: - foreach(var f in DB_ResidenceData.residenceData.functionList.aCs) + case ShowFunction.AC: + foreach(var f in DB_ResidenceData.functionList.aCs) { - f.on_off = btn.IsSelected ? "on" : "off"; - Control.Send(CommandType_A.write, f); + f.trait_on_off.value = onoff; + //Control.Send(CommandType_A.write, f); + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add("on_off", f.trait_on_off.value.ToString()); + Control.ins.SendWriteCommand(f, d); } break; - case FunctionCategory.Curtain: - + case ShowFunction.Curtain: + //foreach (var f in DB_ResidenceData.functionList.curtains) + //{ + // f.trait_on_off.value = onoff; + // //Control.Send(CommandType_A.write, f); + // Dictionary<string, string> d = new Dictionary<string, string>(); + // d.Add("percent", "100"); + // Control.SendWriteCommand(f, d); + //} break; - case FunctionCategory.Light: - foreach (var f in DB_ResidenceData.residenceData.functionList.lights) + case ShowFunction.Light: + foreach (var f in DB_ResidenceData.functionList.lights) { - f.on_off = btn.IsSelected ? "on" : "off"; - Control.Send(CommandType_A.write, f); + f.trait_on_off.value = onoff; + //Control.Send(CommandType_A.write, f); + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add("on_off", f.trait_on_off.value.ToString()); + Control.ins.SendWriteCommand(f, d); } break; } @@ -264,31 +356,25 @@ { btnOpen.MouseUpEventHandler = (sender, e) => { - if (btnOpen.IsSelected) + foreach (var f in DB_ResidenceData.functionList.curtains) { - return; - } - btnOpen.IsSelected = true; - btnClose.IsSelected = false; - foreach (var f in DB_ResidenceData.residenceData.functionList.curtains) - { - f.on_off = "on"; - Control.Send(CommandType_A.write, f); + f.trait_on_off.value = "on"; + f.percent = 100; + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add("on_off", f.trait_on_off.value.ToString()); + Control.ins.SendWriteCommand(f, d); } }; btnClose.MouseUpEventHandler = (sender, e) => { - if (btnClose.IsSelected) + foreach (var f in DB_ResidenceData.functionList.curtains) { - return; - } - btnClose.IsSelected = true; - btnOpen.IsSelected = false; - foreach (var f in DB_ResidenceData.residenceData.functionList.curtains) - { - f.on_off = "off"; - Control.Send(CommandType_A.write, f); + f.trait_on_off.value = "off"; + f.percent = 0; + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add("on_off", f.trait_on_off.value.ToString()); + Control.ins.SendWriteCommand(f, d); } }; -- Gitblit v1.8.0