using System;
|
using System.Collections.Generic;
|
using Shared;
|
|
namespace HDL_ON.Entity
|
{
|
public class GroupControl : Function
|
{
|
public GroupControl()
|
{
|
spk = "GroupControl";
|
}
|
/// <summary>
|
/// 群控ID
|
/// </summary>
|
public string userDeviceGroupControlId = string.Empty;
|
/// <summary>
|
/// 群控sid
|
/// </summary>
|
//public string sid = string.Empty;
|
/// <summary>
|
/// 生成群控sid
|
/// </summary>
|
public string NewGroupControlSid()
|
{
|
string sceneId = "";
|
try
|
{
|
string sOidBeginsWith = "000101";//厂商 + 通讯方式
|
DateTime dt = DateTime.Now;
|
DateTime startTime = TimeZoneInfo.ConvertTimeToUtc(new DateTime(2020, 1, 1));
|
long m = (long)((dt - startTime).TotalMilliseconds / 10);
|
string sTimeSpan = "00000000";
|
|
byte[] arry = new byte[4];
|
arry[0] = (byte)(m & 0xFF);
|
arry[1] = (byte)((m & 0xFF00) >> 8);
|
arry[2] = (byte)((m & 0xFF0000) >> 16);
|
arry[3] = (byte)((m >> 24) & 0xFF);
|
sTimeSpan = arry[0].ToString("X2") + arry[1].ToString("X2") + arry[2].ToString("X2") + arry[3].ToString("X2");
|
|
|
if (sTimeSpan.Length >= 8)
|
{
|
sTimeSpan = sTimeSpan.Substring(0, 8);
|
}
|
else
|
{
|
sTimeSpan = Guid.NewGuid().ToString().Substring(0, 8);
|
//sTimeSpan = "00000000";
|
}
|
|
sceneId = sOidBeginsWith + sTimeSpan;
|
|
sceneId += "AA";
|
sceneId += "AA01";
|
int maxId = 1;
|
|
Random random = new Random(Guid.NewGuid().GetHashCode());
|
maxId = random.Next(10);
|
|
sceneId += (maxId + 1).ToString("X4");
|
sceneId += "0000";
|
}
|
catch
|
{
|
return sceneId;
|
}
|
return sceneId;
|
}
|
/// <summary>
|
/// 群控名称
|
/// </summary>
|
//public string name = string.Empty;
|
/// <summary>
|
/// 群控类型
|
/// </summary>
|
public string type = string.Empty;
|
/// <summary>
|
/// 房间uid
|
/// </summary>
|
public List<String> uids = new List<string>();
|
//public List<String> roomIds = new List<string>();
|
/// <summary>
|
/// 群控功能sid配置
|
/// </summary>
|
public List<GroupControlFunction> sids = new List<GroupControlFunction>();
|
|
|
|
///// <summary>
|
///// 获取设备添加到房间的房间名称
|
///// </summary>
|
///// <returns></returns>
|
//public string GetRoomListName()
|
//{
|
// string roomNameList = "";
|
// foreach (var roomId in roomIds)
|
// {
|
// var findRoom = SpatialInfo.CurrentSpatial.RoomList.Find(obj => obj.roomId == roomId);
|
// if (findRoom == null)
|
// {
|
// continue;
|
// }
|
// if (roomNameList != "")
|
// {
|
// roomNameList += ",";
|
// }
|
// roomNameList += findRoom.floorName + "-" + findRoom.roomName;
|
// }
|
// if (roomNameList == "")
|
// {
|
// roomNameList = Language.StringByID(StringId.WholeZone);
|
// }
|
// return roomNameList;
|
//}
|
}
|
|
public class GroupControlFunction
|
{
|
/// <summary>
|
/// 功能sid
|
/// </summary>
|
public string sid = string.Empty;
|
/// <summary>
|
/// 功能spk
|
/// </summary>
|
public string spk = string.Empty;
|
}
|
|
|
public class GroupControlType
|
{
|
/// <summary>
|
/// 类型
|
/// </summary>
|
public string type = string.Empty;
|
/// <summary>
|
/// 类型名称
|
/// </summary>
|
public string typeName = string.Empty;
|
/// <summary>
|
/// 群控支持的spk
|
/// </summary>
|
public List<string> spks = new List<string>();
|
/// <summary>
|
/// 群控支持的spk属性
|
/// </summary>
|
public List<string> spkAttrs = new List<string>();
|
}
|
}
|