using System;
using System.Collections.Generic;
namespace Shared
{
#region ■ 场景列表相关___________________________
#endregion
///
///
///
public class HDLLinkScene
{
///
/// 场景sid
///
public string sid = "";
///
/// 场景名称
///
public string name = "";
///
/// 网关ID
///
public string gatewayId = "";
///
/// 云端oss存储图片的路径
///
public string image = "";
///
/// 所属房间列表
///
public List roomIds = new List ();
///
/// 延时
///
public string delay = "0";
///
/// 场景分组
///
public string group = "1";
///
/// 场景类型
///
public SceneType sceneType = SceneType.OrdinaryScenes;
///
/// 收藏标记
///
public bool collect = false;
///
/// 场景功能列表
///
public List functions = new List ();
///
/// 场景推送配置列表
///
public List pushConfigs = new List ();
///
/// 生成逻辑sid方法
///
public string NewSid ()
{
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 = "00000000";
}
sceneId = sOidBeginsWith + sTimeSpan;
sceneId += "0A";
sceneId += "0A01";
int maxId = 1;
Random random = new Random (Guid.NewGuid ().GetHashCode ());
maxId = random.Next (1000);
//for (int i = 0; i < FunctionList.List.scenes.Count; i++) {
// string s = FunctionList.List.scenes [i].sid.Substring (20, 4);
// int iThisSceneId = Convert.ToInt16 (s, 16);
// if (iThisSceneId > maxId)
// maxId = iThisSceneId;
//}
sceneId += (maxId + 1).ToString ("X4");
sceneId += "0000";
} catch {
return sceneId;
}
return sceneId;
}
}
///
/// 场景功能对象
///
public class SceneFunction
{
public string sid = "";
public List status = new List ();
///
/// 功能延时
///
public string delay = "0";
//Function _localFunction;
/////
///// 本地对应的功能
/////
//[Newtonsoft.Json.JsonIgnore]
//public Function localFunction {
// get {
// if (_localFunction == null) {
// _localFunction = ConvertFunctionObject ();
// }
// return _localFunction;
// }
//}
/////
///// 转换成功能对象
/////
/////
//Function ConvertFunctionObject ()
//{
// var localFunction = FunctionList.List.GetDeviceFunctionList ().Find ((obj) => obj.sid == sid);
// return localFunction;
//}
}
///
/// 场景功能属性
///
public class SceneFunctionStatus
{
public string key = "";
public string value = "";
}
///
/// 场景推送配置
///
public class ScenePushConfig
{
///
/// 推送方式
///
public string pushMethod = "";
///
/// 推送内容
///
public string pushContent = "";
///
/// 推送目标集合
///
public List pushTarget = new List ();
}
}