wei
2020-12-22 852764dc2873798d18bfa3fd5f43895720bd5437
Merge branch 'NewFilePath' of http://172.16.1.23:6688/r/~wxr/HDL_APP_Project into NewFilePath
1个文件已添加
1个文件已删除
5个文件已修改
1244 ■■■■ 已修改文件
HDL_ON/UI/UI2/3-Intelligence/Automation/.DS_Store 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/AutomationMenuPage.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs 274 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/InterfaceDsplaysLogic.cs 340 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs 485 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/Automation/.DS_Store
Binary files differ
HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs
@@ -103,7 +103,7 @@
            LogicView.LogicTypeTitleView cyclicTitle = new LogicView.LogicTypeTitleView();
            cyclicTitle.frameLayout.Height = Application.GetRealHeight(50);
            cyclicTitle.frameLayout.Radius = (uint)Application.GetRealHeight(12);
            cyclicTitle.btnText.Text = MainView.GetWeekText(Logic.currlogic);
            cyclicTitle.btnText.Text = MainView.GetCyclicText(Logic.currlogic);
            viewLayout.AddChidren(cyclicTitle.FLayoutView());
            #endregion
@@ -160,7 +160,7 @@
                this.AddChidren(fLayout);
                AndOrMethod(fLayout, titleCondition.btnText);
            };
            ///条件点击事件
            ///条件添加点击事件
            addInputIcon.btnClick.MouseUpEventHandler += (sen, e) =>
            {
                var addInputType = new AddInputType();
@@ -168,7 +168,7 @@
                addInputType.Show();
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            };
            ///目标点击事件
            ///目标添加点击事件
            addOutputIcon.btnClick.MouseUpEventHandler += (sen, e) =>
            {
                var addTarget = new AddTarget();
@@ -209,7 +209,7 @@
                    {
                        list.Add(logic.name);
                    }
                    new LogicView.TipPopView().InputBox(StringId.editName, Logic.currlogic.name, StringId.nameNull, StringId.NameAlreadyExists, list, (logicName) =>
                    new LogicView.TipPopView().InputBox(StringId.editName, InterfaceDsplaysLogic.GetLogicName(Logic.currlogic), StringId.nameNull, StringId.NameAlreadyExists, list, (logicName) =>
                    {
                        Logic.currlogic.name = logicName;
                        Logic.currlogic.sid = LogicMethod.NewSid();
@@ -477,7 +477,7 @@
            weekStateList.Clear();
            if (Logic.currlogic.cycle.type == "week")
            {
                var list = GetWeekString(Logic.currlogic.cycle.value, "int");
                var list = InterfaceDsplaysLogic.GetWeekString(Logic.currlogic.cycle.value, "int");
                //加载之前保存的数据
                weekStateList.AddRange(list);
            }
@@ -485,7 +485,7 @@
            weekView.MultiSelectShow(fLayout, weekStr, Language.StringByID(StringId.cyclic), weekStateList
               , (list) =>
               {
                   var statelist = GetWeekString(list, "str");
                   var statelist = InterfaceDsplaysLogic.GetWeekString(list, "str");
                   Logic.currlogic.cycle.type = "week";
                   Logic.currlogic.cycle.value = statelist;
                   button.Text = MainView.GetWeekString(statelist);
@@ -541,98 +541,8 @@
        }
        /// <summary>
        /// 星期周期转换值的方法
        /// </summary>
        /// <param name="list"></param>
        /// <param name="str_or_int"></param>
        /// <returns></returns>
        public 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;
        }
    }
}
HDL_ON/UI/UI2/3-Intelligence/Automation/AutomationMenuPage.cs
File was deleted
HDL_ON/UI/UI2/3-Intelligence/Automation/InpOrOutLogicMethod.cs
@@ -15,6 +15,12 @@
            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);
@@ -177,6 +183,12 @@
            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);
@@ -550,14 +562,274 @@
                };
            }
        }
        /// <summary>
        /// 显示编辑之前的设备状态
        /// </summary>
        /// <param name="device">编辑设备</param>
        /// <param name="button1">显示Btn</param>
        /// <param name="button2">显示Btn</param>
        /// <param name="button3">显示Btn</param>
        /// <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)
            {
                //开关灯光
                case FunctionType.Relay:
                    {
                        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 FunctionType.Dimmer:
                case FunctionType.RGB:
                case FunctionType.RGBW:
                case FunctionType.ColorTemperature:
                    {
                        foreach (var dic in dicList)
                        {
                            string value = dic["value"];
                            switch (dic["key"])
                            {
                                case "on_off":
                                    {
                                        if (value == "on")
                                        {
                                            button1.Text = Language.StringByID(StringId.onLogic);
                                        }
                                        else
                                        {
                                            button1.Text = Language.StringByID(StringId.offLogic);
                                        }
                                    }
                                    break;
                                case "brightness":
                                    {
                                        button2.Text = value + "%";
                                    }
                                    break;
                            }
                        }
                    }
                    break;
                case FunctionType.Curtain:
                case FunctionType.MotorCurtain:
                case FunctionType.RollingShutter:
                    {
                        foreach (var dic in dicList)
                        {
                            string value = dic["value"];
                            switch (value)
                            {
                                case "on":
                                    {
                                        button1.Text = Language.StringByID(StringId.onLogic);
                                    }
                                    break;
                                case "off":
                                    {
                                        button1.Text = Language.StringByID(StringId.offLogic);
                                    }
                                    break;
                                case "stop":
                                    {
                                        button1.Text = Language.StringByID(StringId.stop);
                                    }
                                    break;
                            }
                        }
                    }
                    break;
                case FunctionType.AC:
                    {
                        foreach (var dic in dicList)
                        {
                            string value = dic["value"];
                            switch (dic["key"])
                            {
                                case "on_off":
                                    {
                                        switch (value)
                                        {
                                            case "on":
                                                {
                                                    button1.Text = Language.StringByID(StringId.onLogic);
                                                }
                                                break;
                                            case "off":
                                                {
                                                    button1.Text = Language.StringByID(StringId.offLogic);
                                                }
                                                break;
                                        }
                                    }
                                    break;
                                case "set_temp":
                                    {
                                        button2.Text = value + "℃";
                                    }
                                    break;
                                case "mode":
                                    {
                                        switch (value)
                                        {
                                            case "cool":
                                                {
                                                    button3.Text = Language.StringByID(StringId.coolLogic);
                                                }
                                                break;
                                            case "heat":
                                                {
                                                    button3.Text = Language.StringByID(StringId.heatingLogic);
                                                }
                                                break;
                                            case "auto":
                                                {
                                                    button3.Text = Language.StringByID(StringId.autoLogic);
                                                }
                                                break;
                                            case "dry":
                                                {
                                                    button3.Text = Language.StringByID(StringId.dehumidifyLogic);
                                                }
                                                break;
                                        }
                                    }
                                    break;
                                case "fan":
                                    {
                                        switch (value)
                                        {
                                            case "high":
                                                {
                                                    button4.Text = Language.StringByID(StringId.HighWindSpeed);
                                                }
                                                break;
                                            case "medium":
                                                {
                                                    button4.Text = Language.StringByID(StringId.MiddleWindSpeed);
                                                }
                                                break;
                                            case "low":
                                                {
                                                    button4.Text = Language.StringByID(StringId.LowWindSpeed);
                                                }
                                                break;
                                            case "auto":
                                                {
                                                    button4.Text = Language.StringByID(StringId.Auto);
                                                }
                                                break;
                                        }
                                    }
                                    break;
                            }
                        }
                    }
                    break;
                case FunctionType.FloorHeating:
                    {
                        foreach (var dic in dicList)
                        {
                            string value = dic["value"];
                            switch (dic["key"])
                            {
                                case "on_off":
                                    {
                                        switch (value)
                                        {
                                            case "on":
                                                {
                                                    button1.Text = Language.StringByID(StringId.onLogic);
                                                }
                                                break;
                                            case "off":
                                                {
                                                    button1.Text = Language.StringByID(StringId.offLogic);
                                                }
                                                break;
                                        }
                                    }
                                    break;
                                case "set_temp":
                                    {
                                        button2.Text = value + "℃";
                                    }
                                    break;
                                case "mode":
                                    {
                                        switch (value)
                                        {
                                            case "day":
                                                {
                                                    button3.Text = Language.StringByID(StringId.dayMode);
                                                }
                                                break;
                                            case "night":
                                                {
                                                    button3.Text = Language.StringByID(StringId.nightMode);
                                                }
                                                break;
                                            case "away":
                                                {
                                                    button3.Text = Language.StringByID(StringId.leaveMode);
                                                }
                                                break;
                                            case "normal":
                                                {
                                                    button3.Text = Language.StringByID(StringId.ordinaryMode);
                                                }
                                                break;
                                            case "timer":
                                                {
                                                    button3.Text = Language.StringByID(StringId.timeMode);
                                                }
                                                break;
                                        }
                                    }
                                    break;
                            }
                        }
                    }
                    break;
            }
        }
        /// <summary>
        /// 获取value键值
        /// </summary>
        /// <param name="keyValue"></param>
        /// <param name="dicList"></param>
        /// <returns></returns>
        private static string GetKeyValue(string keyValue, List<Dictionary<string, string>> dicList)
        public static string GetKeyValue(string keyValue, List<Dictionary<string, string>> dicList)
        {
            string valueStr = "";
HDL_ON/UI/UI2/3-Intelligence/Automation/InterfaceDsplaysLogic.cs
New file
@@ -0,0 +1,340 @@
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;
        }
    }
}
HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs
@@ -43,7 +43,7 @@
                LogicView.SingleLogicView logicView = new LogicView.SingleLogicView();
                vv.AddChidren(logicView.FLayoutView());
                logicView.btnLogicName.Text = currLogic.name;
                logicView.btnWeekText.Text = GetWeekText(currLogic);
                logicView.btnWeekText.Text = GetCyclicText(currLogic);
                logicView.btnclick.MouseUpEventHandler += (sen, e) =>
                {
                    Logic.currlogic = currLogic;
@@ -135,7 +135,7 @@
        ///返回循环描述文本
        /// </summary>
        /// <param name="logic"></param>
        public static string GetWeekText(Logic logic)
        public static string GetCyclicText(Logic logic)
        {
            string weekName = "";
@@ -168,7 +168,7 @@
            return weekName;
        }
        /// <summary>
        /// 获取星期的字符串
        /// 返回星期描述文本
        /// </summary>
        /// <param name="weekList"></param>
        /// <returns></returns>
@@ -311,6 +311,12 @@
            //2-功能图标
            for (int i = 0; i < logic.input.Count; i++)
            {
                if (logic.input[i] == null)
                {
                    //防止有的空对象;
                    //正常情况下不会该现象;
                    continue;
                }
                var int1 = int.Parse(logic.input[i].condition_type);
                int iconInt = 0;
@@ -347,6 +353,12 @@
            //14-延时图标
            for (int i = 0; i < logic.output.Count; i++)
            {
                if (logic.output[i] == null)
                {
                    //防止有的空对象;
                    //正常情况下不会该现象;
                    continue;
                }
                var int1 = int.Parse(logic.output[i].target_type);
                int iconInt = 0;
                switch (int1)
HDL_ON/UI/UI2/3-Intelligence/Automation/TargetDeviceFunList.cs
@@ -183,65 +183,28 @@
                                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
                            };
                            this.AddChidren(frame);
                            LogicView.DateView modeView = new LogicView.DateView();
                            modeView.btnTitle.TextID = StringId.modeLogic;
                            modeView.FLayoutView(frame, modeStr.Count);
                            modeView.btnCancel.MouseUpEventHandler += (sender2, e2) =>
                            {
                                frame.RemoveFromParent();
                            };
                            ///定义一个Btn记录选中状态
                            Button checkBtn = new Button
                            {
                                Tag = "unknown",
                            };
                            for (int i = 0; i < modeStr.Count; i++)
                            {
                                LogicView.CheckView modeTypeView = new LogicView.CheckView();
                                modeTypeView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i);
                                modeView.frameLayout.AddChidren(modeTypeView.FLayoutView());
                                modeTypeView.btnText.Text = modeStr[i];
                                modeTypeView.btnClick.Tag = modeStr[i];//标记
                                if (acModehView.btnState.Text == modeStr[i])
                                {
                                    //显示之前的选中状态
                                    checkBtn.IsSelected = false;
                                    modeTypeView.btnCheckIcon.IsSelected = true;
                                    checkBtn = modeTypeView.btnCheckIcon;
                                    checkBtn.Tag = modeTypeView.btnClick.Tag.ToString();
                                }
                                //星期的点击事件
                                modeTypeView.btnClick.MouseUpEventHandler += (sender1, e1) =>
                                {
                                    checkBtn.IsSelected = false;
                                    modeTypeView.btnCheckIcon.IsSelected = true;
                                    checkBtn = modeTypeView.btnCheckIcon;
                                    checkBtn.Tag = modeTypeView.btnClick.Tag.ToString();
                                };
                            }
                            modeView.btnConfirm.MouseUpEventHandler += (sender1, e1) =>
                            {
                                if (checkBtn.Tag.ToString() == "unknown")
                                {
                                    return;
                                }
                            ///之前的状态文本
                            string currText = acModehView.btnState.Text;
                            PublicInterface modeView = new PublicInterface();
                            modeView.SingleSelectionShow(frame, modeStr, Language.StringByID(StringId.modeLogic), currText
                               , (stateValue) =>
                               {
                                   string keyVlaue = "mode";
                                   Dictionary<string, string> dic = new Dictionary<string, string>();
                                   LogicMethod.dictionary(dic, "key", "mode");
                                   LogicMethod.dictionary(dic, "value", InterfaceDsplaysLogic.GetModeValueString(stateValue, "mode"));
                                   AddDictionaryData(dicSateteList, keyVlaue, dic);
                                   acModehView.btnState.Text = stateValue;
                                   selectedState = device.functionType + "_mode";
                                Dictionary<string, string> dic = new Dictionary<string, string>();
                                LogicMethod.dictionary(dic, "key", "mode");
                                string keyVlaue = "mode";
                                LogicMethod.dictionary(dic, "value", GetModeValueString(checkBtn.Tag.ToString(), keyVlaue));
                                acModehView.btnState.Text = checkBtn.Tag.ToString();
                                selectedState = device.functionType + "_mode";
                                AddDictionaryData(dicSateteList, keyVlaue, dic);
                                RemView(frame);
                            };
                               });
                        };
                        ///风速点击事件
                        acSpeedView.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            List<string> speedStr = new List<string> {
                                Language.StringByID(StringId.LowWindSpeed),
                                 Language.StringByID(StringId.MiddleWindSpeed),
@@ -253,60 +216,21 @@
                                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
                            };
                            this.AddChidren(frame);
                            LogicView.DateView speedView = new LogicView.DateView();
                            speedView.btnTitle.TextID = StringId.modeLogic;
                            speedView.FLayoutView(frame, speedStr.Count);
                            speedView.btnCancel.MouseUpEventHandler += (sender2, e2) =>
                            {
                                frame.RemoveFromParent();
                            };
                            ///定义一个Btn记录选中状态
                            Button checkBtn = new Button
                            {
                                Tag = "unknown",
                            };
                            for (int i = 0; i < speedStr.Count; i++)
                            {
                                LogicView.CheckView speedTypeView = new LogicView.CheckView();
                                speedTypeView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i);
                                speedView.frameLayout.AddChidren(speedTypeView.FLayoutView());
                                speedTypeView.btnText.Text = speedStr[i];
                                speedTypeView.btnClick.Tag = speedStr[i];//标记
                                if (acSpeedView.btnState.Text == speedStr[i])
                                {
                                    //显示之前的选中状态
                                    checkBtn.IsSelected = false;
                                    speedTypeView.btnCheckIcon.IsSelected = true;
                                    checkBtn = speedTypeView.btnCheckIcon;
                                    checkBtn.Tag = speedTypeView.btnClick.Tag.ToString();
                                }
                                //星期的点击事件
                                speedTypeView.btnClick.MouseUpEventHandler += (sender1, e1) =>
                                {
                                    checkBtn.IsSelected = false;
                                    speedTypeView.btnCheckIcon.IsSelected = true;
                                    checkBtn = speedTypeView.btnCheckIcon;
                                    checkBtn.Tag = speedTypeView.btnClick.Tag.ToString();
                                };
                            }
                            speedView.btnConfirm.MouseUpEventHandler += (sender1, e1) =>
                            {
                                if (checkBtn.Tag.ToString() == "unknown")
                                {
                                    return;
                                }
                                Dictionary<string, string> dic = new Dictionary<string, string>();
                                LogicMethod.dictionary(dic, "key", "fan");
                                string keyVlaue = "fan";
                                LogicMethod.dictionary(dic, "value", GetModeValueString(checkBtn.Tag.ToString(), keyVlaue));
                                acSpeedView.btnState.Text = checkBtn.Tag.ToString();
                                selectedState = device.functionType + "_fan";
                                AddDictionaryData(dicSateteList, keyVlaue, dic);
                                RemView(frame);
                            };
                            ///之前的状态文本
                            string currText = acSpeedView.btnState.Text;
                            PublicInterface modeView = new PublicInterface();
                            modeView.SingleSelectionShow(frame, speedStr, Language.StringByID(StringId.speedLogic), currText
                               , (stateValue) =>
                               {
                                   string keyVlaue = "fan";
                                   Dictionary<string, string> dic = new Dictionary<string, string>();
                                   LogicMethod.dictionary(dic, "key", "fan");
                                   LogicMethod.dictionary(dic, "value", InterfaceDsplaysLogic.GetModeValueString(stateValue, "fan"));
                                   AddDictionaryData(dicSateteList, keyVlaue, dic);
                                   acSpeedView.btnState.Text = stateValue;
                                   selectedState = device.functionType + "_fan";
                               });
                        };
                        if (edit)
                        {
@@ -434,7 +358,7 @@
                                   string keyVlaue = "mode";
                                   Dictionary<string, string> dic = new Dictionary<string, string>();
                                   LogicMethod.dictionary(dic, "key", "mode");
                                   LogicMethod.dictionary(dic, "value", GetModeValueString(stateValue, "FloorHeating"));
                                   LogicMethod.dictionary(dic, "value", InterfaceDsplaysLogic.GetModeValueString(stateValue, "FloorHeating"));
                                   AddDictionaryData(dicSateteList, keyVlaue, dic);
                                   floorHeatingModehView.btnState.Text = stateValue;
                                   selectedState = device.functionType + "_mode";
@@ -452,7 +376,7 @@
            }
            #endregion
            #region  保存点击时间
            #region  保存点击事件
            saveView.btnClick.MouseUpEventHandler += (sen, e) =>
            {
@@ -462,7 +386,6 @@
                    Output outputDevice = new Output();
                    outputDevice.target_type = "1";
                    outputDevice.sid = device.sid;
                    switch (device.functionType)
                    {
                        case FunctionType.Dimmer:
@@ -557,84 +480,7 @@
            #endregion
        }
        /// <summary>
        /// 获取模式/风速键值
        /// </summary>
        /// <param name="text"></param>
        /// <param name="type"></param>
        /// <returns></returns>
        private 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;
        }
        /// <summary>
        ///开关=界面
        /// </summary>
@@ -799,14 +645,6 @@
        }
        /// <summary>
        /// 移除控件
        /// </summary>
        /// <param name="frame"></param>
        private void RemView(FrameLayout frame)
        {
            frame.RemoveFromParent();
        }
        /// <summary>
        /// 显示编辑之前的设备状态
        /// </summary>
        /// <param name="device">编辑设备</param>
@@ -826,256 +664,7 @@
                //有数据重新赋值
                dicSateteList = dicList;
            }
            switch (device.functionType)
            {
                //开关灯光
                case FunctionType.Relay:
                    {
                        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 FunctionType.Dimmer:
                case FunctionType.RGB:
                case FunctionType.RGBW:
                case FunctionType.ColorTemperature:
                    {
                        foreach (var dic in dicList)
                        {
                            string value = dic["value"];
                            switch (dic["key"])
                            {
                                case "on_off":
                                    {
                                        if (value == "on")
                                        {
                                            button1.Text = Language.StringByID(StringId.onLogic);
                                        }
                                        else
                                        {
                                            button1.Text = Language.StringByID(StringId.offLogic);
                                        }
                                    }
                                    break;
                                case "brightness":
                                    {
                                        button2.Text = value+"%";
                                    }
                                    break;
                            }
                        }
                    }
                    break;
                case FunctionType.Curtain:
                case FunctionType.MotorCurtain:
                case FunctionType.RollingShutter:
                    {
                        foreach (var dic in dicList)
                        {
                            string value = dic["value"];
                            switch (value)
                            {
                                case "on":
                                    {
                                        button1.Text = Language.StringByID(StringId.onLogic);
                                    }
                                    break;
                                case "off":
                                    {
                                        button1.Text = Language.StringByID(StringId.offLogic);
                                    }
                                    break;
                                case "stop":
                                    {
                                        button1.Text = Language.StringByID(StringId.stop);
                                    }
                                    break;
                            }
                        }
                    }
                    break;
                case FunctionType.AC:
                    {
                        foreach (var dic in dicList)
                        {
                            string value = dic["value"];
                            switch (dic["key"])
                            {
                                case "on_off":
                                    {
                                        switch (value)
                                        {
                                            case "on":
                                                {
                                                    button1.Text = Language.StringByID(StringId.onLogic);
                                                }
                                                break;
                                            case "off":
                                                {
                                                    button1.Text = Language.StringByID(StringId.offLogic);
                                                }
                                                break;
                                        }
                                    }
                                    break;
                                case "set_temp":
                                    {
                                        button2.Text = value + "℃";
                                    }
                                    break;
                                case "mode":
                                    {
                                        switch (value)
                                        {
                                            case "cool":
                                                {
                                                    button3.Text = Language.StringByID(StringId.coolLogic);
                                                }
                                                break;
                                            case "heat":
                                                {
                                                    button3.Text = Language.StringByID(StringId.heatingLogic);
                                                }
                                                break;
                                            case "auto":
                                                {
                                                    button3.Text = Language.StringByID(StringId.autoLogic);
                                                }
                                                break;
                                            case "dry":
                                                {
                                                    button3.Text = Language.StringByID(StringId.dehumidifyLogic);
                                                }
                                                break;
                                        }
                                    }
                                    break;
                                case "fan":
                                    {
                                        switch (value)
                                        {
                                            case "high":
                                                {
                                                    button4.Text = Language.StringByID(StringId.HighWindSpeed);
                                                }
                                                break;
                                            case "medium":
                                                {
                                                    button4.Text = Language.StringByID(StringId.MiddleWindSpeed);
                                                }
                                                break;
                                            case "low":
                                                {
                                                    button4.Text = Language.StringByID(StringId.LowWindSpeed);
                                                }
                                                break;
                                            case "auto":
                                                {
                                                    button4.Text = Language.StringByID(StringId.Auto);
                                                }
                                                break;
                                        }
                                    }
                                    break;
                            }
                        }
                    }
                    break;
                case FunctionType.FloorHeating:
                    {
                        foreach (var dic in dicList)
                        {
                            string value = dic["value"];
                            switch (dic["key"])
                            {
                                case "on_off":
                                    {
                                        switch (value)
                                        {
                                            case "on":
                                                {
                                                    button1.Text = Language.StringByID(StringId.onLogic);
                                                }
                                                break;
                                            case "off":
                                                {
                                                    button1.Text = Language.StringByID(StringId.offLogic);
                                                }
                                                break;
                                        }
                                    }
                                    break;
                                case "set_temp":
                                    {
                                        button2.Text = value + "℃";
                                    }
                                    break;
                                case "mode":
                                    {
                                        switch (value)
                                        {
                                            case "day":
                                                {
                                                    button3.Text = Language.StringByID(StringId.dayMode);
                                                }
                                                break;
                                            case "night":
                                                {
                                                    button3.Text = Language.StringByID(StringId.nightMode);
                                                }
                                                break;
                                            case "away":
                                                {
                                                    button3.Text = Language.StringByID(StringId.leaveMode);
                                                }
                                                break;
                                            case "normal":
                                                {
                                                    button3.Text = Language.StringByID(StringId.ordinaryMode);
                                                }
                                                break;
                                            case "timer":
                                                {
                                                    button3.Text = Language.StringByID(StringId.timeMode);
                                                }
                                                break;
                                        }
                                    }
                                    break;
                            }
                        }
                    }
                    break;
            }
            InpOrOutLogicMethod.EditState(device, dicList, button1, button2, button3, button4);
        }
        /// <summary>
        /// 添加处理选中数据
@@ -1139,6 +728,14 @@
            }
        }
        /// <summary>
        /// 移除控件
        /// </summary>
        /// <param name="frame"></param>
        private void RemView(FrameLayout frame)
        {
            frame.RemoveFromParent();
        }
    }