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; } } }