using System;
|
using Shared;
|
using System.Collections.Generic;
|
|
namespace HDL_ON.UI.UI2.Intelligence.Automation
|
{
|
public class InterfaceDsplaysLogic
|
{
|
/// <summary>
|
///获取自动化名称
|
/// </summary>
|
/// <returns> 新建自动化命名规则</returns>
|
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<Dictionary<string, string>> dicList = outputTarget.status as List<Dictionary<string, string>>;
|
//显示输出条件各种类型状态
|
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;
|
}
|
/// <summary>
|
/// 星期int和string互相转换值的方法
|
/// </summary>
|
/// <param name="list"></param>
|
/// <param name="str_or_int"></param>
|
/// <returns></returns>
|
public static List<string> GetWeekString(List<string> list, string str_or_int)
|
{
|
string weekTextName = "";
|
List<string> stateList = new List<string>();
|
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;
|
}
|
|
/// <summary>
|
/// 模式/风速互相转换值的方法
|
/// </summary>
|
/// <param name="text"></param>
|
/// <param name="type"></param>
|
/// <returns></returns>
|
public static string GetModeValueString(string text, string type)
|
{
|
string str = "";
|
switch (type)
|
{
|
case "mode":
|
{
|
if (text == Language.StringByID(StringId.coolLogic))
|
{
|
str = "cool";
|
}
|
else if (text == Language.StringByID(StringId.heatingLogic))
|
{
|
str = "heat";
|
}
|
else if (text == Language.StringByID(StringId.autoLogic))
|
{
|
str = "auto";
|
}
|
else if (text == Language.StringByID(StringId.dehumidifyLogic))
|
{
|
str = "dry";
|
}
|
}
|
break;
|
case "fan":
|
{
|
if (text == Language.StringByID(StringId.HighWindSpeed))
|
{
|
str = "high";
|
}
|
else if (text == Language.StringByID(StringId.MiddleWindSpeed))
|
{
|
str = "medium";
|
}
|
else if (text == Language.StringByID(StringId.LowWindSpeed))
|
{
|
str = "low";
|
}
|
else if (text == Language.StringByID(StringId.Auto))
|
{
|
str = "auto";
|
}
|
}
|
break;
|
case "FloorHeating":
|
{
|
if (text == Language.StringByID(StringId.dayMode))
|
{
|
str = "day";
|
}
|
else if (text == Language.StringByID(StringId.nightMode))
|
{
|
str = "night";
|
}
|
else if (text == Language.StringByID(StringId.leaveMode))
|
{
|
str = "away";
|
}
|
else if (text == Language.StringByID(StringId.ordinaryMode))
|
{
|
str = "normal";
|
}
|
else if (text == Language.StringByID(StringId.timeMode))
|
{
|
str = "timer";
|
}
|
}
|
break;
|
}
|
return str;
|
}
|
}
|
}
|