From 4d14154c36ac5692aadc036eed97fb9f1c410e2a Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期日, 23 五月 2021 14:46:03 +0800
Subject: [PATCH] Merge branch 'WJC' into temp-wxr
---
HDL_ON/Entity/Function/Light.cs | 285 +++++++++-----------------------------------------------
1 files changed, 47 insertions(+), 238 deletions(-)
diff --git a/HDL_ON/Entity/Function/Light.cs b/HDL_ON/Entity/Function/Light.cs
index 2092e93..65d6f5a 100644
--- a/HDL_ON/Entity/Function/Light.cs
+++ b/HDL_ON/Entity/Function/Light.cs
@@ -4,262 +4,71 @@
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()
+ #region RGB
+ /// <summary>
+ /// 鑾峰彇rgb棰滆壊
+ /// </summary>
+ /// <returns></returns>
+ public int GetRGBcolor(Function function )
{
+ var color = function.GetAttrState(FunctionAttributeKey.RGB).Split(",");
+
+ if(color.Length!= 3)
+ {
+ color = new string[] {"100", "100", "100" };
+ }
+ 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>
+ /// <returns></returns>
+ public string GetRGBcolorString(Function function )
+ {
+ var color = function.GetAttrState(FunctionAttributeKey.RGB).Split(",");
+ return color[0] + "," + color[1] + "," + color[2];
}
- [Newtonsoft.Json.JsonIgnore]
- FunctionAttributes trait_brightness;
/// <summary>
- /// 浜害鍊�
+ /// 鑾峰彇rgb棰滆壊
/// </summary>
- [Newtonsoft.Json.JsonIgnore]
- public int brightness
+ /// <param name="index">0:red 1:green 2:blue</param>
+ /// <returns></returns>
+ public int GetColor( int index,Function function)
{
- get
- {
- if (trait_brightness == null)
- {
- trait_brightness = function.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,
- };
- }
- trait_brightness.curValue = trait_brightness.min;
- }
- return Convert.ToInt32(trait_brightness.curValue);
- }
- set
+ int color = 0;
+ if (index <= 2)
{
try
{
- if (trait_brightness == null)
- {
- trait_brightness = function.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,
- };
- }
- trait_brightness.curValue = trait_brightness.min;
- }
- trait_brightness.curValue = value;
- MainPage.Log($"brightness 鏁版嵁鍒锋柊{value}.");
+ int.TryParse(function.GetAttrState(FunctionAttributeKey.RGB).Split(",")[index], out color);
}
- catch
- {
- MainPage.Log("brightness 鏁版嵁鍒锋柊澶辫触.");
- }
+ catch { }
}
+ return color;
}
- [Newtonsoft.Json.JsonIgnore]
- FunctionAttributes trait_fadeTime;
/// <summary>
- /// 浜害鍊�
+ /// 璁剧疆rgb棰滆壊
/// </summary>
- [Newtonsoft.Json.JsonIgnore]
- public int fadeTime
+ public void SetRGBcolor(byte[] color,Function function)
{
- get
- {
- if (trait_fadeTime == null)
- {
- trait_fadeTime = function.Find((obj) => obj.key == "fade_time");
- //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
- if (trait_fadeTime == null)
- {
- trait_fadeTime = new FunctionAttributes()
- {
- key = "fade_time",
- value = new List<string> { "up", "down" },
- max = 10,
- min = 0,
- };
- trait_fadeTime.curValue = 0;
- function.Add(trait_fadeTime);
- }
- }
- int result = 0;
- int.TryParse(trait_fadeTime.curValue.ToString(), out result);
- return result;
- }
- set
- {
- try
- {
- if (trait_fadeTime == null)
- {
- trait_fadeTime = function.Find((obj) => obj.key == "fade_time");
- //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
- if (trait_fadeTime == null)
- {
- trait_fadeTime = new FunctionAttributes()
- {
- key = "fade_time",
- value = new List<string> { "up", "down" },
- max = 100,
- min = 0,
- };
- trait_fadeTime.curValue = 0;
- function.Add(trait_fadeTime);
- }
- }
- trait_fadeTime.curValue = value;
- }
- catch
- {
- }
- }
+ function.SetAttrState(FunctionAttributeKey.RGB, color[0] + "," + color[1] + "," + color[2]);
}
- [Newtonsoft.Json.JsonIgnore]
- public FunctionAttributes trait_color;
- /// <summary>
- /// RGB棰滆壊
- /// 255255255
- /// </summary>
- [Newtonsoft.Json.JsonIgnore]
- public int color
- {
- get
- {
- if (trait_color == null)
- {
- trait_color = function.Find((obj) => obj.key == "color");
- //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
- if (trait_color == null)
- {
- trait_color = new FunctionAttributes()
- {
- key = "color",
- value = new List<string> { "FFFFFF" },
- max = 0xFFFFFF,
- min = 0x00000F,
- };
- }
- trait_color.curValue = trait_color.min;
- }
- 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}");
- }
- }
- }
+ #endregion
+
}
}
--
Gitblit v1.8.0