using System;
using Shared;
using System.Collections.Generic;
namespace HDL_ON.UI.UI2.Intelligence.Automation
{
public class InterfaceDsplaysLogic
{
///
///获取自动化名称
///
/// 新建自动化命名规则
public static string GetLogicName(Logic logic)
{
string name = "";
try
{
//默认取第一个条件
Input inputCondition = logic.input[0];
//显示条件各种类型状态
switch (inputCondition.condition_type)
{
case "1":
{
name = Language.StringByID(StringId.hour) + "-";
}
break;
case "2":
{
name = Language.StringByID(StringId.timeHorizon) + "-";
}
break;
case "3":
{
//用sid找到设备;
var device = LogicMethod.GetDevice(inputCondition.sid);
name = device.name + "-";
}
break;
}
//默认取第一个目标
Output outputTarget = logic.output[0];
List> dicList = outputTarget.status as List>;
//显示输出条件各种类型状态
switch (outputTarget.target_type)
{
case "1":
{
//用sid找到设备;
var device = LogicMethod.GetDevice(outputTarget.sid);
//显示设备名称
name += device.name;
string stateStr = "";
//区别不同设备,显示不同设备状态
switch (device.functionType)
{
case FunctionType.Relay:
{//开关灯
foreach (var dic in dicList)
{
string value = dic["value"];
if (value == "on")
{
stateStr = Language.StringByID(StringId.onLogic);
}
else
{
stateStr = Language.StringByID(StringId.offLogic);
}
}
}
break;
case FunctionType.RGB:
case FunctionType.RGBW:
case FunctionType.ColorTemperature:
case FunctionType.Dimmer:
{
string on_off = InpOrOutLogicMethod.GetKeyValue("on_off", dicList);
string brightness = InpOrOutLogicMethod.GetKeyValue("brightness", dicList);
if (on_off == "on" && brightness != "")
{
stateStr = Language.StringByID(StringId.onLogic) + brightness + "%";
}
else if (on_off == "on")
{
stateStr = Language.StringByID(StringId.onLogic);
}
else if (on_off == "off")
{
stateStr = Language.StringByID(StringId.offLogic);
}
else if (brightness != "")
{
stateStr = brightness + "%";
}
}
break;
case FunctionType.Curtain:
case FunctionType.MotorCurtain:
case FunctionType.RollingShutter:
{
foreach (var dic in dicList)
{
string value = dic["value"];
switch (value)
{
case "on":
{
stateStr = Language.StringByID(StringId.onLogic);
}
break;
case "off":
{
stateStr = Language.StringByID(StringId.offLogic);
}
break;
case "stop":
{
stateStr = Language.StringByID(StringId.stop);
}
break;
}
}
}
break;
case FunctionType.AC:
case FunctionType.FloorHeating:
{
foreach (var dic in dicList)
{
string value = dic["value"];
if (value == "on")
{
stateStr = Language.StringByID(StringId.onLogic);
}
else if (value == "off")
{
stateStr = Language.StringByID(StringId.offLogic);
}
}
}
break;
}
name += stateStr;
}
break;
case "2":
{
//用sid找到场景;
var scene = LogicMethod.GetSecne(outputTarget.sid);
name += scene.name;
}
break;
}
}
catch { }
return name;
}
}
}