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 | 115 +++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 94 insertions(+), 21 deletions(-) diff --git a/HDL_ON/Entity/Function/Light.cs b/HDL_ON/Entity/Function/Light.cs index c6c9738..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 { @@ -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); //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂�� 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 } } -- Gitblit v1.8.0