JLChen
2021-07-06 d72ca686a3e262693f8a6e45e747e8e8da43335b
HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
@@ -1,6 +1,8 @@
using System;
using Shared;
using System.Collections.Generic;
using HDL_ON.Entity;
namespace HDL_ON.UI.UI2.Intelligence.Automation
{
    public class InpOrOutLogicMethod
@@ -15,12 +17,6 @@
            for (int i = 0; i < Logic.currlogic.input.Count; i++)
            {
                Input inputCondition = Logic.currlogic.input[i];
                if (inputCondition == null)
                {
                    //防止有的空对象;
                    //正常情况下不会该现象;
                    continue;
                }
                ///各种条件的View
                LogicView.AddOutputInputView inputView = new LogicView.AddOutputInputView();
                inputView.FLayoutView(viewLayout);
@@ -38,8 +34,78 @@
                            inputView.btnIcon.UnSelectedImagePath = "LogicIcon/time.png";
                            foreach (var dic in dicList)
                            {
                                string keyValue = dic["key"];
                                string value = dic["value"];
                                inputView.btnText.Text = Language.StringByID(StringId.hour) + ": " + value;
                                if (keyValue == "timepoint")
                                {
                                    inputView.btnText.Text = Language.StringByID(StringId.hour) + ": " + value;
                                }
                                else
                                {
                                    string strtext = "";
                                    string statetext = "";
                                    switch (keyValue)
                                    {
                                        case "before_sunrise":
                                            {
                                                strtext = Language.StringByID(StringId.sunrise);
                                                statetext = Language.StringByID(StringId.advanced);
                                            }
                                            break;
                                        case "before_sunset":
                                            {
                                                strtext = Language.StringByID(StringId.sunset);
                                                statetext = Language.StringByID(StringId.advanced);
                                            }
                                            break;
                                        case "before_noon":
                                            {
                                                strtext = Language.StringByID(StringId.at);
                                                statetext = Language.StringByID(StringId.advanced);
                                            }
                                            break;
                                        case "after_sunrise":
                                            {
                                                strtext = Language.StringByID(StringId.sunrise);
                                                statetext = Language.StringByID(StringId.delayLogic);
                                            }
                                            break;
                                        case "after_sunset":
                                            {
                                                strtext = Language.StringByID(StringId.sunset);
                                                statetext = Language.StringByID(StringId.delayLogic);
                                            }
                                            break;
                                        case "after_noon":
                                            {
                                                strtext = Language.StringByID(StringId.at);
                                                statetext = Language.StringByID(StringId.delayLogic);
                                            }
                                            break;
                                    }
                                    if (value != "0")
                                    {
                                        if (value == "30")
                                        {
                                            statetext += value + Language.StringByID(StringId.s);
                                        }
                                        else
                                        {
                                            statetext += value + Language.StringByID(StringId.minute);
                                        }
                                    }
                                    else
                                    {
                                        statetext = "";
                                    }
                                    inputView.btnText.Text = strtext;
                                    inputView.btnState.Text = statetext;
                                }
                            }
                        }
                        break;
@@ -59,28 +125,28 @@
                            //用sid找到设备;
                            var device = LogicMethod.GetDevice(inputCondition.sid);
                            //用设备的functionType类型找到对应图标;
                            inputView.btnIcon.UnSelectedImagePath = LogicMethod.GetIconPath(device.functionType);
                            inputView.btnIcon.UnSelectedImagePath = LogicMethod.GetIconPath(device.spk);
                            //显示设备名称
                            inputView.btnText.Text = device.name;
                            //改变设备名称显示控件宽度
                            inputView.btnText.Width = Application.GetRealWidth(80);
                            //区别不同设备,显示不同设备状态
                            switch (device.functionType)
                            switch (device.spk)
                            {
                                //开关灯光 light.Switch
                                case FunctionType.Dimmer:
                                case FunctionType.RGB:
                                case FunctionType.RGBW:
                                case FunctionType.ColorTemperature:
                                case FunctionType.Relay:
                                case SPK.LightDimming:
                                case SPK.LightRGB:
                                case SPK.LightRGBW:
                                case SPK.LightCCT:
                                case SPK.LightSwitch:
                                //窗帘
                                case FunctionType.Curtain:
                                case FunctionType.RollingShutter:
                                case FunctionType.MotorCurtain:
                                case SPK.CurtainSwitch:
                                case SPK.CurtainRoller:
                                case SPK.CurtainTrietex:
                                //空调
                                case FunctionType.AC:
                                case SPK.AcStandard:
                                //地热
                                case FunctionType.FloorHeating:
                                case SPK.FloorHeatStandard:
                                    {//开关灯
                                        foreach (var dic in dicList)
                                        {
@@ -98,6 +164,230 @@
                                        }
                                    }
                                    break;
                                //传感器
                                case SPK.SensorSmoke:
                                case SPK.SensorGas:
                                    {
                                        foreach (var dic in dicList)
                                        {
                                            string value = dic["value"];
                                            if (value == "alarm")
                                            {
                                                inputView.btnState.Text = Language.StringByID(StringId.xieluo);
                                            }
                                            else
                                            {
                                                inputView.btnState.Text = Language.StringByID(StringId.wuxieluo);
                                            }
                                        }
                                    }
                                    break;
                                case SPK.SensorWater:
                                    {
                                        foreach (var dic in dicList)
                                        {
                                            string value = dic["value"];
                                            if (value == "alarm")
                                            {
                                                inputView.btnState.Text = Language.StringByID(StringId.luoshui);
                                            }
                                            else
                                            {
                                                inputView.btnState.Text = Language.StringByID(StringId.wuluoshui);
                                            }
                                        }
                                    }
                                    break;
                                case SPK.SensorDryContact:
                                    {
                                        foreach (var dic in dicList)
                                        {
                                            string value = dic["value"];
                                            if (value == "on")
                                            {
                                                inputView.btnState.Text = Language.StringByID(StringId.onLogic);
                                            }
                                            else
                                            {
                                                inputView.btnState.Text = Language.StringByID(StringId.offLogic);
                                            }
                                        }
                                    }
                                    break;
                                case SPK.SensorShanLan:
                                case SPK.SensorDuiShe:
                                case SPK.SensorPir:
                                    {
                                        foreach (var dic in dicList)
                                        {
                                            string value = dic["value"];
                                            if (value == "true")
                                            {
                                                inputView.btnState.Text = Language.StringByID(StringId.youren);
                                            }
                                            else
                                            {
                                                inputView.btnState.Text = Language.StringByID(StringId.wuren);
                                            }
                                        }
                                    }
                                    break;
                                case SPK.SensorDoorWindow:
                                    {
                                        foreach (var dic in dicList)
                                        {
                                            string value = dic["value"];
                                            if (value == "open")
                                            {
                                                inputView.btnState.Text = Language.StringByID(StringId.kaiqi);
                                            }
                                            else
                                            {
                                                inputView.btnState.Text = Language.StringByID(StringId.bihe);
                                            }
                                        }
                                    }
                                    break;
                                case SPK.SensoruUtrasonic:
                                    {
                                        string str = "";
                                        foreach (var dic in dicList)
                                        {
                                            string value = dic["value"];
                                            switch (dic["key"])
                                            {
                                                case "status":
                                                    {
                                                        if (value == "true")
                                                        {
                                                            str+= Language.StringByID(StringId.youren)+";";
                                                        }
                                                        else
                                                        {
                                                            str += Language.StringByID(StringId.wuren) + ";";
                                                        }
                                                    }
                                                    break;
                                                case "dismantle":
                                                    {
                                                        if (value == "true")
                                                        {
                                                            str += Language.StringByID(StringId.zaixian);
                                                        }
                                                        else
                                                        {
                                                            str += Language.StringByID(StringId.buzaixian);
                                                        }
                                                    }
                                                    break;
                                            }
                                        }
                                        inputView.btnState.Text = str;
                                    }
                                    break;
                            }
                        }
                        break;
                    case "4":
                        {
                            inputView.btnIcon.UnSelectedImagePath = "LogicIcon/changesinoutdoor.png";
                            string strtext = "";
                            string strvalue = "";
                            foreach (var dic in dicList)
                            {
                                string key = dic["key"];
                                string comparator = dic["comparator"];
                                string value = dic["value"];
                                switch (key)
                                {
                                    case "outdoor_temp":
                                        {
                                            strvalue = value;
                                            if (comparator == ">")
                                            {
                                                strtext = Language.StringByID(StringId.wendugaoyu);
                                            }
                                            else if (comparator == "<")
                                            {
                                                strtext = Language.StringByID(StringId.wendudiyu);
                                            }
                                        }
                                        break;
                                    case "outdoor_humity":
                                        {
                                            strvalue = value;
                                            if (comparator == ">")
                                            {
                                                strtext = Language.StringByID(StringId.shidugaoyu);
                                            }
                                            else if (comparator == "<")
                                            {
                                                strtext = Language.StringByID(StringId.shidudiyu);
                                            }
                                        }
                                        break;
                                    case "pm2.5":
                                        {
                                            strtext = Language.StringByID(StringId.PM25);
                                            strvalue = new OutdoorEnvironment { }.GetString(value);
                                        }
                                        break;
                                }
                            }
                            inputView.btnText.Text = strtext;
                            inputView.btnState.Text = strvalue;
                        }
                        break;
                    case "6":
                        {
                            inputView.btnIcon.UnSelectedImagePath = "LogicIcon/changesinoutdoor.png";
                            foreach (var dic in dicList)
                            {
                                string strtext = "";
                                string value = dic["value"];
                                switch (value)
                                {
                                    case "sunny":
                                        {
                                            strtext = Language.StringByID(StringId.clearday);
                                        }
                                        break;
                                    case "cloudy":
                                        {
                                            strtext = Language.StringByID(StringId.cloudy);
                                        }
                                        break;
                                    case "rainy":
                                        {
                                            strtext = Language.StringByID(StringId.rain);
                                        }
                                        break;
                                }
                                inputView.btnText.TextID = StringId.tianqibianhua;
                                inputView.btnState.Text = strtext;
                            }
                        }
                        break;
@@ -120,22 +410,50 @@
                            break;
                        }
                    }
                    //标记编辑状态
                    bool edit = true;
                    switch (button.Name)
                    {
                        case "1":
                            {
                                FrameLayout fLayout = new FrameLayout
                                bool is_bool = false;
                                Input _input = Logic.currlogic.input[indexVulae];
                                if (_input.condition_type == "1")
                                {
                                    BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
                                };
                                thisView.AddChidren(fLayout);
                                TimeTpye timeTpye = new TimeTpye();
                                timeTpye.TimePoint(fLayout, edit, indexVulae);
                                    var dicLists = _input.condition as List<Dictionary<string, string>>;
                                    foreach (var dic in dicLists)
                                    {
                                        string keyValue = dic["key"];
                                        if (keyValue != "timepoint")
                                        {
                                            //通过键值查找键值是否是
                                            //(日出/日落/正午)
                                            is_bool = true;
                                            break;
                                        }
                                    }
                                }
                                if (is_bool)
                                {
                                    //跳转到(日出/日落/正午)界面
                                    SpeciaTime speciaTime = new SpeciaTime();
                                    MainPage.BasePageView.AddChidren(speciaTime);
                                    speciaTime.Show(edit, indexVulae);
                                    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                                }
                                else
                                {
                                    //跳转到(时间点)界面
                                    FrameLayout fLayout = new FrameLayout
                                    {
                                        BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
                                    };
                                    thisView.AddChidren(fLayout);
                                    TimeTpye timeTpye = new TimeTpye();
                                    timeTpye.TimePoint(fLayout, edit, indexVulae);
                                }
                            }
                            break;
                        case "2":
@@ -159,8 +477,78 @@
                                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                            }
                            break;
                        case "4":
                            {
                                ///当前的索引值数据对象
                                Input inputedit = Logic.currlogic.input[indexVulae];
                                ///状态值
                                string stateValue = "";
                                ///状态值文本
                                int intValue = -1;
                                foreach (var dic in inputedit.condition)
                                {
                                    string key = dic["key"];
                                    string comparator = dic["comparator"];
                                    stateValue = dic["value"];
                                    switch (key)
                                    {
                                        case "outdoor_temp":
                                            {
                                                if (comparator == ">")
                                                {
                                                    intValue = StringId.wendugaoyu;
                                                }
                                                else if (comparator == "<")
                                                {
                                                    intValue = StringId.wendudiyu;
                                                }
                                            }
                                            break;
                                        case "outdoor_humity":
                                            {
                                                if (comparator == ">")
                                                {
                                                    intValue = StringId.shidugaoyu;
                                                }
                                                else if (comparator == "<")
                                                {
                                                    intValue = StringId.shidudiyu;
                                                }
                                            }
                                            break;
                                        case "pm2.5":
                                            {
                                                intValue = StringId.PM25;
                                            }
                                            break;
                                    }
                                }
                                OutdoorEnvironment outdoorEnvironment = new OutdoorEnvironment();
                                if (intValue == StringId.PM25)
                                {
                                    outdoorEnvironment.PmAction(thisView, stateValue);
                                }
                                else
                                {
                                    outdoorEnvironment.InputBoxAction(intValue, stateValue);
                                }
                            }
                            break;
                        case "6":
                            {
                                WeatherCondition weatherCondition = new WeatherCondition();
                                MainPage.BasePageView.AddChidren(weatherCondition);
                                weatherCondition.Show();
                                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                            }
                            break;
                    }
                };
                ///删除控件
@@ -179,16 +567,10 @@
        /// <param name="viewLayout">上下滑动控件</param>
        public static void OutputTarget(FrameLayout thisView, VerticalScrolViewLayout viewLayout)
        {
            for (int i = 0; i < Logic.currlogic.output.Count; i++)
            {
                Output outputTarget = Logic.currlogic.output[i];
                if (outputTarget == null)
                {
                    //防止有的空对象;
                    //正常情况下不会该现象;
                    continue;
                }
                ///各种条件的View
                LogicView.AddOutputInputView targetView = new LogicView.AddOutputInputView();
                targetView.FLayoutView(viewLayout);
@@ -206,7 +588,7 @@
                            //用sid找到设备;
                            var device = LogicMethod.GetDevice(outputTarget.sid);
                            //用设备的functionType类型找到对应图标;
                            targetView.btnIcon.UnSelectedImagePath = LogicMethod.GetIconPath(device.functionType);
                            targetView.btnIcon.UnSelectedImagePath = LogicMethod.GetIconPath(device.spk);
                            //显示设备名称
                            targetView.btnText.Text = device.name;
                            //改变设备名称显示控件宽度
@@ -214,9 +596,9 @@
                            //第一个变量显示状态值
                            string stateStr = "";
                            //区别不同设备,显示不同设备状态
                            switch (device.functionType)
                            switch (device.spk)
                            {
                                case FunctionType.Relay:
                                case SPK.LightSwitch:
                                    {//开关灯
                                        foreach (var dic in dicList)
@@ -235,10 +617,10 @@
                                        targetView.btnState.Text = stateStr;
                                    }
                                    break;
                                case FunctionType.RGB:
                                case FunctionType.RGBW:
                                case FunctionType.ColorTemperature:
                                case FunctionType.Dimmer:
                                case SPK.LightRGB:
                                case SPK.LightRGBW:
                                case SPK.LightCCT:
                                case SPK.LightDimming:
                                    {
                                        string on_off = GetKeyValue("on_off", dicList);
                                        string brightness = GetKeyValue("brightness", dicList);
@@ -261,9 +643,9 @@
                                        targetView.btnState.Text = stateStr;
                                    }
                                    break;
                                case FunctionType.Curtain:
                                case FunctionType.MotorCurtain:
                                case FunctionType.RollingShutter:
                                case SPK.CurtainSwitch:
                                case SPK.CurtainTrietex:
                                case SPK.CurtainRoller:
                                    {
                                        foreach (var dic in dicList)
                                        {
@@ -290,17 +672,19 @@
                                        targetView.btnState.Text = stateStr;
                                    }
                                    break;
                                case FunctionType.AC: {
                                case SPK.AcStandard:
                                    {
                                        string on_off = GetKeyValue("on_off", dicList);
                                        string set_temp = GetKeyValue("set_temp", dicList);
                                        string mode = GetKeyValue("mode", dicList);
                                        string fan = GetKeyValue("fan", dicList);
                                        if (on_off != "") {
                                        if (on_off != "")
                                        {
                                            switch (on_off)
                                            {
                                                case "on":
                                                    {
                                                        stateStr = Language.StringByID(StringId.onLogic)+",";
                                                        stateStr = Language.StringByID(StringId.onLogic) + ",";
                                                    }
                                                    break;
                                                case "off":
@@ -308,7 +692,7 @@
                                                        stateStr = Language.StringByID(StringId.offLogic) + ",";
                                                    }
                                                    break;
                                            }
                                        }
@@ -325,7 +709,7 @@
                                            {
                                                case "cool":
                                                    {
                                                        stateStr += Language.StringByID(StringId.coolLogic)+",";
                                                        stateStr += Language.StringByID(StringId.coolLogic) + ",";
                                                    }
                                                    break;
                                                case "heat":
@@ -354,7 +738,7 @@
                                            {
                                                case "high":
                                                    {
                                                        stateStr += Language.StringByID(StringId.HighWindSpeed)+",";
                                                        stateStr += Language.StringByID(StringId.HighWindSpeed) + ",";
                                                    }
                                                    break;
                                                case "medium":
@@ -379,14 +763,15 @@
                                        {
                                            targetView.btnState.Text = Language.StringByID(StringId.offLogic);
                                        }
                                        else {
                                        else
                                        {
                                            targetView.btnState.Text = stateStr.TrimEnd(',');
                                        }
                                    }
                                    break;
                                case FunctionType.FloorHeating:
                                case SPK.FloorHeatStandard:
                                    {
                                        string on_off = GetKeyValue("on_off", dicList);
                                        string set_temp = GetKeyValue("set_temp", dicList);
@@ -420,7 +805,7 @@
                                            {
                                                case "day":
                                                    {
                                                        stateStr += Language.StringByID(StringId.dayMode)+",";
                                                        stateStr += Language.StringByID(StringId.dayMode) + ",";
                                                    }
                                                    break;
                                                case "night":
@@ -474,7 +859,7 @@
                                        }
                                        if (on_off != "" && on_off == "off")
                                        {
                                            targetView.btnState.Text =Language.StringByID(StringId.offLogic);
                                            targetView.btnState.Text = Language.StringByID(StringId.offLogic);
                                        }
                                        else
                                        {
@@ -512,7 +897,7 @@
                {
                    Button button = (Button)sen;
                    //找到当前编辑的索引
                    int indexVulae =0;
                    int indexVulae = 0;
                    for (int index = 0; index < Logic.currlogic.output.Count; index++)
                    {
                        Output target = Logic.currlogic.output[index];
@@ -572,10 +957,10 @@
        /// <param name="button4">显示Btn</param>
        public static void EditState(Entity.Function device, List<Dictionary<string, string>> dicList, Button button1, Button button2, Button button3, Button button4)
        {
            switch (device.functionType)
            switch (device.spk)
            {
                //开关灯光
                case FunctionType.Relay:
                case SPK.LightSwitch:
                    {
                        foreach (var dic in dicList)
                        {
@@ -591,10 +976,10 @@
                        }
                    }
                    break;
                case FunctionType.Dimmer:
                case FunctionType.RGB:
                case FunctionType.RGBW:
                case FunctionType.ColorTemperature:
                case SPK.LightDimming:
                case SPK.LightRGB:
                case SPK.LightRGBW:
                case SPK.LightCCT:
                    {
                        foreach (var dic in dicList)
                        {
@@ -624,9 +1009,9 @@
                        }
                    }
                    break;
                case FunctionType.Curtain:
                case FunctionType.MotorCurtain:
                case FunctionType.RollingShutter:
                case SPK.CurtainSwitch:
                case SPK.CurtainTrietex:
                case SPK.CurtainRoller:
                    {
                        foreach (var dic in dicList)
                        {
@@ -652,7 +1037,7 @@
                        }
                    }
                    break;
                case FunctionType.AC:
                case SPK.AcStandard:
                    {
                        foreach (var dic in dicList)
                        {
@@ -748,7 +1133,7 @@
                    }
                    break;
                case FunctionType.FloorHeating:
                case SPK.FloorHeatStandard:
                    {
                        foreach (var dic in dicList)
@@ -821,6 +1206,128 @@
                    }
                    break;
                case SPK.SensorGas:
                case SPK.SensorSmoke:
                    {
                        foreach (var dic in dicList)
                        {
                            string value = dic["value"];
                            if (value == "alarm")
                            {
                                button1.Text = Language.StringByID(StringId.xieluo);
                            }
                            else
                            {
                                button1.Text = Language.StringByID(StringId.wuxieluo);
                            }
                        }
                    }
                    break;
                case SPK.SensorWater:
                    {
                        foreach (var dic in dicList)
                        {
                            string value = dic["value"];
                            if (value == "alarm")
                            {
                                button1.Text = Language.StringByID(StringId.luoshui);
                            }
                            else
                            {
                                button1.Text = Language.StringByID(StringId.wuluoshui);
                            }
                        }
                    }
                    break;
                case SPK.SensorDryContact:
                    {
                        foreach (var dic in dicList)
                        {
                            string value = dic["value"];
                            if (value == "on")
                            {
                                button1.Text = Language.StringByID(StringId.onLogic);
                            }
                            else
                            {
                                button1.Text = Language.StringByID(StringId.offLogic);
                            }
                        }
                    }
                    break;
                case SPK.SensorShanLan:
                case SPK.SensorDuiShe:
                case SPK.SensorPir:
                    {
                        foreach (var dic in dicList)
                        {
                            string value = dic["value"];
                            if (value == "true")
                            {
                                button1.Text = Language.StringByID(StringId.youren);
                            }
                            else
                            {
                                button1.Text = Language.StringByID(StringId.wuren);
                            }
                        }
                    }
                    break;
                case SPK.SensorDoorWindow:
                    {
                        foreach (var dic in dicList)
                        {
                            string value = dic["value"];
                            if (value == "open")
                            {
                                button1.Text = Language.StringByID(StringId.kaiqi);
                            }
                            else
                            {
                                button1.Text = Language.StringByID(StringId.bihe);
                            }
                        }
                    }
                    break;
                case SPK.SensoruUtrasonic:
                    {
                        foreach (var dic in dicList)
                        {
                            string value = dic["value"];
                            switch (dic["key"])
                            {
                                case "status":
                                    {
                                        if (value == "true")
                                        {
                                            button1.Text = Language.StringByID(StringId.youren);
                                        }
                                        else
                                        {
                                            button1.Text = Language.StringByID(StringId.wuren);
                                        }
                                    }
                                    break;
                                case "dismantle":
                                    {
                                        if (value == "true")
                                        {
                                            button1.Text = Language.StringByID(StringId.zaixian);
                                        }
                                        else
                                        {
                                            button1.Text = Language.StringByID(StringId.buzaixian);
                                        }
                                    }
                                    break;
                            }
                        }
                    }
                    break;
            }
        }
        /// <summary>
@@ -844,7 +1351,6 @@
            }
            return valueStr;
        }
        /// <summary>
        ///获取自动化名称
        /// </summary>
@@ -894,9 +1400,9 @@
                            name += device.name;
                            string stateStr = "";
                            //区别不同设备,显示不同设备状态
                            switch (device.functionType)
                            switch (device.spk)
                            {
                                case FunctionType.Relay:
                                case SPK.LightSwitch:
                                    {//开关灯
                                        foreach (var dic in dicList)
@@ -914,10 +1420,10 @@
                                        }
                                    }
                                    break;
                                case FunctionType.RGB:
                                case FunctionType.RGBW:
                                case FunctionType.ColorTemperature:
                                case FunctionType.Dimmer:
                                case SPK.LightRGB:
                                case SPK.LightRGBW:
                                case SPK.LightCCT:
                                case SPK.LightDimming:
                                    {
                                        string on_off = InpOrOutLogicMethod.GetKeyValue("on_off", dicList);
                                        string brightness = InpOrOutLogicMethod.GetKeyValue("brightness", dicList);
@@ -939,9 +1445,9 @@
                                        }
                                    }
                                    break;
                                case FunctionType.Curtain:
                                case FunctionType.MotorCurtain:
                                case FunctionType.RollingShutter:
                                case SPK.CurtainSwitch:
                                case SPK.CurtainTrietex:
                                case SPK.CurtainRoller:
                                    {
                                        foreach (var dic in dicList)
                                        {
@@ -967,8 +1473,8 @@
                                        }
                                    }
                                    break;
                                case FunctionType.AC:
                                case FunctionType.FloorHeating:
                                case SPK.AcStandard:
                                case SPK.FloorHeatStandard:
                                    {
                                        foreach (var dic in dicList)
                                        {