陈嘉乐
2021-01-27 122dc4312c72b2d2aaa50a2adf84165f5600b99a
HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
@@ -55,48 +55,123 @@
                //地热
                case SPK.FloorHeatStandard:
                    {
                        LogicView.FunTypeView lightSwitchView = new LogicView.FunTypeView();
                        lightSwitchView.btnText.TextID = StringId.switchLogic;
                        lightSwitchView.btnState.Text = "";
                        fLayout.AddChidren(lightSwitchView.FLayoutView());
                        lightSwitchView.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            FrameLayout frame = new FrameLayout
                            {
                                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
                            };
                            this.AddChidren(frame);
                            LogicView.SwitchView switchView = new LogicView.SwitchView();
                            switchView.FLayoutView(frame, 2, lightSwitchView.btnState.Text, (strValue) =>
                            {
                                int id = 0;
                                switch (strValue)
                                {
                                    case "on":
                                        {
                                            id = StringId.onLogic;
                                        }
                                        break;
                                    case "off":
                                        {
                                            id = StringId.offLogic;
                                        }
                                        break;
                                }
                                //显示文本
                                lightSwitchView.btnState.TextID = id;
                                selectedState = device.spk + "_" + strValue;
                                //设备属性值,云雀上定义好的;
                                string keyVlaue = "on_off";
                                AddDictionary(keyVlaue, strValue);
                            });
                        LogicView.FunTypeView view = new LogicView.FunTypeView();
                        view.btnText.TextID = StringId.switchLogic;
                        fLayout.AddChidren(view.FLayoutView());
                        view.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            DeviceView(device, view.btnState, StringId.onLogic, StringId.offLogic);
                        };
                        if (edit)
                        {
                            GetEditState(device, index, lightSwitchView.btnState, null, null, null);
                            GetEditState(device, index, view.btnState, null, null, null);
                        }
                    }
                    break;
                case SPK.SensorWater:
                    {
                        LogicView.FunTypeView view = new LogicView.FunTypeView();
                        view.btnText.TextID = StringId.luoshuiandwuluoshui;
                        fLayout.AddChidren(view.FLayoutView());
                        view.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            DeviceView(device, view.btnState, StringId.luoshui, StringId.wuluoshui);
                        };
                        if (edit)
                        {
                            GetEditState(device, index, view.btnState, null, null, null);
                        }
                    }
                    break;
                case SPK.SensorSmoke:
                case SPK.SensorGas:
                    {
                        LogicView.FunTypeView view = new LogicView.FunTypeView();
                        view.btnText.TextID = StringId.xieluoandwuxieluo;
                        fLayout.AddChidren(view.FLayoutView());
                        view.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            DeviceView(device, view.btnState, StringId.xieluo, StringId.wuxieluo);
                        };
                        if (edit)
                        {
                            GetEditState(device, index, view.btnState, null, null, null);
                        }
                    }
                    break;
                case SPK.SensorDryContact:
                    {
                        LogicView.FunTypeView view = new LogicView.FunTypeView();
                        view.btnText.TextID = StringId.switchLogic;
                        fLayout.AddChidren(view.FLayoutView());
                        view.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            DeviceView(device, view.btnState, StringId.onLogic, StringId.offLogic);
                        };
                        if (edit)
                        {
                            GetEditState(device, index, view.btnState, null, null, null);
                        }
                    }
                    break;
                case SPK.SensorShanLan:
                case SPK.SensorDuiShe:
                case SPK.SensorPir:
                    {
                        LogicView.FunTypeView view = new LogicView.FunTypeView();
                        view.btnText.TextID = StringId.yourenandwuren;
                        fLayout.AddChidren(view.FLayoutView());
                        view.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            DeviceView(device, view.btnState, StringId.youren, StringId.wuren);
                        };
                        if (edit)
                        {
                            GetEditState(device, index, view.btnState, null, null, null);
                        }
                    }
                    break;
                case SPK.SensorDoorWindow: {
                        LogicView.FunTypeView view = new LogicView.FunTypeView();
                        view.btnText.TextID = StringId.kaiqiandbihe;
                        fLayout.AddChidren(view.FLayoutView());
                        view.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            DeviceView(device, view.btnState, StringId.kaiqi , StringId.bihe);
                        };
                        if (edit)
                        {
                            GetEditState(device, index, view.btnState, null, null, null);
                        }
                    }
                    break;
                case SPK.SensoruUtrasonic:
                    {
                        LogicView.FunTypeView view = new LogicView.FunTypeView();
                        view.btnText.TextID = StringId.yourenandwuren;
                        fLayout.AddChidren(view.FLayoutView());
                        view.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            DeviceView(device, view.btnState, StringId.youren, StringId.wuren);
                        };
                        LogicView.FunTypeView view1 = new LogicView.FunTypeView();
                        view1.frameLayout.Y = view.frameLayout.Bottom;
                        view1.btnText.TextID = StringId.fangchaigongneng;
                        fLayout.AddChidren(view1.FLayoutView());
                        view1.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            DeviceView(device, view1.btnState, StringId.zaixian, StringId.buzaixian);
                        };
                        if (edit)
                        {
                            GetEditState(device, index, view.btnState, view1.btnState, null, null);
                        }
                    }
                    break;
@@ -149,6 +224,94 @@
        }
        /// <summary>
        /// 设备选择条件界面
        /// </summary>
        /// <param name="device">设备</param>
        /// <param name="button">选中状态显示文本Btn控件</param>
        /// <param name="btnText1">属性状态值文本1</param>
        /// <param name="btnText2">属性状态值文本2</param>
        private void DeviceView(Entity.Function device,Button button,int btnText1,int btnText2) {
            FrameLayout frame = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence };
            this.AddChidren(frame);
            LogicView.SwitchView switchView = new LogicView.SwitchView();
            switchView.FLayoutView(frame, btnText1, btnText2, button.Text, (intValue) =>
            {
                //设备属性值,云雀上定义好的;
                string keyVlaue = "on_off";
                string value = "";
                switch (device.spk)
                {
                    //传感器
                    case SPK.SensorWater:
                    case SPK.SensorSmoke:
                    case SPK.SensorGas:
                    case SPK.SensorDryContact:
                    case SPK.SensorShanLan:
                    case SPK.SensorDuiShe:
                    case SPK.SensorPir:
                    case SPK.SensorDoorWindow:
                    case SPK.SensoruUtrasonic:
                        {
                            keyVlaue = "status";
                        }
                        break;
                }
                switch (intValue)
                {
                    case StringId.xieluo:
                    case StringId.luoshui:
                        {
                            value = "alarm";
                        }
                        break;
                    case StringId.wuxieluo:
                    case StringId.wuluoshui:
                        {
                            value = "normal";
                        }
                        break;
                    case StringId.onLogic:
                        {
                            value = "on";
                        }
                        break;
                    case StringId.offLogic:
                        {
                            value = "off";
                        }
                        break;
                    case StringId.youren:
                    case StringId.kaiqi:
                        {
                            value = "true";
                        }
                        break;
                    case StringId.wuren:
                    case StringId.bihe:
                        {
                            value = "false";
                        }
                        break;
                    case StringId.zaixian: {
                            keyVlaue = "dismantle";
                            value = "true";
                        };break;
                    case StringId.buzaixian:
                        {
                            keyVlaue = "dismantle";
                            value = "false";
                        }; break;
                }
                //显示文本
                button.TextID = intValue;
                selectedState = device.spk + "_" + value;
                AddDictionary(keyVlaue, value);
            });
        }
        /// <summary>
        /// 显示编辑之前的设备状态
        /// </summary>
        /// <param name="device">编辑设备</param>