wei
2021-03-04 2ae36ddb40d28c62b64a2fdd4c3033e7d65d5cfb
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
            {
@@ -78,11 +77,49 @@
                }
            }
        }
        /// <summary>
        /// 上一次打开的亮度
        /// </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
@@ -115,13 +152,13 @@
                {
                    if (trait_fadeTime == null)
                    {
                        trait_fadeTime = attributes.Find((obj) => obj.key == "fade_time");
                        trait_fadeTime = attributes.Find((obj) => obj.key == FunctionAttributeKey.FadeTime);
                        //找不到属性需要声明一个,防止报错闪退
                        if (trait_fadeTime == null)
                        {
                            trait_fadeTime = new FunctionAttributes()
                            {
                                key = "fade_time",
                                key = FunctionAttributeKey.FadeTime,
                                value = new List<string> { "up", "down" },
                                max = 100,
                                min = 0,
@@ -136,6 +173,8 @@
                }
            }
        }
        #region RGB
        /// <summary>
        /// 获取rgb颜色
        /// </summary>
@@ -157,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;
@@ -183,6 +222,7 @@
            redColor = color[0];
            greenColor = color[1];
            blueColor = color[2];
            trait_color.curValue = redColor + "," + greenColor + "," + blueColor;
        }
        [Newtonsoft.Json.JsonIgnore]
@@ -210,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
    }
}