From a023039e525469ef33bf0324d17d3e954e6b29d7 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期二, 16 三月 2021 17:54:20 +0800
Subject: [PATCH] 兼容温总的添加红外宝
---
HDL_ON/Entity/Function/Light.cs | 202 ++++++++++----------------------------------------
1 files changed, 40 insertions(+), 162 deletions(-)
diff --git a/HDL_ON/Entity/Function/Light.cs b/HDL_ON/Entity/Function/Light.cs
index 6d3c091..63d3f63 100644
--- a/HDL_ON/Entity/Function/Light.cs
+++ b/HDL_ON/Entity/Function/Light.cs
@@ -4,189 +4,67 @@
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(",");
+
+ 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();
- }
- 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(string command )
+ public void SetRGBcolor(byte[] color,Function function)
{
- var sendJob = new JObject();
- if (command == "write")
- {
-
- sendJob = new JObject { { "vendor_code", vendor_code }, { "Command", command }, { "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 == "read")
- {
- sendJob = new JObject { { "vendor_code", vendor_code }, { "Command", command }, { "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