wei
2021-01-27 7232642ff48a7fbde2018cde652f3e771fa58025
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);
@@ -126,28 +122,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)
                                        {
@@ -165,6 +161,94 @@
                                        }
                                    }
                                    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;
@@ -187,7 +271,6 @@
                            break;
                        }
                    }
                    //标记编辑状态
                    bool edit = true;
                    switch (button.Name)
@@ -255,6 +338,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;
                    }
                };
                ///删除控件
@@ -277,12 +432,6 @@
            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);
@@ -300,7 +449,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;
                            //改变设备名称显示控件宽度
@@ -308,9 +457,9 @@
                            //第一个变量显示状态值
                            string stateStr = "";
                            //区别不同设备,显示不同设备状态
                            switch (device.functionType)
                            switch (device.spk)
                            {
                                case FunctionType.Relay:
                                case SPK.LightSwitch:
                                    {//开关灯
                                        foreach (var dic in dicList)
@@ -329,10 +478,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);
@@ -355,9 +504,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)
                                        {
@@ -384,7 +533,7 @@
                                        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);
@@ -480,7 +629,7 @@
                                    }
                                    break;
                                case FunctionType.FloorHeating:
                                case SPK.FloorHeatStandard:
                                    {
                                        string on_off = GetKeyValue("on_off", dicList);
                                        string set_temp = GetKeyValue("set_temp", dicList);
@@ -666,10 +815,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)
                        {
@@ -685,10 +834,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)
                        {
@@ -718,9 +867,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)
                        {
@@ -746,7 +895,7 @@
                        }
                    }
                    break;
                case FunctionType.AC:
                case SPK.AcStandard:
                    {
                        foreach (var dic in dicList)
                        {
@@ -842,7 +991,7 @@
                    }
                    break;
                case FunctionType.FloorHeating:
                case SPK.FloorHeatStandard:
                    {
                        foreach (var dic in dicList)
@@ -938,7 +1087,6 @@
            }
            return valueStr;
        }
        /// <summary>
        ///获取自动化名称
        /// </summary>
@@ -988,9 +1136,9 @@
                            name += device.name;
                            string stateStr = "";
                            //区别不同设备,显示不同设备状态
                            switch (device.functionType)
                            switch (device.spk)
                            {
                                case FunctionType.Relay:
                                case SPK.LightSwitch:
                                    {//开关灯
                                        foreach (var dic in dicList)
@@ -1008,10 +1156,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);
@@ -1033,9 +1181,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)
                                        {
@@ -1061,8 +1209,8 @@
                                        }
                                    }
                                    break;
                                case FunctionType.AC:
                                case FunctionType.FloorHeating:
                                case SPK.AcStandard:
                                case SPK.FloorHeatStandard:
                                    {
                                        foreach (var dic in dicList)
                                        {