From 5eeafe3af80bfd88306bd8ad9e76c8f4b51ca35f Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期四, 17 十二月 2020 14:16:20 +0800
Subject: [PATCH] 增加本地发送的重发机制

---
 HDL_ON/Entity/Function/Light.cs |  180 +++++++++++++++++++++++++++---------------------------------
 1 files changed, 81 insertions(+), 99 deletions(-)

diff --git a/HDL_ON/Entity/Function/Light.cs b/HDL_ON/Entity/Function/Light.cs
index ac77986..48453e6 100644
--- a/HDL_ON/Entity/Function/Light.cs
+++ b/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,23 @@
             {
                 if (trait_brightness == null)
                 {
-                    trait_brightness = function.Find((obj) => obj.attri == "brightness");
+                    trait_brightness = attributes.Find((obj) => obj.key == "brightness");
                     //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
                     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,
+                            curValue = 0,
                         };
                     }
-                    trait_brightness.curValues = trait_brightness.min;
+                    if (trait_brightness.curValue.ToString() == "{}")
+                        trait_brightness.curValue = 0;
                 }
-                return Convert.ToInt32(trait_brightness.curValues);
+                return Convert.ToInt32(trait_brightness.curValue);
             }
             set
             {
@@ -54,22 +56,21 @@
                 {
                     if (trait_brightness == null)
                     {
-                        trait_brightness = function.Find((obj) => obj.attri == "brightness");
+                        trait_brightness = attributes.Find((obj) => obj.key == "brightness");
                         //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
                         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,
+                                curValue = 0
                             };
                         }
-                        trait_brightness.curValues = trait_brightness.min;
                     }
-                    trait_brightness.curValues = value;
-                    MainPage.Log($"brightness 鏁版嵁鍒锋柊{value}.");
+                    trait_brightness.curValue = value;
                 }
                 catch
                 {
@@ -79,7 +80,65 @@
         }
 
         [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");
+                    //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
+                    if (trait_fadeTime == null)
+                    {
+                        trait_fadeTime = new FunctionAttributes()
+                        {
+                            key = "fade_time",
+                            value = new List<string> { "up", "down" },
+                            max = 10,
+                            min = 0,
+                            curValue = 0
+                        };
+                    }
+                }
+                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");
+                        //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
+                        if (trait_fadeTime == null)
+                        {
+                            trait_fadeTime = new FunctionAttributes()
+                            {
+                                key = "fade_time",
+                                value = new List<string> { "up", "down" },
+                                max = 100,
+                                min = 0,
+                                curValue = 0
+                            };
+                        }
+                    }
+                    trait_fadeTime.curValue = value;
+                }
+                catch
+                {
+                }
+            }
+        }
+
+        [Newtonsoft.Json.JsonIgnore]
+        public FunctionAttributes trait_color;
         /// <summary>
         /// RGB棰滆壊
         /// 255255255
@@ -91,27 +150,29 @@
             {
                 if (trait_color == null)
                 {
-                    trait_color = function.Find((obj) => obj.attri == "color");
+                    trait_color = attributes.Find((obj) => obj.key == "color");
                     //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
                     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,
+                            curValue = 0x00000F
                         };
                     }
-                    trait_color.curValues = trait_color.min;
+                    if (trait_color.curValue.ToString() == "{}")
+                        trait_color.curValue = 0x00000F;
                 }
-                return Convert.ToInt32(trait_color.curValues);
+                return Convert.ToInt32(trait_color.curValue);
             }
             set
             {
                 try
                 {
-                    trait_color.curValues = value;
+                    trait_color.curValue = value;
                 }
                 catch
                 {
@@ -201,84 +262,5 @@
                 }
             }
         }
-
-
-        /// <summary>
-        /// 鎷兼帴銆佽幏鍙朅鍗忚鎿嶄綔鏁版嵁
-        /// </summary>
-        public override JObject GetSendJObject(CommandType_A command )
-        {
-            var sendJob = new JObject();
-            if (command == CommandType_A.write)
-            {
-                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;
-        }
     }
-
 }

--
Gitblit v1.8.0