From 301d3f15ba03ff942c029bd4c0b1ff544f7cfede Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期三, 30 十二月 2020 11:19:48 +0800
Subject: [PATCH] 2020-12-30 1.解决RGB灯,色盘ColorPicker部分安卓手机,刷新图片时会变小问题

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

diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs b/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs
index 6645647..aa5e367 100644
--- a/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs
+++ b/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs
@@ -85,7 +85,7 @@
                                         }
                                         if (view3.Tag == null || view3.Tag.ToString() != functionCategory + "_View")
                                         {
-                                            MainPage.Log($"i={i}:j={j}:k={k} view3 tag : {view3.Tag.ToString()}");
+                                            //MainPage.Log($"i={i}:j={j}:k={k} view3 tag : {view3.Tag.ToString()}");
                                             continue;
                                         }
                                         for (var o = 0; o < view3.ChildrenCount; o++)
@@ -332,62 +332,120 @@
         /// <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.BackgroundColor = 0x00000000;
+                waitPage.Start("");
+                new System.Threading.Thread(() =>
                 {
-                    case ShowFunction.AC:
-                        foreach (var f in FunctionList.List.aCs)
+                    try
+                    {
+                        if (DB_ResidenceData.Instance.GatewayType == 0 && !Control.Ins.IsRemote)
                         {
-                            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);
+                            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;
+                            }
                         }
-                        break;
-                    case ShowFunction.FloorHeating:
-                        foreach (var f in FunctionList.List.floorHeatings)
+                        else
                         {
-                            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;
-                }
+                            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();
             };
         }
 
@@ -395,21 +453,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) =>

--
Gitblit v1.8.0