From 6a9ad7ec93218913a2ce3b898bb036f18f8f0da4 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期四, 13 八月 2020 17:06:36 +0800
Subject: [PATCH] 20200813

---
 HDL_ON/Entity/Function/AC.cs |  193 ++++++++++++++++++++++++++++++-----------------
 1 files changed, 123 insertions(+), 70 deletions(-)

diff --git a/HDL_ON/Entity/Function/AC.cs b/HDL_ON/Entity/Function/AC.cs
index c9e5daa..e9038b1 100644
--- a/HDL_ON/Entity/Function/AC.cs
+++ b/HDL_ON/Entity/Function/AC.cs
@@ -27,17 +27,29 @@
         /// </summary>
         [Newtonsoft.Json.JsonIgnore]
         public int curTempType = 0;
-
         /// <summary>
-        /// 褰撳墠绌鸿皟妯″紡
+        /// 褰撳墠娓╁害妯″紡瀛楃
         /// </summary>
-        [Newtonsoft.Json.JsonIgnore]
-        public string curMode = "cool";
+        public string curTempTypeString
+        {
+            get
+            {
+                if (curTempType == 0)
+                {
+                    return "掳C";
+                }
+                else
+                {
+                    return "掳F";
+                }
+            }
+        }
 
         /// <summary>
         /// 褰撳墠妯″紡绱㈠紩
         /// bus鎺у埗鍛戒护浣跨敤
         /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
         public byte curModeIndex
         {
             get
@@ -45,7 +57,7 @@
                 try
                 {
                     byte index = 0;
-                    switch (curMode)
+                    switch (trait_mode.curValues.ToString())
                     {
                         case "auto":
                             index = 3;
@@ -79,22 +91,22 @@
                 switch (value)
                 {
                     case 0:
-                        curMode = "cool";
+                        trait_mode.curValues = "cool";
                         break;
                     case 1:
-                        curMode = "heat";
+                        trait_mode.curValues = "heat";
                         break;
                     case 2:
-                        curMode = "fan";
+                        trait_mode.curValues = "fan";
                         break;
                     case 3:
-                        curMode = "auto";
+                        trait_mode.curValues = "auto";
                         break;
                     case 4:
-                        curMode = "dry";
+                        trait_mode.curValues = "dry";
                         break;
                     default:
-                        curMode = "cool";
+                        trait_mode.curValues = "cool";
                         break;
 
                 }
@@ -112,7 +124,7 @@
                 try
                 {
                     byte index = 0;
-                    switch (curFan)
+                    switch (trait_fan.curValues.ToString())
                     {
                         case "high":
                             index = 1;
@@ -143,44 +155,63 @@
                 switch (value)
                 {
                     case 0:
-                        curFan = "auto";
+                        trait_fan.curValues = "auto";
                         break;
                     case 1:
-                        curFan = "high";
+                        trait_fan.curValues = "high";
                         break;
                     case 2:
-                        curFan = "medium";
+                        trait_fan.curValues = "medium";
                         break;
                     case 3:
-                        curFan = "low";
+                        trait_fan.curValues = "low";
                         break;
                     default:
-                        curFan = "high";
+                        trait_fan.curValues = "high";
                         break;
                 }
             }
         }
 
+        Trait _trait_mode;
+        /// <summary>
+        /// 妯″紡灞炴��
+        /// </summary>
+        [Newtonsoft.Json.JsonIgnore]
+        public Trait trait_mode
+        {
+            get
+            {
+                if (_trait_mode == null)
+                {
+                    _trait_mode = function.Find((obj) => obj.attri == "mode");
+                    //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
+                    if (_trait_mode == null)
+                    {
+                        _trait_mode = new Trait()
+                        {
+                            attri = "mode",
+                            value = new List<string> { "auto", "cool", "heat", "dry", "fan" },
+                            max = 4,
+                            min = 0,
+                        };
+                    }
+                    _trait_mode.curValues = _trait_mode.value.Count > 0 ? _trait_mode.value[0] : "";
+                }
+                return _trait_mode;
+            }
+        }
         /// <summary>
         /// 绌鸿皟妯″紡
         /// </summary>
         [Newtonsoft.Json.JsonIgnore]
-        public List<string> mode
+        public List<string> modeList
         {
             get
             {
                 try
                 {
-//#if DEBUG
-//                    return new List<string> { "cool", "heat", "dry", "fan", "auto"};
-//#endif
-                    string b = "";
-                    dicPropert.TryGetValue("mode", out b);
-                    if (b == "")
-                    {
-                        return new List<string> { "auto", "cool", "heat", "dry", "fan" };
-                    }
-                    return new List<string>(b.Split(","));
+                    return trait_mode.value;
                 }
                 catch (Exception ex)
                 {
@@ -188,45 +219,43 @@
                     return new List<string> { "auto", "cool", "heat", "dry", "fan" };
                 }
             }
-            set
-            {
-                try
-                {
-                    dicPropert["mode"] = value.ToString();
-                }
-                catch
-                {
-                    MainPage.Log("mode 鏁版嵁鍒锋柊澶辫触.");
-                }
-            }
         }
 
-        /// <summary>
-        /// 褰撳墠绌鸿皟椋庨��
-        /// </summary>
+        Trait _trait_fan;
         [Newtonsoft.Json.JsonIgnore]
-        public string curFan = "high";
-
+        public Trait trait_fan {
+            get
+            {
+                if (_trait_fan == null)
+                {
+                    _trait_fan = function.Find((obj) => obj.attri == "fan");
+                    //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
+                    if (_trait_fan == null)
+                    {
+                        _trait_fan = new Trait()
+                        {
+                            attri = "fan",
+                            value = new List<string> { "high", "medium", "low", "auto" },
+                            max = 3,
+                            min = 0,
+                        };
+                    }
+                    _trait_fan.curValues = _trait_fan.value.Count > 0 ? _trait_fan.value[0] : "";
+                }
+                return _trait_fan;
+            }
+        }
         /// <summary>
         /// 绌鸿皟椋庨�熸ā寮�
         /// </summary>
         [Newtonsoft.Json.JsonIgnore]
-        public List<string> fan
+        public List<string> fan_List
         {
             get
             {
                 try
                 {
-//#if DEBUG
-//                    return new List<string> { "high", "medium", "low", "auto" };
-//#endif
-                    string b = "";
-                    dicPropert.TryGetValue("fan", out b);
-                    if (b == "")
-                    {
-                        return new List<string> { "high", "medium", "low", "auto" };
-                    }
-                    return new List<string>(b.Split(","));
+                    return trait_fan.value;
                 }
                 catch (Exception ex)
                 {
@@ -242,10 +271,34 @@
         public int curTemp = 20;
         // temperature up, down, value
         // swing up/down/left/right
+
+        Trait _trait_swting;
         [Newtonsoft.Json.JsonIgnore]
-        public string curSwting;
+        public Trait trait_swting
+        {
+            get
+            {
+                if (_trait_swting == null)
+                {
+                    _trait_swting = function.Find((obj) => obj.attri == "swting");
+                    //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
+                    if (_trait_swting == null)
+                    {
+                        _trait_swting = new Trait()
+                        {
+                            attri = "swting",
+                            value = new List<string> { "up", "down", "left", "right" },
+                            max = 3,
+                            min = 0,
+                        };
+                    }
+                    _trait_swting.curValues = _trait_swting.value.Count > 0 ? _trait_swting.value[trait_mode.min] : "";
+                }
+                return _trait_swting;
+            }
+        } 
         /// <summary>
-        /// 绌鸿皟鎵妯″紡
+        /// 绌鸿皟鎵妯″紡鍒楄〃
         /// </summary>
         [Newtonsoft.Json.JsonIgnore]
         public List<string> swting
@@ -254,16 +307,7 @@
             {
                 try
                 {
-#if DEBUG
-                    return new List<string> { "up", "down", "left", "right" };
-#endif
-                    string b = "";
-                    dicPropert.TryGetValue("swting", out b);
-                    if (b == "")
-                    {
-                        return new List<string> { "up", "down", "left", "right" };
-                    }
-                    return new List<string>(b.Split(","));
+                    return trait_swting.value;
                 }
                 catch (Exception ex)
                 {
@@ -289,7 +333,7 @@
                 try
                 {
                     var imagePath = "FunctionIcon/AC/CoolIcon.png";
-                    switch (curMode)
+                    switch (trait_mode.curValues.ToString())
                     {
                         case "auto":
                             imagePath = "FunctionIcon/AC/AutoIcon.png";
@@ -330,7 +374,7 @@
                 try
                 {
                     var imagePath = "FunctionIcon/AC/WindHighIcon.png";
-                    switch (curFan)
+                    switch (trait_fan.curValues.ToString())
                     {
                         case "high":
                             imagePath = "FunctionIcon/AC/WindHighIcon.png";
@@ -365,8 +409,17 @@
             if (command == CommandType_A.write)
             {
                 sendJob = new JObject { { "Namespace", vendor_code }, { "Command", command.ToString() }, { "Type", "device" } };
-                JObject data = new JObject { { "openLevel", dicPropert["openLevel"] }, { "sid", sid } };
+                JObject data = new JObject { { "sid", sid } };
                 sendJob.Add("objects", data);
+                List<ControlData> controlData = new List<ControlData>();
+                controlData.Add(new ControlData()
+                {
+                    name = "on_off",
+                    data_type = "Bool",
+                    value = on_off
+                });
+
+
             }
             else if (command == CommandType_A.read)
             {

--
Gitblit v1.8.0