wxr
2023-08-23 96e9ff2e5a54f54cdbb6b8b2f049fdf6a837de3c
OnPro/HDL_ON/UI/UI2/3-Intelligence/Automation/ConditionDeviceFunList.cs
@@ -2,7 +2,6 @@
using Shared;
using System.Collections.Generic;
using HDL_ON.Entity;
using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock;
namespace HDL_ON.UI.UI2.Intelligence.Automation
{
@@ -82,7 +81,6 @@
            switch (device.spk)
            {
                //开关灯光 light.Switch
                case SPK.AirSwitch:
                case SPK.LightDimming:
                case SPK.LightRGB:
                case SPK.LightRGBW:
@@ -102,26 +100,6 @@
                //新风
                case SPK.AirFreshStandard:
                case SPK.HvacAirFresh:
                //插座
                case SPK.PanelSocket:
                case SPK.ElectricSocket:
                    {
                        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.SensorWater:
                    {
                        LogicView.FunTypeView view = new LogicView.FunTypeView();
                        view.btnText.TextID = StringId.luoshuiandwuluoshui;
@@ -137,598 +115,6 @@
                    }
                    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:
                case SPK.SensorDryContact2:
                    {
                        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.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 fLayout2 = new FrameLayout
                            {
                                BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
                            };
                            this.AddChidren(fLayout2);
                            TimeView(fLayout2, 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;
                //门窗传感器
                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.SensorUtrasonic:
                    {
                        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());
                        int intValue = 0;
                        if (edit)
                        {
                            Input inputs = Logic.currlogic.input[index];
                            var dicList = inputs.condition;
                            foreach (var dic in dicList)
                            {
                                if (dic["key"] == "people_status")
                                {
                                    //有人/无人
                                    intValue = 1;
                                }
                                else
                                {
                                    //防拆功能
                                    intValue = 2;
                                }
                                break;
                            }
                        }
                        if (intValue == 1)
                        {
                            //有人/无人
                            view1.frameLayout.Visible = false;
                        }
                        else if (intValue == 2)
                        {
                            //防拆功能
                            view1.frameLayout.Y = Application.GetRealHeight(0);
                        }
                        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;
                //毫米波传感器(自研北邮)
                case SPK.SenesorMegahealth:
                    case SPK.SensorMmvPose:
                    {
                        LogicView.FunTypeView view1 = new LogicView.FunTypeView();
                        view1.btnText.TextID = StringId.diedaobaojing;
                        view1.btnState.Name = Language.StringByID(StringId.diedaobaojing);
                        fLayout.AddChidren(view1.FLayoutView());
                        view1.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            DeviceView(device, view1.btnState, StringId.shi, StringId.offLogic, 1);
                        };
                        LogicView.FunTypeView view2 = new LogicView.FunTypeView();
                        view2.frameLayout.Y = view1.frameLayout.Bottom;
                        view2.btnText.TextID = StringId.yourenbaojing;
                        view2.btnState.Name = Language.StringByID(StringId.yourenbaojing);
                        fLayout.AddChidren(view2.FLayoutView());
                        int intValue = 0;
                        if (edit)
                        {
                            Input inputs = Logic.currlogic.input[index];
                            var dicList = inputs.condition;
                            foreach (var dic in dicList)
                            {
                                if (dic["key"] == "target_status")
                                {
                                    //跌倒报警
                                    intValue = 1;
                                }
                                else
                                {
                                    //有人报警
                                    intValue = 2;
                                }
                                break;
                            }
                        }
                        if (intValue == 1)
                        {
                            //跌倒报警
                            view2.frameLayout.Visible = false;
                        }
                        else if (intValue == 2)
                        {
                            //有人报警
                            view2.frameLayout.Y = Application.GetRealHeight(0);
                        }
                        view2.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            DeviceView(device, view2.btnState, StringId.youren, StringId.wuren, 2);
                        };
                        if (edit)
                        {
                            GetEditState(device, index, view1.btnState, view2.btnState, null, null);
                        }
                    }
                    break;
                //毫米波传感器(兆观专用云云对接)
                case SPK.SenesorMegahealth2:
                    {
                        LogicView.FunTypeView view = new LogicView.FunTypeView();
                        view.btnText.TextID = StringId.mubiaozhuangtai;//目标状态
                        fLayout.AddChidren(view.FLayoutView());
                        view.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            DeviceView(device, view.btnState, StringId.wuren, StringId.diedao);
                        };
                        if (edit)
                        {
                            GetEditState(device, index, view.btnState, null, null, null);
                        }
                    }
                    break;
                //环境检测传感器
                case SPK.SensorEnvironment:case SPK.SensorEnvironmentHailin:
                case SPK.SensorEnvironment2:
                case SPK.SensorEnvironment3:
                    {
                        #region 界面
                        ///温度
                        LogicView.FunTypeView wenuView = new LogicView.FunTypeView();
                        wenuView.btnText.TextID = StringId.wendu;
                        fLayout.AddChidren(wenuView.FLayoutView());
                        ///湿度
                        LogicView.FunTypeView shiduView = new LogicView.FunTypeView();
                        shiduView.frameLayout.Y = wenuView.frameLayout.Bottom;
                        shiduView.btnText.TextID = StringId.shidu;
                        fLayout.AddChidren(shiduView.FLayoutView());
                        ///pm2.5
                        LogicView.FunTypeView pm25View = new LogicView.FunTypeView();
                        pm25View.frameLayout.Y = shiduView.frameLayout.Bottom;
                        pm25View.btnText.TextID = StringId.pm25;
                        fLayout.AddChidren(pm25View.FLayoutView());
                        ///co2
                        LogicView.FunTypeView co2View = new LogicView.FunTypeView();
                        co2View.frameLayout.Y = pm25View.frameLayout.Bottom;
                        co2View.btnText.TextID = StringId.co2;
                        fLayout.AddChidren(co2View.FLayoutView());
                        ///tvoc
                        LogicView.FunTypeView tvocView = new LogicView.FunTypeView();
                        tvocView.frameLayout.Y = co2View.frameLayout.Bottom;
                        tvocView.btnText.TextID = StringId.tvoc;
                        if (SPK.SensorEnvironment3 != device.spk)
                        {
                            fLayout.AddChidren(tvocView.FLayoutView());
                        }
                        #endregion
                        #region 点击事件
                        ///温度点击事件
                        wenuView.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            new PublicInterface { }.ViewZuHe(this, StringId.wendugaoyu, StringId.wendudiyu, (intText, view) =>
                            {
                                InputBoxAction(device, intText, index, edit);
                            });
                        };
                        ///湿度点击事件
                        shiduView.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            new PublicInterface { }.ViewZuHe(this, StringId.shidugaoyu, StringId.shidudiyu, (intText, view) =>
                            {
                                InputBoxAction(device, intText, index, edit);
                            });
                        };
                        ///pm2.5点击事件
                        pm25View.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            PmCo2TvocAction(this, device, "pm25", StringId.pm25, index, edit);
                        };
                        ///co2点击事件
                        co2View.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            PmCo2TvocAction(this, device, "co2", StringId.co2, index, edit);
                        };
                        ///tvoc点击事件
                        tvocView.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            PmCo2TvocAction(this, device, "tvoc", StringId.tvoc, index, edit);
                        };
                        #endregion
                    }
                    break;
                //温度传感器
                case SPK.SensorTemperature:
                    {
                        ///温度
                        LogicView.FunTypeView wenuView = new LogicView.FunTypeView();
                        wenuView.btnText.TextID = StringId.wendu;
                        fLayout.AddChidren(wenuView.FLayoutView());
                        ///温度点击事件
                        wenuView.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            new PublicInterface { }.ViewZuHe(this, StringId.wendugaoyu, StringId.wendudiyu, (intText, view) =>
                            {
                                InputBoxAction(device, intText, index, edit);
                            });
                        };
                    }
                    break;
                //湿度传感器
                case SPK.SensorHumidity:
                    {
                        ///湿度
                        LogicView.FunTypeView shiduView = new LogicView.FunTypeView();
                        shiduView.btnText.TextID = StringId.shidu;
                        fLayout.AddChidren(shiduView.FLayoutView());
                        ///湿度点击事件
                        shiduView.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            new PublicInterface { }.ViewZuHe(this, StringId.shidugaoyu, StringId.shidudiyu, (intText, view) =>
                            {
                                InputBoxAction(device, intText, index, edit);
                            });
                        };
                    }
                    break;
                //co2
                case SPK.SensorCO2:
                    {
                        ///co2
                        LogicView.FunTypeView co2View = new LogicView.FunTypeView();
                        co2View.btnText.TextID = StringId.co2;
                        fLayout.AddChidren(co2View.FLayoutView());
                        ///co2点击事件
                        co2View.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            PmCo2TvocAction(this, device, "co2", StringId.co2, index, edit);
                        };
                    }
                    break;
                //pm10
                case SPK.SensorPm10:
                    {
                        ///pm210
                        LogicView.FunTypeView pm10View = new LogicView.FunTypeView();
                        pm10View.btnText.TextID = StringId.pm10;
                        fLayout.AddChidren(pm10View.FLayoutView());
                        ///pm10点击事件
                        pm10View.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            PmCo2TvocAction(this, device, "pm10", StringId.pm10, index, edit);
                        };
                    }
                    break;
                //pm2.5
                case SPK.SensorPm25:
                    {
                        ///pm2.5
                        LogicView.FunTypeView pm25View = new LogicView.FunTypeView();
                        pm25View.btnText.TextID = StringId.pm25;
                        fLayout.AddChidren(pm25View.FLayoutView());
                        ///pm2.5点击事件
                        pm25View.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            PmCo2TvocAction(this, device, "pm25", StringId.pm25, index, edit);
                        };
                    }
                    break;
                //tvoc
                case SPK.SensorTVOC:
                    {
                        ///tvoc
                        LogicView.FunTypeView tvocView = new LogicView.FunTypeView();
                        tvocView.btnText.TextID = StringId.tvoc;
                        fLayout.AddChidren(tvocView.FLayoutView());
                        ///tvoc点击事件
                        tvocView.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            PmCo2TvocAction(this, device, "tvoc", StringId.tvoc, index, edit);
                        };
                    }
                    break;
                //甲醛
                case SPK.SensorHcho:
                    {
                        ///hcho
                        LogicView.FunTypeView hchoView = new LogicView.FunTypeView();
                        hchoView.btnText.TextID = StringId.Formaldehyde;
                        fLayout.AddChidren(hchoView.FLayoutView());
                        ///hcho点击事件
                        hchoView.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            PmCo2TvocAction(this, device, "hcho", StringId.Formaldehyde, index, edit);
                        };
                    }
                    break;
                //门锁
                case SPK.DoorLock:
                    {
                        LogicView.FunTypeView view = new LogicView.FunTypeView();
                        view.btnText.TextID = StringId.shifoukaisuoshi;
                        fLayout.AddChidren(view.FLayoutView());
                        view.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            DeviceView(device, view.btnState, StringId.shi, StringId.offLogic, 1);
                        };
                        if (edit)
                        {
                            GetEditState(device, index, view.btnState, null, null, null);
                        }
                    }
                    break;
                //可视对讲
                case SPK.doorgate:
                    {
                        LogicView.FunTypeView view1 = new LogicView.FunTypeView();
                        view1.btnText.TextID = StringId.shipintonghuahujiao;
                        view1.btnText.Name = Language.StringByID(StringId.shipintonghuahujiao);
                        fLayout.AddChidren(view1.FLayoutView());
                        view1.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            this.identifier = "door_call_cloud_event";
                            this.DeviceView(device, view1.btnState, StringId.shi, StringId.offLogic, 1);
                        };
                        LogicView.FunTypeView view2 = new LogicView.FunTypeView();
                        view2.frameLayout.Y = view1.frameLayout.Bottom;
                        view2.btnText.TextID = StringId.renliankaimen;
                        fLayout.AddChidren(view2.FLayoutView());
                        view2.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            this.identifier = "door_pedestrian_records";
                            this.FaceAction(this, device, view2.btnState);
                        };
                        int intValue = 0;
                        if (edit)
                        {
                            Input inputs = Logic.currlogic.input[index];
                            if (inputs.identifier == "door_call_cloud_event")
                            {
                                intValue = 1;
                            }
                            else
                            {
                                intValue = 2;
                            }
                        }
                        if (intValue == 1)
                        {
                            view2.frameLayout.Visible = false;
                        }
                        else if (intValue == 2)
                        {
                            view2.frameLayout.Y = Application.GetRealHeight(0);
                        }
                        if (edit)
                        {
                            this.GetEditState(device, index, view1.btnState, view2.btnState, null, null);
                        }
                    }
                    break;
                //大华摄像头
                case SPK.IpCam_Imou:
                    {
                        LogicView.FunTypeView view = new LogicView.FunTypeView();
                        view.btnText.TextID = StringId.quyuruqingaojing;
                        view.btnText.Name = Language.StringByID(StringId.shipintonghuahujiao);
                        fLayout.AddChidren(view.FLayoutView());
                        view.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            this.identifier = "ipcam_region_alram_event";
                            this.DeviceView(device, view.btnState, StringId.shi, StringId.offLogic, 1);
                        };
                        if (edit)
                        {
                            this.GetEditState(device, index, view.btnState, null, null, null);
                        }
                    }
                    break;
                //萤石视频门锁
                case SPK.VideoDoorLock:
                    {
                        LogicView.FunTypeView view1 = new LogicView.FunTypeView();
                        view1.btnText.TextID=StringId.kaimenrenyuan;
                        view1.btnText.Name = Language.StringByID(StringId.shipinmensuo);
                        fLayout.AddChidren(view1.FLayoutView());
                        view1.btnClick.MouseUpEventHandler += (sender, e) =>
                        {
                            this.identifier = "open_door";//开锁事件
                            this.VideoDoorLockAction(this, device, view1.btnState);
                        };
                        if (edit)
                        {
                            this.GetEditState(device, index, view1.btnState,null, null, null);
                        }
                    }
                    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  保存
            ///保存View
@@ -758,53 +144,6 @@
                inputDevice.condition_type = "3";
                inputDevice.sid = device.sid;
                inputDevice.condition.AddRange(dicSateteList);
                if (device.spk == SPK.doorgate)
                {
                    //可视对讲
                    inputDevice.condition_type = "9";
                    inputDevice.identifier = this.identifier;
                    if (this.identifier == "door_call_cloud_event")
                    {
                        inputDevice.condition = new List<Dictionary<string, string>>();
                    }
                }
                else if (device.spk == SPK.IpCam_Imou)
                {
                    //大华摄像头
                    inputDevice.condition_type = "9";
                    inputDevice.identifier = this.identifier;
                    if (this.identifier == "ipcam_region_alram_event")
                    {
                        //condition默认[]
                        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)
                {
                    //人体存在传感器
                    inputDevice.hold_time = this.hold_time;
                }
                if (edit)
                {
@@ -866,78 +205,6 @@
                //设备属性值,云雀上定义好的;
                string keyVlaue = "on_off";
                string value = "";
                switch (device.spk)
                {
                    //传感器
                    case SPK.SensorGas:
                    case SPK.SensorWater:
                    case SPK.SensorSmoke:
                        {
                            keyVlaue = "status";
                            if (!Is_SpkAttribute(keyVlaue)) {
                                keyVlaue = "alarm_status";
                            }
                        };
                        break;
                    case SPK.SensorDoorWindow:
                    case SPK.SensorDryContact:
                    case SPK.SensorDryContact2:
                        {
                            keyVlaue = "status";
                            if (!Is_SpkAttribute(keyVlaue))
                            {
                                keyVlaue = "contact_status";
                            }
                        }
                        break;
                    case SPK.SensorPirHold:
                    case SPK.SensorDuiShe:
                    case SPK.SensorShanLan:
                    case SPK.SensorPir:
                    case SPK.SensorUtrasonic:
                        {
                            keyVlaue = "status";
                            if (!Is_SpkAttribute(keyVlaue))
                            {
                                keyVlaue = "people_status";
                            }
                        }
                        break;
                    case SPK.SenesorMegahealth:
                        {
                            if (button != null)
                            {
                                if (button.Name == Language.StringByID(StringId.yourenbaojing))
                                {
                                    keyVlaue = "people_status";
                                }
                                else
                                {
                                    keyVlaue = "target_status";
                                }
                            }
                        }
                        break;
                    case SPK.SenesorMegahealth2:
                        {
                            keyVlaue = "action_state";
                            if (!Is_SpkAttribute(keyVlaue))
                            {
                                keyVlaue = "megahealth_state";
                            }
                        }
                        break;
                    case SPK.DoorLock:
                        {
                            keyVlaue = "door_status";
                        }
                        break;
                }
                switch (intValue)
                {
                    case StringId.xieluo:
@@ -969,14 +236,7 @@
                        break;
                    case StringId.wuren:
                        {
                            if (device.spk == SPK.SenesorMegahealth2)
                            {
                                value = "uninhabited";
                            }
                            else
                            {
                                value = "false";
                            }
                        }
                        break;
                    case StringId.shi:
@@ -1141,165 +401,11 @@
            view.SingleSelectionShow(frame, listStr, Language.StringByID(title), view.GetSensorLevelText(device, stateValue,true)
               , (text) =>
               {
                   //var value = view.GetValue(key, text);
                   var values = view.GetSensorLevelText(device,text,false);
                   selectedState = device.spk + "_" + key;
                   switch (device.spk)
                   {
                       case SPK.SensorTemperature:
                       case SPK.SensorHumidity:
                       case SPK.SensorCO2:
                       case SPK.SensorPm25:
                       case SPK.SensorTVOC:
                       case SPK.SensorHcho:
                       case SPK.SensorPm10:
                           {
                               if (!Is_SpkAttribute(key))
                               {
                                   key = "value";
                               }
                           }
                           break;
                   }
                   AddDictionary(key, values, "integer", "in");
                   SaveInput(device, index, edit);
               });
        }
        /// <summary>
        /// 可视对讲专用
        /// </summary>
        /// <param name="frame">当前界面</param>
        /// <param name="device">当前设备</param>
        /// <param name="btnState">旧状态</param>
        public void FaceAction(FrameLayout frame, Entity.Function device, Button btnState)
        {
            selectedState = device.spk + "_";
            Loading loading = new Loading();
            frame.AddChidren(loading);
            loading.Start();
            CommonMethod.Current.SunThread(() =>
            {
                try
                {
                    var faceIdList = Send.Current.GetListHomeFace(device.deviceId, true);
                    CommonMethod.Current.MainThread(() =>
                    {
                        loading.Hide();
                        string stateValue = btnState.Tag == null ? "" : btnState.Tag.ToString();
                        PublicInterface publicInterface = new PublicInterface();
                        publicInterface.MultiSelectShow(this, faceIdList, device.name, stateValue, (indexeList) =>
                     {
                         if (indexeList.Count > 0)
                         {
                             dicSateteList.Clear();
                             string s = string.Empty;
                             string tag = string.Empty;
                             //数据封装
                             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 += "_";
                             }
                             //界面显示选中值
                             btnState.Text = s;
                             btnState.Tag = tag;
                         }
                     });
                    });
                }
                catch { }
                finally
                {
                    Application.RunOnMainThread(() =>
                    {
                        loading.Hide();
                    });
                }
            });
        }
        /// <summary>
        /// 萤石视频门锁专用
        /// </summary>
        /// <param name="frame">当前界面</param>
        /// <param name="device">当前设备</param>
        /// <param name="btnState">旧状态</param>
        public void VideoDoorLockAction(FrameLayout frame, Entity.Function device, Button btnState)
        {
            selectedState = device.spk + "_";
            Loading loading = new Loading();
            frame.AddChidren(loading);
            loading.Start();
            CommonMethod.Current.SunThread(() =>
            {
                try
                {
                    var faceIdList = Send.Current.GetVideoDoorLockUserListInfo(device);
                    CommonMethod.Current.MainThread(() =>
                    {
                        loading.Hide();
                        string stateValue = btnState.Text == null ? "" : btnState.Text.ToString();
                        PublicInterface publicInterface = new PublicInterface();
                        publicInterface.MultiSelectShow(this, faceIdList, device.name, stateValue, (indexeList) =>
                        {
                            if (indexeList.Count > 0)
                            {
                                dicSateteList.Clear();
                                string s = string.Empty;
                                string tag = string.Empty;
                                for (int i = 0; i < indexeList.Count; i++)
                                {
                                    if (i > faceIdList.Count)
                                    {
                                        continue;
                                    }
                                    var indexe = indexeList[i];
                                    var face = faceIdList[indexe];
                                    //数据封装<高胜说萤石那边是推送用户名>
                                    AddDictionary("open_user", face.userName, "string");
                                    s += face.userName;
                                    s += ",";
                                    tag += face.userId;
                                    tag += "_";
                                }
                                //界面显示选中值
                                btnState.Text = s;
                                btnState.Tag = tag;
                            }
                        });
                    });
                }
                catch { }
                finally
                {
                    Application.RunOnMainThread(() =>
                    {
                        loading.Hide();
                    });
                }
            });
        }
        /// <summary>
@@ -1358,31 +464,6 @@
            {
                //有数据重新赋值
                dicSateteList.AddRange(dicList);
            }
            //事件专用
            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, "");
        }
@@ -1502,12 +583,6 @@
        /// <returns></returns>
        private bool CheckSpk()
        {
            if (this.function.spk == SPK.VideoDoorLock ||
               this.function.spk == SPK.doorgate
                )
            {
                return true;
            }
            return false;
        }