wei
2020-12-22 d07d62be7111d78b2aaa44c9cdee23a7d22b4dda
HDL_ON/Entity/Function/Function.cs
@@ -119,7 +119,7 @@
        /// bus协议数据格式
        /// 使用A协议控制时,改属性为空
        /// </summary>
        public BusData bus_Data;
        public BusData bus;
        /// <summary>
        /// 是否收藏
        /// </summary>
@@ -162,7 +162,7 @@
            {
                if (_trait_on_off == null)
                {
                    _trait_on_off = attributes.Find((obj) => obj.key == "on_off");
                    _trait_on_off = attributes.Find((obj) => obj.key == FunctionAttributeKey.OnOff);
                    //找不到属性需要声明一个,防止报错闪退
                    if (_trait_on_off == null)
                    {
@@ -173,8 +173,12 @@
                            max = 1,
                            min = 0,
                        };
                        _trait_on_off.curValue = "off";
                    }
                    _trait_on_off.curValue = "on";
                }
                if(_trait_on_off.curValue.ToString() != "on"&& _trait_on_off.curValue.ToString() != "off")
                {
                    _trait_on_off.curValue = "off";
                }
                return _trait_on_off;
            }
@@ -206,9 +210,9 @@
        public string GetBusId()
        {
            string busId = "";
            if (bus_Data != null)
            if (bus != null)
            {
                busId = bus_Data.SubnetID + "_" + bus_Data.DeviceID + "_" + bus_Data.loopId;
                busId = bus.SubnetID + "_" + bus.DeviceID + "_" + bus.LoopId;
            }
            return busId;
        }
@@ -231,11 +235,11 @@
                {
                    roomNameList += ",";
                }
                roomNameList += findRoom.floorName + findRoom.roomName;
                roomNameList += findRoom.floorName +"-"+ findRoom.roomName;
            }
            if (roomNameList == "" && functionType == FunctionType.Scene)
            {
                roomNameList = Language.StringByID(StringId.WholeHouseScene);
                roomNameList = Language.StringByID(StringId.WholeZone);
            }
            return roomNameList;
        }
@@ -286,17 +290,40 @@
            var sFunc = new SceneFunction();
            foreach (var attr in attributes)
            {
                if (attr.key == FunctionAttributeKey.SetTemp)
                switch (attr.key)
                {
                    var vv = Convert.ToDouble(attr.value);
                    sFunc.status.Add(new SceneFunctionStatus() { key = attr.key, value = Convert.ToInt32(vv).ToString() });
                    case FunctionAttributeKey.OnOff:
                    case FunctionAttributeKey.Brightness:
                    case FunctionAttributeKey.Mode:
                    case FunctionAttributeKey.SetTemp:
                    case FunctionAttributeKey.FanSpeed:
                    case FunctionAttributeKey.Percent:
                    //case FunctionAttributeKey.FadeTime:
                        if (attr.curValue.ToString() == "{}")
                        {
                            if (attr.key == FunctionAttributeKey.OnOff)
                            {
                                attr.curValue = "off";
                            }
                            else
                            {
                                attr.curValue = "0";
                            }
                        }
                        if (attr.key == FunctionAttributeKey.SetTemp)
                        {
                            double vv = 16;
                            Double.TryParse(attr.curValue.ToString(), out vv);
                            sFunc.status.Add(new SceneFunctionStatus() { key = attr.key, value = Convert.ToInt32(vv).ToString() });
                        }
                        else
                        {
                            sFunc.status.Add(new SceneFunctionStatus() { key = attr.key, value = attr.curValue.ToString() });
                        }
                        break;
                }
                else
                {
                    sFunc.status.Add(new SceneFunctionStatus() { key = attr.key, value = attr.curValue.ToString() });
                }
                sFunc.sid = this.sid;
            }
            sFunc.sid = this.sid;
            return sFunc;
        }
@@ -317,9 +344,9 @@
            var acd = new AlinkControlData();
            acd.sid = sid;
            var aca = new AlinkControlAttributes();
            foreach (var dic in commandDictionary)
            {
                var aca = new AlinkControlAttributes();
                aca.key = dic.Key;
                aca.value = dic.Value;
                acd.status.Add(aca);
@@ -338,6 +365,7 @@
            ApiAlinkControlActionObj aaao = new ApiAlinkControlActionObj();
            aaao.deviceId = this.deviceId;
            aaao.spk = this.spk;
            aaao.bus = this.bus;
            foreach (var kv in keyValues)
            {
                aaao.attributes.Add(new AlinkControlAttributes()
@@ -420,6 +448,7 @@
    /// 功能属性
    /// 属性字段解析:attri :属性内容,value 属性的值,max 最大值 min 最小值
    /// </summary>
    [System.Serializable]
    public class FunctionAttributes
    {
        /// <summary>
@@ -464,7 +493,11 @@
        /// <summary>
        /// 颜色
        /// </summary>
        public const string Color = "color";
        public const string RGB = "rgb";
        /// <summary>
        /// 渐变时间
        /// </summary>
        public const string FadeTime = "fade_time";
        /// <summary>
        /// 模式
        /// </summary>
@@ -493,6 +526,10 @@
        /// 室内温度
        /// </summary>
        public const string IndoorTemp = "room_temp";
        /// <summary>
        /// value
        /// </summary>
        public const string Value = "value";
    }
    /// <summary>
    /// 设备功能oid
@@ -529,7 +566,15 @@
                return Convert.ToByte(addresses.Substring(2, 2), 16);
            }
        }
        public byte loopId;
        public byte LoopId
        {
            get
            {
                return Convert.ToByte(loopId, 16);
            }
        }
        public string loopId;
    }
    public static class SPK
@@ -625,15 +670,15 @@
        /// <summary>
        /// 家电、插座
        /// </summary>
        public const string ElectricSocket = "electric.socket ";
        public const string ElectricSocket = "electrical.socket";
        /// <summary>
        /// 家电、电视
        /// </summary>
        public const string ElectricTV = "electric.tv";
        public const string ElectricTV = "electrical.tv";
        /// <summary>
        /// 家电、风扇
        /// </summary>
        public const string ElectricFan = "electric.fan";
        public const string ElectricFan = "electrical.fan";
    }
}