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/FuntionControlView/Light/RGBPageBLL.cs |  131 +++++++++++++++++++++++--------------------
 1 files changed, 71 insertions(+), 60 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs b/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs
index 5da48b0..8281d85 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Light/RGBPageBLL.cs
@@ -48,8 +48,9 @@
                             //鑹茬洏鐨勫渾鐐归殣钘�
                             bodyView.btnWhiteRound.Visible = false;
                         }
-                        bodyView.btnCurColor.BackgroundColor = (uint)(0xFF000000 + bodyView.lightTemp.GetRGBcolor(updateTemp));
-                        if (bodyView.lightTemp.GetRGBcolor(updateTemp) == 16777215 && bodyView.btnCurColor.BorderColor != 0x00000000)
+                        bodyView.btnCurColor.BackgroundColor = (uint)(0xFF000000 + bodyView.lightTemp.GetRGBcolor(updateTemp.GetAttrState(FunctionAttributeKey.RGB)));
+                        bodyView.lastColor = bodyView.lightTemp.GetRGBbytes(updateTemp);
+                        if (bodyView.lightTemp.GetRGBcolor(updateTemp.GetAttrState(FunctionAttributeKey.RGB)) == 16777215 && bodyView.btnCurColor.BorderColor != 0x00000000)
                         {
                             bodyView.btnCurColor.BorderColor = CSS.CSS_Color.PromptingColor2;
                         }
@@ -88,6 +89,7 @@
         void LoadColorChangeEvent()
         {
             DateTime colorChangeTime = DateTime.MinValue;
+            //bool send = false;
 
             //褰撳墠鐐瑰嚮鐨勩�愮偣銆戞槸鍚︽纭�
             bool pointIsRight = false;
@@ -95,22 +97,22 @@
             int circleR = colorPicker.Width / 2 - Application.GetRealWidth(12);
 
             colorPicker.ColorChaged += (sender2, e2) => {
-                if (function.trait_on_off.curValue.ToString() == "off"
-                  || pointIsRight == false)
+                if (function.trait_on_off.curValue.ToString() == "off" || pointIsRight == false)
                 {
                     //pointIsRight:鐐圭殑鍖哄煙涓嶆槸鍦嗙洏鍐�
                     return;
                 }
-                if ((DateTime.Now - colorChangeTime).TotalMilliseconds > 200)
-                {
-                    lightTemp.SetRGBcolor(e2,function);
-                    colorChangeTime = DateTime.Now;
-                    System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
-                    d.Add(FunctionAttributeKey.RGB, lightTemp.GetRGBcolorString(function));
-                    Control.Ins.SendWriteCommand(function, d);
-                }
-
+                //if (send)
+                //{
+                    lastColor = e2;
+                //    send = false;
+                //}
             };
+            
+            //colorPicker.MouseUpEventHandler += (sender, e) => {
+            //    send = true;
+            //};
+
             colorPicker.MouseDownEventHandler += (sender, e) =>
             {
                 if (function.trait_on_off.curValue.ToString() == "off")
@@ -126,56 +128,62 @@
                 //鏄剧ず鐧界偣
                 btnWhiteRound.X = (int)e.X - btnWhiteRound.Width / 2;
                 btnWhiteRound.Y = (int)e.Y - btnWhiteRound.Height / 2;
-                if (btnWhiteRound.Visible == true)
-                {
-                    btnWhiteRound.Visible = false;
-                }
-            };
-            colorPicker.MouseUpEventHandler += (sender, e) =>
-            {
-                if (function.trait_on_off.curValue.ToString() == "off")
-                {
-                    return;
-                }
-                pointIsRight = this.CheckPoint(circleR, colorPicker.Width / 2, colorPicker.Height / 2, (int)e.X, (int)e.Y);
-                if (pointIsRight == false)
-                {
-                    //鐐圭殑鍖哄煙涓嶆槸鍦嗙洏鍐�
-                    return;
-                }
-                //鏄剧ず鐧界偣
-                btnWhiteRound.X = (int)e.X - btnWhiteRound.Width / 2;
-                btnWhiteRound.Y = (int)e.Y - btnWhiteRound.Height / 2;
                 if (btnWhiteRound.Visible == false)
                 {
                     btnWhiteRound.Visible = true;
                 }
             };
-
-
-
+           
             colorPicker.MouseMoveEventHandler += (sender, e) =>
             {
                 //褰撻紶鏍囩偣涓嬩簨浠跺鐞�
-                if (function.trait_on_off.curValue.ToString() == "off")
-                {
-                    return;
-                }
-                pointIsRight = this.CheckPoint(circleR, colorPicker.Width / 2, colorPicker.Height / 2, (int)e.X, (int)e.Y);
-                if (pointIsRight == false)
-                {
-                    //鐐圭殑鍖哄煙涓嶆槸鍦嗙洏鍐�
-                    return;
-                }
-                //鏄剧ず鐧界偣
-                btnWhiteRound.X = (int)e.X - btnWhiteRound.Width / 2;
-                btnWhiteRound.Y = (int)e.Y - btnWhiteRound.Height / 2;
-                if (btnWhiteRound.Visible == false)
-                {
-                    btnWhiteRound.Visible = true;
-                }
-                btnCurColor.BackgroundColor = (uint)(0xFF000000 + lightTemp.GetRGBcolor(function));
+                colorPicker.MouseDownEventHandler(sender, e);
+                //if (function.trait_on_off.curValue.ToString() == "off")
+                //{
+                //    return;
+                //}
+                //pointIsRight = this.CheckPoint(circleR, colorPicker.Width / 2, colorPicker.Height / 2, (int)e.X, (int)e.Y);
+                //if (pointIsRight == false)
+                //{
+                //    //鐐圭殑鍖哄煙涓嶆槸鍦嗙洏鍐�
+                //    return;
+                //}
+                ////鏄剧ず鐧界偣
+                //btnWhiteRound.X = (int)e.X - btnWhiteRound.Width / 2;
+                //btnWhiteRound.Y = (int)e.Y - btnWhiteRound.Height / 2;
+                //if (btnWhiteRound.Visible == false)
+                //{
+                //    btnWhiteRound.Visible = true;
+                //}
+                //btnCurColor.BackgroundColor = (uint)(0xFF000000 + lightTemp.GetRGBcolor(function));
             };
+
+            var colorChangeEvent = new System.Threading.Thread(() => {
+                while (this.Parent != null)
+                {
+                    if (function.trait_on_off.curValue.ToString() == "off" || pointIsRight == false)
+                    {
+                        //pointIsRight:鐐圭殑鍖哄煙涓嶆槸鍦嗙洏鍐�
+                        continue;
+                    }
+
+                    for (int i = 0; i < 3; i++)
+                    {
+                        if (lightTemp.GetRGBbytes(function)[i].ToString() != lastColor[i].ToString())
+                        {
+                            function.SetAttrState(FunctionAttributeKey.RGB, lastColor);
+                            lightTemp.SetRGBcolor(lastColor, function);
+                            System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
+                            d.Add(FunctionAttributeKey.RGB, lightTemp.GetRGBcolorString(function));
+                            Control.Ins.SendWriteCommand(function, d,false,0);
+                            break;
+                        }
+                    }
+                    System.Threading.Thread.Sleep(200);
+                }
+            });
+            colorChangeEvent.IsBackground = true;
+            colorChangeEvent.Start();
         }
 
         /// <summary>
@@ -206,8 +214,8 @@
                 function.SetAttrState(FunctionAttributeKey.Brightness, dimmerBar.Progress);
                 System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
                 d.Add(FunctionAttributeKey.Brightness, dimmerBar.Progress.ToString());
+               
                 Control.Ins.SendWriteCommand(function, d);
-                function.SetAttrState(FunctionAttributeKey.FadeTime, barFadeTime.Progress);
             };
             dimmerBar.OnProgressChangedEvent = (sender, e) => {
                 //function.fadeTime = 0;
@@ -252,11 +260,14 @@
         /// </summary>
         void LoadEvet_ChangeFadeTime()
         {
-            barFadeTime.OnStopTrackingTouchEvent = (sender, e) =>
+            if (function.GetAttribute(FunctionAttributeKey.FadeTime) != null)
             {
-                function.SetAttrState(FunctionAttributeKey.FadeTime, barFadeTime.Progress);
-                function.UpdataFuncitonInfo();
-            };
+                barFadeTime.OnStopTrackingTouchEvent = (sender, e) =>
+                {
+                    function.SetAttrState(FunctionAttributeKey.FadeTime, e.ToString());
+                    function.SaveFunctionFile();
+                };
+            }
         }
         /// <summary>
         /// 鍔犺浇寮�鍏充簨浠�
@@ -273,7 +284,6 @@
                     function.trait_on_off.curValue = btnSwitch.IsSelected ? "on" : "off";
                     System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
                     d.Add(FunctionAttributeKey.OnOff, function.trait_on_off.curValue.ToString());
-                    d.Add(FunctionAttributeKey.FadeTime, function.GetAttrState(FunctionAttributeKey.FadeTime));
                     if (btnSwitch.IsSelected)
                     {
                         if(function.lastBrightness == 0)
@@ -312,6 +322,7 @@
                 System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
                 d.Add(FunctionAttributeKey.RGB, lightTemp.GetRGBcolorString(function));
                 Control.Ins.SendWriteCommand(function, d);
+                lastColor = new byte[] { 255, 255, 255 };
             };
         }
 

--
Gitblit v1.8.0