using System;
using System.Collections.Generic;
using HDL_ON.Common;
using Shared;
namespace HDL_ON.Entity
{
public class SecurityAlarm
{
///
/// 安防sid
///
public string sid;
///
/// 安防名称
///
public string name;
///
/// 安防延时
///
public string delay;
///
/// 状态 enable布防、disable撒防
///
public string status;
///
/// 类型
/// "all"--全宅布防,
/// "normal"--普通模式,
/// "all_day":24小时,
/// "mute":静音
///
public string type;
///
/// 更新时间
///
public string modifyTime;
///
/// 安防输入条件
///
public List input = new List();
///
/// 安防输出
///
public List output = new List();
///
/// 安防通知配置
///
public SecurityNoticeConfig noticeConfig = new SecurityNoticeConfig();
///
/// 安防推送配置
///
public List pushConfigs = new List();
///
/// 数据存储文件名
///
[Newtonsoft.Json.JsonIgnore]
public string savePath
{
get
{
return "SecurityData_" + sid;
}
}
///
/// 保存文件
///
public void SaveFile()
{
var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
FileUtlis.Files.WriteFileByBytes(savePath, ssd);
}
}
///
/// 安防状态配置
///
public class SecurityState
{
///
/// 安防云端id
///
public string userSecurityId;
///
/// 网关id 网关id 如果传的是sid该字段需要传
///
public string gatewayId;
///
/// 安防sid
///
public string sid;
///
/// 状态 enable布防、disable撒防
///
public string status;
}
///
/// 安防bypass设置对象
///
public class SecurityBypass
{
///
/// 安防云端id
///
public string userSecurityId;
///
/// 输入设备bypass状态列表
///
public List input = new List();
}
///
/// 输入设备bypass状态
///
public class SecurityBypassInput
{
///
/// 设备sid
///
public string sid;
///
/// true:启用
/// false:停用(临时bypass)
///
public string bypass;
}
///
/// 安防输入
///
public class SecurityInput
{
///
/// 输入条件(功能)的sid
/// 输入设备sid
///
public string sid;
///
/// Bypass设置 true:启用中、false:临时bypass中
///
public string bypass;
///
/// 安防输入条件
///
public List condition = new List();
[Newtonsoft.Json.JsonIgnore]
Function _function = null;
///
/// 对应的功能对象
///
///
public Function GetFunction()
{
if (_function == null)
{
_function = FunctionList.List.Functions.Find((obj) => obj.sid == sid);
}
return _function;
}
///
/// 状态文本
///
///
public string StateText ()
{
string text = "";
switch(GetFunction().spk)
{
case SPK.SensorGas:
case SPK.SensorSmoke:
foreach (var con in condition)
{
if (con.value == "true")
{
text += Language.StringByID(StringId.InAlarm) + " ";
}
else if (con.value == "false")
{
text += Language.StringByID(StringId.Normal) + " ";
}
}
break;
case SPK.SensorPir:
foreach (var con in condition)
{
if (con.value == "true")
{
text += Language.StringByID(StringId.youren) + " ";
}
else if (con.value == "false")
{
text += Language.StringByID(StringId.wuren) + " ";
}
}
break;
case SPK.SensorWater:
foreach (var con in condition)
{
if (con.value == "true")
{
text += Language.StringByID(StringId.WaterLeakage) + " ";
}
else if (con.value == "false")
{
text += Language.StringByID(StringId.Normal) + " ";
}
}
break;
case SPK.SensorDoorWindow:
foreach (var con in condition)
{
if (con.value == "true")
{
text += Language.StringByID(StringId.Open) + " ";
}
else if (con.value == "false")
{
text += Language.StringByID(StringId.Close) + " ";
}
}
break;
}
return text;
}
}
///
/// 安防输入条件
///
public class SecurityInputCondition
{
///
/// 属性(条件)名称
///
public string key;
///
/// 操作(执行)条件
/// < 小于 > 大于 ==等于
///
public string comparator;
///
/// 条件值类型
/// int \float\ string
///
public string data_type = "string";
///
/// 值
///
public string value;
}
///
/// 安防输出
///
public class SecurityOutput
{
///
/// 控制目标类型
/// 0:设备
/// 1:场景
/// 2:自动化
///
public string target_type ="0";
///
/// 输出目标的sid
///
public string sid;
///
/// 安防输出状态
///
public List status = new List();
[Newtonsoft.Json.JsonIgnore]
Function _function = null;
///
/// 对应的功能对象
///
///
public Function GetFunction()
{
if (_function == null)
{
_function = FunctionList.List.Functions.Find((obj) => obj.sid == sid);
}
return _function;
}
///
/// 状态文本
///
///
public string StateText()
{
string text = "";
if (target_type == "0")
{
switch (GetFunction().spk)
{
case SPK.LightDimming:
case SPK.LightCCT:
case SPK.LightRGB:
case SPK.LightSwitch:
foreach (var state in status)
{
if (state.key == FunctionAttributeKey.Brightness)
{
if (state.value == "0")
{
text = Language.StringByID(StringId.Close);
}
else
{
text = Language.StringByID(StringId.Open);
}
}
}
break;
}
}else if(target_type == "1")
{
}
return text;
}
}
///
/// 安防输出状态
///
public class SecurityOutputStatus
{
public string key;
public string value;
}
///
/// 安防通知配置
///
public class SecurityNoticeConfig
{
///
/// 是否开启通知
///
public bool enable;
///
/// 通知内容
///
public string noticeContent;
}
///
/// 安防推送配置
///
public class SecurityPushConfig
{
///
/// 推送方式
/// APP:app push
/// SMS:短信
///
public string pushMethod;
///
/// 推送目标
///
public List pushTarget = new List();
}
}