wxr
2020-03-19 b69d7735274b8d0f741da8a6bb8b8e1347477a5a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
using System;
using System.Collections.Generic;
using System.Linq;
using Newtonsoft.Json.Linq;
 
namespace HDL_ON.Entity
{
    public class Function : A_Protocol_FunctionInfo
    {
        /// <summary>
        /// 是否收藏
        /// </summary>
        public bool collection = false;
        /// <summary>
        /// 房间ID列表
        /// 该功能添加到到房间列表
        /// </summary>
        public List<string> roomIdList = new List<string>();
        /// <summary>
        /// 最后控制的一次状态
        /// </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协议控制字符串
        /// </summary>
        /// <param name="command">控制命令:write,read</param>
        /// <returns></returns>
        public virtual JObject GetSendJObject(string command)
        {
            var sendJob = new JObject { { "vendor_code", a_Protocol_Namespace }, { "Command", command }, { "Type", "device" }, };
            var data = new JObject { { "sid", sid } };
            sendJob.Add("objects", data);
            return sendJob;
        }
 
        /// <summary>
        /// 返回功能类型
        /// </summary>
        protected virtual string GetFunctionType()
        {
            return functionCategory.ToString();
        }
 
 
        public string GetBusId ()
        {
            string busId = "";
            if(bus_Data!=null)
            {
                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;
        }
    }
}