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 | 403 +++++++++++++++++++++++++++++---------------------------- 1 files changed, 203 insertions(+), 200 deletions(-) diff --git a/HDL_ON/Entity/Function/Light.cs b/HDL_ON/Entity/Function/Light.cs index ac77986..0ddbb56 100644 --- a/HDL_ON/Entity/Function/Light.cs +++ b/HDL_ON/Entity/Function/Light.cs @@ -6,22 +6,8 @@ { 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] - public Trait trait_brightness; + FunctionAttributes trait_brightness; /// <summary> /// 浜害鍊� /// </summary> @@ -32,21 +18,36 @@ { if (trait_brightness == null) { - trait_brightness = function.Find((obj) => obj.attri == "brightness"); + trait_brightness = attributes.Find((obj) => obj.key == "brightness"); //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂�� if (trait_brightness == null) { - trait_brightness = new Trait() + trait_brightness = new FunctionAttributes() { - attri = "brightness", + key = "brightness", value = new List<string> { "up", "down" }, max = 100, min = 0, + curValue = 0, }; } - trait_brightness.curValues = trait_brightness.min; + if (trait_brightness.curValue.ToString() == "{}") + trait_brightness.curValue = 0; } - return Convert.ToInt32(trait_brightness.curValues); + 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 { @@ -54,22 +55,21 @@ { if (trait_brightness == null) { - trait_brightness = function.Find((obj) => obj.attri == "brightness"); + trait_brightness = attributes.Find((obj) => obj.key == "brightness"); //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂�� if (trait_brightness == null) { - trait_brightness = new Trait() + trait_brightness = new FunctionAttributes() { - attri = "brightness", + key = "brightness", value = new List<string> { "up", "down" }, max = 100, min = 0, + curValue = 0 }; } - trait_brightness.curValues = trait_brightness.min; } - trait_brightness.curValues = value; - MainPage.Log($"brightness 鏁版嵁鍒锋柊{value}."); + trait_brightness.curValue = value; } catch { @@ -77,208 +77,211 @@ } } } - - [Newtonsoft.Json.JsonIgnore] - public Trait trait_color; /// <summary> - /// RGB棰滆壊 - /// 255255255 + /// 涓婁竴娆℃墦寮�鐨勪寒搴� /// </summary> [Newtonsoft.Json.JsonIgnore] - public int color + public int lastBrightness = 100; + + int hadFadeTime = 99; + /// <summary> + /// 鏄惁鎷ユ湁娓愬彉鏃堕棿 + /// </summary> + public bool HadFadeTime { get { - if (trait_color == null) + if (hadFadeTime == 99) { - trait_color = function.Find((obj) => obj.attri == "color"); - //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂�� - if (trait_color == null) + var t = attributes.Find((obj) => obj.key == FunctionAttributeKey.FadeTime); + if (t == null) { - trait_color = new Trait() + 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 + { + get + { + if (trait_fadeTime == null) + { + trait_fadeTime = attributes.Find((obj) => obj.key == FunctionAttributeKey.FadeTime); + //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂�� + if (trait_fadeTime == null) + { + trait_fadeTime = new FunctionAttributes() { - attri = "color", - value = new List<string> { "FFFFFF" }, - max = 0xFFFFFF, - min = 0x000000, + key = FunctionAttributeKey.FadeTime, + value = new List<string> { "up", "down" }, + max = 10, + min = 0, + curValue = 0 }; } - trait_color.curValues = trait_color.min; } - return Convert.ToInt32(trait_color.curValues); + int result = 0; + int.TryParse(trait_fadeTime.curValue.ToString(), out result); + return result; } set { try { - trait_color.curValues = value; + 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 { - 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}"); } } } + #region RGB + /// <summary> + /// 鑾峰彇rgb棰滆壊 + /// </summary> + /// <returns></returns> + public int GetRGBcolor() + { + if (trait_color == null) + { + 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); + + int recolor = redColor * 256 * 256 + greenColor * 256 + blueColor; + + return recolor; + } + /// <summary> + /// 鑾峰彇rgb 鎺у埗瀛楃涓� + /// </summary> + /// <returns></returns> + public string GetRGBcolorString() + { + return redColor + "," + greenColor + "," + blueColor; + } /// <summary> - /// 鎷兼帴銆佽幏鍙朅鍗忚鎿嶄綔鏁版嵁 + /// 璁剧疆rgb棰滆壊 /// </summary> - public override JObject GetSendJObject(CommandType_A command ) + public void SetRGBcolor(byte[] color) { - var sendJob = new JObject(); - if (command == CommandType_A.write) - { - sendJob = new JObject { { "vendor_code", vendor_code }, { "command", command.ToString() }, { "type", "device" } }; - JObject data = new JObject { { "sid", sid } }; - sendJob.Add("objects", data); - List<ControlData> controlData = new List<ControlData>(); - switch (functionType) - { - case FunctionType.Relay: - controlData.Add(new ControlData() - { - name = "on_off", - data_type = "Bool", - value = on_off - }); - break; - case FunctionType.Dimmer: - controlData.Add(new ControlData() - { - name = "on_off", - data_type = "Bool", - value = on_off - }); - controlData.Add(new ControlData() - { - name = "brightness", - data_type = "int", - value = brightness.ToString(), - }); - break; - case FunctionType.RGB: - controlData.Add(new ControlData() - { - name = "on_off", - data_type = "Bool", - value = on_off - }); - controlData.Add(new ControlData() - { - name = "brightness", - data_type = "int", - value = brightness.ToString(), - }); - controlData.Add(new ControlData() - { - name = "color", - data_type = "int", - value = color.ToString(), - }); - break; - } - - AProtocolEntity ape = new AProtocolEntity() - { - command = command.ToString(), - vendor_code = vendor_code, - type = "device_sid", - }; - ape.ControlFunction(sid, controlData); - sendJob = JObject.FromObject(ape); - - } - 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; + redColor = color[0]; + greenColor = color[1]; + blueColor = color[2]; + trait_color.curValue = redColor + "," + greenColor + "," + blueColor; } - } + [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 + { + get + { + 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