wei
2020-12-08 62d77d3bb8e7215d9da9ecf6f5aeda0b69f805f8
HDL_ON/Entity/Function/Light.cs
@@ -21,7 +21,7 @@
        }
        [Newtonsoft.Json.JsonIgnore]
        public Trait trait_brightness;
        FunctionAttributes trait_brightness;
        /// <summary>
        /// 亮度值
        /// </summary>
@@ -32,21 +32,25 @@
            {
                if (trait_brightness == null)
                {
                    trait_brightness = function.Find((obj) => obj.attri == "brightness");
                    trait_brightness = attributes.Find((obj) => obj.key == "brightness");
                    //找不到属性需要声明一个,防止报错闪退
                    if (trait_brightness == null)
                    {
                        trait_brightness = new Trait()
                        trait_brightness = new FunctionAttributes()
                        {
                            attri = "brightness",
                            key = "brightness",
                            value = new List<string> { "up", "down" },
                            max = 100,
                            min = 0,
                        };
                    }
                    trait_brightness.curValues = trait_brightness.min;
                    trait_brightness.curValue = trait_brightness.min;
                }
                return Convert.ToInt32(trait_brightness.curValues);
                if(trait_brightness.curValue.ToString() == "")
                {
                    trait_brightness.curValue = 0;
                }
                return Convert.ToInt32(trait_brightness.curValue);
            }
            set
            {
@@ -54,21 +58,21 @@
                {
                    if (trait_brightness == null)
                    {
                        trait_brightness = function.Find((obj) => obj.attri == "brightness");
                        trait_brightness = attributes.Find((obj) => obj.key == "brightness");
                        //找不到属性需要声明一个,防止报错闪退
                        if (trait_brightness == null)
                        {
                            trait_brightness = new Trait()
                            trait_brightness = new FunctionAttributes()
                            {
                                attri = "brightness",
                                key = "brightness",
                                value = new List<string> { "up", "down" },
                                max = 100,
                                min = 0,
                            };
                        }
                        trait_brightness.curValues = trait_brightness.min;
                        trait_brightness.curValue = trait_brightness.min;
                    }
                    trait_brightness.curValues = value;
                    trait_brightness.curValue = value;
                    MainPage.Log($"brightness 数据刷新{value}.");
                }
                catch
@@ -79,7 +83,67 @@
        }
        [Newtonsoft.Json.JsonIgnore]
        public Trait trait_color;
        FunctionAttributes trait_fadeTime;
        /// <summary>
        /// 亮度值
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public int fadeTime
        {
            get
            {
                if (trait_fadeTime == null)
                {
                    trait_fadeTime = attributes.Find((obj) => obj.key == "fade_time");
                    //找不到属性需要声明一个,防止报错闪退
                    if (trait_fadeTime == null)
                    {
                        trait_fadeTime = new FunctionAttributes()
                        {
                            key = "fade_time",
                            value = new List<string> { "up", "down" },
                            max = 10,
                            min = 0,
                        };
                        trait_fadeTime.curValue = 0;
                        attributes.Add(trait_fadeTime);
                    }
                }
                int result = 0;
                int.TryParse(trait_fadeTime.curValue.ToString(), out result);
                return result;
            }
            set
            {
                try
                {
                    if (trait_fadeTime == null)
                    {
                        trait_fadeTime = attributes.Find((obj) => obj.key == "fade_time");
                        //找不到属性需要声明一个,防止报错闪退
                        if (trait_fadeTime == null)
                        {
                            trait_fadeTime = new FunctionAttributes()
                            {
                                key = "fade_time",
                                value = new List<string> { "up", "down" },
                                max = 100,
                                min = 0,
                            };
                            trait_fadeTime.curValue = 0;
                            attributes.Add(trait_fadeTime);
                        }
                    }
                    trait_fadeTime.curValue = value;
                }
                catch
                {
                }
            }
        }
        [Newtonsoft.Json.JsonIgnore]
        public FunctionAttributes trait_color;
        /// <summary>
        /// RGB颜色
        /// 255255255
@@ -91,27 +155,27 @@
            {
                if (trait_color == null)
                {
                    trait_color = function.Find((obj) => obj.attri == "color");
                    trait_color = attributes.Find((obj) => obj.key == "color");
                    //找不到属性需要声明一个,防止报错闪退
                    if (trait_color == null)
                    {
                        trait_color = new Trait()
                        trait_color = new FunctionAttributes()
                        {
                            attri = "color",
                            key = "color",
                            value = new List<string> { "FFFFFF" },
                            max = 0xFFFFFF,
                            min = 0x000000,
                            min = 0x00000F,
                        };
                    }
                    trait_color.curValues = trait_color.min;
                    trait_color.curValue = trait_color.min;
                }
                return Convert.ToInt32(trait_color.curValues);
                return Convert.ToInt32(trait_color.curValue);
            }
            set
            {
                try
                {
                    trait_color.curValues = value;
                    trait_color.curValue = value;
                }
                catch
                {
@@ -201,103 +265,5 @@
                }
            }
        }
        /// <summary>
        /// 拼接、获取A协议操作数据
        /// </summary>
        public override JObject GetSendJObject(CommandType_A command )
        {
            var sendJob = new JObject();
            if (command == CommandType_A.write)
            {
#if DEBUG
                switch(sid)
                {
                    case "00010114051D0A300C92C902020200010001":
                        sid = "00010114041710193123D402020200010001";
                        break;
                    case "00010114051D0A300C92C902020200020001":
                        sid = "00010114041710193123D402020200020001";
                        break;
                    case "00010114051D0A300C92C902020200030001":
                        sid = "00010114041710193123D402020200030001";
                        break;
                    case "00010114051D0A300C92C902020200040001":
                        sid = "00010114041710193123D402020200040001";
                        break;
                }
#endif
                sendJob = new JObject { { "vendor_code", vendor_code }, { "command", command.ToString() }, { "type", "device" } };
                JObject data = new JObject { { "sid", sid } };
                sendJob.Add("objects", data);
                List<ControlData> controlData = new List<ControlData>();
                switch (functionType)
                {
                    case FunctionType.Relay:
                        controlData.Add(new ControlData()
                        {
                            name = "on_off",
                            data_type = "Bool",
                            value = on_off
                        });
                        break;
                    case FunctionType.Dimmer:
                        controlData.Add(new ControlData()
                        {
                            name = "on_off",
                            data_type = "Bool",
                            value = on_off
                        });
                        controlData.Add(new ControlData()
                        {
                            name = "brightness",
                            data_type = "int",
                            value = brightness.ToString(),
                        });
                        break;
                    case FunctionType.RGB:
                        controlData.Add(new ControlData()
                        {
                            name = "on_off",
                            data_type = "Bool",
                            value = on_off
                        });
                        controlData.Add(new ControlData()
                        {
                            name = "brightness",
                            data_type = "int",
                            value = brightness.ToString(),
                        });
                        controlData.Add(new ControlData()
                        {
                            name = "color",
                            data_type = "int",
                            value = color.ToString(),
                        });
                        break;
                }
                AProtocolEntity ape = new AProtocolEntity()
                {
                    command = command.ToString(),
                    vendor_code = vendor_code,
                    type = "device_sid",
                };
                ape.ControlFunction(sid, controlData);
                sendJob = JObject.FromObject(ape);
            }
            else if (command == CommandType_A.read)
            {
                sendJob = new JObject { { "vendor_code", vendor_code }, { "command", command.ToString() }, { "type", "device" } };
                var data = new JObject {{ "sid", sid } };
                sendJob.Add("objects", data);
            }
            return sendJob;
        }
    }
}