From 6d73bf6e816570291865674bef8bce8972e4de3f Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期三, 01 十二月 2021 16:32:57 +0800 Subject: [PATCH] 2021-12-01-01 --- HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs | 348 +++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 234 insertions(+), 114 deletions(-) diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs b/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs old mode 100755 new mode 100644 index fb5a781..0e8f778 --- a/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs +++ b/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs @@ -22,9 +22,35 @@ return; try { - UpdataFunctionOnCount(function.functionCategory, function.functionType); + ShowFunction vv = ShowFunction.Light; + if (SPK.ElectricalSpkList().Contains(function.spk)) + { + vv = ShowFunction.Electric; + } + else if (SPK.FhSpkList().Contains(function.spk)) + { + vv = ShowFunction.FloorHeating; + } + else if (SPK.AcSpkList().Contains(function.spk)) + { + vv = ShowFunction.AC; + } + else if (SPK.CurtainSpkList().Contains(function.spk)) + { + vv = ShowFunction.Curtain; + } + else if (SPK.LightSpkList().Contains(function.spk)) + { + vv = ShowFunction.Light; + } + else if (SPK.AirFreshSpkList().Contains(function.spk)) + { + vv = ShowFunction.FreshAir; + } + UpdataFunctionOnCount(vv, function.spk); UpdataCloseAllButton(function); - }catch + } + catch { } }); @@ -34,7 +60,7 @@ /// 鏇存柊鍔熻兘鎵撳紑鏁伴噺 /// </summary> /// <param name="functionCategory"></param> - static void UpdataFunctionOnCount(FunctionCategory functionCategory, FunctionType functionType) + static void UpdataFunctionOnCount(ShowFunction functionCategory, string functionType) { try { @@ -52,9 +78,14 @@ { if (view2.GetChildren(k).GetType() == typeof(FrameLayout)) { - var view3 = view2.GetChildren(j) as FrameLayout; - if(view3== null) + 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++) @@ -64,61 +95,35 @@ var btn = view3.GetChildren(o) as Button; if (btn.Tag != null) { + string btnText = "0"; + switch (functionCategory) + { + case ShowFunction.FloorHeating: + btnText = FunctionList.List.GetFloorHeatingList().FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count.ToString(); + break; + case ShowFunction.AC: + btnText = FunctionList.List.GetAcList().FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count.ToString(); + break; + case ShowFunction.Curtain: + btnText = FunctionList.List.GetCurtainList().FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count.ToString(); + break; + case ShowFunction.Light: + btnText = FunctionList.List.GetLightList().FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count.ToString(); + break; + case ShowFunction.Electric: + btnText = FunctionList.List.GetElectricals().FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count.ToString(); + break; + case ShowFunction.FreshAir: + btnText = FunctionList.List.GetAirFreshList().FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count.ToString(); + break; + } if (btn.Tag.ToString() == functionCategory + "_onCount") { - 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; - } - break; - case FunctionCategory.Curtain: - btnText = FunctionList.List.curtains.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count.ToString(); - break; - case FunctionCategory.Light: - btnText = FunctionList.List.lights.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count.ToString(); - break; - case FunctionCategory.Electrical: - btnText = FunctionList.List.electricals.FindAll((obj) => obj.trait_on_off.curValue.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 = 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; - } - break; - case FunctionCategory.Curtain: - openCount = FunctionList.List.curtains.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; - break; - case FunctionCategory.Light: - openCount = FunctionList.List.lights.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; - break; - case FunctionCategory.Electrical: - openCount = FunctionList.List.electricals.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; - break; - } - btn.IsSelected = openCount != 0; + btn.IsSelected = btnText != "0"; } } } @@ -132,7 +137,7 @@ } catch (Exception ex) { - MainPage.Log($"鏇存柊鍏ㄥ叧鎸夐挳寮傚父 : {ex.Message}"); + MainPage.Log($"鏇存柊鍏ㄥ叧鎸夐挳寮傚父 : {ex.Message} "); } } /// <summary> @@ -162,16 +167,16 @@ { foreach (var rId in function.roomIds) { - if(rId == null) + if (rId == null) { continue; } var r = SpatialInfo.CurrentSpatial.RoomList.Find(s => s.roomId == rId); - if(r == null) + if (r == null) { 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) { @@ -201,11 +206,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()); @@ -228,10 +228,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; @@ -241,7 +237,7 @@ } catch (Exception ex) { - MainPage.Log($"load close all function : {ex.Message}"); + MainPage.Log($"load close all function : {ex.Message} "); } } @@ -261,7 +257,7 @@ { contentPageView.PageChange = (sender, e) => { - if(contentPageView.PageIndex == 0) + if (contentPageView.PageIndex == 0) { btnRoomTilte.IsSelected = true; btnRoomTilte.TextSize = CSS_FontSize.HeadlineFontSize; @@ -311,45 +307,141 @@ /// <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("on_off", 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; - //Control.Send(CommandType_A.write, f); - Dictionary<string, string> d = new Dictionary<string, string>(); - d.Add("on_off", 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 + { + //浼戠湢鏃堕棿(ms) + int sleepTime = 100; + if(DB_ResidenceData.Instance.GatewayType == 0) + { + sleepTime = 200; + } + if (Control.Ins.GatewayOnline_Local) + { + switch (functionCategory) + { + case ShowFunction.AC: + foreach (var f in FunctionList.List.GetAcList()) + { + 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(sleepTime); + } + break; + case ShowFunction.FloorHeating: + foreach (var f in FunctionList.List.GetFloorHeatingList()) + { + 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(sleepTime); + } + break; + case ShowFunction.Light: + foreach (var f in FunctionList.List.GetLightList()) + { + 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(sleepTime); + } + break; + case ShowFunction.Electric: + foreach (var f in FunctionList.List.GetElectricals()) + { + 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(sleepTime); + } + break; + case ShowFunction.FreshAir: + foreach (var f in FunctionList.List.GetAirFreshList()) + { + 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(sleepTime); + } + break; + } + } + else + { + switch (functionCategory) + { + case ShowFunction.AC: + List<Function> acList = new List<Function>(); + foreach(var f in FunctionList.List.GetAcList()) + { + 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.GetFloorHeatingList()) + { + 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.GetLightList()) + { + 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.GetElectricals()) + { + eleList.Add(f); + } + Control.Ins.SwtichFunctions(onoff == "on", eleList); + break; + } + + + } + } + catch (Exception ex) + { + MainPage.Log($"{functionCategory}鍏ㄥ紑鍏ㄥ叧澶辫触:{ex.Message}"); + } + finally + { + Application.RunOnMainThread(() => + { + if (waitPage != null) + { + waitPage.RemoveFromParent(); + waitPage = null; + } + }); + } + }) + { IsBackground = true, Priority = System.Threading.ThreadPriority.AboveNormal }.Start(); }; } @@ -357,21 +449,48 @@ /// <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.GetCurtainList()) + { + f.trait_on_off.curValue = "on"; + f.SetAttrState(FunctionAttributeKey.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(() => + { + if (waitPage != null) + { + waitPage.RemoveFromParent(); + waitPage = null; + } + }); + } + }) + { IsBackground = true, Priority = System.Threading.ThreadPriority.AboveNormal }.Start(); }; btnClose.MouseUpEventHandler = (sender, e) => @@ -379,10 +498,10 @@ DB_ResidenceData.Instance.GlobalCurtainStatus = false; btnClose.IsSelected = true; btnOpen.IsSelected = false; - foreach (var f in FunctionList.List.curtains) + foreach (var f in FunctionList.List.GetCurtainList()) { - f.trait_on_off.curValue = "off"; - f.percent = 0; + f.trait_on_off.curValue = "off"; + f.SetAttrState(FunctionAttributeKey.Percent, "0"); Dictionary<string, string> d = new Dictionary<string, string>(); d.Add("on_off", f.trait_on_off.curValue.ToString()); Control.Ins.SendWriteCommand(f, d); @@ -393,3 +512,4 @@ } } } + -- Gitblit v1.8.0