From b69d7735274b8d0f741da8a6bb8b8e1347477a5a Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期四, 19 三月 2020 17:14:16 +0800
Subject: [PATCH] 20200319

---
 HDL_ON/Entity/Function/Function.cs |  167 +++++++++++++++++++++++++++----------------------------
 1 files changed, 83 insertions(+), 84 deletions(-)

diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs
index 01ea686..31d23ac 100644
--- a/HDL_ON/Entity/Function/Function.cs
+++ b/HDL_ON/Entity/Function/Function.cs
@@ -1,57 +1,16 @@
 锘縰sing System;
 using System.Collections.Generic;
+using System.Linq;
 using Newtonsoft.Json.Linq;
 
 namespace HDL_ON.Entity
 {
-    public class Function
+    public class Function : A_Protocol_FunctionInfo
     {
-        /*
-        HDL缁熶竴鍗忚鏍煎紡锛�16bytes
-        鍘傚晢浠e彿锛�2bytes
-        閫氳鏂瑰紡锛氭湁绾�/鏃犵嚎/ZIGBEE绛�1bytes
-        浜у搧璇嗗埆鐮侊細浠ユ坊鍔犺澶囩殑骞存湀鏃ユ椂鍒嗙 + 闅忔満鏁�8bytes
-        鍔熻兘绫诲埆锛�1bytes
-        鏁版嵁琛ㄧ储寮曞湴鍧�锛�2bytes
-        鍥炶矾锛�2bytes
-        涓句緥锛� 0001-00-201910120900002567-01-0001-0001
-        */
-
-        public Function()
-        {
-        }
-        /// <summary>
-        /// 褰撳墠璁惧绫诲瀷
-        /// </summary>
-        public FunctionType funcType = FunctionType.UnKown;
-        /// <summary>
-        /// 鍔熻兘鍒嗙被
-        /// </summary>
-        public string funcClassification;
         /// <summary>
         /// 鏄惁鏀惰棌
         /// </summary>
         public bool collection = false;
-        /// <summary>
-        /// 鍔熻兘ID
-        /// </summary>
-        public string sid;
-        /// <summary>
-        /// 澶囨敞
-        /// </summary>
-        public string name;
-        /// <summary>
-        /// 淇濆瓨鏁版嵁鏃剁殑鏂囦欢鍚�
-        /// </summary>
-        public string savePath = "";
-        /// <summary>
-        /// A鍗忚鏁版嵁鏍煎紡
-        /// </summary>
-        public string a_Protocol_Namespace = "HDL";
-        /// <summary>
-        /// bus鍗忚鏁版嵁鏍煎紡
-        /// </summary>
-        public string bus_Data;
         /// <summary>
         /// 鎴块棿ID鍒楄〃
         /// 璇ュ姛鑳芥坊鍔犲埌鍒版埧闂村垪琛�
@@ -62,8 +21,63 @@
         /// </summary>
         public string lastState = "";
 
+        /// <summary>
+        /// 鍔熻兘绫诲瀷锛�
+        /// 濡傦細鐏笅闈㈢殑缁х數鍣�/璋冨厜鍣�/RGB灞炰簬鍚屼竴绉嶅姛鑳戒笉鍚岀被鍨嬬殑鐏�
+        /// </summary>
+        public string functionType {
+            get
+            {
+                return GetFunctionType();
+            }
+        }
 
+        /// <summary>
+        /// bus鍗忚鏁版嵁鏍煎紡
+        /// </summary>
+        public BusData bus_Data;
 
+        /// <summary>
+        /// 浣跨敤娆℃暟
+        /// </summary>
+        public double usageCount = 0;
+        /// <summary>
+        /// 浣跨敤棰戠巼
+        /// </summary>
+        public double usageFrequency = 0;
+        /// <summary>
+        /// 鍥哄畾鐨勫簭鍙�
+        /// </summary>
+        public int fixedSerialNumber = int.MaxValue;
+
+        /// <summary>
+        /// A鍗忚鏁版嵁
+        /// </summary>
+        public List<string> PropertyArray
+        {
+            get
+            {
+                try
+                {
+                    if (trait == null)
+                        return new List<string>();
+                    var proArr = trait.Split(',').ToList();
+                    foreach (var pro in proArr)
+                    {
+                        if (!dicPropert.ContainsKey(pro))
+                        {
+                            dicPropert.TryAdd(pro, "0");
+                        }
+                    }
+                    return proArr;
+                }
+                catch (Exception ex)
+                {
+                    MainPage.Log($"Get PropertyArray error : {ex.Message}");
+                    return new List<string>();
+                }
+            }
+        }
 
         /// <summary>
         /// 鑾峰彇A鍗忚鎺у埗瀛楃涓�
@@ -72,63 +86,48 @@
         /// <returns></returns>
         public virtual JObject GetSendJObject(string command)
         {
-            var sendJob = new JObject { { "Namespace", a_Protocol_Namespace }, { "Command", command }, { "Type", "device" }, };
+            var sendJob = new JObject { { "vendor_code", a_Protocol_Namespace }, { "Command", command }, { "Type", "device" }, };
             var data = new JObject { { "sid", sid } };
-            sendJob.Add("", data);
+            sendJob.Add("objects", data);
             return sendJob;
         }
-        /// <summary>
-        /// bus鏃ф暟鎹殑瀛愮綉ID
-        /// </summary>
-        public byte bus_SubnetId
-        {
-            get
-            {
-                var sss = JObject.Parse(bus_Data);
-                var subnetId = Convert.ToByte(sss.GetValue("SubnetID").ToString());
-                return subnetId;
-            }
-        }
 
         /// <summary>
-        /// bus鏃ф暟鎹殑璁惧ID
+        /// 杩斿洖鍔熻兘绫诲瀷
         /// </summary>
-        public byte bus_DeviceId
+        protected virtual string GetFunctionType()
         {
-            get
-            {
-                var sss = JObject.Parse(bus_Data);
-                var deviceId = Convert.ToByte(sss.GetValue("DeviceID").ToString());
-                return deviceId;
-            }
-        }
-        /// <summary>
-        /// bus鏃ф暟鎹殑鍥炶矾ID
-        /// </summary>
-        public byte bus_LoopId
-        {
-            get
-            {
-                var sss = JObject.Parse(bus_Data);
-                var loopId = Convert.ToByte(sss.GetValue("LoopID").ToString());
-                return loopId;
-            }
+            return functionCategory.ToString();
         }
 
-        public string bus_DeviceType = "";
 
         public string GetBusId ()
         {
             string busId = "";
-            if(!string.IsNullOrEmpty(bus_Data))
+            if(bus_Data!=null)
             {
-                var sss = JObject.Parse(bus_Data);
-                var subnetId = sss.GetValue("SubnetID").ToString();
-                var deviceId = sss.GetValue("DeviceID").ToString();
-                var loopId = sss.GetValue("LoopID").ToString();
-                busId = subnetId + "_" + deviceId + "_" + loopId;
+                busId = bus_Data.SubnetID + "_" + bus_Data.DeviceID + "_" + bus_Data.LoopID;
             }
             return busId;
         }
+
+        /// <summary>
+        /// 鑾峰彇璁惧娣诲姞鍒版埧闂寸殑鎴块棿鍚嶇О
+        /// </summary>
+        /// <returns></returns>
+        public string GetRoomListName()
+        {
+            string roomNameList = "";
+            foreach(var roomId in roomIdList)
+            {
+                var findRoom = DB_ResidenceData.residenceData.rooms.Find(obj => obj.sid == roomId);
+                if(roomNameList != "")
+                {
+                    roomNameList += ",";
+                }
+                roomNameList += findRoom.floor + "路" + findRoom.name;
+            }
+            return roomNameList;
+        }
     }
 }

--
Gitblit v1.8.0