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 Dictionary<string, byte> dicPropert = new Dictionary<string, byte>();
|
/// <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
|
{
|
var proArr = trait.Split(',').ToList();
|
foreach(var pro in proArr)
|
{
|
if (!dicPropert.ContainsKey(pro))
|
{
|
dicPropert.TryAdd(pro, 0);
|
}
|
}
|
return proArr;
|
}
|
}
|
|
/// <summary>
|
/// 获取A协议控制字符串
|
/// </summary>
|
/// <param name="command">控制命令:write,read</param>
|
/// <returns></returns>
|
public virtual JObject GetSendJObject(string command)
|
{
|
var sendJob = new JObject { { "Namespace", 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;
|
}
|
}
|
}
|