11
wei
2021-02-23 d89a8ccb3d48d39f920b294c1966a3522ee8adbc
HDL_ON/Entity/Function/Function.cs
@@ -153,6 +153,23 @@
        /// attri
        /// </summary>
        public List<FunctionAttributes> attributes = new List<FunctionAttributes>();
        /// <summary>
        /// 功能状态列表
        /// </summary>
        public List<AttributesStatus> status = new List<AttributesStatus>();
        /// <summary>
        /// 获取状态值
        /// </summary>
        /// <returns></returns>
        public string GetStatusValus(string key)
        {
            var d = status.Find((obj) => obj.key == key);
            if(d==null)
            {
                return null;
            }
            return d.value;
        }
        /// <summary>
        /// 房间ID列表
@@ -520,7 +537,7 @@
            acd.sid = sid;
            foreach (var dic in commandDictionary)
            {
                var aca = new AlinkControlAttributes();
                var aca = new AttributesStatus();
                aca.key = dic.Key;
                aca.value = dic.Value;
                acd.status.Add(aca);
@@ -542,7 +559,7 @@
            aaao.bus = this.bus;
            foreach (var kv in keyValues)
            {
                aaao.attributes.Add(new AlinkControlAttributes()
                aaao.attributes.Add(new AttributesStatus()
                {
                    key = kv.Key,
                    value = kv.Value,
@@ -568,7 +585,7 @@
        /// </summary>
        public string spk = "";
        public List<AlinkControlAttributes> attributes = new List<AlinkControlAttributes>();
        public List<AttributesStatus> attributes = new List<AttributesStatus>();
        //[Newtonsoft.Json.JsonIgnore]
        public BusData bus = new BusData();
    }
@@ -599,12 +616,12 @@
    public class AlinkControlData
    {
        public string sid = "";
        public List<AlinkControlAttributes> status = new List<AlinkControlAttributes>();
        public List<AttributesStatus> status = new List<AttributesStatus>();
    }
    /// <summary>
    /// a协议控制动作数据
    /// </summary>
    public class AlinkControlAttributes
    public class AttributesStatus
    {
        /// <summary>
        /// 属性名
@@ -649,13 +666,26 @@
        /// 当前值
        /// </summary>
        public object curValue = new object();
        ///// <summary>
        ///// curValue的翻译值,最坏的结果也只会返回string.Empty
        ///// </summary>
        //public string realValue
        //{
        //    get
        //    {
        //        var myValue = curValue.ToString();
        //        //沙雕定义的object类型
        //        if (myValue.Contains("{") == true) { return string.Empty; }
        //        return myValue;
        //    }
        //}
    }
    /// <summary>
    /// 功能属性键名列表
    /// </summary>
    public static class FunctionAttributeKey
    {
        public const string _null = "";
        /// <summary>
        /// 开关
        /// </summary>
@@ -704,6 +734,17 @@
        /// value
        /// </summary>
        public const string Value = "value";
        /// <summary>
        /// 状态,传感器
        /// </summary>
        public const string Status = "status";
        #region tuya
        /// <summary>
        /// 涂鸦水阀开启时间
        /// </summary>
        public const string TuyaWaterTime = "countdown_1";
        #endregion
    }
    /// <summary>
    /// 设备功能oid
@@ -878,7 +919,59 @@
        /// <summary>
        /// 家电、风扇
        /// </summary>
        public const string ElectricFan = "electrical.fan";
        public const string ElectricFan = "electrical.fan";
        /// <summary>
        /// 家电、涂鸦空气净化器
        /// </summary>
        public const string ElectricTuyaAirCleaner = "electrical.Q1RsefNf91tIXyyQ";
        /// <summary>
        /// 家电、涂鸦电风扇
        /// </summary>
        public const string ElectricTuyaFan = "electrical.tyqborgovyzytytz";
        /// <summary>
        /// 家电、涂鸦扫地机器人
        /// </summary>
        public const string ElectricTuyaWeepRobot = "electrical.ai6HtccKFIw3dxo3";
        /// <summary>
        /// 家电、涂鸦水阀
        /// </summary>
        public const string ElectricTuyaWaterValve = "electrical.koiGhMKwLf2ZP81g";
        /// <summary>
        /// 获取第三方设备spk
        /// </summary>
        /// <returns></returns>
        public static List<string> Get3tySpk(BrandType brandType)
        {
            var list = new List<string>();
            switch (brandType)
            {
                case BrandType.All3tyBrand:
                case BrandType.Tuya:
                    list.Add(ElectricTuyaAirCleaner);
                    list.Add(ElectricTuyaFan);
                    list.Add(ElectricTuyaWaterValve);
                    list.Add(ElectricTuyaWeepRobot);
                    break;
            }
            return list;
        }
        /// <summary>
        /// 第三方品牌列表
        /// </summary>
        public enum BrandType
        {
            All = 0,
            Hdl = 1,
            Tuya = 2,
            All3tyBrand = 999,
        }
    }
@@ -926,6 +1019,8 @@
        public const string Electric = "electrical";
        //Music = 0x09,
    }