wei
2020-12-16 dcf60777c9346ff058f06298d03173f0c53d1902
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);
                    //找不到属性需要声明一个,防止报错闪退
                    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);
                //找不到属性需要声明一个,防止报错闪退
                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");
                    //找不到属性需要声明一个,防止报错闪退
                    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;
            }
        }
    }