From 37c33341f75841dc39c535eb62a3603f596516a1 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期四, 27 二月 2020 17:11:53 +0800
Subject: [PATCH] 20200227

---
 HDL_ON/Entity/Function/Function.cs |  154 ++++++++++++++++++++++++--------------------------
 1 files changed, 74 insertions(+), 80 deletions(-)

diff --git a/HDL_ON/Entity/Function/Function.cs b/HDL_ON/Entity/Function/Function.cs
index 01ea686..1b5bf0e 100644
--- a/HDL_ON/Entity/Function/Function.cs
+++ b/HDL_ON/Entity/Function/Function.cs
@@ -1,57 +1,21 @@
 锘縰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;
+        public Dictionary<string, byte> dicPropert = new Dictionary<string, byte>();
         /// <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 +26,53 @@
         /// </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
+            {
+                var proArr = trait.Split(',').ToList();
+                foreach(var pro in proArr)
+                {
+                    if (!dicPropert.ContainsKey(pro))
+                    {
+                        dicPropert.TryAdd(pro, 0);
+                    }
+                }
+                return proArr;
+            }
+        }
 
         /// <summary>
         /// 鑾峰彇A鍗忚鎺у埗瀛楃涓�
@@ -74,61 +83,46 @@
         {
             var sendJob = new JObject { { "Namespace", 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