From 6d73bf6e816570291865674bef8bce8972e4de3f Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期三, 01 十二月 2021 16:32:57 +0800 Subject: [PATCH] 2021-12-01-01 --- HDL_ON/Entity/Function/Light.cs | 270 +++++++++++++++--------------------------------------- 1 files changed, 75 insertions(+), 195 deletions(-) diff --git a/HDL_ON/Entity/Function/Light.cs b/HDL_ON/Entity/Function/Light.cs old mode 100755 new mode 100644 index c3ae4b8..021d510 --- a/HDL_ON/Entity/Function/Light.cs +++ b/HDL_ON/Entity/Function/Light.cs @@ -4,228 +4,108 @@ namespace HDL_ON.Entity { - public class Light : Function + public class Light { - /* - 鐏厜绫伙細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> - /// 浜害鍊� - /// </summary> - [Newtonsoft.Json.JsonIgnore] - public int brightness - { - get - { - if (trait_brightness == null) - { - trait_brightness = attributes.Find((obj) => obj.key == "brightness"); - //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂�� - if (trait_brightness == null) - { - trait_brightness = new FunctionAttributes() - { - key = "brightness", - value = new List<string> { "up", "down" }, - max = 100, - min = 0, - curValue = 0, - }; - } - if (trait_brightness.curValue.ToString() == "{}") - trait_brightness.curValue = 0; - } - 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 - { - try - { - if (trait_brightness == null) - { - trait_brightness = attributes.Find((obj) => obj.key == "brightness"); - //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂�� - if (trait_brightness == null) - { - trait_brightness = new FunctionAttributes() - { - key = "brightness", - value = new List<string> { "up", "down" }, - max = 100, - min = 0, - curValue = 0 - }; - } - } - trait_brightness.curValue = value; - } - catch - { - MainPage.Log("brightness 鏁版嵁鍒锋柊澶辫触."); - } - } - } - /// <summary> - /// 涓婁竴娆℃墦寮�鐨勪寒搴� - /// </summary> - [Newtonsoft.Json.JsonIgnore] - public int lastBrightness = 100; - [Newtonsoft.Json.JsonIgnore] - FunctionAttributes trait_fadeTime; - /// <summary> - /// 浜害鍊� - /// </summary> - [Newtonsoft.Json.JsonIgnore] - public int fadeTime - { - get - { - if (trait_fadeTime == null) - { - trait_fadeTime = attributes.Find((obj) => obj.key == FunctionAttributeKey.FadeTime); - //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂�� - if (trait_fadeTime == null) - { - trait_fadeTime = new FunctionAttributes() - { - key = FunctionAttributeKey.FadeTime, - value = new List<string> { "up", "down" }, - max = 10, - min = 0, - curValue = 0 - }; - } - } - int result = 0; - int.TryParse(trait_fadeTime.curValue.ToString(), out result); - return result; - } - set - { - try - { - if (trait_fadeTime == null) - { - trait_fadeTime = attributes.Find((obj) => obj.key == FunctionAttributeKey.FadeTime); - //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂�� - if (trait_fadeTime == null) - { - trait_fadeTime = new FunctionAttributes() - { - key = FunctionAttributeKey.FadeTime, - value = new List<string> { "up", "down" }, - max = 100, - min = 0, - curValue = 0 - }; - } - } - trait_fadeTime.curValue = value; - } - catch - { - } - } - } + #region RGB /// <summary> /// 鑾峰彇rgb棰滆壊 /// </summary> /// <returns></returns> - public int GetRGBcolor() + public int GetRGBcolor(string rgbString) { - if (trait_color == null) + //var color = function.GetAttrState(FunctionAttributeKey.RGB).Split(","); + //if(!string.IsNullOrEmpty(rgbString)) + //{ + var color = rgbString.Split(","); + //} + if(color.Length!= 3) { - 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); + color = new string[] {"255", "255", "255" }; } + int redColor = 0; + int greenColor = 0; + int blueColor = 0; + + int.TryParse(color[0], out redColor); + int.TryParse(color[1], out greenColor); + int.TryParse(color[2], out blueColor); int recolor = redColor * 256 * 256 + greenColor * 256 + blueColor; return recolor; } /// <summary> + /// 鑾峰彇rgb棰滆壊鏁扮粍 + /// </summary> + /// <param name="function"></param> + /// <returns></returns> + public byte[] GetRGBbytes(Function function) + { + var color = function.GetAttrState(FunctionAttributeKey.RGB).Split(","); + + if (color.Length != 3) + { + color = new string[] { "100", "100", "100" }; + } + byte redColor = 0; + byte greenColor = 0; + byte blueColor = 0; + + byte.TryParse(color[0], out redColor); + byte.TryParse(color[1], out greenColor); + byte.TryParse(color[2], out blueColor); + + return new byte[] { redColor, greenColor, blueColor }; + } + + /// <summary> /// 鑾峰彇rgb 鎺у埗瀛楃涓� /// </summary> /// <returns></returns> - public string GetRGBcolorString() + public string GetRGBcolorString(Function function) { - return redColor + "," + greenColor + "," + blueColor; + var color = function.GetAttrState(FunctionAttributeKey.RGB).Split(","); + return color[0] + "," + color[1] + "," + color[2]; + } + + /// <summary> + /// 鑾峰彇rgb棰滆壊 + /// </summary> + /// <param name="index">0:red 1:green 2:blue</param> + /// <returns></returns> + public int GetColor( int index,Function function) + { + int color = 0; + if (index <= 2) + { + try + { + int.TryParse(function.GetAttrState(FunctionAttributeKey.RGB).Split(",")[index], out color); + } + catch { } + } + return color; } /// <summary> /// 璁剧疆rgb棰滆壊 /// </summary> - public void SetRGBcolor(byte[] color) + public void SetRGBcolor(byte[] color,Function function) { - redColor = color[0]; - greenColor = color[1]; - blueColor = color[2]; + function.SetAttrState(FunctionAttributeKey.RGB, color[0] + "," + color[1] + "," + color[2]); } - [Newtonsoft.Json.JsonIgnore] - public FunctionAttributes trait_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 + /// <summary> + /// 璁剧疆鑹叉俯 + /// </summary> + /// <param name="cct"></param> + /// <param name="function"></param> + public void SetCCT(byte[] cct,Function function) { - get - { - return blueColor; - } + function.SetAttrState(FunctionAttributeKey.CCT, cct[0] * 256 + cct[1]); } + + #endregion + } } -- Gitblit v1.8.0