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;
}
///
/// 星期int和string互相转换值的方法
///
///
///
///
public static List GetWeekString(List list, string str_or_int)
{
string weekTextName = "";
List stateList = new List();
for (int i = 0; i < list.Count; i++)
{
var s = list[i];
if (str_or_int == "int")
{
switch (s)
{
case "1":
{
weekTextName = Language.StringByID(StringId.monday);
}
break;
case "2":
{
weekTextName = Language.StringByID(StringId.tuesday);
}
break;
case "3":
{
weekTextName = Language.StringByID(StringId.wednesday);
}
break;
case "4":
{
weekTextName = Language.StringByID(StringId.thursday);
}
break;
case "5":
{
weekTextName = Language.StringByID(StringId.friday);
}
break;
case "6":
{
weekTextName = Language.StringByID(StringId.saturday);
}
break;
case "0":
{
weekTextName = Language.StringByID(StringId.sunday);
}
break;
}
}
else
{
if (Language.StringByID(StringId.monday) == s)
{
weekTextName = "1";
}
else if (Language.StringByID(StringId.tuesday) == s)
{
weekTextName = "2";
}
else if (Language.StringByID(StringId.wednesday) == s)
{
weekTextName = "3";
}
else if (Language.StringByID(StringId.thursday) == s)
{
weekTextName = "4";
}
else if (Language.StringByID(StringId.friday) == s)
{
weekTextName = "5";
}
else if (Language.StringByID(StringId.saturday) == s)
{
weekTextName = "6";
}
else if (Language.StringByID(StringId.sunday) == s)
{
weekTextName = "0";
}
}
stateList.Add(weekTextName);
}
return stateList;
}
}
}