From bb6ad792b598927a5459a5fb6f6c27fb1aa9e94e Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期四, 17 十二月 2020 14:06:36 +0800 Subject: [PATCH] 20201217-1 --- HDL_ON/Entity/Function/AC.cs | 268 +++++++++++++++++++++++++++++++---------------------- 1 files changed, 156 insertions(+), 112 deletions(-) diff --git a/HDL_ON/Entity/Function/AC.cs b/HDL_ON/Entity/Function/AC.cs index c9e5daa..a24c624 100644 --- a/HDL_ON/Entity/Function/AC.cs +++ b/HDL_ON/Entity/Function/AC.cs @@ -1,19 +1,17 @@ 锘縰sing System; -using System.Collections; using System.Collections.Generic; -using Newtonsoft.Json.Linq; namespace HDL_ON.Entity { public class AC : Function { /* - * 绌鸿皟锛歵rait: [switch, mode, fan, temperature, swing, lock] + * 绌鸿皟锛歵rait: [switch, mode, fan, set_temp, swing, lock] * 灞炴�� 鎻忚堪 * on_off on/off * mode mode: auto, cool, heat, dry, fan * fan high, medium, low, auto - * temperature up,down,value + * set_temp up,down,value * swing up/down/left/right * lock boolean (Lock閿佸畾鎺у埗) */ @@ -27,17 +25,29 @@ /// </summary> [Newtonsoft.Json.JsonIgnore] public int curTempType = 0; - /// <summary> - /// 褰撳墠绌鸿皟妯″紡 + /// 褰撳墠娓╁害妯″紡瀛楃 /// </summary> - [Newtonsoft.Json.JsonIgnore] - public string curMode = "cool"; + public string tempUnitString + { + get + { + if (curTempType == 0) + { + return "掳C"; + } + else + { + return "掳F"; + } + } + } /// <summary> /// 褰撳墠妯″紡绱㈠紩 /// bus鎺у埗鍛戒护浣跨敤 /// </summary> + [Newtonsoft.Json.JsonIgnore] public byte curModeIndex { get @@ -45,7 +55,7 @@ try { byte index = 0; - switch (curMode) + switch (trait_mode.curValue.ToString()) { case "auto": index = 3; @@ -79,22 +89,22 @@ switch (value) { case 0: - curMode = "cool"; + trait_mode.curValue = "cool"; break; case 1: - curMode = "heat"; + trait_mode.curValue = "heat"; break; case 2: - curMode = "fan"; + trait_mode.curValue = "fan"; break; case 3: - curMode = "auto"; + trait_mode.curValue = "auto"; break; case 4: - curMode = "dry"; + trait_mode.curValue = "dry"; break; default: - curMode = "cool"; + trait_mode.curValue = "cool"; break; } @@ -112,7 +122,7 @@ try { byte index = 0; - switch (curFan) + switch (trait_fan.curValue.ToString()) { case "high": index = 1; @@ -143,109 +153,145 @@ switch (value) { case 0: - curFan = "auto"; + trait_fan.curValue = "auto"; break; case 1: - curFan = "high"; + trait_fan.curValue = "high"; break; case 2: - curFan = "medium"; + trait_fan.curValue = "medium"; break; case 3: - curFan = "low"; + trait_fan.curValue = "low"; break; default: - curFan = "high"; + trait_fan.curValue = "high"; break; } } } + FunctionAttributes _trait_mode; /// <summary> - /// 绌鸿皟妯″紡 + /// 妯″紡灞炴�� /// </summary> [Newtonsoft.Json.JsonIgnore] - public List<string> mode + public FunctionAttributes trait_mode { get { - try + if (_trait_mode == null) { -//#if DEBUG -// return new List<string> { "cool", "heat", "dry", "fan", "auto"}; -//#endif - string b = ""; - dicPropert.TryGetValue("mode", out b); - if (b == "") + _trait_mode = attributes.Find((obj) => obj.key == "mode"); + //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂�� + if (_trait_mode == null) { - return new List<string> { "auto", "cool", "heat", "dry", "fan" }; + _trait_mode = new FunctionAttributes() + { + key = "mode", + value = new List<string> { "auto", "cool", "heat", "dry", "fan" }, + max = 4, + min = 0, + }; } - return new List<string>(b.Split(",")); + if (_trait_mode.curValue.ToString() == "{}") + _trait_mode.curValue = "cool"; } - catch (Exception ex) - { - MainPage.Log($"ac get mode error : {ex.Message}"); - return new List<string> { "auto", "cool", "heat", "dry", "fan" }; - } - } - set - { - try - { - dicPropert["mode"] = value.ToString(); - } - catch - { - MainPage.Log("mode 鏁版嵁鍒锋柊澶辫触."); - } + return _trait_mode; } } - /// <summary> - /// 褰撳墠绌鸿皟椋庨�� - /// </summary> + FunctionAttributes _trait_fan; [Newtonsoft.Json.JsonIgnore] - public string curFan = "high"; - - /// <summary> - /// 绌鸿皟椋庨�熸ā寮� - /// </summary> - [Newtonsoft.Json.JsonIgnore] - public List<string> fan + public FunctionAttributes trait_fan { get { - try + if (_trait_fan == null) { -//#if DEBUG -// return new List<string> { "high", "medium", "low", "auto" }; -//#endif - string b = ""; - dicPropert.TryGetValue("fan", out b); - if (b == "") + _trait_fan = attributes.Find((obj) => obj.key == "fan"); + //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂�� + if (_trait_fan == null) { - return new List<string> { "high", "medium", "low", "auto" }; + _trait_fan = new FunctionAttributes() + { + key = "fan", + value = new List<string> { "high", "medium", "low", "auto" }, + max = 3, + min = 0, + curValue = "high" + }; } - return new List<string>(b.Split(",")); + if (_trait_fan.curValue.ToString() == "{}") + _trait_fan.curValue = "high"; } - catch (Exception ex) - { - MainPage.Log($"ac get fan error : {ex.Message}"); - return new List<string> { "high", "medium", "low", "auto" }; - } + return _trait_fan; } } + + FunctionAttributes _trait_temp; /// <summary> /// 褰撳墠绌鸿皟娓╁害 /// </summary> [Newtonsoft.Json.JsonIgnore] - public int curTemp = 20; - // temperature up, down, value - // swing up/down/left/right + public FunctionAttributes trait_temp + { + get + { + if (_trait_temp == null) + { + _trait_temp = attributes.Find((obj) => obj.key == "set_temp"); + //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂�� + if (_trait_temp == null) + { + _trait_temp = new FunctionAttributes() + { + key = "set_temp", + value = new List<string> { }, + max = 32, + min = 16, + }; + } + if (_trait_temp.curValue.ToString() == "{}") + _trait_temp.curValue = 16; + } + //if (_trait_temp.curValue.ToString().Length > 3) + { + var vv = Convert.ToDouble(_trait_temp.curValue); + _trait_temp.curValue = Convert.ToInt32(vv); + } + return _trait_temp; + } + } + + FunctionAttributes _trait_swting; [Newtonsoft.Json.JsonIgnore] - public string curSwting; + public FunctionAttributes trait_swting + { + get + { + if (_trait_swting == null) + { + _trait_swting = attributes.Find((obj) => obj.key == "swting"); + //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂�� + if (_trait_swting == null) + { + _trait_swting = new FunctionAttributes() + { + key = "swting", + value = new List<string> { "up", "down", "left", "right" }, + max = 3, + min = 0, + }; + } + if (_trait_swting.curValue.ToString() == "{}") + _trait_swting.curValue = "up"; + } + return _trait_swting; + } + } /// <summary> - /// 绌鸿皟鎵妯″紡 + /// 绌鸿皟鎵妯″紡鍒楄〃 /// </summary> [Newtonsoft.Json.JsonIgnore] public List<string> swting @@ -254,16 +300,7 @@ { try { -#if DEBUG - return new List<string> { "up", "down", "left", "right" }; -#endif - string b = ""; - dicPropert.TryGetValue("swting", out b); - if (b == "") - { - return new List<string> { "up", "down", "left", "right" }; - } - return new List<string>(b.Split(",")); + return trait_swting.value; } catch (Exception ex) { @@ -272,11 +309,40 @@ } } } + FunctionAttributes _trait_IndoorTemp; /// <summary> /// 瀹ゅ唴娓╁害 /// </summary> [Newtonsoft.Json.JsonIgnore] - public int indoorTemp = 20; + public FunctionAttributes trait_IndoorTemp + { + get + { + if (_trait_IndoorTemp == null) + { + _trait_IndoorTemp = attributes.Find((obj) => obj.key == FunctionAttributeKey.IndoorTemp); + //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂�� + if (_trait_IndoorTemp == null) + { + _trait_IndoorTemp = new FunctionAttributes() + { + key = FunctionAttributeKey.IndoorTemp, + value = new List<string> { }, + max = 30, + min = 0, + }; + } + if (_trait_IndoorTemp.curValue.ToString() == "{}") + _trait_IndoorTemp.curValue = 0; + } + //if (_trait_IndoorTemp.curValue.ToString().Length > 3) + { + var vv = Convert.ToDouble(_trait_IndoorTemp.curValue); + _trait_IndoorTemp.curValue = Convert.ToInt32(vv); + } + return _trait_IndoorTemp; + } + } /// <summary> /// 褰撳墠妯″紡鐨刬con璺緞 @@ -289,7 +355,7 @@ try { var imagePath = "FunctionIcon/AC/CoolIcon.png"; - switch (curMode) + switch (trait_mode.curValue.ToString()) { case "auto": imagePath = "FunctionIcon/AC/AutoIcon.png"; @@ -330,7 +396,7 @@ try { var imagePath = "FunctionIcon/AC/WindHighIcon.png"; - switch (curFan) + switch (trait_fan.curValue.ToString()) { case "high": imagePath = "FunctionIcon/AC/WindHighIcon.png"; @@ -356,28 +422,6 @@ } } } - /// <summary> - /// 鎷兼帴銆佽幏鍙朅鍗忚鎿嶄綔鏁版嵁 - /// </summary> - public override JObject GetSendJObject(CommandType_A command) - { - var sendJob = new JObject(); - if (command == CommandType_A.write) - { - sendJob = new JObject { { "Namespace", vendor_code }, { "Command", command.ToString() }, { "Type", "device" } }; - JObject data = new JObject { { "openLevel", dicPropert["openLevel"] }, { "sid", sid } }; - sendJob.Add("objects", data); - } - else if (command == CommandType_A.read) - { - sendJob = new JObject { { "Namespace", vendor_code }, { "Command", command.ToString() }, { "Type", "device" } }; - var data = new JObject { { "sid", sid } }; - sendJob.Add("objects", data); - } - return sendJob; - } - - } } -- Gitblit v1.8.0