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/AC.cs | 571 ++++++++++++++++++++++++++++++++------------------------- 1 files changed, 321 insertions(+), 250 deletions(-) diff --git a/HDL_ON/Entity/Function/AC.cs b/HDL_ON/Entity/Function/AC.cs index 58a9824..9b76ee4 100644 --- a/HDL_ON/Entity/Function/AC.cs +++ b/HDL_ON/Entity/Function/AC.cs @@ -1,25 +1,11 @@ 锘縰sing System; -using System.Collections; using System.Collections.Generic; -using Newtonsoft.Json.Linq; +using Shared; namespace HDL_ON.Entity { public class AC : Function { - /* - * 绌鸿皟锛歵rait: [switch, mode, fan, temperature, swing, lock] - * 灞炴�� 鎻忚堪 - * on_off on/off - * mode mode: auto, cool, heat, dry, fan - * fan high, medium, low, auto - * temperature up,down,value - * swing up/down/left/right - * lock boolean (Lock閿佸畾鎺у埗) - */ - public AC() - { - } /// <summary> /// 褰撳墠娓╁害妯″紡 /// 0:鎽勬皬搴� @@ -30,7 +16,7 @@ /// <summary> /// 褰撳墠娓╁害妯″紡瀛楃 /// </summary> - public string curTempTypeString + public string tempUnitString { get { @@ -45,257 +31,250 @@ } } - ///// <summary> - ///// 褰撳墠绌鸿皟妯″紡 - ///// </summary> - //[Newtonsoft.Json.JsonIgnore] - //public string curMode = "cool"; - /// <summary> /// 褰撳墠妯″紡绱㈠紩 /// bus鎺у埗鍛戒护浣跨敤 /// </summary> - [Newtonsoft.Json.JsonIgnore] - public byte curModeIndex + public byte curModeIndex() { - get + try { - try - { - byte index = 0; - switch (trait_mode.curValues.ToString()) - { - case "auto": - index = 3; - break; - case "cool": - index = 0; - break; - case "heat": - index = 1; - break; - case "dry": - index = 4; - break; - case "fan": - index = 2; - break; - default: - index = 0; - break; - } - return index; - } - catch (Exception ex) - { - MainPage.Log($"get curModeIndex error : {ex.Message}"); - return 0; - } - } - set - { + string value = GetAttrState(FunctionAttributeKey.Mode); + byte index = 0; switch (value) { - case 0: - trait_mode.curValues = "cool"; + case "auto": + index = 3; break; - case 1: - trait_mode.curValues = "heat"; + case "cool": + index = 0; break; - case 2: - trait_mode.curValues = "fan"; + case "heat": + index = 1; break; - case 3: - trait_mode.curValues = "auto"; + case "dry": + index = 4; break; - case 4: - trait_mode.curValues = "dry"; + case "fan": + index = 2; break; default: - trait_mode.curValues = "cool"; + index = 0; break; - } + return index; + } + catch (Exception ex) + { + MainPage.Log($"get curModeIndex error : {ex.Message}"); + return 0; } } + + /// <summary> + /// 璁剧疆bus鍗忚妯″紡鏍囪 + /// </summary> + public void SetModeIndex(int index) + { + string value = "auto"; + switch (index) + { + case 3: + value = "auto"; + break; + case 0: + value = "cool"; + break; + case 1: + value = "heat"; + break; + case 4: + value = "dry"; + break; + case 2: + value = "fan"; + break; + } + SetAttrState(FunctionAttributeKey.Mode, value); + } + /// <summary> /// 褰撳墠椋庨�熺储寮� /// bus鎺у埗鍛戒护浣跨敤 /// </summary> - [Newtonsoft.Json.JsonIgnore] - public byte curFanIndex + public byte curFanIndex() { - get + try { - try - { - byte index = 0; - switch (trait_fan.curValues.ToString()) - { - case "high": - index = 1; - break; - case "medium": - index = 2; - break; - case "low": - index = 3; - break; - case "auto": - index = 0; - break; - default: - index = 0; - break; - } - return index; - } - catch (Exception ex) - { - MainPage.Log($"get curFanIndex error : {ex.Message}"); - return 0; - } - } - set - { + string value = GetAttrState(FunctionAttributeKey.FanSpeed); + byte index = 0; switch (value) { - case 0: - trait_fan.curValues = "auto"; + case "high": + index = 1; break; - case 1: - trait_fan.curValues = "high"; + case "medium": + index = 2; break; - case 2: - trait_fan.curValues = "medium"; + case "low": + index = 3; break; - case 3: - trait_fan.curValues = "low"; + case "auto": + index = 0; break; default: - trait_fan.curValues = "high"; + index = 0; break; } + return index; + } + catch (Exception ex) + { + MainPage.Log($"get curFanIndex error : {ex.Message}"); + return 0; } } - Trait _trait_mode; + /// <summary> + /// 璁剧疆bus鍗忚椋庨�熸爣璁� + /// </summary> + public void SetFanIndex(int index) + { + string value = "high"; + switch (index) + { + case 1: + value = "high"; + break; + case 2: + value = "medium"; + break; + case 3: + value = "low"; + break; + case 0: + value = "auto"; + break; + } + SetAttrState(FunctionAttributeKey.FanSpeed, value); + } + + /* 鍘绘帀琛嶇敓灞炴�э紝閫氳繃base.GetAttrState 鏌ユ壘灞炴�т笌鐘舵�� + FunctionAttributes _trait_mode; + /// <summary> + /// 妯″紡灞炴�� + /// </summary> [Newtonsoft.Json.JsonIgnore] - public Trait trait_mode + public FunctionAttributes trait_mode { get { if (_trait_mode == null) { - _trait_mode = propertList.Find((obj) => obj.attri == "mode"); + _trait_mode = attributes.Find((obj) => obj.key == "mode"); //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂�� if (_trait_mode == null) { - _trait_mode = new Trait() + _trait_mode = new FunctionAttributes() { - attri = "mode", + key = "mode", value = new List<string> { "auto", "cool", "heat", "dry", "fan" }, max = 4, min = 0, }; } - _trait_mode.curValues = _trait_mode.value.Count > 0 ? _trait_mode.value[0] : ""; } + if (_trait_mode.curValue.ToString() == "{}") + _trait_mode.curValue = "cool"; return _trait_mode; } } - /// <summary> - /// 绌鸿皟妯″紡 - /// </summary> - [Newtonsoft.Json.JsonIgnore] - public List<string> modeList - { - get - { - try - { - return trait_mode.value; - } - catch (Exception ex) - { - MainPage.Log($"ac get mode error : {ex.Message}"); - return new List<string> { "auto", "cool", "heat", "dry", "fan" }; - } - } - } - Trait _trait_fan; + FunctionAttributes _trait_fan; [Newtonsoft.Json.JsonIgnore] - public Trait trait_fan { + public FunctionAttributes trait_fan + { get { if (_trait_fan == null) { - _trait_fan = propertList.Find((obj) => obj.attri == "fan"); + _trait_fan = attributes.Find((obj) => obj.key == "fan"); //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂�� if (_trait_fan == null) { - _trait_fan = new Trait() + _trait_fan = new FunctionAttributes() { - attri = "fan", + key = "fan", value = new List<string> { "high", "medium", "low", "auto" }, max = 3, min = 0, + curValue = "high" }; } - _trait_fan.curValues = _trait_fan.value.Count > 0 ? _trait_fan.value[0] : ""; } + if (_trait_fan.curValue.ToString() == "{}") + _trait_fan.curValue = "high"; return _trait_fan; } } - /// <summary> - /// 绌鸿皟椋庨�熸ā寮� - /// </summary> - [Newtonsoft.Json.JsonIgnore] - public List<string> fan_List - { - get - { - try - { - return trait_fan.value; - } - catch (Exception ex) - { - MainPage.Log($"ac get fan error : {ex.Message}"); - return new List<string> { "high", "medium", "low", "auto" }; - } - } - } + + 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; + } + double vv = 16; + Double.TryParse(_trait_temp.curValue.ToString(), out vv); + _trait_temp.curValue = Convert.ToInt32(vv); + return _trait_temp; + } + } - Trait _trait_swting; + FunctionAttributes _trait_swting; [Newtonsoft.Json.JsonIgnore] - public Trait trait_swting + public FunctionAttributes trait_swting { get { if (_trait_swting == null) { - _trait_swting = propertList.Find((obj) => obj.attri == "swting"); + _trait_swting = attributes.Find((obj) => obj.key == "swting"); //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂�� if (_trait_swting == null) { - _trait_swting = new Trait() + _trait_swting = new FunctionAttributes() { - attri = "swting", + key = "swting", value = new List<string> { "up", "down", "left", "right" }, max = 3, min = 0, }; } - _trait_swting.curValues = _trait_swting.value.Count > 0 ? _trait_swting.value[trait_mode.min] : ""; } + if (_trait_swting.curValue.ToString() == "{}") + _trait_swting.curValue = "up"; return _trait_swting; } } @@ -309,7 +288,6 @@ { try { - return trait_swting.value; } catch (Exception ex) @@ -319,112 +297,205 @@ } } } + 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; + } + var vv = Convert.ToDouble(_trait_IndoorTemp.curValue); + _trait_IndoorTemp.curValue = Convert.ToInt32(vv); + return _trait_IndoorTemp; + } + } + */ /// <summary> /// 褰撳墠妯″紡鐨刬con璺緞 /// </summary> - [Newtonsoft.Json.JsonIgnore] - public string curModeImage + /// <param name="lightingIcon">鑾峰彇鐨勫浘鏍囩被鍨嬶紝榛樿鏄偣浜�</param> + /// <returns></returns> + public string GetModeIconPath(bool lightingIcon = true) { - get + var value = GetAttrState(FunctionAttributeKey.Mode); + var imagePath = "FunctionIcon/AC/CoolIcon.png"; + if (lightingIcon) { - try + switch (value) { - var imagePath = "FunctionIcon/AC/CoolIcon.png"; - switch (trait_mode.curValues.ToString()) - { - case "auto": - imagePath = "FunctionIcon/AC/AutoIcon.png"; - break; - case "cool": - imagePath = "FunctionIcon/AC/CoolIcon.png"; - break; - case "heat": - imagePath = "FunctionIcon/AC/HeatingIcon.png"; - break; - case "dry": - imagePath = "FunctionIcon/AC/DehumidificationIcon.png"; - break; - case "fan": - imagePath = "FunctionIcon/AC/AirSupplyIcon.png"; - break; - default: - imagePath = "FunctionIcon/AC/CoolIcon.png"; - break; - } - return imagePath; - } - catch (Exception ex) - { - MainPage.Log($"ac ge curModeImage error : {ex.Message}"); - return "FunctionIcon/AC/CoolIcon.png"; + case "auto": + imagePath = "FunctionIcon/AC/AutoIcon.png"; + break; + case "cool": + imagePath = "FunctionIcon/AC/CoolIcon.png"; + break; + case "heat": + imagePath = "FunctionIcon/AC/HeatingIcon.png"; + break; + case "dry": + imagePath = "FunctionIcon/AC/DehumidificationIcon.png"; + break; + case "fan": + imagePath = "FunctionIcon/AC/AirSupplyIcon.png"; + break; + default: + imagePath = "FunctionIcon/AC/CoolIcon.png"; + break; } } + else + { + imagePath = "FunctionIcon/AC/AutoIconGray.png"; + switch (value) + { + case "auto": + imagePath = "FunctionIcon/AC/AutoIconGray.png"; + break; + case "cool": + imagePath = "FunctionIcon/AC/CoolIconGray.png"; + break; + case "heat": + imagePath = "FunctionIcon/AC/HeatingIconGray.png"; + break; + case "dry": + imagePath = "FunctionIcon/AC/DehumidificationIconGray.png"; + break; + case "fan": + imagePath = "FunctionIcon/AC/AirSupplyIconGray.png"; + break; + } + } + return imagePath; } + /// <summary> /// 褰撳墠椋庨�熺殑icon璺緞 /// </summary> - [Newtonsoft.Json.JsonIgnore] - public string curFanImage + /// <param name="lightingIcon">鑾峰彇鐨勫浘鏍囩被鍨嬶紝榛樿鏄偣浜�</param> + /// <returns></returns> + public string GetFanIconPath(bool lightingIcon = true) { - get + string value = GetAttrState(FunctionAttributeKey.FanSpeed); + var imagePath = "FunctionIcon/AC/WindHighIcon.png"; + if (lightingIcon) { - try + switch (value) { - var imagePath = "FunctionIcon/AC/WindHighIcon.png"; - switch (trait_fan.curValues.ToString()) - { - case "high": - imagePath = "FunctionIcon/AC/WindHighIcon.png"; - break; - case "medium": - imagePath = "FunctionIcon/AC/WindMediumIcon.png"; - break; - case "low": - imagePath = "FunctionIcon/AC/WindLowIcon.png"; - break; - case "auto": - imagePath = "FunctionIcon/AC/AutoIcon.png"; - break; - default: - imagePath = "FunctionIcon/AC/WindHighIcon.png"; - break; - } - return imagePath; - }catch (Exception ex) - { - MainPage.Log($"ac get curFanImage error : {ex.Message}"); - return "FunctionIcon/AC/WindHighIcon.png"; + case "high": + imagePath = "FunctionIcon/AC/WindHighIcon.png"; + break; + case "medium": + imagePath = "FunctionIcon/AC/WindMediumIcon.png"; + break; + case "low": + imagePath = "FunctionIcon/AC/WindLowIcon.png"; + break; + case "auto": + imagePath = "FunctionIcon/AC/AutoIcon.png"; + break; } } + else + { + switch (value) + { + case "high": + imagePath = "FunctionIcon/AC/WindHighIconGray.png"; + break; + case "medium": + imagePath = "FunctionIcon/AC/WindMediumIconGray.png"; + break; + case "low": + imagePath = "FunctionIcon/AC/WindLowIconGray.png"; + break; + case "auto": + imagePath = "FunctionIcon/AC/AutoIconGray.png"; + break; + } + } + + return imagePath; } + + /// <summary> - /// 鎷兼帴銆佽幏鍙朅鍗忚鎿嶄綔鏁版嵁 + /// 鑾峰彇妯″紡灞炴�ф枃鏈� /// </summary> - public override JObject GetSendJObject(CommandType_A command) + /// <returns></returns> + public string GetModeAttrText(string value) { - var sendJob = new JObject(); - if (command == CommandType_A.write) + string text = ""; + switch (value) { - sendJob = new JObject { { "Namespace", vendor_code }, { "Command", command.ToString() }, { "Type", "device" } }; - JObject data = new JObject {{ "sid", sid } }; - sendJob.Add("objects", data); + #region 妯″紡 + case "auto": + text = Language.StringByID(StringId.Auto); + break; + case "cool": + text = Language.StringByID(StringId.Cool); + break; + case "heat": + text = Language.StringByID(StringId.Heat); + break; + case "dry": + text = Language.StringByID(StringId.Dry); + break; + case "fan": + text = Language.StringByID(StringId.AirSupply); + break; + #endregion } - 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; + return text; } - + /// <summary> + /// 鑾峰彇椋庨�熷睘鎬ф枃鏈� + /// </summary> + /// <returns></returns> + public string GetFanAttrText(string value) + { + string text = ""; + switch (value) + { + #region 椋庨�� + case "high": + text = Language.StringByID(StringId.HighWindSpeed); + break; + case "medium": + text = Language.StringByID(StringId.MiddleWindSpeed); + break; + case "low": + text = Language.StringByID(StringId.LowWindSpeed); + break; + case "auto": + text = Language.StringByID(StringId.Auto); + break; + #endregion + } + return text; + } } } -- Gitblit v1.8.0