From fb49279fd0e36e1ed2bd7332eecee9f963c13649 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期日, 20 十二月 2020 19:33:29 +0800
Subject: [PATCH] 20201220-1

---
 HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs |  149 +++++++++++++++++++++++++++++++------------------
 1 files changed, 93 insertions(+), 56 deletions(-)

diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs b/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs
index db6eb88..5ef9e00 100644
--- a/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs
+++ b/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs
@@ -332,62 +332,76 @@
         /// <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)
+                var waitPage = new Loading();
+                view.AddChidren(waitPage);
+                waitPage.Start("");
+                new System.Threading.Thread(() =>
                 {
-                    case ShowFunction.AC:
-                        foreach (var f in FunctionList.List.aCs)
+                    try
+                    {
+                        switch (functionCategory)
                         {
-                            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);
+                            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;
                         }
-                        break;
-                    case ShowFunction.FloorHeating:
-                        foreach (var f in FunctionList.List.floorHeatings)
+                    }
+                    catch (Exception ex)
+                    {
+                        MainPage.Log($"{functionCategory}鍏ㄥ紑鍏ㄥ叧澶辫触:{ex.Message}");
+                    }
+                    finally
+                    {
+                        Application.RunOnMainThread(() =>
                         {
-                            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.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;
-                }
-
+                            waitPage.Hide();
+                            waitPage.RemoveFromParent();
+                        });
+                    }
+                })
+                { IsBackground = true, Priority = System.Threading.ThreadPriority.AboveNormal }.Start();
             };
         }
 
@@ -395,21 +409,44 @@
         /// <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();
+                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) =>

--
Gitblit v1.8.0