From 2ae36ddb40d28c62b64a2fdd4c3033e7d65d5cfb Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期四, 04 三月 2021 15:20:29 +0800
Subject: [PATCH] 2021-0304-1

---
 HDL_ON/Entity/Function/AC.cs |  405 ++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 240 insertions(+), 165 deletions(-)

diff --git a/HDL_ON/Entity/Function/AC.cs b/HDL_ON/Entity/Function/AC.cs
index 32d7556..9b76ee4 100644
--- a/HDL_ON/Entity/Function/AC.cs
+++ b/HDL_ON/Entity/Function/AC.cs
@@ -1,23 +1,11 @@
 锘縰sing System;
 using System.Collections.Generic;
+using Shared;
 
 namespace HDL_ON.Entity
 {
     public class AC : Function
     {
-        /*
-         * 绌鸿皟锛歵rait: [switch, mode, fan, set_temp, swing, lock]
-         * 灞炴��	鎻忚堪
-         * on_off	on/off
-         * mode	mode: auto, cool, heat, dry, fan
-         * fan	high, medium, low, auto
-         * set_temp	up,down,value
-         * swing	up/down/left/right
-         * lock	boolean (Lock閿佸畾鎺у埗)
-         */
-        public AC()
-        {
-        }
         /// <summary>
         /// 褰撳墠娓╁害妯″紡
         /// 0:鎽勬皬搴�
@@ -47,130 +35,130 @@
         /// 褰撳墠妯″紡绱㈠紩
         /// bus鎺у埗鍛戒护浣跨敤
         /// </summary>
-        [Newtonsoft.Json.JsonIgnore]
-        public byte curModeIndex
+        public byte curModeIndex()
         {
-            get
+            try
             {
-                try
-                {
-                    byte index = 0;
-                    switch (trait_mode.curValue.ToString())
-                    {
-                        case "auto":
-                            index = 3;
-                            break;
-                        case "cool":
-                            index = 0;
-                            break;
-                        case "heat":
-                            index = 1;
-                            break;
-                        case "dry":
-                            index = 4;
-                            break;
-                        case "fan":
-                            index = 2;
-                            break;
-                        default:
-                            index = 0;
-                            break;
-                    }
-                    return index;
-                }
-                catch (Exception ex)
-                {
-                    MainPage.Log($"get curModeIndex error : {ex.Message}");
-                    return 0;
-                }
-            }
-            set
-            {
+                string value = GetAttrState(FunctionAttributeKey.Mode);
+                byte index = 0;
                 switch (value)
                 {
-                    case 0:
-                        trait_mode.curValue = "cool";
+                    case "auto":
+                        index = 3;
                         break;
-                    case 1:
-                        trait_mode.curValue = "heat";
+                    case "cool":
+                        index = 0;
                         break;
-                    case 2:
-                        trait_mode.curValue = "fan";
+                    case "heat":
+                        index = 1;
                         break;
-                    case 3:
-                        trait_mode.curValue = "auto";
+                    case "dry":
+                        index = 4;
                         break;
-                    case 4:
-                        trait_mode.curValue = "dry";
+                    case "fan":
+                        index = 2;
                         break;
                     default:
-                        trait_mode.curValue = "cool";
+                        index = 0;
                         break;
-
                 }
+                return index;
+            }
+            catch (Exception ex)
+            {
+                MainPage.Log($"get curModeIndex error : {ex.Message}");
+                return 0;
             }
         }
+
+        /// <summary>
+        /// 璁剧疆bus鍗忚妯″紡鏍囪
+        /// </summary>
+        public void SetModeIndex(int index)
+        {
+            string value = "auto";
+            switch (index)
+            {
+                case 3:
+                    value = "auto";
+                    break;
+                case 0:
+                    value = "cool";
+                    break;
+                case 1:
+                    value = "heat";
+                    break;
+                case 4:
+                    value = "dry";
+                    break;
+                case 2:
+                    value = "fan";
+                    break;
+            }
+            SetAttrState(FunctionAttributeKey.Mode, value);
+        }
+
         /// <summary>
         /// 褰撳墠椋庨�熺储寮�
         /// bus鎺у埗鍛戒护浣跨敤
         /// </summary>
-        [Newtonsoft.Json.JsonIgnore]
-        public byte curFanIndex
+        public byte curFanIndex()
         {
-            get
+            try
             {
-                try
-                {
-                    byte index = 0;
-                    switch (trait_fan.curValue.ToString())
-                    {
-                        case "high":
-                            index = 1;
-                            break;
-                        case "medium":
-                            index = 2;
-                            break;
-                        case "low":
-                            index = 3;
-                            break;
-                        case "auto":
-                            index = 0;
-                            break;
-                        default:
-                            index = 0;
-                            break;
-                    }
-                    return index;
-                }
-                catch (Exception ex)
-                {
-                    MainPage.Log($"get curFanIndex error : {ex.Message}");
-                    return 0;
-                }
-            }
-            set
-            {
+                string value = GetAttrState(FunctionAttributeKey.FanSpeed);
+                byte index = 0;
                 switch (value)
                 {
-                    case 0:
-                        trait_fan.curValue = "auto";
+                    case "high":
+                        index = 1;
                         break;
-                    case 1:
-                        trait_fan.curValue = "high";
+                    case "medium":
+                        index = 2;
                         break;
-                    case 2:
-                        trait_fan.curValue = "medium";
+                    case "low":
+                        index = 3;
                         break;
-                    case 3:
-                        trait_fan.curValue = "low";
+                    case "auto":
+                        index = 0;
                         break;
                     default:
-                        trait_fan.curValue = "high";
+                        index = 0;
                         break;
                 }
+                return index;
+            }
+            catch (Exception ex)
+            {
+                MainPage.Log($"get curFanIndex error : {ex.Message}");
+                return 0;
             }
         }
+        /// <summary>
+        /// 璁剧疆bus鍗忚椋庨�熸爣璁�
+        /// </summary>
+        public void SetFanIndex(int index)
+        {
+            string value = "high";
+            switch (index)
+            {
+                case 1:
+                    value = "high";
+                    break;
+                case 2:
+                    value = "medium";
+                    break;
+                case 3:
+                    value = "low";
+                    break;
+                case 0:
+                    value = "auto";
+                    break;
+            }
+            SetAttrState(FunctionAttributeKey.FanSpeed, value);
+        }
 
+        /*  鍘绘帀琛嶇敓灞炴�э紝閫氳繃base.GetAttrState 鏌ユ壘灞炴�т笌鐘舵��
         FunctionAttributes _trait_mode;
         /// <summary>
         /// 妯″紡灞炴��
@@ -342,84 +330,171 @@
                 return _trait_IndoorTemp;
             }
         }
+        */
 
         /// <summary>
         /// 褰撳墠妯″紡鐨刬con璺緞
         /// </summary>
-        [Newtonsoft.Json.JsonIgnore]
-        public string curModeImage
+        /// <param name="lightingIcon">鑾峰彇鐨勫浘鏍囩被鍨嬶紝榛樿鏄偣浜�</param>
+        /// <returns></returns>
+        public string GetModeIconPath(bool lightingIcon = true)
         {
-            get
+            var value = GetAttrState(FunctionAttributeKey.Mode);
+            var imagePath = "FunctionIcon/AC/CoolIcon.png";
+            if (lightingIcon)
             {
-                try
+                switch (value)
                 {
-                    var imagePath = "FunctionIcon/AC/CoolIcon.png";
-                    switch (trait_mode.curValue.ToString())
-                    {
-                        case "auto":
-                            imagePath = "FunctionIcon/AC/AutoIcon.png";
-                            break;
-                        case "cool":
-                            imagePath = "FunctionIcon/AC/CoolIcon.png";
-                            break;
-                        case "heat":
-                            imagePath = "FunctionIcon/AC/HeatingIcon.png";
-                            break;
-                        case "dry":
-                            imagePath = "FunctionIcon/AC/DehumidificationIcon.png";
-                            break;
-                        case "fan":
-                            imagePath = "FunctionIcon/AC/AirSupplyIcon.png";
-                            break;
-                        default:
-                            imagePath = "FunctionIcon/AC/CoolIcon.png";
-                            break;
-                    }
-                    return imagePath;
-                }
-                catch (Exception ex)
-                {
-                    MainPage.Log($"ac ge curModeImage error : {ex.Message}");
-                    return "FunctionIcon/AC/CoolIcon.png";
+                    case "auto":
+                        imagePath = "FunctionIcon/AC/AutoIcon.png";
+                        break;
+                    case "cool":
+                        imagePath = "FunctionIcon/AC/CoolIcon.png";
+                        break;
+                    case "heat":
+                        imagePath = "FunctionIcon/AC/HeatingIcon.png";
+                        break;
+                    case "dry":
+                        imagePath = "FunctionIcon/AC/DehumidificationIcon.png";
+                        break;
+                    case "fan":
+                        imagePath = "FunctionIcon/AC/AirSupplyIcon.png";
+                        break;
+                    default:
+                        imagePath = "FunctionIcon/AC/CoolIcon.png";
+                        break;
                 }
             }
+            else
+            {
+                imagePath = "FunctionIcon/AC/AutoIconGray.png";
+                switch (value)
+                {
+                    case "auto":
+                        imagePath = "FunctionIcon/AC/AutoIconGray.png";
+                        break;
+                    case "cool":
+                        imagePath = "FunctionIcon/AC/CoolIconGray.png";
+                        break;
+                    case "heat":
+                        imagePath = "FunctionIcon/AC/HeatingIconGray.png";
+                        break;
+                    case "dry":
+                        imagePath = "FunctionIcon/AC/DehumidificationIconGray.png";
+                        break;
+                    case "fan":
+                        imagePath = "FunctionIcon/AC/AirSupplyIconGray.png";
+                        break;
+                }
+            }
+            return imagePath;
         }
+
         /// <summary>
         /// 褰撳墠椋庨�熺殑icon璺緞
         /// </summary>
-        [Newtonsoft.Json.JsonIgnore]
-        public string curFanImage
+        /// <param name="lightingIcon">鑾峰彇鐨勫浘鏍囩被鍨嬶紝榛樿鏄偣浜�</param>
+        /// <returns></returns>
+        public string GetFanIconPath(bool lightingIcon = true)
         {
-            get
+            string value = GetAttrState(FunctionAttributeKey.FanSpeed);
+            var imagePath = "FunctionIcon/AC/WindHighIcon.png";
+            if (lightingIcon)
             {
-                try
+                switch (value)
                 {
-                    var imagePath = "FunctionIcon/AC/WindHighIcon.png";
-                    switch (trait_fan.curValue.ToString())
-                    {
-                        case "high":
-                            imagePath = "FunctionIcon/AC/WindHighIcon.png";
-                            break;
-                        case "medium":
-                            imagePath = "FunctionIcon/AC/WindMediumIcon.png";
-                            break;
-                        case "low":
-                            imagePath = "FunctionIcon/AC/WindLowIcon.png";
-                            break;
-                        case "auto":
-                            imagePath = "FunctionIcon/AC/AutoIcon.png";
-                            break;
-                        default:
-                            imagePath = "FunctionIcon/AC/WindHighIcon.png";
-                            break;
-                    }
-                    return imagePath;
-                }catch (Exception ex)
-                {
-                    MainPage.Log($"ac get curFanImage error : {ex.Message}");
-                    return "FunctionIcon/AC/WindHighIcon.png";
+                    case "high":
+                        imagePath = "FunctionIcon/AC/WindHighIcon.png";
+                        break;
+                    case "medium":
+                        imagePath = "FunctionIcon/AC/WindMediumIcon.png";
+                        break;
+                    case "low":
+                        imagePath = "FunctionIcon/AC/WindLowIcon.png";
+                        break;
+                    case "auto":
+                        imagePath = "FunctionIcon/AC/AutoIcon.png";
+                        break;
                 }
             }
+            else
+            {
+                switch (value)
+                {
+                    case "high":
+                        imagePath = "FunctionIcon/AC/WindHighIconGray.png";
+                        break;
+                    case "medium":
+                        imagePath = "FunctionIcon/AC/WindMediumIconGray.png";
+                        break;
+                    case "low":
+                        imagePath = "FunctionIcon/AC/WindLowIconGray.png";
+                        break;
+                    case "auto":
+                        imagePath = "FunctionIcon/AC/AutoIconGray.png";
+                        break;
+                }
+            }
+
+            return imagePath;
+        }
+
+
+        /// <summary>
+        /// 鑾峰彇妯″紡灞炴�ф枃鏈�
+        /// </summary>
+        /// <returns></returns>
+        public string GetModeAttrText(string value)
+        {
+            string text = "";
+            switch (value)
+            {
+                #region 妯″紡
+                case "auto":
+                    text = Language.StringByID(StringId.Auto);
+                    break;
+                case "cool":
+                    text = Language.StringByID(StringId.Cool);
+                    break;
+                case "heat":
+                    text = Language.StringByID(StringId.Heat);
+                    break;
+                case "dry":
+                    text = Language.StringByID(StringId.Dry);
+                    break;
+                case "fan":
+                    text = Language.StringByID(StringId.AirSupply);
+                    break;
+                    #endregion
+            }
+            return text;
+        }
+
+        /// <summary>
+        /// 鑾峰彇椋庨�熷睘鎬ф枃鏈�
+        /// </summary>
+        /// <returns></returns>
+        public string GetFanAttrText(string value)
+        {
+            string text = "";
+            switch (value)
+            {
+                #region 椋庨��
+                case "high":
+                    text = Language.StringByID(StringId.HighWindSpeed);
+                    break;
+                case "medium":
+                    text = Language.StringByID(StringId.MiddleWindSpeed);
+                    break;
+                case "low":
+                    text = Language.StringByID(StringId.LowWindSpeed);
+                    break;
+                case "auto":
+                    text = Language.StringByID(StringId.Auto);
+                    break;
+                    #endregion
+            }
+            return text;
         }
 
     }

--
Gitblit v1.8.0