From dcf60777c9346ff058f06298d03173f0c53d1902 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期三, 16 十二月 2020 20:42:15 +0800
Subject: [PATCH] 20201216-4

---
 HDL_ON/Entity/Function/Light.cs |  188 +++++++++++++++++------------------------------
 1 files changed, 68 insertions(+), 120 deletions(-)

diff --git a/HDL_ON/Entity/Function/Light.cs b/HDL_ON/Entity/Function/Light.cs
index 48453e6..c6c9738 100644
--- a/HDL_ON/Entity/Function/Light.cs
+++ b/HDL_ON/Entity/Function/Light.cs
@@ -91,13 +91,13 @@
             {
                 if (trait_fadeTime == null)
                 {
-                    trait_fadeTime = attributes.Find((obj) => obj.key == "fade_time");
+                    trait_fadeTime = attributes.Find((obj) => obj.key == FunctionAttributeKey.FadeTime);
                     //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
                     if (trait_fadeTime == null)
                     {
                         trait_fadeTime = new FunctionAttributes()
                         {
-                            key = "fade_time",
+                            key = FunctionAttributeKey.FadeTime,
                             value = new List<string> { "up", "down" },
                             max = 10,
                             min = 0,
@@ -136,130 +136,78 @@
                 }
             }
         }
+        /// <summary>
+        /// 鑾峰彇rgb棰滆壊
+        /// </summary>
+        /// <returns></returns>
+        public int GetRGBcolor()
+        {
+            if (trait_color == null)
+            {
+                trait_color = attributes.Find((obj) => obj.key == FunctionAttributeKey.RGB);
+                //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
+                if (trait_color == null)
+                {
+                    trait_color = new FunctionAttributes()
+                    {
+                        key = "color",
+                        value = new List<string> { "255,255,255" },
+                        curValue = "255,255,255"
+                    };
+                }
+                if (trait_color.curValue.ToString() == "{}")
+                    trait_color.curValue = "255,255,255";
+                int.TryParse(trait_color.curValue.ToString().Split(",")[0], out redColor);
+                int.TryParse(trait_color.curValue.ToString().Split(",")[1], out greenColor);
+                int.TryParse(trait_color.curValue.ToString().Split(",")[2], out blueColor);
+            }
+
+            int recolor = redColor * 256 * 256 + greenColor * 256 + blueColor;
+
+            return recolor;
+        }
+        /// <summary>
+        /// 鑾峰彇rgb 鎺у埗瀛楃涓�
+        /// </summary>
+        /// <returns></returns>
+        public string GetRGBcolorString()
+        {
+            return redColor + "," + greenColor + "," + blueColor;
+        }
+
+        /// <summary>
+        /// 璁剧疆rgb棰滆壊
+        /// </summary>
+        public void SetRGBcolor(byte[] color)
+        {
+            redColor = color[0];
+            greenColor = color[1];
+            blueColor = color[2];
+        }
 
         [Newtonsoft.Json.JsonIgnore]
         public FunctionAttributes trait_color;
-        /// <summary>
-        /// RGB棰滆壊
-        /// 255255255
-        /// </summary>
-        [Newtonsoft.Json.JsonIgnore]
-        public int color
+        int redColor = 255;
+        int greenColor = 255;
+        int blueColor = 255;
+
+        public int RedColor {
+            get
+            {
+                return redColor;
+            }
+        }
+        public int GreenColor {
+            get
+            {
+                return greenColor;
+            }
+        }
+        public int BlueColor
         {
             get
             {
-                if (trait_color == null)
-                {
-                    trait_color = attributes.Find((obj) => obj.key == "color");
-                    //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
-                    if (trait_color == null)
-                    {
-                        trait_color = new FunctionAttributes()
-                        {
-                            key = "color",
-                            value = new List<string> { "FFFFFF" },
-                            max = 0xFFFFFF,
-                            min = 0x00000F,
-                            curValue = 0x00000F
-                        };
-                    }
-                    if (trait_color.curValue.ToString() == "{}")
-                        trait_color.curValue = 0x00000F;
-                }
-                return Convert.ToInt32(trait_color.curValue);
-            }
-            set
-            {
-                try
-                {
-                    trait_color.curValue = value;
-                }
-                catch
-                {
-                    MainPage.Log("color 鏁版嵁鍒锋柊澶辫触.");
-                }
-            }
-        }
-        [Newtonsoft.Json.JsonIgnore]
-        public int redColor
-        {
-            get {
-                try
-                {
-                    return color >> 16;
-                }
-                catch (Exception ex)
-                {
-                    MainPage.Log($"Get red color error : {ex.Message}");
-                    return 0;
-                }
-            }
-            set
-            {
-                try
-                {
-                    var rc = value << 16;
-                    color = rc + (color & 0xFFFF);
-                }
-                catch (Exception ex)
-                {
-                    MainPage.Log($"set red color error : {ex.Message}");
-                }
-            }
-        }
-        [Newtonsoft.Json.JsonIgnore]
-        public int greenColor
-        {
-            get
-            {
-                try
-                {
-                    return (color & 0xFFFF) >> 8;
-                }
-                catch (Exception ex)
-                {
-                    MainPage.Log($"Get green color error : {ex.Message}");
-                    return 0;
-                }
-            }
-            set
-            {
-                try
-                {
-                    var gc = value << 8;
-                    color = gc + (color & 0xFF00FF);
-                }
-                catch (Exception ex)
-                {
-                    MainPage.Log($"set green color error : {ex.Message}");
-                }
-            }
-        }
-        [Newtonsoft.Json.JsonIgnore]
-        public int blueColor
-        {
-            get
-            {
-                try
-                {
-                    return color & 0xFF;
-                }
-                catch (Exception ex)
-                {
-                    MainPage.Log($"Get blue color error : {ex.Message}");
-                    return 0;
-                }
-            }
-            set
-            {
-                try
-                {
-                    color = value + (color & 0xFFFF00);
-                }
-                catch (Exception ex)
-                {
-                    MainPage.Log($"set blue color error : {ex.Message}");
-                }
+                return blueColor;
             }
         }
     }

--
Gitblit v1.8.0