From 2ae36ddb40d28c62b64a2fdd4c3033e7d65d5cfb Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期四, 04 三月 2021 15:20:29 +0800 Subject: [PATCH] 2021-0304-1 --- HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs | 297 ++++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 204 insertions(+), 93 deletions(-) diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs b/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs index 6844db7..b3624ab 100644 --- a/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs +++ b/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs @@ -17,25 +17,54 @@ /// <param name="function"></param> public static void UpdataInfo(Function function) { - Application.RunOnMainThread(() => { + Application.RunOnMainThread((Action)(() => { if (bodyView == null) return; try { - UpdataFunctionOnCount(function.functionCategory, function.functionType); + ShowFunction vv = ShowFunction.Light; + switch (function.spk) + { + case SPK.FloorHeatStandard: + vv = ShowFunction.FloorHeating; + break; + case SPK.AcStandard: + vv = ShowFunction.AC; + break; + case SPK.CurtainRoller: + case SPK.CurtainShades: + case SPK.CurtainSwitch: + case SPK.CurtainTrietex: + vv = ShowFunction.Curtain; + break; + case SPK.LightCCT: + case SPK.LightDimming: + case SPK.LightRGB: + case SPK.LightSwitch: + vv = ShowFunction.Light; + break; + case SPK.ElectricSocket: + case SPK.ElectricTuyaAirCleaner: + case SPK.ElectricTuyaFan: + case SPK.ElectricTuyaWaterValve: + case SPK.ElectricTuyaWeepRobot: + vv = ShowFunction.Electric; + break; + } + UpdataFunctionOnCount(vv, function.spk); UpdataCloseAllButton(function); } catch { } - }); + })); } /// <summary> /// 鏇存柊鍔熻兘鎵撳紑鏁伴噺 /// </summary> /// <param name="functionCategory"></param> - static void UpdataFunctionOnCount(FunctionCategory functionCategory, FunctionType functionType) + static void UpdataFunctionOnCount(ShowFunction functionCategory, string functionType) { try { @@ -53,9 +82,14 @@ { if (view2.GetChildren(k).GetType() == typeof(FrameLayout)) { - var view3 = view2.GetChildren(j) as FrameLayout; + var view3 = view2.GetChildren(k) as FrameLayout; if (view3 == null) { + continue; + } + if (view3.Tag == null || view3.Tag.ToString() != functionCategory + "_View") + { + //MainPage.Log($"i={i}:j={j}:k={k} view3 tag : {view3.Tag.ToString()}"); continue; } for (var o = 0; o < view3.ChildrenCount; o++) @@ -70,24 +104,19 @@ string btnText = "0"; switch (functionCategory) { - case FunctionCategory.Thermostat: - switch (functionType) - { - case FunctionType.FloorHeating: - btnText = FunctionList.List.floorHeatings.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count.ToString(); - break; - case FunctionType.AC: - btnText = FunctionList.List.aCs.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count.ToString(); - break; - } + case ShowFunction.FloorHeating: + btnText = FunctionList.List.floorHeatings.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count.ToString(); break; - case FunctionCategory.Curtain: + case ShowFunction.AC: + btnText = FunctionList.List.aCs.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count.ToString(); + break; + case ShowFunction.Curtain: btnText = FunctionList.List.curtains.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count.ToString(); break; - case FunctionCategory.Light: + case ShowFunction.Light: btnText = FunctionList.List.lights.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count.ToString(); break; - case FunctionCategory.Electrical: + case ShowFunction.Electric: btnText = FunctionList.List.electricals.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count.ToString(); break; } @@ -98,24 +127,19 @@ var openCount = 0; switch (functionCategory) { - case FunctionCategory.Thermostat: - switch (functionType) - { - case FunctionType.FloorHeating: - openCount = FunctionList.List.floorHeatings.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; - break; - case FunctionType.AC: - openCount = FunctionList.List.aCs.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; - break; - } + case ShowFunction.FloorHeating: + openCount = FunctionList.List.floorHeatings.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; break; - case FunctionCategory.Curtain: + case ShowFunction.AC: + openCount = FunctionList.List.aCs.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; + break; + case ShowFunction.Curtain: openCount = FunctionList.List.curtains.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; break; - case FunctionCategory.Light: + case ShowFunction.Light: openCount = FunctionList.List.lights.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; break; - case FunctionCategory.Electrical: + case ShowFunction.Electric: openCount = FunctionList.List.electricals.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; break; } @@ -133,7 +157,7 @@ } catch (Exception ex) { - MainPage.Log($"鏇存柊鍏ㄥ叧鎸夐挳寮傚父 : {ex.Message}"); + MainPage.Log($"鏇存柊鍏ㄥ叧鎸夐挳寮傚父 : {ex.Message} "); } } /// <summary> @@ -172,7 +196,7 @@ { continue; } - var ssd = r.GetRoomFunctions(false).FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on" && obj.functionCategory != FunctionCategory.Scene); + var ssd = r.GetRoomFunctions(false).FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on"); var sss = ssd.Count; if (sss == 0) { @@ -202,11 +226,6 @@ { foreach (var f in room.GetRoomFunctions(false)) { - if (f.functionCategory == FunctionCategory.Scene) - { - continue; - } - f.trait_on_off.curValue = "off"; Dictionary<string, string> d = new Dictionary<string, string>(); d.Add("on_off", f.trait_on_off.curValue.ToString()); @@ -229,10 +248,6 @@ }; foreach (var f in room.GetRoomFunctions(false)) { - if (f.functionCategory == FunctionCategory.Scene) - { - continue; - } if (f.trait_on_off.curValue.ToString() == "on") { btn.Visible = true; @@ -242,7 +257,7 @@ } catch (Exception ex) { - MainPage.Log($"load close all function : {ex.Message}"); + MainPage.Log($"load close all function : {ex.Message} "); } } @@ -312,53 +327,124 @@ /// <summary> /// 鍏抽棴鎵撳紑鍏ㄩ儴閫変腑绫诲瀷鍔熻兘 /// </summary> - void LoadEvent_SwitchFunction(Button btn, ShowFunction functionCategory) + void LoadEvent_SwitchFunction(Button btn, ShowFunction functionCategory,FrameLayout view) { btn.MouseUpEventHandler = (sender, e) => { btn.IsSelected = !btn.IsSelected; var onoff = btn.IsSelected ? "on" : "off"; - switch (functionCategory) - { - case ShowFunction.AC: - foreach (var f in FunctionList.List.aCs) - { - f.trait_on_off.curValue = onoff; - //Control.Send(CommandType_A.write, f); - Dictionary<string, string> d = new Dictionary<string, string>(); - d.Add(FunctionAttributeKey.OnOff, f.trait_on_off.curValue.ToString()); - Control.Ins.SendWriteCommand(f, d); - } - break; - case ShowFunction.Curtain: - //foreach (var f in FunctionList.List.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 ShowFunction.Light: - foreach (var f in FunctionList.List.lights) - { - f.trait_on_off.curValue = onoff; - Dictionary<string, string> d = new Dictionary<string, string>(); - d.Add(FunctionAttributeKey.OnOff, f.trait_on_off.curValue.ToString()); - Control.Ins.SendWriteCommand(f, d); - } - break; - case ShowFunction.Electric: - foreach (var f in FunctionList.List.electricals) - { - f.trait_on_off.curValue = onoff; - Dictionary<string, string> d = new Dictionary<string, string>(); - d.Add(FunctionAttributeKey.OnOff, f.trait_on_off.curValue.ToString()); - Control.Ins.SendWriteCommand(f, d); - } - break; - } + var waitPage = new Loading(); + view.AddChidren(waitPage); + waitPage.BackgroundColor = 0x00000000; + waitPage.Start(""); + + new System.Threading.Thread(() => + { + try + { + //鍏ㄥ紑鍏ㄥ叧 + //if (DB_ResidenceData.Instance.GatewayType == 0 && !Control.Ins.IsRemote) + if (Control.Ins.GatewayOnline_Local) + { + switch (functionCategory) + { + case ShowFunction.AC: + foreach (var f in FunctionList.List.aCs) + { + f.trait_on_off.curValue = onoff; + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.OnOff, f.trait_on_off.curValue.ToString()); + Control.Ins.SendWriteCommand(f, d); + System.Threading.Thread.Sleep(100); + } + break; + case ShowFunction.FloorHeating: + foreach (var f in FunctionList.List.floorHeatings) + { + f.trait_on_off.curValue = onoff; + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.OnOff, f.trait_on_off.curValue.ToString()); + Control.Ins.SendWriteCommand(f, d); + System.Threading.Thread.Sleep(100); + } + break; + case ShowFunction.Light: + foreach (var f in FunctionList.List.lights) + { + f.trait_on_off.curValue = onoff; + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.OnOff, f.trait_on_off.curValue.ToString()); + Control.Ins.SendWriteCommand(f, d); + System.Threading.Thread.Sleep(100); + } + break; + case ShowFunction.Electric: + foreach (var f in FunctionList.List.electricals) + { + f.trait_on_off.curValue = onoff; + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add(FunctionAttributeKey.OnOff, f.trait_on_off.curValue.ToString()); + Control.Ins.SendWriteCommand(f, d); + System.Threading.Thread.Sleep(100); + } + break; + } + } + else + { + switch (functionCategory) + { + case ShowFunction.AC: + List<Function> acList = new List<Function>(); + foreach(var f in FunctionList.List.aCs) + { + acList.Add(f); + } + Control.Ins.SwtichFunctions(onoff == "on", acList); + break; + case ShowFunction.FloorHeating: + List<Function> fhList = new List<Function>(); + foreach (var f in FunctionList.List.floorHeatings) + { + fhList.Add(f); + } + Control.Ins.SwtichFunctions(onoff == "on", fhList); + break; + case ShowFunction.Light: + List<Function> lightList = new List<Function>(); + foreach (var f in FunctionList.List.lights) + { + lightList.Add(f); + } + Control.Ins.SwtichFunctions(onoff == "on", lightList); + break; + case ShowFunction.Electric: + List<Function> eleList = new List<Function>(); + foreach (var f in FunctionList.List.electricals) + { + eleList.Add(f); + } + Control.Ins.SwtichFunctions(onoff == "on", eleList); + break; + } + + + } + } + catch (Exception ex) + { + MainPage.Log($"{functionCategory}鍏ㄥ紑鍏ㄥ叧澶辫触:{ex.Message}"); + } + finally + { + Application.RunOnMainThread(() => + { + waitPage.Hide(); + waitPage.RemoveFromParent(); + }); + } + }) + { IsBackground = true, Priority = System.Threading.ThreadPriority.AboveNormal }.Start(); }; } @@ -366,21 +452,45 @@ /// <summary> /// 绐楀笜鍏ㄥ紑鍏ㄥ叧 /// </summary> - void LoadEvent_CurtainSwitch(Button btnClose, Button btnOpen) + void LoadEvent_CurtainSwitch(Button btnClose, Button btnOpen,FrameLayout view) { btnOpen.MouseUpEventHandler = (sender, e) => { DB_ResidenceData.Instance.GlobalCurtainStatus = true; btnOpen.IsSelected = true; btnClose.IsSelected = false; - foreach (var f in FunctionList.List.curtains) + var waitPage = new Loading(); + waitPage.BackgroundColor = 0x00000000; + view.AddChidren(waitPage); + waitPage.Start(""); + new System.Threading.Thread(() => { - f.trait_on_off.curValue = "on"; - f.percent = 100; - Dictionary<string, string> d = new Dictionary<string, string>(); - d.Add("on_off", f.trait_on_off.curValue.ToString()); - Control.Ins.SendWriteCommand(f, d); - } + try + { + foreach (var f in FunctionList.List.curtains) + { + f.trait_on_off.curValue = "on"; + f.percent = 100; + Dictionary<string, string> d = new Dictionary<string, string>(); + d.Add("on_off", f.trait_on_off.curValue.ToString()); + Control.Ins.SendWriteCommand(f, d); + System.Threading.Thread.Sleep(100); + } + } + catch (Exception ex) + { + MainPage.Log($"绐楀笜鍏ㄥ紑鍏ㄥ叧澶辫触:{ex.Message}"); + } + finally + { + Application.RunOnMainThread(() => + { + waitPage.Hide(); + waitPage.RemoveFromParent(); + }); + } + }) + { IsBackground = true, Priority = System.Threading.ThreadPriority.AboveNormal }.Start(); }; btnClose.MouseUpEventHandler = (sender, e) => @@ -402,3 +512,4 @@ } } } + -- Gitblit v1.8.0