From d4811b7d34b45ff6b21b97f11da128b5572ec526 Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期三, 03 三月 2021 16:03:03 +0800 Subject: [PATCH] 20210303-1 --- HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs | 367 ++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 254 insertions(+), 113 deletions(-) diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs b/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs index 1df2ad4..b3624ab 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; @@ -16,19 +17,54 @@ /// <param name="function"></param> public static void UpdataInfo(Function function) { - Application.RunOnMainThread(() => { + Application.RunOnMainThread((Action)(() => { if (bodyView == null) return; - UpdataFunctionOnCount(function.functionCategory,function.functionType); - UpdataCloseAllButton(function); - }); + try + { + 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 { @@ -46,9 +82,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++) @@ -63,25 +104,20 @@ 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; - } + case ShowFunction.FloorHeating: + btnText = FunctionList.List.floorHeatings.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count.ToString(); break; - case FunctionCategory.Curtain: - btnText = DB_ResidenceData.functionList.curtains.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count.ToString(); + case ShowFunction.AC: + btnText = FunctionList.List.aCs.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count.ToString(); break; - case FunctionCategory.Light: - btnText = DB_ResidenceData.functionList.lights.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count.ToString(); + case ShowFunction.Curtain: + btnText = FunctionList.List.curtains.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count.ToString(); break; - case FunctionCategory.Electrical: - btnText = DB_ResidenceData.functionList.electricals.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count.ToString(); + case ShowFunction.Light: + btnText = FunctionList.List.lights.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count.ToString(); + break; + case ShowFunction.Electric: + btnText = FunctionList.List.electricals.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count.ToString(); break; } btn.Text = btnText; @@ -91,25 +127,20 @@ 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; - } + case ShowFunction.FloorHeating: + openCount = FunctionList.List.floorHeatings.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; break; - case FunctionCategory.Curtain: - openCount = DB_ResidenceData.functionList.curtains.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count; + case ShowFunction.AC: + openCount = FunctionList.List.aCs.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; break; - case FunctionCategory.Light: - openCount = DB_ResidenceData.functionList.lights.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count; + case ShowFunction.Curtain: + openCount = FunctionList.List.curtains.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; break; - case FunctionCategory.Electrical: - openCount = DB_ResidenceData.functionList.electricals.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count; + case ShowFunction.Light: + openCount = FunctionList.List.lights.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; + break; + case ShowFunction.Electric: + openCount = FunctionList.List.electricals.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; break; } btn.IsSelected = openCount != 0; @@ -126,7 +157,7 @@ } catch (Exception ex) { - MainPage.Log($"鏇存柊鍏ㄥ叧鎸夐挳寮傚父 : {ex.Message}"); + MainPage.Log($"鏇存柊鍏ㄥ叧鎸夐挳寮傚父 : {ex.Message} "); } } /// <summary> @@ -139,7 +170,7 @@ if (bodyView.roomListView.GetChildren(i).GetType() == typeof(FrameLayout)) { var view1 = bodyView.roomListView.GetChildren(i) as FrameLayout; - if (!function.roomIdList.Contains(view1.Tag.ToString())) + if (!function.roomIds.Contains(view1.Tag.ToString())) continue; for (int j = 0; j < view1.ChildrenCount; j++) { @@ -148,24 +179,24 @@ var btn = view1.GetChildren(j) as Button; if (btn.Tag != null && btn.Tag.ToString() == "AllClose") { - if (function.trait_on_off.value.ToString() == "on") + if (function.trait_on_off.curValue.ToString() == "on") { btn.Visible = true; } else { - foreach (var rId in function.roomIdList) + foreach (var rId in function.roomIds) { - if(rId == null) + if (rId == null) { continue; } - var r = DB_ResidenceData.rooms.Find(s => s.sid == rId); - if(r == null) + var r = SpatialInfo.CurrentSpatial.RoomList.Find(s => s.roomId == rId); + if (r == null) { continue; } - var ssd = r.GetRoomFunctions(false).FindAll((obj) => obj.trait_on_off.value.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) { @@ -191,29 +222,33 @@ { Action action = () => { - foreach (var f in room.GetRoomFunctions(false)) + new System.Threading.Thread(() => { - if (f.functionCategory == FunctionCategory.Scene) + foreach (var f in room.GetRoomFunctions(false)) { - 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()); + Control.Ins.SendWriteCommand(f, d); } - f.trait_on_off.value = "off"; - //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.SendWriteCommand(f, d); - } + + foreach (var m in Music.A31MusicModel.A31MusicModelList) + { + if (m.roomIds.Contains(room.roomId)) + { + Music.SendMethod.Pause(m); + } + } + }) + { IsBackground = true }.Start(); + btn.Visible = false; }; - new PublicAssmebly().TipMsg(StringId.Tip, StringId.TipCloseAllFunctionInRoom, action); + new PublicAssmebly().TipOptionMsg(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") + if (f.trait_on_off.curValue.ToString() == "on") { btn.Visible = true; break; @@ -222,7 +257,7 @@ } catch (Exception ex) { - MainPage.Log($"load close all function : {ex.Message}"); + MainPage.Log($"load close all function : {ex.Message} "); } } @@ -242,7 +277,7 @@ { contentPageView.PageChange = (sender, e) => { - if(contentPageView.PageIndex == 0) + if (contentPageView.PageIndex == 0) { btnRoomTilte.IsSelected = true; btnRoomTilte.TextSize = CSS_FontSize.HeadlineFontSize; @@ -292,37 +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; - switch(functionCategory) - { - case ShowFunction.AC: - foreach(var f in DB_ResidenceData.functionList.aCs) - { - f.trait_on_off.value = btn.IsSelected ? "on" : "off"; - //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.SendWriteCommand(f, d); - } - break; - case ShowFunction.Curtain: - - break; - case ShowFunction.Light: - foreach (var f in DB_ResidenceData.functionList.lights) - { - f.trait_on_off.value = btn.IsSelected ? "on" : "off"; - //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.SendWriteCommand(f, d); - } - break; - } + var onoff = btn.IsSelected ? "on" : "off"; + 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(); }; } @@ -330,41 +452,59 @@ /// <summary> /// 绐楀笜鍏ㄥ紑鍏ㄥ叧 /// </summary> - void LoadEvent_CurtainSwitch(Button btnClose, Button btnOpen) + void LoadEvent_CurtainSwitch(Button btnClose, Button btnOpen,FrameLayout view) { btnOpen.MouseUpEventHandler = (sender, e) => { - if (btnOpen.IsSelected) - { - return; - } + DB_ResidenceData.Instance.GlobalCurtainStatus = true; btnOpen.IsSelected = true; btnClose.IsSelected = false; - foreach (var f in DB_ResidenceData.functionList.curtains) + var waitPage = new Loading(); + waitPage.BackgroundColor = 0x00000000; + view.AddChidren(waitPage); + waitPage.Start(""); + new System.Threading.Thread(() => { - f.trait_on_off.value = "on"; - //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.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) => { - if (btnClose.IsSelected) - { - return; - } + DB_ResidenceData.Instance.GlobalCurtainStatus = false; btnClose.IsSelected = true; btnOpen.IsSelected = false; - foreach (var f in DB_ResidenceData.functionList.curtains) + foreach (var f in FunctionList.List.curtains) { - f.trait_on_off.value = "off"; - //Control.Send(CommandType_A.write, f); - System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>(); - d.Add("on_off", f.trait_on_off.value.ToString()); - Control.SendWriteCommand(f, d); + f.trait_on_off.curValue = "off"; + f.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); } }; @@ -372,3 +512,4 @@ } } } + -- Gitblit v1.8.0