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 | 207 +++++++++++----------------------------------------
1 files changed, 44 insertions(+), 163 deletions(-)
diff --git a/HDL_ON/Entity/Function/Light.cs b/HDL_ON/Entity/Function/Light.cs
index e155396..65d6f5a 100644
--- a/HDL_ON/Entity/Function/Light.cs
+++ b/HDL_ON/Entity/Function/Light.cs
@@ -4,190 +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>
- [Newtonsoft.Json.JsonIgnore]
- public int brightness
+ /// <returns></returns>
+ public string GetRGBcolorString(Function function )
{
- get
- {
- string b = "0";
- dicPropert.TryGetValue("brightness", out b);
- return Convert.ToInt32(b == "" ? "0" : b);
- }
- set
- {
- try
- {
- dicPropert["brightness"] = value.ToString();
- MainPage.Log($"brightness 鏁版嵁鍒锋柊{value}.");
- }
- catch
- {
- MainPage.Log("brightness 鏁版嵁鍒锋柊澶辫触.");
- }
- }
+ var color = function.GetAttrState(FunctionAttributeKey.RGB).Split(",");
+ return color[0] + "," + color[1] + "," + color[2];
}
/// <summary>
- /// RGB棰滆壊
- /// 255255255
+ /// 鑾峰彇rgb棰滆壊
/// </summary>
- [Newtonsoft.Json.JsonIgnore]
- public string color
+ /// <param name="index">0:red 1:green 2:blue</param>
+ /// <returns></returns>
+ public int GetColor( int index,Function function)
{
- get
- {
- string c = "255255255";
- dicPropert.TryGetValue("color", out c);
- if (c.Length != 9)
- {
- dicPropert["color"] = "255255255";
- }
- return c.Length == 9 ? c : "255255255";
- }
- set
+ int color = 0;
+ if (index <= 2)
{
try
{
- dicPropert["color"] = value.ToString();
+ int.TryParse(function.GetAttrState(FunctionAttributeKey.RGB).Split(",")[index], out color);
}
- catch
- {
- MainPage.Log("color 鏁版嵁鍒锋柊澶辫触.");
- }
+ catch { }
}
+ return color;
}
- [Newtonsoft.Json.JsonIgnore]
- public byte redColor
- {
- get {
- try
- {
- return Convert.ToByte(color.Substring(0, 3));
- }
- catch (Exception ex)
- {
- MainPage.Log($"Get red color error : {ex.Message}");
- return 0;
- }
- }
- set
- {
- try
- {
- dicPropert["color"] = dicPropert["color"].ToString().Remove(0, 3).Insert(0, value.ToString().PadLeft(3, '0'));
- }
- catch (Exception ex)
- {
- MainPage.Log($"set red color error : {ex.Message}");
- }
- }
- }
- [Newtonsoft.Json.JsonIgnore]
- public byte greenColor
- {
- get
- {
- try
- {
- return Convert.ToByte(color.Substring(3, 3));
- }
- catch (Exception ex)
- {
- MainPage.Log($"Get green color error : {ex.Message}");
- return 0;
- }
- }
- set
- {
- try
- {
- dicPropert["color"] = dicPropert["color"].ToString().Remove(3, 3).Insert(3, value.ToString().PadLeft(3, '0'));
- }
- catch (Exception ex)
- {
- MainPage.Log($"set green color error : {ex.Message}");
- }
- }
- }
- [Newtonsoft.Json.JsonIgnore]
- public byte blueColor
- {
- get
- {
- try
- {
- return Convert.ToByte(color.Substring(6, 3));
- }
- catch (Exception ex)
- {
- MainPage.Log($"Get blue color error : {ex.Message}");
- return 0;
- }
- }
- set
- {
- try
- {
- dicPropert["color"] = dicPropert["color"].ToString().Remove(6, 3).Insert(6, value.ToString().PadLeft(3, '0'));
- }
- catch (Exception ex)
- {
- MainPage.Log($"set blue color error : {ex.Message}");
- }
- }
- }
-
/// <summary>
- /// 鎷兼帴銆佽幏鍙朅鍗忚鎿嶄綔鏁版嵁
+ /// 璁剧疆rgb棰滆壊
/// </summary>
- public override JObject GetSendJObject(CommandType_A command )
+ public void SetRGBcolor(byte[] color,Function function)
{
- var sendJob = new JObject();
- if (command == CommandType_A.write)
- {
-
- sendJob = new JObject { { "vendor_code", vendor_code }, { "Command", command.ToString() }, { "Type", "device" } };
- JObject data = null;
- switch (functionType)
- {
- case FunctionType.Relay:
- data = new JObject { { "sid", sid }, { "switch", on_off } };
- break;
- case FunctionType.Dimmer:
- data = new JObject { { "sid", sid }, { "brightness", brightness } };
- break;
- case FunctionType.RGB:
- data = new JObject { { "sid", sid }, { "brightness", brightness }, { "color", color } };
- break;
- }
- sendJob.Add("objects", data);
- }
- else if (command == CommandType_A.read)
- {
- sendJob = new JObject { { "vendor_code", vendor_code }, { "Command", command.ToString() }, { "Type", "device" } };
- var data = new JObject {{ "sid", sid } };
- sendJob.Add("objects", data);
- }
- return sendJob;
+ function.SetAttrState(FunctionAttributeKey.RGB, color[0] + "," + color[1] + "," + color[2]);
}
+
+ #endregion
+
}
}
--
Gitblit v1.8.0