From 7d005a7618e3d7a80d8ede3baf6ecc4bf8019cd5 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期二, 01 九月 2020 15:22:09 +0800
Subject: [PATCH] 2020-09-01

---
 HDL_ON/Entity/Function/Light.cs |   92 ++++++++++++++++++++++++++++++++++------------
 1 files changed, 68 insertions(+), 24 deletions(-)

diff --git a/HDL_ON/Entity/Function/Light.cs b/HDL_ON/Entity/Function/Light.cs
index de3fcc2..86e7065 100644
--- a/HDL_ON/Entity/Function/Light.cs
+++ b/HDL_ON/Entity/Function/Light.cs
@@ -32,21 +32,21 @@
             {
                 if (trait_brightness == null)
                 {
-                    trait_brightness = propertList.Find((obj) => obj.attri == "brightness");
+                    trait_brightness = function.Find((obj) => obj.name == "brightness");
                     //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
                     if (trait_brightness == null)
                     {
                         trait_brightness = new Trait()
                         {
-                            attri = "brightness",
-                            value = new List<string> { "up", "down" },
+                            name = "brightness",
+                            value_key = new List<string> { "up", "down" },
                             max = 100,
                             min = 0,
                         };
                     }
-                    trait_brightness.curValues = trait_brightness.min;
+                    trait_brightness.value = trait_brightness.min;
                 }
-                return Convert.ToInt32(trait_brightness.curValues);
+                return Convert.ToInt32(trait_brightness.value);
             }
             set
             {
@@ -54,21 +54,21 @@
                 {
                     if (trait_brightness == null)
                     {
-                        trait_brightness = propertList.Find((obj) => obj.attri == "brightness");
+                        trait_brightness = function.Find((obj) => obj.name == "brightness");
                         //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
                         if (trait_brightness == null)
                         {
                             trait_brightness = new Trait()
                             {
-                                attri = "brightness",
-                                value = new List<string> { "up", "down" },
+                                name = "brightness",
+                                value_key = new List<string> { "up", "down" },
                                 max = 100,
                                 min = 0,
                             };
                         }
-                        trait_brightness.curValues = trait_brightness.min;
+                        trait_brightness.value = trait_brightness.min;
                     }
-                    trait_brightness.curValues = value;
+                    trait_brightness.value = value;
                     MainPage.Log($"brightness 鏁版嵁鍒锋柊{value}.");
                 }
                 catch
@@ -91,27 +91,27 @@
             {
                 if (trait_color == null)
                 {
-                    trait_color = propertList.Find((obj) => obj.attri == "color");
+                    trait_color = function.Find((obj) => obj.name == "color");
                     //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
                     if (trait_color == null)
                     {
                         trait_color = new Trait()
                         {
-                            attri = "color",
-                            value = new List<string> { "FFFFFF" },
+                            name = "color",
+                            value_key = new List<string> { "FFFFFF" },
                             max = 0xFFFFFF,
                             min = 0x000000,
                         };
                     }
-                    trait_color.curValues = trait_color.min;
+                    trait_color.value = trait_color.min;
                 }
-                return Convert.ToInt32(trait_color.curValues);
+                return Convert.ToInt32(trait_color.value);
             }
             set
             {
                 try
                 {
-                    trait_color.curValues = value;
+                    trait_color.value = value;
                 }
                 catch
                 {
@@ -211,30 +211,74 @@
             var sendJob = new JObject();
             if (command == CommandType_A.write)
             {
-
-                sendJob = new JObject { { "vendor_code", vendor_code }, { "Command", command.ToString() }, { "Type", "device" } };
-                JObject data = null;
+                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:
-                        data = new JObject { { "sid", sid }, { "switch", on_off } };
+                        controlData.Add(new ControlData()
+                        {
+                            name = "on_off",
+                            data_type = "Bool",
+                            value = trait_on_off.value.ToString()
+                        });
                         break;
                     case FunctionType.Dimmer:
-                        data = new JObject { { "sid", sid }, { "brightness", brightness } };
+                        controlData.Add(new ControlData()
+                        {
+                            name = "on_off",
+                            data_type = "Bool",
+                            value = trait_on_off.value.ToString()
+                        });
+                        controlData.Add(new ControlData()
+                        {
+                            name = "brightness",
+                            data_type = "int",
+                            value = brightness.ToString(),
+                        });
                         break;
                     case FunctionType.RGB:
-                        data = new JObject { { "sid", sid }, { "brightness", brightness }, { "color", color } };
+                        controlData.Add(new ControlData()
+                        {
+                            name = "on_off",
+                            data_type = "Bool",
+                            value = trait_on_off.value.ToString()
+                        });
+                        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;
                 }
-                sendJob.Add("objects", data);
+
+                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" } };
+                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