wjc
2023-06-05 8369943018da4ffe3fed1ecf5992edaee597d49c
HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
@@ -36,6 +36,12 @@
        /// 可视对讲专用
        /// </summary>
        private string identifier;
        /// <summary>
        /// 人体传感器持续时间专用
        /// </summary>
        private string hold_time=string.Empty;
        private static ConditionDeviceFunList m_Current = null;
@@ -184,6 +190,59 @@
                        if (edit)
                        {
                            GetEditState(device, index, view.btnState, null, null, null);
                        }
                    }
                    break;
                //人体存在传感器
                case SPK.sensorPirhold:
                    {
                        LogicView.FunTypeView view1 = new LogicView.FunTypeView();
                        view1.btnText.TextID = StringId.rentijiance;
                        view1.btnText.Name = Language.StringByID(StringId.rentijiance);
                        fLayout.AddChidren(view1.FLayoutView());
                        view1.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            DeviceView(device, view1.btnState, StringId.youren, StringId.wuren);
                        };
                        LogicView.FunTypeView view2 = new LogicView.FunTypeView();
                        view2.frameLayout.Y = view1.frameLayout.Bottom;
                        view2.btnText.TextID = StringId.chixushijian;
                        fLayout.AddChidren(view2.FLayoutView());
                        view2.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            //主界面控件
                            FrameLayout fLayout = new FrameLayout
                            {
                                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
                            };
                            this.AddChidren(fLayout);
                            TimeView(fLayout, device, view2.btnState);
                        };
                        if (edit)
                        {
                            try
                            {
                                Input inputs = Logic.currlogic.input[index];
                                if (!string.IsNullOrEmpty(inputs.hold_time) && int.Parse(inputs.hold_time) > 0)
                                {
                                    int time = int.Parse(inputs.hold_time);
                                    int h = time / (60 * 60);
                                    int m = time % (60 * 60) / 60;
                                    int s = (time % (60 * 60) % 60);
                                    view2.btnState.Text = inputs.hold_time + "s";
                                    view2.btnState.Name = h + ":" + m + ":" + s;
                                    this.hold_time = inputs.hold_time;
                                }
                            }
                            catch { }
                            GetEditState(device, index, view1.btnState, view2.btnState, null, null);
                        }
                    }
                    break;
@@ -694,6 +753,11 @@
                    inputDevice.condition_type = "9";
                    inputDevice.identifier = this.identifier;
                }
                else if (device.spk == SPK.sensorPirhold)
                {
                    //人体存在传感器
                    inputDevice.hold_time = this.hold_time;
                }
                if (edit)
@@ -737,6 +801,7 @@
            }
        }
        /// <summary>
        /// 设备选择条件界面
        /// </summary>
@@ -779,6 +844,7 @@
                            }
                        }
                        break;
                    case SPK.sensorPirhold:
                    case SPK.SensorDuiShe:
                    case SPK.SensorShanLan:
                    case SPK.SensorPir:
@@ -1191,6 +1257,43 @@
        }
        /// <summary>
        /// 时间方法
        /// </summary>
        /// <param name="fLayout">在哪个界面显示</param>
        /// <param name="edit">(true=编辑;false=新建)</param>
        /// <param name="index">编辑条件的索引</param>
        private void TimeView(FrameLayout fLayout,Function device, Button button)
        {
            LogicView.TimeView timePointView = new LogicView.TimeView();
            timePointView.FLayoutView(fLayout);
            timePointView.Time(fLayout, button.Name, (timeValue) =>
            {
                try
                {
                    if (timeValue.Contains(":"))
                    {
                        string[] ary = timeValue.Split(':');
                        int h = int.Parse(ary[0]) * 60 * 60;
                        int m = int.Parse(ary[1]) * 60;
                        int s = int.Parse(ary[2]);
                        this.hold_time = (h + m + s).ToString();
                        if (button != null)
                        {
                            button.Text = this.hold_time + "s";
                            button.Name = timeValue;
                        }
                        selectedState = device.spk + "_" + timeValue;
                    }
                }
                catch { }
            });
        }
        /// <summary>
        /// 显示编辑之前的设备状态
        /// </summary>
        /// <param name="device">编辑设备</param>