From 2ae36ddb40d28c62b64a2fdd4c3033e7d65d5cfb Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期四, 04 三月 2021 15:20:29 +0800
Subject: [PATCH] 2021-0304-1

---
 HDL_ON/Entity/Function/Light.cs |  107 ++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 88 insertions(+), 19 deletions(-)

diff --git a/HDL_ON/Entity/Function/Light.cs b/HDL_ON/Entity/Function/Light.cs
index e611406..0ddbb56 100644
--- a/HDL_ON/Entity/Function/Light.cs
+++ b/HDL_ON/Entity/Function/Light.cs
@@ -6,20 +6,6 @@
 {
     public class Light : Function
     {
-        /*
-        鐏厜绫伙細trait: [switch,brightness,color,cct,delay,fadeTime]
-        灞炴��	鎻忚堪
-        switch	on/off;
-        brightness	0-100;
-        color	int (red (0-255) green (0-255) blue (0-255))
-        cct	int (warm light(0-255) cold light (0-255) )
-        delay	0-3600s
-        fadetime	0-3600s
-        */
-        public Light()
-        {
-        }
-
         [Newtonsoft.Json.JsonIgnore]
         FunctionAttributes trait_brightness;
         /// <summary>
@@ -48,7 +34,20 @@
                     if (trait_brightness.curValue.ToString() == "{}")
                         trait_brightness.curValue = 0;
                 }
-                return Convert.ToInt32(trait_brightness.curValue);
+                try
+                {
+                    string textValue = trait_brightness.curValue.ToString();
+                    if (textValue == string.Empty)
+                    {
+                        trait_brightness.curValue = 0;
+                    }
+                    return Convert.ToInt32(trait_brightness.curValue);
+                }
+                catch
+                {
+                    trait_brightness.curValue = 0;
+                    return 0;
+                }
             }
             set
             {
@@ -83,10 +82,44 @@
         /// </summary>
         [Newtonsoft.Json.JsonIgnore]
         public int lastBrightness = 100;
+
+        int hadFadeTime = 99;
+        /// <summary>
+        /// 鏄惁鎷ユ湁娓愬彉鏃堕棿
+        /// </summary>
+        public bool HadFadeTime
+        {
+            get
+            {
+                if (hadFadeTime == 99)
+                {
+                    var t = attributes.Find((obj) => obj.key == FunctionAttributeKey.FadeTime);
+                    if (t == null)
+                    {
+                        hadFadeTime = 0;
+                        return false;
+                    }
+                    else
+                    {
+                        hadFadeTime = 1;
+                        return true;
+                    }
+                }
+                if (hadFadeTime == 1)
+                {
+                    return true;
+                }
+                else
+                {
+                    return false;
+                }
+            }
+        }
+
         [Newtonsoft.Json.JsonIgnore]
         FunctionAttributes trait_fadeTime;
         /// <summary>
-        /// 浜害鍊�
+        /// 娓愬彉鏃堕棿
         /// </summary>
         [Newtonsoft.Json.JsonIgnore]
         public int fadeTime
@@ -140,6 +173,8 @@
                 }
             }
         }
+
+        #region RGB
         /// <summary>
         /// 鑾峰彇rgb棰滆壊
         /// </summary>
@@ -161,10 +196,10 @@
                 }
                 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.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;
 
@@ -187,6 +222,7 @@
             redColor = color[0];
             greenColor = color[1];
             blueColor = color[2];
+            trait_color.curValue = redColor + "," + greenColor + "," + blueColor;
         }
 
         [Newtonsoft.Json.JsonIgnore]
@@ -214,5 +250,38 @@
                 return blueColor;
             }
         }
+        #endregion
+
+        #region CCT
+        FunctionAttributes attr_CCT;
+        /// <summary>
+        /// 鑹叉俯
+        /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
+        public FunctionAttributes Attr_CCT
+        {
+            get
+            {
+                if(attr_CCT == null)
+                {
+                    attr_CCT = attributes.Find((obj) => obj.key == FunctionAttributeKey.CCT);
+                    if(attr_CCT== null)
+                    {
+                        attr_CCT = new FunctionAttributes()
+                        {
+                            key = FunctionAttributeKey.CCT,
+                            value = new List<string> (),
+                            max = 6500,
+                            min = 2700,
+                            curValue = 2700
+                        };
+                    }
+                }
+                var result = 2700;
+                int.TryParse(attr_CCT.curValue.ToString(), out result);
+                return attr_CCT;
+            }
+        }
+        #endregion
     }
 }

--
Gitblit v1.8.0