wxr
2024-05-20 efcffde735fa65ae34bae0bcc86313b74ed0e36c
HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
@@ -41,8 +41,12 @@
        /// 人体传感器持续时间专用
        /// </summary>
        private string hold_time=string.Empty;
        /// <summary>
        /// 检测类型 配合condition_type=3时使用,没有该字段、该值或0: 状态检测(每次收到状态就成立),1:动作检测(需要切换状态才成立)
        /// </summary>
        private string detect_type = "0";
        private static ConditionDeviceFunList m_Current = null;
@@ -198,7 +202,7 @@
                //人体存在传感器
                case SPK.SensorPirHold:
                    {
                        LogicView.FunTypeView view1 = new LogicView.FunTypeView();
                        view1.btnText.TextID = StringId.rentijiance;
@@ -226,6 +230,31 @@
                        };
                        LogicView.FunTypeView view3 = new LogicView.FunTypeView();
                        view3.frameLayout.Y = view2.frameLayout.Bottom;
                        view3.btnText.TextID = StringId.zhixingmoshi;
                        view3.btnState.TextID = StringId.shoudaojiuzhixing;
                        fLayout.AddChidren(view3.FLayoutView());
                        view3.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, StringId.gaibiancaizhixing, StringId.shoudaojiuzhixing, view3.btnState.Text, 2, (intValue) =>
                            {
                                if (StringId.gaibiancaizhixing == intValue)
                                {
                                    this.detect_type = "1";
                                }
                                else
                                {
                                    this.detect_type = "0";
                                }
                                view3.btnState.TextID = intValue;
                                selectedState = device.spk + "_" + this.detect_type;
                            });
                        };
                        if (edit)
                        {
@@ -238,9 +267,21 @@
                                    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.Text = LogicMethod.Current.getTimeStr(inputs.hold_time);
                                    view2.btnState.Name = h + ":" + m + ":" + s;
                                    this.hold_time = inputs.hold_time;
                                }
                                if (!string.IsNullOrEmpty(inputs.detect_type))
                                {
                                    this.detect_type = inputs.detect_type;
                                    if (inputs.detect_type == "1")
                                    {
                                        view3.btnState.TextID = StringId.gaibiancaizhixing;
                                    }
                                    else
                                    {
                                        view3.btnState.TextID = StringId.shoudaojiuzhixing;
                                    }
                                }
                            }
                            catch { }
@@ -268,11 +309,11 @@
                case SPK.SensorHelp:
                    {
                        LogicView.FunTypeView view = new LogicView.FunTypeView();
                        view.btnText.TextID = StringId.qiujiuandzhengchang;
                        view.btnText.TextID = StringId.qiujiu;
                        fLayout.AddChidren(view.FLayoutView());
                        view.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            DeviceView(device, view.btnState, StringId.qiujiu, StringId.zhengchang );
                            DeviceView(device, view.btnState, StringId.qiujiu, StringId.zhengchang,1);
                        };
                        if (edit)
                        {
@@ -734,6 +775,7 @@
                        }
                    }
                    break;
                    //猫眼
                case SPK.Peephole:
                    LogicView.FunTypeView viewPeephole = new LogicView.FunTypeView();
                    viewPeephole.btnText.TextID = StringId.ActivityDetection;
@@ -750,6 +792,7 @@
                        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;
@@ -757,7 +800,7 @@
                    fLayout.AddChidren(viewEzIpcam.FLayoutView());
                    viewEzIpcam.btnClick.MouseUpEventHandler += (sender, e) =>
                    {
                        this.identifier = "motiondetect_event";//人体感应告警
                        this.identifier = Constant.intelligentDetection_event;//人体感应告警
                        this.DeviceView(device, viewEzIpcam.btnState, StringId.shi, StringId.offLogic, 1);
                    };
@@ -842,6 +885,7 @@
                {
                    //人体存在传感器
                    inputDevice.hold_time = this.hold_time;
                    inputDevice.detect_type = this.detect_type;
                }
@@ -894,7 +938,7 @@
        /// <param name="button">选中状态显示文本Btn控件</param>
        /// <param name="btnText1">属性状态值文本1</param>
        /// <param name="btnText2">属性状态值文本2</param>
        /// <param name="viewCount">view数量</param>
        /// <param name="viewCount">view数量,默认2个view</param>
        private void DeviceView(Entity.Function device, Button button, int btnText1, int btnText2,int viewCount=2)
        {
            FrameLayout frame = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence };
@@ -997,11 +1041,19 @@
                    case StringId.onLogic:
                        {
                            value = "on";
                            if (device.spk== SPK.SensorDryContact) {
                                value = "open";
                            }
                        }
                        break;
                    case StringId.offLogic:
                        {
                            value = "off";
                            if (device.spk == SPK.SensorDryContact)
                            {
                                value = "close";
                            }
                        }
                        break;
                    case StringId.youren:
@@ -1112,10 +1164,12 @@
                }
            }
            int max = 100;
            int min = 1;
            if (device.spk == SPK.SensorLight)
            {
                //照明传感器
                max =int.MaxValue;
                min = 0;
                max =1200;
            }
            new LogicView.TipPopView { }.InputBox(textInt, stateValue, (value) =>
@@ -1162,12 +1216,12 @@
                            key = "illuminance";
                            comparator = "<";
                        }
                        break;
                        break ;
                }
                selectedState = device.spk + "_" + value;
                AddDictionary(key, value, data_type, comparator);
                SaveInput(device,index, edit);
            },1,max);
            },min,max);
        }
        /// PM2.5,Co2,Tvoc设置值
        /// </summary>
@@ -1257,27 +1311,30 @@
                         if (indexeList.Count > 0)
                         {
                             dicSateteList.Clear();
                             string s = string.Empty;
                             string userNameStr = string.Empty;
                             string seleUsrIdStr = string.Empty;
                             string tag = string.Empty;
                             //数据封装
                             string[] arrayUserIds = new string[indexeList.Count];
                             //开门类型
                             AddDictionary("open_type", "1", "integer");
                             for (int i = 0; i < indexeList.Count; i++)
                             {
                                 if (i > faceIdList.Count)
                                 {
                                     continue;
                                 }
                                 var indexe = indexeList[i];
                                 var face = faceIdList[indexe];
                                 AddDictionary("user_id", face.userId, "string");
                                 s += face.userName;
                                 s += ",";
                                 tag += face.userId;
                                 tag += "_";
                                 userNameStr += face.userName;
                                 userNameStr += ",";
                                 arrayUserIds[i] = face.userId;
                             }
                             seleUsrIdStr = Newtonsoft.Json.JsonConvert.SerializeObject(arrayUserIds);
                             AddDictionary("user_id", seleUsrIdStr, "string", "[]");
                             //界面显示选中值
                             btnState.Text = s;
                             btnState.Text = InpOrOutLogicMethod.Current.RemoveLastStr(userNameStr);
                             btnState.Tag = tag;
                         }
@@ -1391,7 +1448,7 @@
                        this.hold_time = (h + m + s).ToString();
                        if (button != null)
                        {
                            button.Text = this.hold_time + "s";
                            button.Text = LogicMethod.Current.getTimeStr(this.hold_time);
                            button.Name = timeValue;
                        }
                        selectedState = device.spk + "_" + timeValue;
@@ -1442,7 +1499,7 @@
                    }
                    break;
                case SPK.Ev_Ipcam:
                    if (inputs.identifier == "motiondetect_event")
                    if (inputs.identifier == Constant.intelligentDetection_event)
                    {
                        button1.Text = Language.StringByID(StringId.shi);
                    }