From d4811b7d34b45ff6b21b97f11da128b5572ec526 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期三, 03 三月 2021 16:03:03 +0800
Subject: [PATCH] 20210303-1

---
 HDL_ON/Entity/Function/Function.cs |  368 +++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 247 insertions(+), 121 deletions(-)

diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs
old mode 100755
new mode 100644
index 81bfa9d..1737170
--- a/HDL_ON/Entity/Function/Function.cs
+++ b/HDL_ON/Entity/Function/Function.cs
@@ -23,6 +23,36 @@
         public string pageSize = "0";
 
     }
+    /// <summary>
+    /// 灞炴�х姸鎬�
+    /// </summary>
+    public class AttrState
+    {
+        /// <summary>
+        /// 灞炴�ч敭鍚�
+        /// </summary>
+        public string key;
+        /// <summary>
+        /// 灞炴�х殑鍊煎垪琛�
+        /// </summary>
+        public List<string> value = new List<string>();
+        /// <summary>
+        /// 鏈�澶у��
+        /// </summary>
+        public int max = 100;
+        /// <summary>
+        /// 鏈�灏忓��
+        /// </summary>
+        public int min = 0;
+        /// <summary>
+        /// 鏁版嵁绫诲瀷
+        /// </summary>
+        public string data_type = "";
+        /// <summary>
+        /// 褰撳墠鍊�
+        /// </summary>
+        public string curValue = "";
+    }
 
     /// <summary>
     /// 鍔熻兘绫昏兘婊¤冻鏁版嵁浣跨敤瑕佹眰锛屽瓙绫诲彧鏄负浜嗘柟渚夸娇鐢ㄥ睘鎬�
@@ -32,6 +62,68 @@
         public Function()
         {
         }
+
+        #region 浼樺寲鍖哄煙 2021-02-25
+        /// <summary>
+        /// 鑾峰彇灞炴�у垪琛�
+        /// </summary>
+        /// <returns></returns>
+        public List<string> GetAttributes()
+        {
+            var attrs = new List<string>();
+
+            foreach(var attr in  attributes)
+            {
+                attrs.Add(attr.key);
+            }
+            return attrs;
+        }
+        /// <summary>
+        /// 鑾峰彇鍒跺畾灞炴��
+        /// </summary>
+        /// <returns></returns>
+        public FunctionAttributes GetAttribute(string key)
+        {
+            var attr = attributes.Find((a) => a.key == key);
+            return attr;
+        }
+
+        /// <summary>
+        /// 鑾峰彇灞炴�х姸鎬�
+        /// </summary>
+        /// <param name="key"></param>
+        /// <returns></returns>
+        public string GetAttrState(string key)
+        {
+            var attrState = status.Find((s) => s.key == key.ToString());
+            if(attrState == null)
+            {
+                return "";
+            }
+            return attrState.value;
+        }
+        /// <summary>
+        /// 璁剧疆灞炴�х姸鎬�
+        /// </summary>
+        /// <param name="key"></param>
+        /// <param name="value"></param>
+        /// <returns>淇敼缁撴灉</returns>
+        public bool SetAttrState(string key, string value)
+        {
+            var attrState = status.Find((s) => s.key == key.ToString());
+            if (attrState == null)
+            {
+                return false;
+            }
+            else
+            {
+                attrState.value = value;
+            }
+            return true;
+        }
+
+        #endregion
+
 
         #region base info
         /// <summary>
@@ -55,7 +147,7 @@
         ///     09	瀹夐槻
         /// 澶х被鍒�	1bytes	锛堥鐣欙級
         /// 灏忕被鍒�	1byte	锛堥鐣欙級
-        /// </summary>
+        /// </summary>      鈥�0001021599F98A04050300010000鈥�
         public string sid = "0301011234567801012301230123";
         /// <summary>
         /// 澶囨敞
@@ -70,39 +162,6 @@
         /// 璁惧spk
         /// </summary>
         public string spk = "";
-        ///// <summary>
-        ///// 鍔熻兘绫诲埆
-        ///// 濡傦細绌鸿皟绫汇�佺伅鍏夌被銆佺獥甯樼被
-        ///// </summary>
-        //public FunctionCategory Spk_Prefix
-        //{
-        //    get
-        //    {
-        //        try
-        //        {
-        //            var _functionCategoryString = sid.Substring(16, 2);
-        //            var _functionCategory = Convert.ToInt32(_functionCategoryString, 16);
-        //            return (FunctionCategory)Enum.ToObject(typeof(FunctionCategory), _functionCategory);
-        //        }
-        //        catch (Exception ex)
-        //        {
-        //            MainPage.Log($"get FunctionCategory error : {ex.Message}");
-        //            return FunctionCategory.UnKown;
-        //        }
-        //    }
-        //}
-
-        ///// <summary>
-        ///// 鍔熻兘绫诲瀷
-        ///// </summary>
-        //public FunctionType spk
-        //{
-        //    get
-        //    {
-        //        var _functionTypeString = sid.Substring(16, 4);
-        //        return (FunctionType)Enum.ToObject(typeof(FunctionType), Convert.ToInt32(_functionTypeString, 16));
-        //    }
-        //}
 
         string spk_Prefix;
         /// <summary>
@@ -122,37 +181,29 @@
                 return spk_Prefix;
             }
         }
-        string spk_Suffix;
-        ///// <summary>
-        ///// spk鍚庣紑
-        ///// 灏忕被
-        ///// 鍔熻兘绫诲瀷
-        ///// </summary>
-        //public string spk
-        //{
-        //    get
-        //    {
-        //        if (string.IsNullOrEmpty(spk_Suffix))
-        //        {
-        //            try
-        //            {
-        //                spk_Suffix = spk.Split(".")[1];
-        //            }
-        //            catch
-        //            {
-        //                spk_Suffix = "";
-        //            }
-        //        }
-        //        return spk_Suffix;
-        //    }
-        //}
-
         /// <summary>
         /// A鍗忚鍔熻兘鐨勭壒鎬�
         /// 濡傦細鏄疉C鍔熻兘锛氱壒鎬э細on_off,mode,fan,temperature
         /// attri
         /// </summary>
         public List<FunctionAttributes> attributes = new List<FunctionAttributes>();
+        /// <summary>
+        /// 鍔熻兘鐘舵�佸垪琛�
+        /// </summary>
+        public List<AttributesStatus> status = new List<AttributesStatus>();
+        /// <summary>
+        /// 鑾峰彇鐘舵�佸��
+        /// </summary>
+        /// <returns></returns>
+        public string GetStatusValus(string key)
+        {
+            var d = status.Find((obj) => obj.key == key);
+            if(d==null)
+            {
+                return null;
+            }
+            return d.value;
+        }
 
         /// <summary>
         /// 鎴块棿ID鍒楄〃
@@ -181,12 +232,6 @@
         /// 浜戠鏁版嵁淇敼鐨勬渶鍚庢椂闂�
         /// </summary>
         public string modifyTime = "";
-        /// <summary>
-        /// 鍒犻櫎鏍囪
-        /// 闇�瑕佸垹闄ゆ暟鎹椂锛屾爣璁颁负锛歵rue
-        /// 鐢变簯绔垹闄ゆ垚鍔熶箣鍚庯紝杩斿洖鏁版嵁鍐嶆竻闄ゆ湰鍦版暟鎹�
-        /// </summary>
-        public bool DeleteSign = false;
 
         #endregion
         /// <summary>
@@ -424,36 +469,6 @@
             })
             { IsBackground = true }.Start();
         }
-        /// <summary>
-        /// 淇濆瓨鍔熻兘鏁版嵁
-        /// </summary>
-        //public void SaveFunctionData(bool upSevser)
-        //{
-        //    if (upSevser)
-        //    {
-        //        new System.Threading.Thread(() =>
-        //        {
-        //            var pm = new HttpServerRequest();
-        //            var pack = pm.UpdataDevcieInfo(this);
-        //            if (pack.Code == StateCode.SUCCESS)
-        //            {
-        //                var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
-        //                FileUtlis.Files.WriteFileByBytes(savePath, ssd);
-        //            }
-        //            else
-        //            {
-        //                IMessageCommon.Current.ShowErrorInfoAlter(pack.Code);
-        //            }
-        //        })
-        //        { IsBackground = true }.Start();
-        //    }
-        //    else
-        //    {
-        //        var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
-        //        FileUtlis.Files.WriteFileByBytes(savePath, ssd);
-        //    }
-        //}
-
 
         /// <summary>
         /// 杞崲鎴愬満鏅姛鑳藉璞�
@@ -520,7 +535,7 @@
             acd.sid = sid;
             foreach (var dic in commandDictionary)
             {
-                var aca = new AlinkControlAttributes();
+                var aca = new AttributesStatus();
                 aca.key = dic.Key;
                 aca.value = dic.Value;
                 acd.status.Add(aca);
@@ -542,7 +557,7 @@
             aaao.bus = this.bus;
             foreach (var kv in keyValues)
             {
-                aaao.attributes.Add(new AlinkControlAttributes()
+                aaao.attributes.Add(new AttributesStatus()
                 {
                     key = kv.Key,
                     value = kv.Value,
@@ -568,7 +583,7 @@
         /// </summary>
         public string spk = "";
 
-        public List<AlinkControlAttributes> attributes = new List<AlinkControlAttributes>();
+        public List<AttributesStatus> attributes = new List<AttributesStatus>();
         //[Newtonsoft.Json.JsonIgnore]
         public BusData bus = new BusData();
     }
@@ -599,12 +614,12 @@
     public class AlinkControlData
     {
         public string sid = "";
-        public List<AlinkControlAttributes> status = new List<AlinkControlAttributes>();
+        public List<AttributesStatus> status = new List<AttributesStatus>();
     }
     /// <summary>
     /// a鍗忚鎺у埗鍔ㄤ綔鏁版嵁
     /// </summary>
-    public class AlinkControlAttributes
+    public class AttributesStatus
     {
         /// <summary>
         /// 灞炴�у悕
@@ -649,25 +664,13 @@
         /// 褰撳墠鍊�
         /// </summary>
         public object curValue = new object();
-        /// <summary>
-        /// curValue鐨勭炕璇戝��,鏈�鍧忕殑缁撴灉涔熷彧浼氳繑鍥瀞tring.Empty
-        /// </summary>
-        public string realValue
-        {
-            get
-            {
-                var myValue = curValue.ToString();
-                //娌欓洉瀹氫箟鐨刼bject绫诲瀷
-                if (myValue.Contains("{") == true) { return string.Empty; }
-                return myValue;
-            }
-        }
     }
     /// <summary>
     /// 鍔熻兘灞炴�ч敭鍚嶅垪琛�
     /// </summary>
     public static class FunctionAttributeKey
     {
+        public const string _null = "";
         /// <summary>
         /// 寮�鍏�
         /// </summary>
@@ -716,6 +719,82 @@
         /// value
         /// </summary>
         public const string Value = "value";
+        /// <summary>
+        /// 鐘舵��,浼犳劅鍣�
+        /// </summary>
+        public const string Status = "status";
+        /// <summary>
+        /// 鐢甸噺鐘舵��
+        /// </summary>
+        public const string BatteryState = "battery_state";
+        /// <summary>
+        /// 鐑樺共
+        /// </summary>
+        public const string HotDry = "hot_dry";
+        /// <summary>
+        /// 椋庡共
+        /// </summary>
+        public const string WindDry = "wind_dry";
+        /// <summary>
+        /// 娑堟瘨
+        /// </summary>
+        public const string Disinfect = "disinfect";
+        /// <summary>
+        /// 涓婂崌涓嬮檷
+        /// </summary>
+        public const string Position = "position";
+        /// <summary>
+        /// 杩涘害
+        /// </summary>
+        public const string PositionPercent = "position_percent";
+        /// <summary>
+        /// 鐑樺共鏃堕棿
+        /// </summary>
+        public const string HotDryTime = "hot_dry_time";
+        /// <summary>
+        /// 鐑樺共鍓╀綑鏃堕棿
+        /// </summary>
+        public const string HotDryTimeLeft = "hot_dry_time_surplus";
+        /// <summary>
+        /// 椋庡共鏃堕棿
+        /// </summary>
+        public const string WindDryTime = "wind_dry_time";
+        /// <summary>
+        /// 椋庡共鍓╀綑鏃堕棿
+        /// </summary>
+        public const string WindDryTimeLeft = "wind_dry_time_surplus";
+        /// <summary>
+        /// 娑堟瘨鏃堕棿
+        /// </summary>
+        public const string DisinfectTime = "disinfect_time";
+        /// <summary>
+        /// 娑堟瘨鍓╀綑鏃堕棿
+        /// </summary>
+        public const string DisinfectTimeLeft = "disinfect_time_surplus";
+        /// <summary>
+        /// 璐熺瀛�
+        /// </summary>
+        public const string Anion = "anion";
+        /// <summary>
+        /// 璐熺瀛愭椂闂�
+        /// </summary>
+        public const string AnionTime = "anion_time";
+        /// <summary>
+        /// 璐熺瀛愬墿浣欐椂闂�
+        /// </summary>
+        public const string AnionTimeLeft = "anion_time_surplus";
+
+
+
+
+        #region tuya
+        /// <summary>
+        /// 娑傞甫姘撮榾寮�鍚椂闂�
+        /// </summary>
+        public const string TuyaWaterTime = "countdown_1";
+        #endregion
+
+
     }
     /// <summary>
     /// 璁惧鍔熻兘oid
@@ -826,14 +905,6 @@
         /// </summary>
         public const string SensorTemperature = "sensor.temperature";
         /// <summary>
-        /// (绾㈠绉诲姩浼犳劅鍣�)
-        /// </summary>
-        public const string SensorPir = "sensor.pir";
-        /// <summary>
-        /// 锛堥棬绐椾紶鎰熷櫒锛�
-        /// </summary>
-        public const string SensorDoorWindow = "sensor.doorwindow";
-        /// <summary>
         /// 锛圥M2.5浼犳劅鍣級
         /// </summary>
         public const string SensorPm25 = "sensor.pm25";
@@ -850,6 +921,14 @@
         /// </summary>
         public const string SensorHumidity = "sensor.humidity";
 
+        /// <summary>
+        /// (绾㈠绉诲姩浼犳劅鍣�)
+        /// </summary>
+        public const string SensorPir = "sensor.pir";
+        /// <summary>
+        /// 锛堥棬绐椾紶鎰熷櫒锛�
+        /// </summary>
+        public const string SensorDoorWindow = "sensor.doorwindow";
         /// <summary>
         /// 鐑熼浘浼犳劅鍣�
         /// </summary>
@@ -903,6 +982,51 @@
         /// 瀹剁數銆佹秱楦︽壂鍦版満鍣ㄤ汉
         /// </summary>
         public const string ElectricTuyaWeepRobot = "electrical.ai6HtccKFIw3dxo3";
+        /// <summary>
+        /// 瀹剁數銆佹秱楦︽按闃�
+        /// </summary>
+        public const string ElectricTuyaWaterValve = "electrical.koiGhMKwLf2ZP81g";
+        /// <summary>
+        /// 鍑夐湼
+        /// </summary>
+        public const string ClothesHanger = "electrical.racks";
+
+
+        /// <summary>
+        /// 鑾峰彇绗笁鏂硅澶噑pk
+        /// </summary>
+        /// <returns></returns>
+        public static List<string> Get3tySpk(BrandType brandType)
+        {
+            var list = new List<string>();
+
+            switch (brandType)
+            {
+                case BrandType.All3tyBrand:
+                case BrandType.Tuya:
+                    list.Add(ElectricTuyaAirCleaner);
+                    list.Add(ElectricTuyaFan);
+                    list.Add(ElectricTuyaWaterValve);
+                    list.Add(ElectricTuyaWeepRobot);
+                    break;
+            }
+            return list;
+        }
+
+        /// <summary>
+        /// 绗笁鏂瑰搧鐗屽垪琛�
+        /// </summary>
+        public enum BrandType
+        {
+            All = 0,
+            Hdl = 1,
+            Tuya = 2,
+
+
+            All3tyBrand = 999,
+        }
+
+
     }
 
 
@@ -949,6 +1073,8 @@
         public const string Electric = "electrical";
 
         //Music = 0x09,
+
+
     }
 
 

--
Gitblit v1.8.0