wjc
2023-07-26 9508510f0b27da3278fa1161eb2ba3dd1e3e2030
HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
@@ -194,7 +194,7 @@
                    }
                    break;
                //人体存在传感器
                case SPK.sensorPirhold:
                case SPK.SensorPirHold:
                    {
                       
@@ -215,12 +215,12 @@
                        view2.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            //主界面控件
                            FrameLayout fLayout = new FrameLayout
                            FrameLayout fLayout2 = new FrameLayout
                            {
                                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
                            };
                            this.AddChidren(fLayout);
                            TimeView(fLayout, device, view2.btnState);
                            this.AddChidren(fLayout2);
                            TimeView(fLayout2, device, view2.btnState);
                        };
@@ -696,6 +696,38 @@
                        }
                    }
                    break;
                case SPK.Peephole:
                    LogicView.FunTypeView viewPeephole = new LogicView.FunTypeView();
                    viewPeephole.btnText.TextID = StringId.ActivityDetection;
                    //viewPeephole.btnText.Name = Language.StringByID(StringId.shipinmensuo);
                    fLayout.AddChidren(viewPeephole.FLayoutView());
                    viewPeephole.btnClick.MouseUpEventHandler += (sender, e) =>
                    {
                        this.identifier = "pir_event";//人体感应告警
                        this.DeviceView(device, viewPeephole.btnState, StringId.shi, StringId.offLogic, 1);
                    };
                    if (edit)
                    {
                        this.GetEditState(device, index, viewPeephole.btnState, null, null, null);
                    }
                    break;
                case SPK.Ev_Ipcam:
                    LogicView.FunTypeView viewEzIpcam = new LogicView.FunTypeView();
                    viewEzIpcam.btnText.TextID = StringId.ActivityDetection;
                    //viewEzIpcam.btnText.Name = Language.StringByID(StringId.shipinmensuo);
                    fLayout.AddChidren(viewEzIpcam.FLayoutView());
                    viewEzIpcam.btnClick.MouseUpEventHandler += (sender, e) =>
                    {
                        this.identifier = "motiondetect_event";//人体感应告警
                        this.DeviceView(device, viewEzIpcam.btnState, StringId.shi, StringId.offLogic, 1);
                    };
                    if (edit)
                    {
                        this.GetEditState(device, index, viewEzIpcam.btnState, null, null, null);
                    }
                    break;
            }
            #region  保存
@@ -747,13 +779,27 @@
                        inputDevice.condition = new List<Dictionary<string, string>>();
                    }
                }
                else if(device.spk == SPK.Peephole)
                {
                    //猫眼-人体感应告警
                    inputDevice.condition_type = "9";
                    inputDevice.identifier = this.identifier;
                    inputDevice.condition = new List<Dictionary<string, string>>();
                }
                else if(device.spk == SPK.Ev_Ipcam)
                {
                    //萤石摄像头-移动监测告警
                    inputDevice.condition_type = "9";
                    inputDevice.identifier = this.identifier;
                    inputDevice.condition = new List<Dictionary<string, string>>();
                }
                else if (device.spk == SPK.VideoDoorLock)
                {
                    ////萤石视频门锁
                    inputDevice.condition_type = "9";
                    inputDevice.identifier = this.identifier;
                }
                else if (device.spk == SPK.sensorPirhold)
                else if (device.spk == SPK.SensorPirHold)
                {
                    //人体存在传感器
                    inputDevice.hold_time = this.hold_time;
@@ -844,7 +890,7 @@
                            }
                        }
                        break;
                    case SPK.sensorPirhold:
                    case SPK.SensorPirHold:
                    case SPK.SensorDuiShe:
                    case SPK.SensorShanLan:
                    case SPK.SensorPir:
@@ -1313,7 +1359,32 @@
                //有数据重新赋值
                dicSateteList.AddRange(dicList);
            }
            InpOrOutLogicMethod.Current.EditDeviceState(device, dicList, button1, button2, button3, button4);
            //事件专用
            switch (device.spk)
            {
                case SPK.IpCam_Imou:
                    {
                        if (inputs.identifier == "ipcam_region_alram_event")
                        {
                            button1.Text = Language.StringByID(StringId.shi);
                        }
                    }
                    break;
                case SPK.Peephole:
                    if (inputs.identifier == "pir_event")
                    {
                        button1.Text = Language.StringByID(StringId.shi );
                    }
                    break;
                case SPK.Ev_Ipcam:
                    if (inputs.identifier == "motiondetect_event")
                    {
                        button1.Text = Language.StringByID(StringId.shi);
                    }
                    break;
            }
            InpOrOutLogicMethod.Current.EditDeviceState(device, dicList, button1, button2, button3, button4, "");
        }
        /// <summary>
        /// 添加选中数据
@@ -1405,7 +1476,7 @@
                string value = dic["value"];
                if (dictionaryA["key"] == key && dictionaryA["comparator"] == comparatorValue)
                {
                    if (this.checkSpk())
                    if (this.CheckSpk())
                    {
                        //有些设备需要增加这个判断
                        if (dictionaryA["value"] == value)
@@ -1429,7 +1500,7 @@
        /// 检查是否支持
        /// </summary>
        /// <returns></returns>
        private bool checkSpk()
        private bool CheckSpk()
        {
            if (this.function.spk == SPK.VideoDoorLock ||
               this.function.spk == SPK.doorgate
@@ -1439,7 +1510,7 @@
            }
            return false;
        }
        }
        /// <summary>
        /// 判断dictionaryB是否完整包含另一个dictionaryA
        /// </summary>
@@ -1448,7 +1519,10 @@
        /// <returns></returns>
        public bool IsContainsAll(List<Dictionary<string, string>> dictionaryA, List<Dictionary<string, string>> dictionaryB)
        {
            if (dictionaryA.Count == 0 || dictionaryB.Count == 0) {
                //萤石猫眼,摄像头,大华摄像头只有事件,没有输入条件
                return true;
            }
            for (int i = 0; i < dictionaryA.Count; i++)
            {
                var dic = dictionaryA[i];