wei
2020-11-27 e53a1951d6aa07ad22aad9816da4703496fcbccd
HDL_ON/Entity/Function/Function.cs
@@ -54,7 +54,7 @@
        /// 如:是AC功能:特性:on_off,mode,fan,temperature
        /// attri
        /// </summary>
        public List<Trait> function = new List<Trait>();
        public List<FunctionAttributes> function = new List<FunctionAttributes>();
        /// <summary>
        /// 房间ID列表
@@ -145,27 +145,27 @@
        [Newtonsoft.Json.JsonIgnore]
        public string lastState = "";
        Trait _trait_on_off;
        FunctionAttributes _trait_on_off;
        [Newtonsoft.Json.JsonIgnore]
        public Trait trait_on_off
        public FunctionAttributes trait_on_off
        {
            get
            {
                if (_trait_on_off == null)
                {
                    _trait_on_off = function.Find((obj) => obj.name == "on_off");
                    _trait_on_off = function.Find((obj) => obj.key == "on_off");
                    //找不到属性需要声明一个,防止报错闪退
                    if (_trait_on_off == null)
                    {
                        _trait_on_off = new Trait()
                        _trait_on_off = new FunctionAttributes()
                        {
                            name = "on_off",
                            value_key = new List<string> { "on", "off" },
                            key = "on_off",
                            value = new List<string> { "on", "off" },
                            max = 1,
                            min = 0,
                        };
                    }
                    _trait_on_off.value = "on";
                    _trait_on_off.curValue = "on";
                }
                return _trait_on_off;
            }
@@ -313,16 +313,16 @@
    /// 功能属性
    /// 属性字段解析:attri :属性内容,value 属性的值,max 最大值 min 最小值
    /// </summary>
    public class Trait
    public class FunctionAttributes
    {
        /// <summary>
        /// 属性名称
        /// 属性键名
        /// </summary>
        public string name;
        public string key;
        /// <summary>
        /// 属性的值列表
        /// </summary>
        public List<string> value_key = new List<string>();
        public List<string> value = new List<string>();
        /// <summary>
        /// 最大值
        /// </summary>
@@ -340,7 +340,7 @@
        /// <summary>
        /// 当前值
        /// </summary>
        public object value = new object();
        public object curValue = new object();
        //----app自定义
@@ -358,7 +358,7 @@
                    return _uintString;
                }
                var us = "";
                switch (name)
                switch (key)
                {
                    case "temperature":
                    case "set_temperature":
@@ -383,7 +383,7 @@
            get
            {
                string text = "";
                switch (name)
                switch (key)
                {
                    case "on_off":
                        text = Language.StringByID(StringId.OnOff);
@@ -447,7 +447,7 @@
        /// </summary>
        public string GetCurValueText()
        {
            return GetValueText(value.ToString());
            return GetValueText(curValue.ToString());
        }
        /// <summary>
@@ -458,7 +458,7 @@
        {
            string text = "";
            value = value.Replace("{}", "");
            switch (name)
            switch (key)
            {
                case "on_off":
                    text = value == "on" ? Language.StringByID(StringId.On) : Language.StringByID(StringId.OFF);
@@ -469,7 +469,7 @@
                case "percent":
                    if (value == "")
                    {
                        this.value = this.min;
                        this.curValue = this.min;
                        text = this.min.ToString();
                    }
                    else
@@ -514,21 +514,21 @@
                            text = Language.StringByID(StringId.Timer);
                            break;
                        default:
                            if (this.value_key.Contains("cool"))
                            if (this.value.Contains("cool"))
                            {
                                this.value = "cool";
                                this.curValue = "cool";
                                text = Language.StringByID(StringId.Cool);
                            }
                            else if (this.value_key.Contains("day"))
                            else if (this.value.Contains("day"))
                            {
                                this.value = "day";
                                this.curValue = "day";
                                text = Language.StringByID(StringId.Day);
                            }
                            else
                            {
                                foreach (var v in this.value_key)
                                foreach (var v in this.value)
                                {
                                    this.value = v;
                                    this.curValue = v;
                                    text = GetCurValueText();
                                }
                            }
@@ -551,16 +551,16 @@
                            text = Language.StringByID(StringId.Auto);
                            break;
                        default:
                            if (this.value_key.Contains("low"))
                            if (this.value.Contains("low"))
                            {
                                this.value = "low";
                                this.curValue = "low";
                                text = Language.StringByID(StringId.LowWindSpeed);
                            }
                            else
                            {
                                foreach (var v in this.value_key)
                                foreach (var v in this.value)
                                {
                                    this.value = v;
                                    this.curValue = v;
                                    text = GetCurValueText();
                                }
                            }