HDL Home App 第二版本 旧平台金堂用 正在使用
wjc
2022-12-01 351bdda734832d821a9764b0cde8be5d83c4ec50
ZigbeeApp/Shared/Phone/Device/Logic/CurrentDeviceState.cs
@@ -12,17 +12,20 @@
        /// 选中该设备功能作为条件或者目标的视图方法
        /// </summary>
        /// <param name="common">Common.</param>
        public static void CurrentDeviceView(FrameLayout flMain, CommonDevice common, bool edit, string str)
        public static void CurrentDeviceView(FrameLayout flMain, CommonDevice common, bool edit, string str, int intValue)
        {
            #region  -------界面布局部分
            //不让当前界面滑动
            UserView.HomePage.Instance.ScrollEnabled = false;
            CompleteView completeView = new CompleteView();
            flMain.AddChidren(completeView.Show(1));
            completeView.Btntitle.Text = common.DeviceEpointName;
            completeView.Btntitle.Text = LocalDevice.Current.GetDeviceEpointName(common);
            EventHandler<MouseEventArgs> clickcancel = (sender, e) =>
            {
                UserView.HomePage.Instance.ScrollEnabled = true;
                if (edit)
                {
                    UserView.HomePage.Instance.ScrollEnabled = true;
                }
                flMain.RemoveFromParent();
            };
            flMain.MouseUpEventHandler += clickcancel;
@@ -30,43 +33,42 @@
            mFunView openView = new mFunView();
            openView.frameLayout.Y = Application.GetRealHeight(140 + 20);
            //completeView.Show(l).AddChidren(openView.Show());
            openView.titleBtn.TextID = MyInternationalizationString.open;
            mFunView closeView = new mFunView();
            closeView.frameLayout.Y = openView.frameLayout.Bottom;
            //completeView.Show(l).AddChidren(closeView.Show());
            closeView.frameLayout.Y = Application.GetRealHeight(140 + 20 + 160);
            closeView.titleBtn.TextID = MyInternationalizationString.close;
            mFunView takebackView = new mFunView();
            takebackView.frameLayout.Y = closeView.frameLayout.Bottom;
            //completeView.Show(l).AddChidren(takebackView.Show());
            takebackView.frameLayout.Y = Application.GetRealHeight(140 + 20 + 160 + 160);
            takebackView.titleBtn.TextID = MyInternationalizationString.onoff;
            takebackView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
            #region  -------进度条控件
            var horizontalSeekBarRowLien = new RowLayout
            {
                Y = openView.frameLayout.Bottom,
                Width = Application.GetRealWidth(920),
                //Y = openView.frameLayout.Bottom,
                Width = Application.GetRealWidth(915),
                Height = Application.GetRealHeight(160),
                X = Application.GetRealWidth(80),
                LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
            };
            var horizontalSeekBarVol = new DiyImageSeekBar
            {
                Y = openView.frameLayout.Bottom,
                X = Application.GetRealWidth(80),
                Width = Application.GetRealWidth(920),
                Height = Application.GetRealHeight(160),
                //Y = openView.frameLayout.Bottom,//进度条父控件Y坐标
                X = Application.GetRealWidth(80),//进度条X坐标
                Width = Application.GetRealWidth(915),//进度条的长度
                Height = Application.GetRealHeight(160),//进度条父控件高度
                IsProgressTextShow = true,//显示百分比
                IsClickable = false,//进度条是否滑动
                ProgressBarColor = ZigbeeColor.Current.LogicProgressColorSelected,//选中进度条颜色
                ThumbImagePath = "ZigeeLogic/progressbtn2.png",//进度条按钮图标
                ThumbImageHeight = Application.GetRealHeight(56),//进度条按钮图标的高度(默认正方形:宽和高一样)
                ProgressTextColor = ZigbeeColor.Current.LogicBtnCancelColor,
                ProgressTextSize = 12,//显示百分比字体大小
                SeekBarViewHeight = Application.GetRealHeight(10),//进度条的高度
                ProgressTextSize = 12,//显示百分比字体大小12
                SeekBarViewHeight = Application.GetRealHeight(6),//进度条的高度10
                SeekBarPadding = 30,
            };
            #endregion
            #endregion
            #region  -------数据处理部分
@@ -88,38 +90,33 @@
            actionsInfo.Add("TaskList", taskListInfo);
            List<Dictionary<string, string>> TaskList = null;
            #endregion
            var _if=str.Split('_');
            var _if = str.Split('_');
            if (edit)
            {
                if (_if[0]== "condition")
                if (_if[0] == "condition")
                {
                    foreach (var deviceinfo in Common.Logic.CurrentLogic.Conditions)
                    var deviceinfo = Common.Logic.CurrentLogic.Conditions[intValue];
                    if (deviceinfo["Type"] == "1")
                    {
                        if (deviceinfo["Type"] == "1")
                        if (common.DeviceAddr == deviceinfo["MacAddr"] && common.DeviceEpoint.ToString() == deviceinfo["Epoint"])
                        {
                            if (common.DeviceAddr == deviceinfo["MacAddr"] && common.DeviceEpoint.ToString() == deviceinfo["Epoint"])
                            {
                                devices = deviceinfo;
                                break;
                            devices = deviceinfo;
                            }
                        }
                    }
                }
                else
                {
                    foreach (var deviceinfo in Common.Logic.CurrentLogic.Actions)
                    var deviceinfo = Common.Logic.CurrentLogic.Actions[intValue];
                    if (deviceinfo["LinkType"].ToString() == "0")
                    {
                        if (deviceinfo["LinkType"].ToString() == "0")
                        {
                            if (deviceinfo["DeviceAddr"].ToString() == common.DeviceAddr && deviceinfo["Epoint"].ToString() == common.DeviceEpoint.ToString())
                            {
                                TaskList = deviceinfo["TaskList"] as List<Dictionary<string, string>>;
                                break;
                            }
                        if (deviceinfo["DeviceAddr"].ToString() == common.DeviceAddr && deviceinfo["Epoint"].ToString() == common.DeviceEpoint.ToString())
                        {
                            TaskList = deviceinfo["TaskList"] as List<Dictionary<string, string>>;
                        }
                    }
                }
            }
            #endregion
@@ -130,6 +127,7 @@
                ///灯光
                case DeviceType.OnOffOutput:
                    {
                        if (_if[0] == "condition")
                        {
                            l = 2;
@@ -207,7 +205,9 @@
                            completeView.Show(l).AddChidren(openView.Show());
                            completeView.Show(l).AddChidren(closeView.Show());
                            //closeView.frameLayout.Y = openView.frameLayout.Bottom;
                            completeView.Show(l).AddChidren(takebackView.Show());
                            //takebackView.frameLayout.Y = closeView.frameLayout.Bottom;
                            takebackView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
                            #endregion
@@ -276,6 +276,8 @@
                                }
                            }
                        }
                    }
                    break;
                case DeviceType.IASZone:
@@ -290,7 +292,7 @@
                        Send.dictionary(deviceConditionsInfo, "AttriButeId", "1281");
                        Send.dictionary(deviceConditionsInfo, "AttriButeData2", "0");
                        int timevalue = 0;
                        int timeValue = 0;
                        ///点击确认事件
                        openView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
                        {
@@ -301,10 +303,11 @@
                            closeView.selectedIconBtn.Visible = false;
                            if (iASZonedevice.IasDeviceType == 13)
                            {
                                closeView.selectedIconBtn.Visible = true;
                            }
                            Send.dictionary(deviceConditionsInfo, "Range", "5");
                            Send.dictionary(deviceConditionsInfo, "AttriButeData1", "1");
                            Send.dictionary(deviceConditionsInfo, "AttriButeData1", "3");//支持1和2;1+2=3
                        };
                        ///点击取消事件
                        closeView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
@@ -314,53 +317,109 @@
                            closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
                            openView.selectedIconBtn.Visible = false;
                            closeView.selectedIconBtn.Visible = true;
                            Send.dictionary(deviceConditionsInfo, "Range", "1");
                            Send.dictionary(deviceConditionsInfo, "AttriButeData1", "0");
                            if (iASZonedevice.IasDeviceType == 13)
                            Send.dictionary(deviceConditionsInfo, "Range", "8");//1
                            Send.dictionary(deviceConditionsInfo, "AttriButeData1", "3");//0
                            if (iASZonedevice.IasDeviceType == 13 || iASZonedevice.IasDeviceType == 541)
                            {
                                SelectedDeviceStatus = "";
                                openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
                                closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
                                openView.selectedIconBtn.Visible = false;
                                closeView.selectedIconBtn.Visible = true;
                                var ignoreTime = new IgnoreTime();
                                UserView.HomePage.Instance.AddChidren(ignoreTime);
                                UserView.HomePage.Instance.PageIndex += 1;
                                ignoreTime.Show(common, closeView.titleBtn.Text, edit, timevalue);
                                ignoreTime.Show(common, closeView.titleBtn.Text, edit, timeValue, _if[1]);
                            }
                        };
                        switch (iASZonedevice.IasDeviceType)
                        {
                            case 13:
                                {
                                    openView.titleBtn.TextID = MyInternationalizationString.someone;
                                    closeView.titleBtn.TextID = MyInternationalizationString.unattendedtime1;
                                    closeView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
                                    closeView.selectedIconBtn.UnSelectedImagePath = "ZigeeLogic/next.png";
                                    closeView.selectedIconBtn.Visible = true;
                                    completeView.Show(2).AddChidren(openView.Show());
                                    completeView.Show(2).AddChidren(closeView.Show());
                                    if (common.ModelIdentifier == "MSPIRB-ZB.10")
                                    {
                                        int _height = 3;
                                        if (edit)
                                        {
                                            _height = 2;
                                        }
                                        var view = completeView.Show(_height);
                                        openView.titleBtn.TextID = MyInternationalizationString.someone;
                                        closeView.titleBtn.TextID = MyInternationalizationString.unattendedtime1;
                                        closeView.selectedIconBtn.UnSelectedImagePath = "ZigeeLogic/next.png";
                                        closeView.selectedIconBtn.Visible = true;
                                        view.AddChidren(openView.Show());
                                        view.AddChidren(closeView.Show());
                                        takebackView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
                                        takebackView.selectedIconBtn.Visible = true;
                                        takebackView.titleBtn.TextID = MyInternationalizationString.ambientLight;
                                        takebackView.selectedIconBtn.UnSelectedImagePath = "ZigeeLogic/next.png";
                                        if (edit)
                                        {
                                            if (devices["Cluster_ID"] == "1024")
                                            {
                                                flMain.RemoveFromParent();
                                                var illumination = new Illumination();
                                                UserView.HomePage.Instance.AddChidren(illumination);
                                                UserView.HomePage.Instance.PageIndex += 1;
                                                illumination.Show(common, takebackView.titleBtn.Text, int.Parse(devices["AttriButeData1"]), true);
                                            }
                                            else
                                            {
                                                closeView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
                                            }
                                        }
                                        else
                                        {
                                            view.AddChidren(takebackView.Show());
                                        }
                                        takebackView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
                                        {
                                            SelectedDeviceStatus = "";
                                            openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
                                            openView.selectedIconBtn.Visible = false;
                                            var illumination = new Illumination();
                                            UserView.HomePage.Instance.AddChidren(illumination);
                                            UserView.HomePage.Instance.PageIndex += 1;
                                            illumination.Show(common, takebackView.titleBtn.Text, 0, false);
                                        };
                                    }
                                    else
                                    {
                                        openView.titleBtn.TextID = MyInternationalizationString.someone;
                                        closeView.titleBtn.TextID = MyInternationalizationString.unattendedtime1;
                                        closeView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
                                        closeView.selectedIconBtn.UnSelectedImagePath = "ZigeeLogic/next.png";
                                        closeView.selectedIconBtn.Visible = true;
                                        completeView.Show(2).AddChidren(openView.Show());
                                        completeView.Show(2).AddChidren(closeView.Show());
                                    }
                                }
                                break;
                            case 21:
                            case 22:
                                {
                                    #region
                                    var view = completeView.Show(3);
                                    openView.titleBtn.TextID = MyInternationalizationString.logicopen;
                                    closeView.titleBtn.TextID = MyInternationalizationString.logicclose;
                                    completeView.Show(3).AddChidren(openView.Show());
                                    completeView.Show(3).AddChidren(closeView.Show());
                                    view.AddChidren(openView.Show());
                                    view.AddChidren(closeView.Show());
                                    mFunView timeoutView = new mFunView();
                                    timeoutView.frameLayout.Y = closeView.frameLayout.Bottom;
                                    timeoutView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
                                    completeView.Show(3).AddChidren(timeoutView.Show());
                                    timeoutView.titleBtn.TextID = MyInternationalizationString.closetimeout;
                                    timeoutView.selectedIconBtn.UnSelectedImagePath = "ZigeeLogic/next.png";
                                    timeoutView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
                                    takebackView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
                                    takebackView.selectedIconBtn.Visible = true;
                                    takebackView.titleBtn.TextID = MyInternationalizationString.closetimeout;
                                    takebackView.selectedIconBtn.UnSelectedImagePath = "ZigeeLogic/next.png";
                                    view.AddChidren(takebackView.Show());
                                    takebackView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
                                    {
                                        SelectedDeviceStatus = "";
                                        openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
@@ -370,7 +429,7 @@
                                        var ignoreTime = new IgnoreTime();
                                        UserView.HomePage.Instance.AddChidren(ignoreTime);
                                        UserView.HomePage.Instance.PageIndex += 1;
                                        ignoreTime.Show(common, timeoutView.titleBtn.Text, edit, timevalue);
                                        ignoreTime.Show(common, takebackView.titleBtn.Text, edit, timeValue, _if[1]);
                                    };
@@ -379,6 +438,7 @@
                                break;
                            case 40:
                                {
                                    openView.titleBtn.TextID = MyInternationalizationString.smokescreen;
                                    openView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
                                    completeView.Show(1).AddChidren(openView.Show());
@@ -395,7 +455,7 @@
                                }
                                break;
                            case 43:
                                {
                                {//召元说的
                                    openView.titleBtn.TextID = MyInternationalizationString.gas;
                                    openView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
                                    completeView.Show(1).AddChidren(openView.Show());
@@ -428,29 +488,31 @@
                        {
                            if (devices["AttriButeId"] == "1281")
                            {
                                if (devices["AttriButeData1"] == "1")
                                if (devices.ContainsKey("IgnoreTime") && devices["IgnoreTime"] != "0")
                                {
                                    openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
                                    closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
                                    openView.selectedIconBtn.Visible = true;
                                    closeView.selectedIconBtn.Visible = false;
                                    timeValue = int.Parse(devices["IgnoreTime"]);
                                }
                                else
                                {
                                    if (devices.ContainsKey("IgnoreTime"))
                                    if (devices["Range"] == "5")
                                    {
                                        timevalue = int.Parse(devices["IgnoreTime"]);
                                        openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
                                        closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
                                        openView.selectedIconBtn.Visible = true;
                                        closeView.selectedIconBtn.Visible = false;
                                    }
                                    else
                                    {
                                        openView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
                                        closeView.titleBtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
                                        openView.selectedIconBtn.Visible = false;
                                        closeView.titleBtn.Visible = true;
                                        closeView.selectedIconBtn.Visible = true;
                                    }
                                }
                            }
                                }
                            }
                        }
@@ -466,7 +528,8 @@
                        Send.dictionary(deviceConditionsInfo, "AttriButeData2", "0");
                        completeView.Show(l).AddChidren(openView.Show());
                        openView.titleBtn.Text = Language.StringByID(MyInternationalizationString.OnOffSwitch) + common.DeviceEpoint.ToString();
                        openView.titleBtn.Text = LocalDevice.Current.GetDeviceEpointName(common);
                        //openView.titleBtn.Text =Language.StringByID(MyInternationalizationString.OnOffSwitch) + common.DeviceEpoint.ToString();
                        openView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
                        openView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
                        {
@@ -496,129 +559,53 @@
                    break;
                case DeviceType.TemperatureSensor:
                    {
                        l = 4;
                        string current = Language.StringByID(MyInternationalizationString.current);
                        completeView.Show(l);
                        var temperatureSensor = common as TemperatureSensor;
                        SelectedDeviceStatus = "TemperatureSensor";
                        #region  布局View
                        var PickerViewfra = new FrameLayout
                        {
                            Y = Application.GetRealHeight(140),
                            Height = Application.GetRealHeight(640),
                        };
                        completeView.Show(l).AddChidren(PickerViewfra);
                        var mUIPickerView = new UIPickerView
                        {
                            Height = Application.GetRealHeight(640 - 5),
                        };
                        PickerViewfra.AddChidren(mUIPickerView);
                        var mList1 = new List<string> { ">", "<", "=", "≥", "≤" };
                        var mList2 = new List<string>();
                        var mList3 = new List<string>();
                        for (int i = 1; i <= 100; i++)
                    //获取设备类型
                    var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { common });
                        //空气质量传感器
                        if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
                        {
                            mList2.Add(i.ToString());
                        }
                        if (temperatureSensor.SensorDiv == 1)
                        {
                            mList3.Add("℃");
                            Send.dictionary(deviceConditionsInfo, "Cluster_ID", "1026");
                            Send.dictionary(deviceConditionsInfo, "AttriButeId", "0");
                            Send.dictionary(deviceConditionsInfo, "Range", "1");//1:等于AttriButeData1时触发动作
                            Send.dictionary(deviceConditionsInfo, "AttriButeData1", "50");//默认温度值50℃
                            Send.dictionary(deviceConditionsInfo, "AttriButeData2", "0");
                            AirSonser(flMain, SelectedDeviceStatus, edit, common, devices);
                        }
                        else
                        {
                            mList3.Add("%");
                            Send.dictionary(deviceConditionsInfo, "Cluster_ID", "1029");
                            //编辑时的状态值
                            string str1 = "";
                            string str2 = "";
                            string str3 = "";
                            if (edit && devices != null)
                            {
                                //温度值
                                str1 = devices["AttriButeData1"];
                                //比较关系值
                                str2 = devices["Range"];
                            }
                            var temperatureSensor = common as TemperatureSensor;
                            if (temperatureSensor.SensorDiv == 1)
                            {
                                str3 = "℃";
                                Send.dictionary(deviceConditionsInfo, "Cluster_ID", "1026");
                            }
                            else
                            {
                                str3 = "%";
                                Send.dictionary(deviceConditionsInfo, "Cluster_ID", "1029");
                            }
                            Send.dictionary(deviceConditionsInfo, "AttriButeId", "0");
                            Send.dictionary(deviceConditionsInfo, "Range", "1");//1:等于AttriButeData1时触发动作
                            Send.dictionary(deviceConditionsInfo, "AttriButeData1", "50");//默认湿度值50%
                            Send.dictionary(deviceConditionsInfo, "AttriButeData2", "0");
                        }
                        mUIPickerView.setNPicker(mList1, mList2, mList3);
                        #endregion
                        mUIPickerView.OnSelectChangeEvent += (s1, s2, s3) =>
                        {
                            SelectedDeviceStatus = "TemperatureSensor";
                            Send.dictionary(deviceConditionsInfo, "AttriButeData1", mList2[s2]);
                            switch (mList1[s1])
                            completeView.Show(4);
                            PublicInterface publicInterface = new PublicInterface();
                            publicInterface.TemperatureShow(completeView.fraView, str3, str2, str1, (relationValueStr, tempValueStr) =>
                            {
                                case ">":
                                    {
                                        Send.dictionary(deviceConditionsInfo, "Range", "0");
                                    }
                                    break;
                                case "<":
                                    {
                                        Send.dictionary(deviceConditionsInfo, "Range", "2");
                                    }
                                    break;
                                case "=":
                                    {
                                        Send.dictionary(deviceConditionsInfo, "Range", "1");
                                    }
                                    break;
                                case "≥":
                                    {
                                        Send.dictionary(deviceConditionsInfo, "Range", "6");
                                    }
                                    break;
                                case "≤":
                                    {
                                        Send.dictionary(deviceConditionsInfo, "Range", "7");
                                    }
                                    break;
                            }
                        };
                        //默认=,50
                        int index1 = 2, index2 = 49;
                        if (edit && devices != null)
                        {
                            SelectedDeviceStatus = "";
                            string s = "";
                            switch (devices["Range"])
                            {
                                case "0":
                                    {
                                        s = ">";
                                    }
                                    break;
                                case "1":
                                    {
                                        s = "=";
                                    }
                                    break;
                                case "2":
                                    {
                                        s = "<";
                                    }
                                    break;
                                case "6":
                                    {
                                        s = "≥";
                                    }
                                    break;
                                case "7":
                                    {
                                        s = "≤";
                                    }
                                    break;
                            }
                            //查找索引
                            index1 = mList1.IndexOf(s);
                            index2 = mList2.IndexOf(devices["AttriButeData1"]);
                                SelectedDeviceStatus = "TemperatureSensor";
                                Send.dictionary(deviceConditionsInfo, "AttriButeData1", tempValueStr);
                                Send.dictionary(deviceConditionsInfo, "Range", relationValueStr);
                            });
                        }
                        ///更新最新状态;
                        mUIPickerView.setCurrentItems(index1, index2, 0);
                    }
                    break;
                ///调光灯光
@@ -631,8 +618,12 @@
                        taskListInfo.Add(switchdictionary);
                        completeView.Show(l).AddChidren(openView.Show());
                        openView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
                        horizontalSeekBarRowLien.Y = openView.frameLayout.Bottom;
                        horizontalSeekBarVol.Y = openView.frameLayout.Bottom;
                        completeView.Show(l).AddChidren(horizontalSeekBarRowLien);
                        completeView.Show(l).AddChidren(horizontalSeekBarVol);
                        closeView.frameLayout.Y = horizontalSeekBarRowLien.Bottom;
                        completeView.Show(l).AddChidren(closeView.Show());
@@ -668,7 +659,6 @@
                            var lightbrightnessvalue = (254 * horizontalSeekBarVol.Progress) / 100;
                            Send.dictionary(switchdictionary, "Data1", lightbrightnessvalue.ToString());
                        };
                        ///取消事件
                        closeView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
                        {
@@ -681,7 +671,6 @@
                            Send.dictionary(switchdictionary, "TaskType", "1");
                            Send.dictionary(switchdictionary, "Data1", "0");//默认值
                        };
                        //取反
                        takebackView.clickviewBtn.MouseUpEventHandler += (sender, e) =>
                        {
@@ -748,6 +737,9 @@
                        openView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
                        horizontalSeekBarRowLien.Y = openView.frameLayout.Bottom;
                        horizontalSeekBarVol.Y = openView.frameLayout.Bottom;
                        completeView.Show(l).AddChidren(horizontalSeekBarRowLien);
                        completeView.Show(l).AddChidren(horizontalSeekBarVol);
@@ -1182,10 +1174,29 @@
                        };
                    }
                    break;
                case DeviceType.ColorTemperatureLight:
                    {
                        flMain.RemoveFromParent();
                        var nightlight = new Nightlight();
                        UserView.HomePage.Instance.AddChidren(nightlight);
                        UserView.HomePage.Instance.PageIndex += 1;
                        if (edit)
                        {
                            nightlight.Show(common, edit, _if[1], Common.Logic.CurrentLogic.Actions[intValue]);
                        }
                        else
                        {
                            nightlight.Show(common, edit, _if[1]);
                        }
                    }
                    break;
            }
            completeView.Btncomplete.MouseUpEventHandler += (sender, e) =>
            {
                //UserView.HomePage.Instance.ScrollEnabled = true;
                UserView.HomePage.Instance.ScrollEnabled = true;
                if (SelectedDeviceStatus != "")
                {
                    if (_if[0] == "condition")
@@ -1194,14 +1205,21 @@
                    }
                    else
                    {   //添加目标
                        LogicIfon.AddDeviceactions(common, actionsInfo);
                        if (SelectedDeviceStatus == "DoorLock")
                        {//门锁数据特殊,进行特殊处理;
                            LogicIfon.AddDoorLockActions(common, actionsInfo);
                        }
                        else
                        {
                            LogicIfon.AddDeviceActions(common, actionsInfo);
                        }
                    }
                }
                else
                {
                    if (!edit)
                    {
                        var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Normal,
                        var alert = new UserCenter.ShowMsgControl(ShowMsgType.Normal,
                                    Language.StringByID(MyInternationalizationString.selectdevicestatuscondition),
                                   Language.StringByID(MyInternationalizationString.confrim));
                        alert.Show();
@@ -1240,12 +1258,11 @@
                        }
                        break;
                }
            };
        }
        /// <summary>
              /// <summary>
        /// 空调模式的状态
        /// </summary>
        /// <param name="modestring"></param>
@@ -1311,5 +1328,346 @@
            }
        }
        /// <summary>
        /// 空气质量传感器View(特殊处理)
        /// </summary>
        /// <param name="flMain"></param>
        /// <param name="SelectedDeviceStatus"></param>
        /// <param name="edit"></param>
        /// <param name="common"></param>
        /// <param name="dic"></param>
        private static void AirSonser(FrameLayout flMain,string SelectedDeviceStatus,bool edit,CommonDevice common, Dictionary<string, string> dic=null) {
            flMain.RemoveAll();
            if (edit&&dic!=null) {
                AirProperty(flMain, dic, common,"", edit, SelectedDeviceStatus);
            }
            else
            {
                PublicInterface publicInterface = new PublicInterface();
                var list0 = publicInterface.GetViewList("空气质量传感器");
                publicInterface.SingleSelectionShow(flMain, list0, MyInternationalizationString.airqualitysensor, "", (tagText) =>
                {
                    flMain.RemoveAll();
                    SelectedDeviceStatus = "TemperatureSensor";
                    AirProperty(flMain, dic, common,tagText, edit, SelectedDeviceStatus);
                }, () => { flMain.RemoveFromParent(); });
            }
        }
        /// <summary>
        /// 空气质量传感器属性值(特殊处理)
        /// </summary>
        /// <param name="flMain"></param>
        /// <param name="dic"></param>
        /// <param name="common"></param>
        /// <param name="tagText"></param>
        /// <param name="edit"></param>
        /// <param name="SelectedDeviceStatus"></param>
        private static void AirProperty(FrameLayout flMain, Dictionary<string, string> dic,CommonDevice common,string tagText,bool edit, string SelectedDeviceStatus) {
            PublicInterface publicInterface = new PublicInterface();
            string range = "";
            string stateText = "";
            if (edit&& dic!=null)
            {
                range = dic["Range"];
                switch (dic["Cluster_ID"])
                {
                    case "1066":
                        {
                            if (dic["AttriButeId"] == "57344")
                            {
                                tagText = Language.StringByID(MyInternationalizationString.kongqizhiliang);
                                switch (dic["AttriButeData1"])
                                {
                                    case "1":
                                        {
                                            stateText = Language.StringByID(MyInternationalizationString.you);
                                        }
                                        break;
                                    case "2":
                                        {
                                            stateText = Language.StringByID(MyInternationalizationString.liang);
                                        }
                                        break;
                                    case "3":
                                        {
                                            stateText = Language.StringByID(MyInternationalizationString.cha);
                                        }
                                        break;
                                }
                            }
                            else
                            {
                                tagText = Language.StringByID(MyInternationalizationString.pm25);
                                ///Pm2.5
                                int intValue = int.Parse(dic["AttriButeData1"]);
                                if (0 < intValue && intValue < 30)
                                {
                                    stateText = Language.StringByID(MyInternationalizationString.pmyou);
                                }
                                else if (36 < intValue && intValue < 75)
                                {
                                    stateText = Language.StringByID(MyInternationalizationString.pmliang);
                                }
                                else if (76 < intValue && intValue < 115)
                                {
                                    stateText = Language.StringByID(MyInternationalizationString.pmqingdu);
                                }
                                else if (intValue > 115)
                                {
                                    stateText = Language.StringByID(MyInternationalizationString.pmzhongdu);
                                }
                            }
                        }
                        break;
                    case "1037":
                        {
                            tagText = Language.StringByID(MyInternationalizationString.co2);
                            ///co2
                            int intValue = int.Parse(dic["AttriButeData1"]);
                            if (0 < intValue && intValue < 1000)
                            {
                                stateText = Language.StringByID(MyInternationalizationString.co2qingxin);
                            }
                            else if (1000 < intValue && intValue < 2000)
                            {
                                stateText = Language.StringByID(MyInternationalizationString.co2huizhuo);
                            }
                            else if (2000 < intValue && intValue < 5000)
                            {
                                stateText = Language.StringByID(MyInternationalizationString.co2queyang);
                            }
                            else if (intValue > 5000)
                            {
                                stateText = Language.StringByID(MyInternationalizationString.co2yanzhongqueyang);
                            }
                        }
                        break;
                    case "1026":
                        {
                            tagText = Language.StringByID(MyInternationalizationString.sensortemperature);
                            stateText = dic["AttriButeData1"];
                        }
                        break;
                    case "1029":
                        {
                            tagText = Language.StringByID(MyInternationalizationString.sensorhumidity);
                            stateText = dic["AttriButeData1"];
                        }
                        break;
                }
            }
            Dictionary<string, string> airqualitysensorDic = new Dictionary<string, string>();
            Send.dictionary(airqualitysensorDic, "Type", "1");
            Send.dictionary(airqualitysensorDic, "IsValid", "1");
            Send.dictionary(airqualitysensorDic, "MacAddr", common.DeviceAddr);
            Send.dictionary(airqualitysensorDic, "Epoint", common.DeviceEpoint.ToString());
            if (tagText == Language.StringByID(MyInternationalizationString.kongqizhiliang))
            {
                var list1 = publicInterface.GetViewList("空气质量");
                publicInterface.SingleSelectionShow(flMain, list1, MyInternationalizationString.airqualitysensor, stateText, (strText) =>
                {
                    SelectedDeviceStatus = "TemperatureSensor";
                    string valuaStr = "";
                    if (strText == Language.StringByID(MyInternationalizationString.you))
                    {
                        valuaStr = "1";
                    }
                    else if (strText == Language.StringByID(MyInternationalizationString.liang))
                    {
                        valuaStr = "2";
                    }
                    else if (strText == Language.StringByID(MyInternationalizationString.cha))
                    {
                        valuaStr = "3";
                    }
                    Send.dictionary(airqualitysensorDic, "Cluster_ID", "1066");
                    Send.dictionary(airqualitysensorDic, "AttriButeId", "57344");
                    Send.dictionary(airqualitysensorDic, "AttriButeData1", valuaStr);
                    Send.dictionary(airqualitysensorDic, "AttriButeData2", "0");
                    Send.dictionary(airqualitysensorDic, "Range", "1");
                    AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic);
                }, () => {
                    if (edit) { flMain.RemoveFromParent(); }
                    else
                    {
                        AirSonser(flMain, SelectedDeviceStatus, edit, common);
                    } });
            }
            else if (tagText == Language.StringByID(MyInternationalizationString.pm25))
            {
                var list2 = publicInterface.GetViewList("pm2.5");
                publicInterface.SingleSelectionShow(flMain, list2, MyInternationalizationString.pm25, stateText, (strText) =>
                {
                    SelectedDeviceStatus = "TemperatureSensor";
                    string valuaStr = "";
                    if (strText == Language.StringByID(MyInternationalizationString.pmyou))
                    {
                        valuaStr = "18";
                    }
                    else if (strText == Language.StringByID(MyInternationalizationString.pmliang))
                    {
                        valuaStr = "54";
                    }
                    else if (strText == Language.StringByID(MyInternationalizationString.pmqingdu))
                    {
                        valuaStr = "105";
                    }
                    else if (strText == Language.StringByID(MyInternationalizationString.pmzhongdu))
                    {
                        valuaStr = "130";
                    }
                    Send.dictionary(airqualitysensorDic, "Cluster_ID", "1066");
                    Send.dictionary(airqualitysensorDic, "AttriButeId", "0");
                    Send.dictionary(airqualitysensorDic, "AttriButeData1", valuaStr);
                    Send.dictionary(airqualitysensorDic, "AttriButeData2", "0");
                    Send.dictionary(airqualitysensorDic, "Range", "1");
                    AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic);
                }, () => {
                    if (edit) { flMain.RemoveFromParent(); }
                    else
                    {
                        AirSonser(flMain, SelectedDeviceStatus, edit, common);
                    }
                });
            }
            else if (tagText == Language.StringByID(MyInternationalizationString.co2))
            {
                var list2 = publicInterface.GetViewList("co2");
                publicInterface.SingleSelectionShow(flMain, list2, MyInternationalizationString.co2, stateText, (strText) =>
                {
                    SelectedDeviceStatus = "TemperatureSensor";
                    string valuaStr = "";
                    if (strText == Language.StringByID(MyInternationalizationString.co2qingxin))
                    {
                        valuaStr = "500";
                    }
                    else if (strText == Language.StringByID(MyInternationalizationString.co2huizhuo))
                    {
                        valuaStr = "1500";
                    }
                    else if (strText == Language.StringByID(MyInternationalizationString.co2queyang))
                    {
                        valuaStr = "2500";
                    }
                    else if (strText == Language.StringByID(MyInternationalizationString.co2yanzhongqueyang))
                    {
                        valuaStr = "5500";
                    }
                    Send.dictionary(airqualitysensorDic, "Cluster_ID", "1037");
                    Send.dictionary(airqualitysensorDic, "AttriButeId", "0");
                    Send.dictionary(airqualitysensorDic, "AttriButeData1", valuaStr);
                    Send.dictionary(airqualitysensorDic, "AttriButeData2", "0");
                    Send.dictionary(airqualitysensorDic, "Range", "1");
                    AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic);
                }, () => {
                    if (edit) { flMain.RemoveFromParent(); }
                    else
                    {
                        AirSonser(flMain, SelectedDeviceStatus, edit, common);
                    }
                });
            }
            else if (tagText == Language.StringByID(MyInternationalizationString.sensortemperature))
            {
                //编辑时的状态值
                string str1 = range;
                string str2 = stateText;
                publicInterface.TemperatureShow1(flMain, tagText, "℃", str1, str2, (relationValueStr, tempValueStr) =>
                {
                    SelectedDeviceStatus = "TemperatureSensor";
                    Send.dictionary(airqualitysensorDic, "Cluster_ID", "1026");
                    Send.dictionary(airqualitysensorDic, "AttriButeId", "0");
                    Send.dictionary(airqualitysensorDic, "AttriButeData1", tempValueStr);
                    Send.dictionary(airqualitysensorDic, "AttriButeData2", "0");
                    Send.dictionary(airqualitysensorDic, "Range", relationValueStr);
                    AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic);
                }, () =>
                {
                    if (edit) { flMain.RemoveFromParent(); }
                    else
                    {
                        AirSonser(flMain, SelectedDeviceStatus, edit, common);
                    }
                });
            }
            else if (tagText == Language.StringByID(MyInternationalizationString.sensorhumidity))
            {
                //编辑时的状态值
                string str1 = range;
                string str2 = stateText;
                publicInterface.TemperatureShow1(flMain, tagText, "%", str1, str2, (relationValueStr, tempValueStr) =>
                {
                    SelectedDeviceStatus = "TemperatureSensor";
                    Send.dictionary(airqualitysensorDic, "Cluster_ID", "1029");
                    Send.dictionary(airqualitysensorDic, "AttriButeId", "0");
                    Send.dictionary(airqualitysensorDic, "AttriButeData1", tempValueStr);
                    Send.dictionary(airqualitysensorDic, "AttriButeData2", "0");
                    Send.dictionary(airqualitysensorDic, "Range", relationValueStr);
                    AddDic(flMain, SelectedDeviceStatus, edit, common, airqualitysensorDic);
                }, () => {
                    if (edit) { flMain.RemoveFromParent(); }
                    else
                    {
                        AirSonser(flMain, SelectedDeviceStatus, edit, common);
                    }
                });
            }
        }
        /// <summary>
        /// 空气质量传感器(特殊处理)
        /// </summary>
        /// <param name="flMain"></param>
        /// <param name="SelectedDeviceStatus"></param>
        /// <param name="edit"></param>
        /// <param name="common"></param>
        /// <param name="dic"></param>
        private static void AddDic(FrameLayout flMain, string SelectedDeviceStatus, bool edit, CommonDevice common, Dictionary<string, string> dic )
        {
            UserView.HomePage.Instance.ScrollEnabled = true;
            if (SelectedDeviceStatus != "")
            {
                //添加条件
                LogicIfon.AddDeviceconditions(common, dic);
            }
            else
            {
                if (!edit)
                {
                    var alert = new UserCenter.ShowMsgControl(ShowMsgType.Normal,
                                Language.StringByID(MyInternationalizationString.selectdevicestatuscondition),
                               Language.StringByID(MyInternationalizationString.confrim));
                    alert.Show();
                    return;
                }
            }
            flMain.RemoveFromParent();
            //自动化
            var logicCommunalPage = new LogicCommunalPage();
            UserView.HomePage.Instance.AddChidren(logicCommunalPage);
            UserView.HomePage.Instance.PageIndex += 1;
            logicCommunalPage.Show(() => { });
        }
    }
}