using System; using System.Collections.Generic; using Shared; namespace HDL_ON.Entity { public class AC : Function { /// /// 当前温度模式 /// 0:摄氏度 /// 1:华氏度 /// [Newtonsoft.Json.JsonIgnore] public int curTempType = 0; /// /// 当前温度模式字符 /// public string tempUnitString { get { if (curTempType == 0) { return "°C"; } else { return "°F"; } } } /// /// 当前模式索引 /// bus控制命令使用 /// public byte curModeIndex() { try { string value = GetAttrState(FunctionAttributeKey.Mode); byte index = 0; switch (value) { 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; } } /// /// 设置bus协议模式标记 /// 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); } /// /// 当前风速索引 /// bus控制命令使用 /// public byte curFanIndex() { try { string value = GetAttrState(FunctionAttributeKey.FanSpeed); byte index = 0; switch (value) { 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; } } /// /// 设置bus协议风速标记 /// 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; /// /// 模式属性 /// [Newtonsoft.Json.JsonIgnore] public FunctionAttributes trait_mode { get { if (_trait_mode == null) { _trait_mode = attributes.Find((obj) => obj.key == "mode"); //找不到属性需要声明一个,防止报错闪退 if (_trait_mode == null) { _trait_mode = new FunctionAttributes() { key = "mode", value = new List { "auto", "cool", "heat", "dry", "fan" }, max = 4, min = 0, }; } } if (_trait_mode.curValue.ToString() == "{}") _trait_mode.curValue = "cool"; return _trait_mode; } } FunctionAttributes _trait_fan; [Newtonsoft.Json.JsonIgnore] public FunctionAttributes trait_fan { get { if (_trait_fan == null) { _trait_fan = attributes.Find((obj) => obj.key == "fan"); //找不到属性需要声明一个,防止报错闪退 if (_trait_fan == null) { _trait_fan = new FunctionAttributes() { key = "fan", value = new List { "high", "medium", "low", "auto" }, max = 3, min = 0, curValue = "high" }; } } if (_trait_fan.curValue.ToString() == "{}") _trait_fan.curValue = "high"; return _trait_fan; } } FunctionAttributes _trait_temp; /// /// 当前空调温度 /// [Newtonsoft.Json.JsonIgnore] public FunctionAttributes trait_temp { get { if (_trait_temp == null) { _trait_temp = attributes.Find((obj) => obj.key == "set_temp"); //找不到属性需要声明一个,防止报错闪退 if (_trait_temp == null) { _trait_temp = new FunctionAttributes() { key = "set_temp", value = new List { }, 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; } } FunctionAttributes _trait_swting; [Newtonsoft.Json.JsonIgnore] public FunctionAttributes trait_swting { get { if (_trait_swting == null) { _trait_swting = attributes.Find((obj) => obj.key == "swting"); //找不到属性需要声明一个,防止报错闪退 if (_trait_swting == null) { _trait_swting = new FunctionAttributes() { key = "swting", value = new List { "up", "down", "left", "right" }, max = 3, min = 0, }; } } if (_trait_swting.curValue.ToString() == "{}") _trait_swting.curValue = "up"; return _trait_swting; } } /// /// 空调扫风模式列表 /// [Newtonsoft.Json.JsonIgnore] public List swting { get { try { return trait_swting.value; } catch (Exception ex) { MainPage.Log($"ac get swting error : {ex.Message}"); return new List { "up", "down", "left", "right" }; } } } FunctionAttributes _trait_IndoorTemp; /// /// 室内温度 /// [Newtonsoft.Json.JsonIgnore] public FunctionAttributes trait_IndoorTemp { get { if (_trait_IndoorTemp == null) { _trait_IndoorTemp = attributes.Find((obj) => obj.key == FunctionAttributeKey.IndoorTemp); //找不到属性需要声明一个,防止报错闪退 if (_trait_IndoorTemp == null) { _trait_IndoorTemp = new FunctionAttributes() { key = FunctionAttributeKey.IndoorTemp, value = new List { }, 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; } } */ /// /// 当前模式的icon路径 /// /// 获取的图标类型,默认是点亮 /// public string GetModeIconPath(bool lightingIcon = true) { var value = GetAttrState(FunctionAttributeKey.Mode); var imagePath = "FunctionIcon/AC/CoolIcon.png"; if (lightingIcon) { switch (value) { 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; } /// /// 当前风速的icon路径 /// /// 获取的图标类型,默认是点亮 /// public string GetFanIconPath(bool lightingIcon = true) { string value = GetAttrState(FunctionAttributeKey.FanSpeed); var imagePath = "FunctionIcon/AC/WindHighIcon.png"; if (lightingIcon) { switch (value) { 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; } /// /// 获取模式属性文本 /// /// public string GetModeAttrText(string value) { string text = ""; switch (value) { #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 } return text; } /// /// 获取风速属性文本 /// /// 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; } } }