From 02498f7744e6fdc413e518f96b25f3635540dc6b Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期二, 15 十一月 2022 11:27:38 +0800
Subject: [PATCH] 金茂科技系统更新

---
 HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs |  214 ++++++++++++++++++++++++++++++++++------------------
 1 files changed, 139 insertions(+), 75 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs
index 4e22ef5..ee30315 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Light/LightScene/AddLightScene.cs
@@ -342,6 +342,14 @@
     /// </summary>
     public class LightSceneEditDialog :Dialog
     {
+
+
+        Dictionary<string, string> d = new Dictionary<string, string>();
+        List<Function> listSwitch = new List<Function>();
+        List<Function> lightDimming = new List<Function>();
+        List<Function> lightCCT = new List<Function>();
+        List<Function> lightRGB = new List<Function>();
+
         /// <summary>
         /// 浼犲叆鐨勭伅鍏夊垪琛�
         /// 鍔犲叆鍦烘櫙鎺у埗鍔熻兘鍒楄〃
@@ -369,9 +377,14 @@
         {
             commandDic.Add(FunctionAttributeKey.OnOff, "off");
 
-            var hadDimming = lights.Find((obj) => obj.spk == SPK.LightDimming) != null;
-            var hadCCT = lights.Find((obj) => obj.spk == SPK.LightCCT) != null;
-            var hadRGB = lights.Find((obj) => obj.spk == SPK.LightRGB) != null;
+            listSwitch = lights.FindAll((obj) => obj.spk == SPK.LightSwitch);
+            lightDimming = lights.FindAll((obj) => obj.spk == SPK.LightDimming);
+            lightCCT = lights.FindAll((obj) => obj.spk == SPK.LightCCT);
+            lightRGB = lights.FindAll((obj) => obj.spk == SPK.LightRGB);
+
+            var hadDimming = lightDimming.Count > 0;
+            var hadCCT = lightCCT.Count > 0;
+            var hadRGB = lightRGB.Count > 0;
 
             var bodyView = new FrameLayout();
             this.AddChidren(bodyView);
@@ -426,7 +439,7 @@
             };
             titleView.AddChidren(btnEditIcon);
 
-                Action<string> callBack = (str) =>
+            Action<string> callBack = (str) =>
                 {
                     //鍚嶇О涓嶈兘涓虹┖
                     if (string.IsNullOrEmpty(str))
@@ -479,19 +492,19 @@
 
             var brightnessValue = 0;
             var cctValue = 27;
-            if(rgbLight!= null)
-            {
-                int.TryParse(rgbLight.status.Find((obj) => obj.key == FunctionAttributeKey.Brightness).value, out brightnessValue);
-            }
-            if (cctLight != null)
-            {
-                int.TryParse(cctLight.status.Find((obj) => obj.key == FunctionAttributeKey.Brightness).value, out brightnessValue);
-                int.TryParse(cctLight.status.Find((obj) => obj.key == FunctionAttributeKey.CCT).value, out cctValue);
-            }
-            if(dimmingLight!=null)
-            {
-                int.TryParse(cctLight.status.Find((obj) => obj.key == FunctionAttributeKey.CCT).value, out cctValue);
-            }
+            //if(rgbLight!= null)
+            //{
+            //    int.TryParse(rgbLight.status.Find((obj) => obj.key == FunctionAttributeKey.Brightness).value, out brightnessValue);
+            //}
+            //if (cctLight != null)
+            //{
+            //    int.TryParse(cctLight.status.Find((obj) => obj.key == FunctionAttributeKey.Brightness).value, out brightnessValue);
+            //    int.TryParse(cctLight.status.Find((obj) => obj.key == FunctionAttributeKey.CCT).value, out cctValue);
+            //}
+            //if(dimmingLight!=null)
+            //{
+            //    int.TryParse(cctLight.status.Find((obj) => obj.key == FunctionAttributeKey.CCT).value, out brightnessValue);
+            //}
 
 
             //灞炴�ц缃尯鍩�
@@ -561,12 +574,24 @@
                     btnClose.IsSelected = true;
                     btnOpen.IsSelected = false;
                     commandDic[FunctionAttributeKey.OnOff] = "off";
+                    d.Clear();
+                    d.Add(FunctionAttributeKey.OnOff, "off");
+                    foreach (var light in lights)
+                    {
+                        Control.Ins.SendWriteCommand(light, d);
+                    }
                 };
                 btnOpen.MouseUpEventHandler = (sender, e) =>
                 {
                     btnClose.IsSelected = false;
                     btnOpen.IsSelected = true;
                     commandDic[FunctionAttributeKey.OnOff] = "on";
+                    d.Clear();
+                    d.Add(FunctionAttributeKey.OnOff, "on");
+                    foreach (var light in lights)
+                    {
+                        Control.Ins.SendWriteCommand(light, d);
+                    }
                 };
 
             }
@@ -621,18 +646,18 @@
             contentView.AddChidren(bottomView);
             bottomView.AddChidren(new Button() { Height = 1, BackgroundColor = CSS_Color.DividingLineColor });
 
-            var btnSave = new Button()
+            var btnCacel = new Button()
             {
                 Width = Application.GetRealWidth(172),
                 Height = Application.GetRealHeight(44),
                 TextAlignment = TextAlignment.Center,
                 TextSize = CSS_FontSize.SubheadingFontSize,
                 TextColor = CSS_Color.TextualColor,
-                TextID = StringId.Save,
+                TextID = StringId.Cancel,
             };
-            bottomView.AddChidren(btnSave);
+            bottomView.AddChidren(btnCacel);
 
-            var btnComplete = new Button()
+            var btnSave = new Button()
             {
                 X = Application.GetRealWidth(172),
                 Width = Application.GetRealWidth(172),
@@ -641,75 +666,75 @@
                 TextColor = CSS_Color.MainBackgroundColor,
                 TextAlignment = TextAlignment.Center,
                 TextSize = CSS_FontSize.SubheadingFontSize,
-                TextID = StringId.Complete
+                TextID = StringId.Save
             };
-            bottomView.AddChidren(btnComplete);
+            bottomView.AddChidren(btnSave);
 
             //渚嬶細鍙充笅鍦嗚 澶у皬涓�50
             int mRectCornerID = HDLUtils.RectCornerBottomRight;
-            btnComplete.SetCornerWithSameRadius((uint)Application.GetRealWidth(14), mRectCornerID);
+            btnSave.SetCornerWithSameRadius((uint)Application.GetRealWidth(14), mRectCornerID);
 
 
 
-            btnComplete.MouseUpEventHandler = (sender, e) => {
+            btnCacel.MouseUpEventHandler = (sender, e) => {
                 this.Close();
 
-                var waitPage = new Loading();
-                MainPage.BaseView.AddChidren(waitPage);
-                waitPage.Start(Language.StringByID(StringId.PleaseWait));
+                //var waitPage = new Loading();
+                //MainPage.BaseView.AddChidren(waitPage);
+                //waitPage.Start(Language.StringByID(StringId.PleaseWait));
+                //new Thread(() =>
+                //{
+                //    try
+                //    {
+                //        foreach (var light in lights)
+                //        {
+                //            Dictionary<string, string> sendDate = new Dictionary<string, string>();
+                //            //璧嬪�煎満鏅姛鑳芥暟鎹�
+                //            foreach (var attr in light.GetAttributes())
+                //            {
+                //                if (commandDic.ContainsKey(attr))
+                //                {
+                //                    try
+                //                    {
+                //                        sendDate.Add(attr, commandDic[attr]);
+                //                    }
+                //                    catch { }
+                //                }
 
-                new Thread(() =>
-                {
-                    try
-                    {
-                        foreach (var light in lights)
-                        {
-                            Dictionary<string, string> sendDate = new Dictionary<string, string>();
-                            //璧嬪�煎満鏅姛鑳芥暟鎹�
-                            foreach (var attr in light.GetAttributes())
-                            {
-                                if (commandDic.ContainsKey(attr))
-                                {
-                                    try
-                                    {
-                                        sendDate.Add(attr, commandDic[attr]);
-                                    }
-                                    catch { }
-                                }
-
-                            }
-                                Control.Ins.SendWriteCommand(light, sendDate);
-                            Thread.Sleep(50);
-                        }
-                    }
-                    catch
-                    { }
-                    finally
-                    {
-                        Application.RunOnMainThread(() =>
-                        {
-                            waitPage.Hide();
-                            if (waitPage != null)
-                            {
-                                backAction(null);
-                                waitPage.RemoveFromParent();
-                            }
-                        });
-                    }
-                })
-                { IsBackground = true }.Start();
+                //            }
+                //                Control.Ins.SendWriteCommand(light, sendDate);
+                //            Thread.Sleep(50);
+                //        }
+                //    }
+                //    catch
+                //    { }
+                //    finally
+                //    {
+                //        Application.RunOnMainThread(() =>
+                //        {
+                //            waitPage.Hide();
+                //            new PublicAssmebly().TipMsgAutoClose("缁勫悎鎺у埗宸叉墽琛�", true);
+                //            if (waitPage != null)
+                //            {
+                //                //backAction(null);
+                //                waitPage.RemoveFromParent();
+                //            }
+                //        });
+                //    }
+                //})
+                //{ IsBackground = true }.Start();
             };
 
 
 
-            btnSave.MouseUpEventHandler += (sender, e) =>
+            btnSave.MouseUpEventHandler = (sender, e) =>
             {
                 if (string.IsNullOrEmpty(scene.name))
                 {
                     new Tip()
                     {
                         CloseTime = 1,
-                        Text = Language.StringByID(StringId.SceneNameCannotBeEmpty),
+                        Text = Language.StringByID(StringId.NameCannotBeEmpty),
                         Direction = AMPopTipDirection.None,
                     }.Show(bodyView);
                     return;
@@ -718,7 +743,7 @@
                 {
                     if (scene.name == tempRoom.name)
                     {
-                        new PublicAssmebly().TipMsg(StringId.Tip, StringId.SceneNameAlreadyExists);
+                        new PublicAssmebly().TipMsg(StringId.Tip, StringId.NameAlreadyExists);
                         return;
                     }
                 }
@@ -764,14 +789,17 @@
                         {
                             if (result == StateCode.SUCCESS)
                             {
-                                scene = serverScene;
+                                scene.userSceneId = serverScene.userSceneId;
                                 FunctionList.List.scenes.Add(scene);
-                                backAction(scene);
+                                backAction?.Invoke(scene);
                                 this.Close();
                             }
                             else
                             {
-                                IMessageCommon.Current.ShowErrorInfoAlter(result);
+                                if (result == "124005")
+                                    IMessageCommon.Current.ShowErrorInfoAlter(Language.StringByID(StringId.GatewayOffline));
+                                else
+                                    IMessageCommon.Current.ShowErrorInfoAlter(result);
                             }
                         });
                     }
@@ -868,6 +896,22 @@
             dimmerBar.OnStopTrackingTouchEvent = (sender, e) => {
                 commandDic[FunctionAttributeKey.Percent] = dimmerBar.Progress.ToString();
                 btnBrightnessText.Text = Language.StringByID(StringId.Brightness) + " " + e + "%";
+                
+                foreach (var light in lights)
+                {
+                    if (light.spk == SPK.LightSwitch)
+                    {
+                        d.Clear();
+                        d.Add(FunctionAttributeKey.OnOff, e > 0 ? "on" : "off");
+                        Control.Ins.SendWriteCommand(light, d);
+                    }
+                    else
+                    {
+                        d.Clear();
+                        d.Add(FunctionAttributeKey.Brightness, e.ToString());
+                        Control.Ins.SendWriteCommand(light, d);
+                    }
+                }
             };
 
 
@@ -969,6 +1013,16 @@
             barColorTemplatrue.OnStopTrackingTouchEvent = (sender, e) =>
             {
                 commandDic[FunctionAttributeKey.CCT] = (barColorTemplatrue.Progress*100).ToString();
+
+                d.Clear();
+                d.Add(FunctionAttributeKey.CCT, (barColorTemplatrue.Progress * 100).ToString());
+                foreach (var light in lightCCT)
+                {
+                    if (light.spk == SPK.LightCCT)
+                    {
+                        Control.Ins.SendWriteCommand(light, d);
+                    }
+                }
             };
             //鍙樻洿鑳屾櫙鍥剧殑Y杞村潗鏍�
             btnColorTemplatrueBack.Y = barColorTemplatrue.Y + (barColorTemplatrue.Height - btnColorTemplatrueBack.Height) / 2;
@@ -1053,7 +1107,17 @@
             //鍦嗙殑鍗婂緞(鑰冭檻杈圭晫,闇�瑕佽缃畠鐨勫崐寰勬瘮杈冨皬涓�鐐�)
             int circleR = colorPicker.Width / 2 - Application.GetRealWidth(12);
 
-
+            colorPicker.MouseUpEventHandler = (sender2, e) => {
+                d.Clear();
+                d.Add(FunctionAttributeKey.RGB, commandDic[FunctionAttributeKey.RGB]);
+                foreach (var light in lightCCT)
+                {
+                    if (light.spk == SPK.LightCCT)
+                    {
+                        Control.Ins.SendWriteCommand(light, d);
+                    }
+                }
+            };
             colorPicker.ColorChaged += (sender2, e2) => {
                 string rgbString = (e2[0] + "," + e2[1] + "," + e2[2]).ToString();
                 commandDic[FunctionAttributeKey.RGB] = rgbString;

--
Gitblit v1.8.0