gxc
2019-12-17 96428beef8b714ddb163216de37ab59d31ff5aa7
2019.12.17
11个文件已修改
2626 ■■■■ 已修改文件
ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Common/ZigbeeColor.cs 51 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/DLL/Android/Shared.Droid.HDLWidget.dll 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/DLL/Android/Shared.Droid.Smartrefresh.dll 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/DLL/Android/Shared.Droid.dll 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/AC/ACControl.cs 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/Category/Category.cs 1236 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/Abount/SLAForm.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs 1269 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserView/UserPage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml
@@ -7,7 +7,7 @@
      <File FileName="Shared/R.cs" Line="955" Column="22" />
      <File FileName="GateWay.Droid/Assets/Language.ini" />
      <File FileName="Shared/Phone/Device/Category/Category.cs" />
      <File FileName="Shared/Phone/Device/AC/ACControl.cs" Line="1" Column="1" />
      <File FileName="Shared/Phone/Device/AC/ACControl.cs" Line="540" Column="14" />
      <File FileName="Shared/Phone/UserView/UserHomeView.cs" />
      <File FileName="Shared/Phone/Device/DeviceLogic/ReadDeviceAttributeLogic.cs" />
      <File FileName="Shared/Phone/UserView/UserPage.cs" />
@@ -30,7 +30,6 @@
                  </Node>
                  <Node name="Category" expanded="True" />
                  <Node name="CommonForm" expanded="True" />
                  <Node name="DeviceLogic" expanded="True" />
                  <Node name="Light" expanded="True" />
                  <Node name="Room" expanded="True" />
                </Node>
@@ -39,6 +38,9 @@
                  <Node name="CommonBase" expanded="True">
                    <Node name="Logic" expanded="True" />
                  </Node>
                  <Node name="Device" expanded="True">
                    <Node name="PirSensor" expanded="True" />
                  </Node>
                </Node>
                <Node name="UserView" expanded="True" />
                <Node name="ZigBee" expanded="True">
ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide
Binary files differ
ZigbeeApp/Shared/Common/ZigbeeColor.cs
@@ -254,48 +254,23 @@
        /// 0xFFF5F5F5
        /// </summary>
        public uint GXCSeekBarBackground = 0xFFF5F5F5;
        public uint GXCTextBlueColor = 0xFF00AAF0;
        public uint GXCBorderRedColor = 0xFFF44D4D;
        public uint GXCButtonBlueColor = 0xFF00AAF0;
        public uint GXCButtonUnselectedColor = 0xFFAAAAAA;
        public uint GXCTextUnselectedColor = 0xFFD5D6D7;
        public uint GXCSelectedColor = 0xFFFE5E00;//选中颜色
        public uint GXCButtonhardWhiteColor = 0xFFE0E0E0;//房间btn半透明背景色
        /// <summary>
        /// 30%透明度黑色
        /// </summary>
        public uint GXCBlack70Color = 0x4C000000;
        /// <summary>
        /// 20%透明度黑色
        /// </summary>
        public uint GXCBlack80Color = 0x33000000;
        public uint GXCButtonTipColor = 0xFF999999;//浅色字提示
        public uint GXCTransparent = 0x00FFFFFF;
        /// <summary>
        /// 滑条未选择中颜色--7C7C7C ->0xffadadad
        /// </summary>
        public uint GXCSliderUnSelectedColor = 0xffadadad;
        public uint GXCEditorBGColor = 0xFF32B4C8;
        /// <summary>
        /// 取消收藏颜色--999999
        /// </summary>
        public uint GXCCancelCollectionBGColor = 0xFF999999;
        /// <summary>
        /// 用于空调的选中文字颜色
        /// </summary>
        public uint GXCACSelectedTextColor = 0xFF99D619;
        /// <summary>
        /// 开始颜色
        /// </summary>
        public uint GXCArcScaleSeekBarStartColor = 0xFF495AF4;
        /// <summary>
        /// 结束颜色
        /// </summary>
        public uint GXCArcScaleSeekBarEndColor = 0xFFAE50A8;
        public uint GXCButtonBlueColor = 0xFF00AAF0;
        #endregion
        #region --Logic定义的颜色--
ZigbeeApp/Shared/DLL/Android/Shared.Droid.HDLWidget.dll
Binary files differ
ZigbeeApp/Shared/DLL/Android/Shared.Droid.Smartrefresh.dll
Binary files differ
ZigbeeApp/Shared/DLL/Android/Shared.Droid.dll
Binary files differ
ZigbeeApp/Shared/Phone/Device/AC/ACControl.cs
@@ -172,7 +172,7 @@
                            deviceUI.CommonDevice.DeviceStatusReport = common.DeviceStatusReport;
                            foreach(var attList in attriButeList)
                            {
                                var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High || attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default;
                                var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High && attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default;
                                switch (attList.AttributeId)
                                {
                                    case 0:
@@ -181,17 +181,14 @@
                                        indoorTemperatureBtn.Text = $"{Language.StringByID(R.MyInternationalizationString.Current)} {ac.currentLocalTemperature} ℃";
                                        //currentTemperatureBtn.Text = $"{ac.currentLocalTemperature} ℃";
                                        break;
                                    case 17:
                                        ac.currentCoolingSetpoint = curTemp;
                                        if (ac.currentSystemMode == 3 || ac.currentSystemMode == 8)
                                        {
                                            mArcScaleSeekBar.Progress = ac.currentCoolingSetpoint;
                                        }
                                        ac.LastDateTime = DateTime.Now;
                                        break;
                                    case 18:
                                        ac.currentHeatingSetpoint = curTemp;
                                        if (ac.currentSystemMode == 4)
@@ -200,7 +197,6 @@
                                        }
                                        ac.LastDateTime = DateTime.Now;
                                        break;
                                    case 4096:
                                        ac.currentAutoSetpoint = curTemp;
                                        if (ac.currentSystemMode == 1)
@@ -209,7 +205,6 @@
                                        }
                                        ac.LastDateTime = DateTime.Now;
                                        break;
                                    case 28:
                                        //此属性描述恒温设备正处于哪种模式
                                        //Off = 0  Auto = 1 Cool = 3 Heat = 4 FanOnly = 7  Dry = 8
@@ -219,35 +214,29 @@
                                        {
                                            switchBtn.IsSelected = false;
                                            modeBtn.IsSelected = false;
                                            modeBtn.SelectedImagePath = ACControlBase.GetModeSelectedImagePathByModeId(ac.currentSystemMode);
                                            modeBtn.UnSelectedImagePath = ACControlBase.GetModeUnSelectedImagePathByModeId(ac.currentSystemMode);
                                            currentModeBtn.Text = ACControlBase.GetModeNameByModeId(ac.currentSystemMode);
                                            mArcScaleSeekBar.Progress = ACControlBase.GetCurrentModeTemperature(ac);
                                            fanModeBtn.IsSelected = false;
                                            FanSwingModeBtn.IsSelected = false;
                                            mArcScaleSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor, ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor);
                                        }
                                        else if (ac.currentSystemMode == 1 || ac.currentSystemMode == 3 || ac.currentSystemMode == 4 || ac.currentSystemMode == 7 || ac.currentSystemMode == 8)
                                        {
                                            switchBtn.IsSelected = true;
                                            modeBtn.IsSelected = true;
                                            modeBtn.SelectedImagePath = ACControlBase.GetModeSelectedImagePathByModeId(ac.currentSystemMode);
                                            modeBtn.UnSelectedImagePath = ACControlBase.GetModeUnSelectedImagePathByModeId(ac.currentSystemMode);
                                            currentModeBtn.Text = ACControlBase.GetModeNameByModeId(ac.currentSystemMode);
                                            mArcScaleSeekBar.Progress = ACControlBase.GetCurrentModeTemperature(ac);
                                            fanModeBtn.IsSelected = true;
                                            FanSwingModeBtn.IsSelected = true;
                                            mArcScaleSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCArcScaleSeekBarStartColor, ZigbeeColor.Current.GXCArcScaleSeekBarEndColor);
                                        }
                                        modeBtn.SelectedImagePath = ACControlBase.GetModeSelectedImagePathByModeId(ac.currentSystemMode);
                                        modeBtn.UnSelectedImagePath = ACControlBase.GetModeUnSelectedImagePathByModeId(ac.currentSystemMode);
                                        currentModeBtn.Text = ACControlBase.GetModeNameByModeId(ac.currentSystemMode);
                                        mArcScaleSeekBar.Progress = ACControlBase.GetCurrentModeTemperature(ac);
                                        mArcScaleSeekBar.IsClickable = ACControlBase.IsOpen(ac);
                                        break;
                                    case 4097:
                                        //过虑网清洗标志:42
                                        ac.CleanStatu = attList.AttriButeData == 42;
                                        cleanStatu.Visible = ac.CleanStatu;
                                        break;
                                    case 4099:
                                        var value = Convert.ToString(attList.AttriButeData, 2).PadLeft(16, '0');
                                        var modeStr = value.Substring(value.Length - 5, 5);
@@ -418,10 +407,10 @@
            else
            {
                //防止短时间内多次读取设备状态
                //if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                //{
                if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                {
                    ReadDeviceAttributeLogic.Instance.SendACStatuComand(device.CommonDevice);
                //}
                }
            }
            var de = Shared.Common.Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
@@ -509,7 +498,7 @@
            var deviceNameBtn = new Button()
            {
                Y = Application.GetRealHeight(184),
                Width = Application.GetRealWidth(500),
                Width = Application.GetRealWidth(600),
                Height = Application.GetRealHeight(60),
                Gravity = Gravity.CenterHorizontal,
                Text = device.CommonDevice.DeviceEpointName,
@@ -535,11 +524,20 @@
                Width = Application.GetRealWidth(671),
                Height = Application.GetRealHeight(671),
                Gravity = Gravity.CenterHorizontal,
                MinValue=ACControlBase.Temperature_Low,
                MaxValue=ACControlBase.Temperature_High,
                Progress=ACControlBase.GetCurrentModeTemperature(ac)
                MinValue = ACControlBase.Temperature_Low,
                MaxValue = ACControlBase.Temperature_High,
                Progress = ACControlBase.GetCurrentModeTemperature(ac),
                IsClickable = ACControlBase.IsOpen(ac)
            };
            itemView.AddChidren(mArcScaleSeekBar);
            if(ACControlBase.IsOpen(ac))
            {
                mArcScaleSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCArcScaleSeekBarStartColor, ZigbeeColor.Current.GXCArcScaleSeekBarEndColor);
            }
            else
            {
                mArcScaleSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor, ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor);
            }
            mArcScaleSeekBar.OnStopTrackingTouchEvent += (sender, e) =>
            {
                if (ac.currentSystemMode == 3 || ac.currentSystemMode == 8)
@@ -582,7 +580,7 @@
            addTemperatureBtn = new Button()
            {
                X = Application.GetRealWidth(620),
                X = Application.GetRealWidth(610),
                Y = Application.GetRealHeight(650),
                Width = Application.GetMinRealAverage(80),
                Height = Application.GetMinRealAverage(80),
@@ -708,12 +706,14 @@
        private void Switch_MouseUpEvent(object sender, MouseEventArgs mouseEventArgs)
        {
            switchBtn.IsSelected = !switchBtn.IsSelected;
            mArcScaleSeekBar.IsClickable = switchBtn.IsSelected;
            if (switchBtn.IsSelected == true)
            {
                ac.Open();
                modeBtn.IsSelected = true;
                fanModeBtn.IsSelected = true;
                FanSwingModeBtn.IsSelected = true;
                mArcScaleSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCArcScaleSeekBarStartColor, ZigbeeColor.Current.GXCArcScaleSeekBarEndColor);
            }
            else
            {
@@ -721,6 +721,7 @@
                modeBtn.IsSelected = false;
                fanModeBtn.IsSelected = false;
                FanSwingModeBtn.IsSelected = false;
                mArcScaleSeekBar.SetProgressBarColors(ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor, ZigbeeColor.Current.GXCWaveSeekBarUnSelectedColor);
            }
        }
@@ -1413,8 +1414,6 @@
        }
        #endregion
        #region ◆ 控制反馈_________________________
ZigbeeApp/Shared/Phone/Device/Category/Category.cs
@@ -249,7 +249,7 @@
                                        ac.DeviceStatusReport = common.DeviceStatusReport;
                                        foreach(var attList in attriButeList)
                                        {
                                            var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High || attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default;
                                            var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High && attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default;
                                            switch (attList.AttributeId)
                                            {
                                                case 0:
@@ -520,7 +520,7 @@
            functionBtn.Init();
            functionBtn.SetTitle(R.MyInternationalizationString.Function);
            //自动化
            automationBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 * 2 + 20, 34, 150, 68);
            automationBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 * 2 + 20+50, 34, 150, 68);
            automationBtn.Init();
            automationBtn.SetTitle(R.MyInternationalizationString.Automation);
            //隐藏自动化
@@ -859,623 +859,651 @@
                            }
                        }
                    }
                    foreach (var deviceUI in sameTypeList)
                    for (int i=0;i<sameTypeList.Count;i++)
                    {
                        //删除设备
                        EventHandler<MouseEventArgs> delEvent = (delSender, delE) =>
                        var deviceUI = sameTypeList[i];
                        new System.Threading.Thread(() =>
                        {
                            var alert = new CustomAlert();
                            AddChidren(alert);
                            alert.Show(Language.StringByID(R.MyInternationalizationString.DeleteFunction));
                            alert.ResultEventHandler += (e2) =>
                            Application.RunOnMainThread(() =>
                            {
                                if (e2)
                                try
                                {
                                    Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.CommonDevice);
                                    deviceListScrolView.RemoveViewByTag((delSender as Button).Tag);
                                    sameTypeList.Remove(deviceUI);
                                    if (sameTypeList.Count == 0)
                                    //删除设备
                                    EventHandler<MouseEventArgs> delEvent = (delSender, delE) =>
                                    {
                                        RefreshBodyView();
                                    }
                                }
                            };
                        };
                        EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) =>
                        {
                            var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
                            UserView.HomePage.Instance.AddChidren(detailInfo);
                            UserView.HomePage.Instance.PageIndex += 1;
                            detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom);
                            detailInfo.action = RefreshBodyView;
                        };
                        if (deviceUI.CommonDevice.Type == DeviceType.OnOffOutput)
                        {
                            //灯
                            var light = deviceUI.CommonDevice as ToggleLight;
                            //补上非远程
                            if (light.Gateway == null)
                            {
                                continue;
                            }
                            if (light.Gateway.IsVirtual)
                            {
                                UserHomeView.ReadStatus(light, () =>
                                {
                                    ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
                                });
                            }
                            else
                            {
                                //防止短时间内多次读取状态
                                if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds)
                                {
                                    ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
                                }
                            }
                            var deviceTypeRowLayout = new RowLayout()
                            {
                                Height = Application.GetRealHeight(129 + 35),
                                LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                                Tag = deviceUI
                            };
                            deviceListScrolView.AddChidren(deviceTypeRowLayout);
                            var deviceRow = new CategoryFunctionRow(0, 35);
                            deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                            deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
                            deviceRow.SetOnLineStatu(light.IsOnline == 1);
                            deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                            deviceRow.SetStatu(light.OnOffStatus == 1);
                            deviceTypeRowLayout.AddChidren(deviceRow);
                            deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
                            {
                                zbGateway = deviceUI.CommonDevice.Gateway;
                                sendedControlCommand = false;
                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
                                (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
                                deviceRow.IsSelected = (send2 as Button).IsSelected;
                                if ((send2 as Button).IsSelected)
                                {
                                    light.SwitchControl(1);
                                }
                                else
                                {
                                    light.SwitchControl(0);
                                }
                                deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                                //控制延时回调
                                DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
                                {
                                    if (Parent == null)
                                    {
                                        return;
                                    }
                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                    if (sendedControlCommand == false)
                                    {
                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                    }
                                });
                            };
                            deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
                            {
                                if (deviceUI.CommonDevice.DfunctionType == DeviceFunctionType.A开关)
                                {
                                    var lightControl = new Phone.Device.Light.OnOffControl();
                                    UserView.HomePage.Instance.AddChidren(lightControl);
                                    UserView.HomePage.Instance.PageIndex += 1;
                                    //lightControl.action = RefreshBodyView;
                                    lightControl.Show(deviceUI, room);
                                }
                                else if (deviceUI.CommonDevice.DfunctionType == DeviceFunctionType.A插座)
                                {
                                    var lightControl = new Phone.Device.Light.PlugControl();
                                    UserView.HomePage.Instance.AddChidren(lightControl);
                                    UserView.HomePage.Instance.PageIndex += 1;
                                    //lightControl.action = RefreshBodyView;
                                    lightControl.Show(deviceUI, room);
                                }
                                else
                                {
                                    var lightControl = new Phone.Device.Light.LightControl();
                                    UserView.HomePage.Instance.AddChidren(lightControl);
                                    UserView.HomePage.Instance.PageIndex += 1;
                                    //lightControl.action = RefreshBodyView;
                                    lightControl.Show(deviceUI, room);
                                }
                            };
                            var editBtn = new CommonForm.RowLayoutEditButton()
                            {
                                Tag = deviceUI,
                                Radius = 0
                            };
                            var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
                            {
                                Tag = deviceUI,
                                Radius = 0
                            };
                            if (room.IsSharedRoom == false)
                            {
                                deviceTypeRowLayout.AddRightView(editBtn);
                                editBtn.MouseUpEventHandler += deviceDetailHandler;
                                deviceTypeRowLayout.AddRightView(delBtn);
                                delBtn.MouseUpEventHandler += delEvent;
                            }
                        }
                        else if (deviceUI.CommonDevice.Type == DeviceType.AirSwitch)
                        {
                            //空气开关
                            var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch;
                            //补上非远程
                            if (airSwitch.Gateway == null)
                            {
                                continue;
                            }
                            if (airSwitch.Gateway.IsVirtual)
                            {
                                UserHomeView.ReadStatus(airSwitch, () =>
                                {
                                    ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
                                });
                            }
                            else
                            {
                                if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                                {
                                    ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
                                }
                            }
                            var deviceTypeRowLayout = new RowLayout()
                            {
                                Height = Application.GetRealHeight(129 + 35),
                                LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                                Tag = deviceUI
                            };
                            deviceListScrolView.AddChidren(deviceTypeRowLayout);
                            var deviceRow = new CategoryFunctionRow(0, 35);
                            deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                            deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
                            deviceRow.SetOnLineStatu(airSwitch.IsOnline == 1);
                            deviceRow.SetStatu(airSwitch.OnOffStatus == 1);
                            deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                            deviceTypeRowLayout.AddChidren(deviceRow);
                            deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
                            {
                                zbGateway = deviceUI.CommonDevice.Gateway;
                                sendedControlCommand = false;
                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
                                (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
                                if ((send2 as Button).IsSelected)
                                {
                                    airSwitch.SwitchControl(1);
                                }
                                else
                                {
                                    airSwitch.SwitchControl(0);
                                }
                                deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                                //控制延时回调
                                DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
                                {
                                    if (Parent == null)
                                    {
                                        return;
                                    }
                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                    if (sendedControlCommand == false)
                                    {
                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                    }
                                });
                            };
                            deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
                            {
                                var lightControl = new Phone.Device.Light.AirSwitchControl();
                                UserView.HomePage.Instance.AddChidren(lightControl);
                                UserView.HomePage.Instance.PageIndex += 1;
                                //lightControl.action = RefreshBodyView;
                                lightControl.Show(deviceUI, room);
                            };
                            var editBtn = new CommonForm.RowLayoutEditButton()
                            {
                                Tag = deviceUI,
                                Radius = 0
                            };
                            var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
                            {
                                Tag = deviceUI,
                                Radius = 0
                            };
                            if (room.IsSharedRoom == false)
                            {
                                deviceTypeRowLayout.AddRightView(editBtn);
                                editBtn.MouseUpEventHandler += deviceDetailHandler;
                                deviceTypeRowLayout.AddRightView(delBtn);
                                delBtn.MouseUpEventHandler += delEvent;
                            }
                        }
                        else if (deviceUI.CommonDevice.Type == DeviceType.DimmableLight)
                        {
                            //调光灯
                            var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight;
                            //补上非远程
                            if (dimmableLight.Gateway == null)
                            {
                                continue;
                            }
                            if (dimmableLight.Gateway.IsVirtual)
                            {
                                UserHomeView.ReadStatus(dimmableLight, () =>
                                {
                                    ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI.CommonDevice);
                                });
                            }
                            else
                            {
                                if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                                {
                                    ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI.CommonDevice);
                                }
                            }
                            var deviceTypeRowLayout = new RowLayout()
                            {
                                Height = Application.GetRealHeight(129 + 35),
                                LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                                Tag = deviceUI
                            };
                            deviceListScrolView.AddChidren(deviceTypeRowLayout);
                            var deviceRow = new CategoryFunctionRow(0, 35);
                            deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                            deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
                            deviceRow.SetOnLineStatu(dimmableLight.IsOnline == 1);
                            deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                            deviceRow.SetStatu(dimmableLight.OnOffStatus == 1);
                            deviceTypeRowLayout.AddChidren(deviceRow);
                            deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
                            {
                                zbGateway = deviceUI.CommonDevice.Gateway;
                                sendedControlCommand = false;
                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
                                (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
                                if ((send2 as Button).IsSelected)
                                {
                                    dimmableLight.SwitchControl(1);
                                }
                                else
                                {
                                    dimmableLight.SwitchControl(0);
                                }
                                deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                                //控制延时回调
                                DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
                                {
                                    if (Parent == null)
                                    {
                                        return;
                                    }
                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                    if (sendedControlCommand == false)
                                    {
                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                    }
                                });
                            };
                            deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
                            {
                                var dimmableLightControl = new Phone.Device.Light.DimmableLightControl();
                                UserView.HomePage.Instance.AddChidren(dimmableLightControl);
                                UserView.HomePage.Instance.PageIndex += 1;
                                UserView.HomePage.Instance.ScrollEnabled = false;
                                //dimmableLightControl.action = RefreshBodyView;
                                dimmableLightControl.Show(deviceUI, room);
                            };
                            var editBtn = new CommonForm.RowLayoutEditButton()
                            {
                                Tag = deviceUI,
                                Radius = 0
                            };
                            var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
                            {
                                Tag = deviceUI,
                                Radius = 0
                            };
                            if (room.IsSharedRoom == false)
                            {
                                deviceTypeRowLayout.AddRightView(editBtn);
                                editBtn.MouseUpEventHandler += deviceDetailHandler;
                                deviceTypeRowLayout.AddRightView(delBtn);
                                delBtn.MouseUpEventHandler += delEvent;
                            }
                        }
                        else if (deviceUI.CommonDevice.Type == DeviceType.Thermostat)
                        {
                            //空调
                            var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
                            //补上非远程
                            if (ac.Gateway == null)
                            {
                                continue;
                            }
                            if (ac.Gateway.IsVirtual)
                            {
                                //发送读取状态命令
                                UserView.UserHomeView.ReadStatus(ac, () =>
                                {
                                    ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI.CommonDevice);
                                });
                            }
                            else
                            {
                                //防止短时间内多次读取设备状态
                                if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                                {
                                    ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI.CommonDevice);
                                }
                            }
                            var deviceTypeRowLayout = new RowLayout()
                            {
                                Height = Application.GetRealHeight(129 + 35),
                                LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                                Tag = deviceUI
                            };
                            deviceListScrolView.AddChidren(deviceTypeRowLayout);
                            var deviceRow = new CategoryFunctionRow(0, 35);
                            deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                            deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
                            deviceRow.SetOnLineStatu(ac.IsOnline == 1);
                            deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                            deviceRow.SetStatu(ac.currentSystemMode != 1);
                            deviceTypeRowLayout.AddChidren(deviceRow);
                            deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
                            {
                                zbGateway = deviceUI.CommonDevice.Gateway;
                                sendedControlCommand = false;
                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
                                (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
                                if ((send2 as Button).IsSelected)
                                {
                                    ac.Open();
                                }
                                else
                                {
                                    ac.Close();
                                }
                                deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                                //控制延时回调
                                DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
                                {
                                    if (Parent == null)
                                    {
                                        return;
                                    }
                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                    if (sendedControlCommand == false)
                                    {
                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                    }
                                });
                            };
                            var editBtn = new CommonForm.RowLayoutEditButton()
                            {
                                Tag = deviceUI,
                                Radius = 0
                            };
                            var delBtn = new CommonForm.RowLayoutDeleteButton()
                            {
                                Tag = deviceUI,
                                Radius = 0
                            };
                            if (room.IsSharedRoom == false)
                            {
                                deviceTypeRowLayout.AddRightView(editBtn);
                                editBtn.MouseUpEventHandler += deviceDetailHandler;
                                deviceTypeRowLayout.AddRightView(delBtn);
                                delBtn.MouseUpEventHandler += delEvent;
                            }
                            deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
                            {
                                var acControl = new Phone.Device.AC.ACControl();
                                UserView.HomePage.Instance.AddChidren(acControl);
                                UserView.HomePage.Instance.PageIndex += 1;
                                UserView.HomePage.Instance.ScrollEnabled = false;
                                //rollerShadeControl.action = RefreshBodyView;
                                acControl.Show(deviceUI, room);
                            };
                        }
                        else if (deviceUI.CommonDevice.Type == DeviceType.WindowCoveringDevice)
                        {
                            //卷帘
                            var rollerShade = deviceUI.CommonDevice as ZigBee.Device.Rollershade;
                            //不上非远程
                            if (rollerShade.Gateway == null)
                            {
                                continue;
                            }
                            if (rollerShade.Gateway.IsVirtual)
                            {
                                UserHomeView.ReadStatus(rollerShade, () =>
                                {
                                    ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI.CommonDevice);
                                });
                            }
                            else
                            {
                                //防止短时间内多次读取
                                if ((DateTime.Now - rollerShade.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                                {
                                    ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI.CommonDevice);
                                }
                            }
                            var deviceTypeRowLayout = new RowLayout()
                            {
                                Height = Application.GetRealHeight(129 + 35),
                                LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                                Tag = deviceUI
                            };
                            deviceListScrolView.AddChidren(deviceTypeRowLayout);
                            var deviceRow = new CategoryFunctionForWinRow(0, 35);
                            deviceRow.Init(deviceUI);
                            deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
                            deviceRow.SetOnLineStatu(rollerShade.IsOnline == 1);
                            deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                            deviceRow.SetStatu(rollerShade.WcdCurrentPositionLiftPercentage != 0);
                            deviceRow.SetRollerShadeIcon(rollerShade.WcdType);
                            deviceTypeRowLayout.AddChidren(deviceRow);
                            if (rollerShade.WcdType == -1)
                            {
                                CommonPage.Loading.Start();
                                new System.Threading.Thread(() =>
                                {
                                    Rollershade.ReadWcdTypeAction(rollerShade, () =>
                                    {
                                        Application.RunOnMainThread(() =>
                                        var alert = new CustomAlert();
                                        AddChidren(alert);
                                        alert.Show(Language.StringByID(R.MyInternationalizationString.DeleteFunction));
                                        alert.ResultEventHandler += (e2) =>
                                        {
                                            if (e2)
                                            {
                                                Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.CommonDevice);
                                                deviceListScrolView.RemoveViewByTag((delSender as Button).Tag);
                                                sameTypeList.Remove(deviceUI);
                                                if (sameTypeList.Count == 0)
                                                {
                                                    RefreshBodyView();
                                                }
                                            }
                                        };
                                    };
                                    EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) =>
                                    {
                                        var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
                                        UserView.HomePage.Instance.AddChidren(detailInfo);
                                        UserView.HomePage.Instance.PageIndex += 1;
                                        detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom);
                                        detailInfo.action = RefreshBodyView;
                                    };
                                    if (deviceUI.CommonDevice.Type == DeviceType.OnOffOutput)
                                    {
                                        //灯
                                        var light = deviceUI.CommonDevice as ToggleLight;
                                        if (light.Gateway != null)
                                        {
                                            new System.Threading.Thread(() =>
                                            {
                                                System.Threading.Thread.Sleep(100 * i);
                                                if (light.Gateway.IsVirtual)
                                                {
                                                    UserHomeView.ReadStatus(light, () =>
                                                    {
                                                        ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
                                                    });
                                                }
                                                else
                                                {
                                                    //防止短时间内多次读取状态
                                                    if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds)
                                                    {
                                                        ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
                                                    }
                                                }
                                            })
                                            { IsBackground = true }.Start();
                                            var deviceTypeRowLayout = new RowLayout()
                                            {
                                                Height = Application.GetRealHeight(129 + 35),
                                                LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                                                Tag = deviceUI
                                            };
                                            deviceListScrolView.AddChidren(deviceTypeRowLayout);
                                            var deviceRow = new CategoryFunctionRow(0, 35);
                                            deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                                            deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
                                            deviceRow.SetOnLineStatu(light.IsOnline == 1);
                                            deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                                            deviceRow.SetStatu(light.OnOffStatus == 1);
                                            deviceTypeRowLayout.AddChidren(deviceRow);
                                            deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
                                            {
                                                zbGateway = deviceUI.CommonDevice.Gateway;
                                                sendedControlCommand = false;
                                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
                                                (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
                                                deviceRow.IsSelected = (send2 as Button).IsSelected;
                                                if ((send2 as Button).IsSelected)
                                                {
                                                    light.SwitchControl(1);
                                                }
                                                else
                                                {
                                                    light.SwitchControl(0);
                                                }
                                                deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                                                //控制延时回调
                                                DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
                                                {
                                                    if (Parent == null)
                                                    {
                                                        return;
                                                    }
                                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                                    if (sendedControlCommand == false)
                                                    {
                                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                                    }
                                                });
                                            };
                                            deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
                                            {
                                                if (deviceUI.CommonDevice.DfunctionType == DeviceFunctionType.A开关)
                                                {
                                                    var lightControl = new Phone.Device.Light.OnOffControl();
                                                    UserView.HomePage.Instance.AddChidren(lightControl);
                                                    UserView.HomePage.Instance.PageIndex += 1;
                                                    //lightControl.action = RefreshBodyView;
                                                    lightControl.Show(deviceUI, room);
                                                }
                                                else if (deviceUI.CommonDevice.DfunctionType == DeviceFunctionType.A插座)
                                                {
                                                    var lightControl = new Phone.Device.Light.PlugControl();
                                                    UserView.HomePage.Instance.AddChidren(lightControl);
                                                    UserView.HomePage.Instance.PageIndex += 1;
                                                    //lightControl.action = RefreshBodyView;
                                                    lightControl.Show(deviceUI, room);
                                                }
                                                else
                                                {
                                                    var lightControl = new Phone.Device.Light.LightControl();
                                                    UserView.HomePage.Instance.AddChidren(lightControl);
                                                    UserView.HomePage.Instance.PageIndex += 1;
                                                    //lightControl.action = RefreshBodyView;
                                                    lightControl.Show(deviceUI, room);
                                                }
                                            };
                                            var editBtn = new CommonForm.RowLayoutEditButton()
                                            {
                                                Tag = deviceUI,
                                                Radius = 0
                                            };
                                            var delBtn = new CommonForm.RowLayoutDeleteButton()
                                            {
                                                Tag = deviceUI,
                                                Radius = 0
                                            };
                                            if (room.IsSharedRoom == false)
                                            {
                                                deviceTypeRowLayout.AddRightView(editBtn);
                                                editBtn.MouseUpEventHandler += deviceDetailHandler;
                                                deviceTypeRowLayout.AddRightView(delBtn);
                                                delBtn.MouseUpEventHandler += delEvent;
                                            }
                                        }
                                    }
                                    else if (deviceUI.CommonDevice.Type == DeviceType.AirSwitch)
                                    {
                                        //空气开关
                                        var airSwitch = deviceUI.CommonDevice as AirSwitch;
                                        if (airSwitch.Gateway != null)
                                        {
                                            new System.Threading.Thread(() =>
                                            {
                                                System.Threading.Thread.Sleep(100 * i);
                                                if (airSwitch.Gateway.IsVirtual)
                                                {
                                                    UserHomeView.ReadStatus(airSwitch, () =>
                                                    {
                                                        ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
                                                    });
                                                }
                                                else
                                                {
                                                    if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                                                    {
                                                        ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI.CommonDevice);
                                                    }
                                                }
                                            })
                                            { IsBackground = true }.Start();
                                            var deviceTypeRowLayout = new RowLayout()
                                            {
                                                Height = Application.GetRealHeight(129 + 35),
                                                LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                                                Tag = deviceUI
                                            };
                                            deviceListScrolView.AddChidren(deviceTypeRowLayout);
                                            var deviceRow = new CategoryFunctionRow(0, 35);
                                            deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                                            deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
                                            deviceRow.SetOnLineStatu(airSwitch.IsOnline == 1);
                                            deviceRow.SetStatu(airSwitch.OnOffStatus == 1);
                                            deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                                            deviceTypeRowLayout.AddChidren(deviceRow);
                                            deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
                                            {
                                                zbGateway = deviceUI.CommonDevice.Gateway;
                                                sendedControlCommand = false;
                                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
                                                (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
                                                if ((send2 as Button).IsSelected)
                                                {
                                                    airSwitch.SwitchControl(1);
                                                }
                                                else
                                                {
                                                    airSwitch.SwitchControl(0);
                                                }
                                                deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                                                //控制延时回调
                                                DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
                                                {
                                                    if (Parent == null)
                                                    {
                                                        return;
                                                    }
                                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                                    if (sendedControlCommand == false)
                                                    {
                                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                                    }
                                                });
                                            };
                                            deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
                                            {
                                                var lightControl = new Phone.Device.Light.AirSwitchControl();
                                                UserView.HomePage.Instance.AddChidren(lightControl);
                                                UserView.HomePage.Instance.PageIndex += 1;
                                                //lightControl.action = RefreshBodyView;
                                                lightControl.Show(deviceUI, room);
                                            };
                                            var editBtn = new CommonForm.RowLayoutEditButton()
                                            {
                                                Tag = deviceUI,
                                                Radius = 0
                                            };
                                            var delBtn = new CommonForm.RowLayoutDeleteButton()
                                            {
                                                Tag = deviceUI,
                                                Radius = 0
                                            };
                                            if (room.IsSharedRoom == false)
                                            {
                                                deviceTypeRowLayout.AddRightView(editBtn);
                                                editBtn.MouseUpEventHandler += deviceDetailHandler;
                                                deviceTypeRowLayout.AddRightView(delBtn);
                                                delBtn.MouseUpEventHandler += delEvent;
                                            }
                                        }
                                    }
                                    else if (deviceUI.CommonDevice.Type == DeviceType.DimmableLight)
                                    {
                                        //调光灯
                                        var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight;
                                        if (dimmableLight.Gateway != null)
                                        {
                                            new System.Threading.Thread(() =>
                                            {
                                                System.Threading.Thread.Sleep(100 * i);
                                                if (dimmableLight.Gateway.IsVirtual)
                                                {
                                                    UserHomeView.ReadStatus(dimmableLight, () =>
                                                    {
                                                        ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI.CommonDevice);
                                                    });
                                                }
                                                else
                                                {
                                                    if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                                                    {
                                                        ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI.CommonDevice);
                                                    }
                                                }
                                            })
                                            { IsBackground = true }.Start();
                                            var deviceTypeRowLayout = new RowLayout()
                                            {
                                                Height = Application.GetRealHeight(129 + 35),
                                                LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                                                Tag = deviceUI
                                            };
                                            deviceListScrolView.AddChidren(deviceTypeRowLayout);
                                            var deviceRow = new CategoryFunctionRow(0, 35);
                                            deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                                            deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
                                            deviceRow.SetOnLineStatu(dimmableLight.IsOnline == 1);
                                            deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                                            deviceRow.SetStatu(dimmableLight.OnOffStatus == 1);
                                            deviceTypeRowLayout.AddChidren(deviceRow);
                                            deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
                                            {
                                                zbGateway = deviceUI.CommonDevice.Gateway;
                                                sendedControlCommand = false;
                                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
                                                (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
                                                if ((send2 as Button).IsSelected)
                                                {
                                                    dimmableLight.SwitchControl(1);
                                                }
                                                else
                                                {
                                                    dimmableLight.SwitchControl(0);
                                                }
                                                deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                                                //控制延时回调
                                                DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
                                                {
                                                    if (Parent == null)
                                                    {
                                                        return;
                                                    }
                                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                                    if (sendedControlCommand == false)
                                                    {
                                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                                    }
                                                });
                                            };
                                            deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
                                            {
                                                var dimmableLightControl = new Phone.Device.Light.DimmableLightControl();
                                                UserView.HomePage.Instance.AddChidren(dimmableLightControl);
                                                UserView.HomePage.Instance.PageIndex += 1;
                                                UserView.HomePage.Instance.ScrollEnabled = false;
                                                //dimmableLightControl.action = RefreshBodyView;
                                                dimmableLightControl.Show(deviceUI, room);
                                            };
                                            var editBtn = new CommonForm.RowLayoutEditButton()
                                            {
                                                Tag = deviceUI,
                                                Radius = 0
                                            };
                                            var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
                                            {
                                                Tag = deviceUI,
                                                Radius = 0
                                            };
                                            if (room.IsSharedRoom == false)
                                            {
                                                deviceTypeRowLayout.AddRightView(editBtn);
                                                editBtn.MouseUpEventHandler += deviceDetailHandler;
                                                deviceTypeRowLayout.AddRightView(delBtn);
                                                delBtn.MouseUpEventHandler += delEvent;
                                            }
                                        }
                                    }
                                    else if (deviceUI.CommonDevice.Type == DeviceType.Thermostat)
                                    {
                                        //空调
                                        var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
                                        if (ac.Gateway != null)
                                        {
                                            new System.Threading.Thread(() =>
                                            {
                                                System.Threading.Thread.Sleep(100 * i);
                                                if (ac.Gateway.IsVirtual)
                                                {
                                                    //发送读取状态命令
                                                    UserView.UserHomeView.ReadStatus(ac, () =>
                                                    {
                                                        ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI.CommonDevice);
                                                    });
                                                }
                                                else
                                                {
                                                    //防止短时间内多次读取设备状态
                                                    if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                                                    {
                                                        ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI.CommonDevice);
                                                    }
                                                }
                                            })
                                            { IsBackground = true }.Start();
                                            var deviceTypeRowLayout = new RowLayout()
                                            {
                                                Height = Application.GetRealHeight(129 + 35),
                                                LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                                                Tag = deviceUI
                                            };
                                            deviceListScrolView.AddChidren(deviceTypeRowLayout);
                                            var deviceRow = new CategoryFunctionRow(0, 35);
                                            deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                                            deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
                                            deviceRow.SetOnLineStatu(ac.IsOnline == 1);
                                            deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                                            deviceRow.SetStatu(ac.currentSystemMode != 1);
                                            deviceTypeRowLayout.AddChidren(deviceRow);
                                            deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
                                            {
                                                zbGateway = deviceUI.CommonDevice.Gateway;
                                                sendedControlCommand = false;
                                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
                                                (send2 as Button).IsSelected = !(send2 as Button).IsSelected;
                                                if ((send2 as Button).IsSelected)
                                                {
                                                    ac.Open();
                                                }
                                                else
                                                {
                                                    ac.Close();
                                                }
                                                deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                                                //控制延时回调
                                                DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
                                                {
                                                    if (Parent == null)
                                                    {
                                                        return;
                                                    }
                                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                                    if (sendedControlCommand == false)
                                                    {
                                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                                    }
                                                });
                                            };
                                            var editBtn = new CommonForm.RowLayoutEditButton()
                                            {
                                                Tag = deviceUI,
                                                Radius = 0
                                            };
                                            var delBtn = new CommonForm.RowLayoutDeleteButton()
                                            {
                                                Tag = deviceUI,
                                                Radius = 0
                                            };
                                            if (room.IsSharedRoom == false)
                                            {
                                                deviceTypeRowLayout.AddRightView(editBtn);
                                                editBtn.MouseUpEventHandler += deviceDetailHandler;
                                                deviceTypeRowLayout.AddRightView(delBtn);
                                                delBtn.MouseUpEventHandler += delEvent;
                                            }
                                            deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
                                            {
                                                var acControl = new Phone.Device.AC.ACControl();
                                                UserView.HomePage.Instance.AddChidren(acControl);
                                                UserView.HomePage.Instance.PageIndex += 1;
                                                UserView.HomePage.Instance.ScrollEnabled = false;
                                                //rollerShadeControl.action = RefreshBodyView;
                                                acControl.Show(deviceUI, room);
                                            };
                                        }
                                    }
                                    else if (deviceUI.CommonDevice.Type == DeviceType.WindowCoveringDevice)
                                    {
                                        //卷帘
                                        var rollerShade = deviceUI.CommonDevice as ZigBee.Device.Rollershade;
                                        if (rollerShade.Gateway != null)
                                        {
                                            new System.Threading.Thread(() =>
                                            {
                                                System.Threading.Thread.Sleep(100 * i);
                                                if (rollerShade.Gateway.IsVirtual)
                                                {
                                                    UserHomeView.ReadStatus(rollerShade, () =>
                                                    {
                                                        ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI.CommonDevice);
                                                    });
                                                }
                                                else
                                                {
                                                    //防止短时间内多次读取
                                                    if ((DateTime.Now - rollerShade.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                                                    {
                                                        ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI.CommonDevice);
                                                    }
                                                }
                                            })
                                            { IsBackground = true }.Start();
                                            var deviceTypeRowLayout = new RowLayout()
                                            {
                                                Height = Application.GetRealHeight(129 + 35),
                                                LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                                                Tag = deviceUI
                                            };
                                            deviceListScrolView.AddChidren(deviceTypeRowLayout);
                                            var deviceRow = new CategoryFunctionForWinRow(0, 35);
                                            deviceRow.Init(deviceUI);
                                            deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
                                            deviceRow.SetOnLineStatu(rollerShade.IsOnline == 1);
                                            deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                                            deviceRow.SetStatu(rollerShade.WcdCurrentPositionLiftPercentage != 0);
                                            deviceRow.SetRollerShadeIcon(rollerShade.WcdType);
                                            CommonPage.Loading.Hide();
                                        });
                                    });
                                })
                                { IsBackground = true }.Start();
                            }
                                            deviceTypeRowLayout.AddChidren(deviceRow);
                            var editBtn = new CommonForm.RowLayoutEditButton()
                            {
                                Tag = deviceUI,
                                Radius = 0
                            };
                            var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
                            {
                                Tag = deviceUI,
                                Radius = 0
                            };
                            if (room.IsSharedRoom == false)
                            {
                                deviceTypeRowLayout.AddRightView(editBtn);
                                editBtn.MouseUpEventHandler += deviceDetailHandler;
                                deviceTypeRowLayout.AddRightView(delBtn);
                                delBtn.MouseUpEventHandler += delEvent;
                            }
                                            if (rollerShade.WcdType == -1)
                                            {
                                                CommonPage.Loading.Start();
                                                new System.Threading.Thread(() =>
                                                {
                                                    Rollershade.ReadWcdTypeAction(rollerShade, () =>
                                                    {
                                                        Application.RunOnMainThread(() =>
                                                        {
                                                            deviceRow.SetRollerShadeIcon(rollerShade.WcdType);
                                                            CommonPage.Loading.Hide();
                                                        });
                                                    });
                                                })
                                                { IsBackground = true }.Start();
                                            }
                            deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
                            {
                                var rollerShadeControl = new Phone.Device.Curtain.RollerShadeControl();
                                UserView.HomePage.Instance.AddChidren(rollerShadeControl);
                                UserView.HomePage.Instance.PageIndex += 1;
                                UserView.HomePage.Instance.ScrollEnabled = false;
                                //rollerShadeControl.action = RefreshBodyView;
                                rollerShadeControl.Show(deviceUI, room);
                            };
                        }
                        else if (deviceUI.CommonDevice.Type == DeviceType.DoorLock)
                        {
                            var deviceTypeRowLayout = new RowLayout()
                            {
                                Height = Application.GetRealHeight(129 + 35),
                                LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                                Tag = deviceUI
                            };
                            deviceListScrolView.AddChidren(deviceTypeRowLayout);
                                            var editBtn = new CommonForm.RowLayoutEditButton()
                                            {
                                                Tag = deviceUI,
                                                Radius = 0
                                            };
                                            var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
                                            {
                                                Tag = deviceUI,
                                                Radius = 0
                                            };
                                            if (room.IsSharedRoom == false)
                                            {
                                                deviceTypeRowLayout.AddRightView(editBtn);
                                                editBtn.MouseUpEventHandler += deviceDetailHandler;
                                                deviceTypeRowLayout.AddRightView(delBtn);
                                                delBtn.MouseUpEventHandler += delEvent;
                                            }
                            var deviceRow = new CategoryFunctionRow(0, 35);
                            deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                            deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
                            deviceRow.SetOnLineStatu(deviceUI.CommonDevice.IsOnline == 1);
                            deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                            deviceRow.HideSwitchBtn(true);
                            deviceTypeRowLayout.AddChidren(deviceRow);
                                            deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
                                            {
                                                var rollerShadeControl = new Phone.Device.Curtain.RollerShadeControl();
                                                UserView.HomePage.Instance.AddChidren(rollerShadeControl);
                                                UserView.HomePage.Instance.PageIndex += 1;
                                                UserView.HomePage.Instance.ScrollEnabled = false;
                                                //rollerShadeControl.action = RefreshBodyView;
                                                rollerShadeControl.Show(deviceUI, room);
                                            };
                                        }
                                    }
                                    else if (deviceUI.CommonDevice.Type == DeviceType.DoorLock)
                                    {
                                        var deviceTypeRowLayout = new RowLayout()
                                        {
                                            Height = Application.GetRealHeight(129 + 35),
                                            LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                                            Tag = deviceUI
                                        };
                                        deviceListScrolView.AddChidren(deviceTypeRowLayout);
                                        var deviceRow = new CategoryFunctionRow(0, 35);
                                        deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                                        deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
                                        deviceRow.SetOnLineStatu(deviceUI.CommonDevice.IsOnline == 1);
                                        deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                                        deviceRow.HideSwitchBtn(true);
                                        deviceTypeRowLayout.AddChidren(deviceRow);
                            deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
                            {
                                var userDoorLockPage = new UserDoorLockPage(room, deviceUI);
                                HomePage.Instance.AddChidren(userDoorLockPage);
                                HomePage.Instance.PageIndex += 1;
                                userDoorLockPage.Show();
                            };
                                        deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) =>
                                        {
                                            var userDoorLockPage = new UserDoorLockPage(room, deviceUI);
                                            HomePage.Instance.AddChidren(userDoorLockPage);
                                            HomePage.Instance.PageIndex += 1;
                                            userDoorLockPage.Show();
                                        };
                            var editBtn = new CommonForm.RowLayoutEditButton()
                            {
                                Tag = deviceUI
                            };
                            var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
                            {
                                Tag = deviceUI
                            };
                            if (room.IsSharedRoom == false)
                            {
                                deviceTypeRowLayout.AddRightView(editBtn);
                                editBtn.MouseUpEventHandler += deviceDetailHandler;
                                deviceTypeRowLayout.AddRightView(delBtn);
                                delBtn.MouseUpEventHandler += delEvent;
                            }
                        }
                        else
                        {
                            var deviceTypeRowLayout = new RowLayout()
                            {
                                Height = Application.GetRealHeight(129 + 35),
                                LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                                Tag = deviceUI
                            };
                            deviceListScrolView.AddChidren(deviceTypeRowLayout);
                                        var editBtn = new CommonForm.RowLayoutEditButton()
                                        {
                                            Tag = deviceUI
                                        };
                                        var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
                                        {
                                            Tag = deviceUI
                                        };
                                        if (room.IsSharedRoom == false)
                                        {
                                            deviceTypeRowLayout.AddRightView(editBtn);
                                            editBtn.MouseUpEventHandler += deviceDetailHandler;
                                            deviceTypeRowLayout.AddRightView(delBtn);
                                            delBtn.MouseUpEventHandler += delEvent;
                                        }
                                    }
                                    else
                                    {
                                        var deviceTypeRowLayout = new RowLayout()
                                        {
                                            Height = Application.GetRealHeight(129 + 35),
                                            LineColor = ZigbeeColor.Current.GXCBackgroundColor,
                                            Tag = deviceUI
                                        };
                                        deviceListScrolView.AddChidren(deviceTypeRowLayout);
                            var deviceRow = new CategoryFunctionRow(0, 35);
                            deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                            deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
                            deviceRow.SetOnLineStatu(deviceUI.CommonDevice.IsOnline == 1);
                            deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                            deviceRow.HideSwitchBtn(true);
                            deviceTypeRowLayout.AddChidren(deviceRow);
                                        var deviceRow = new CategoryFunctionRow(0, 35);
                                        deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                                        deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
                                        deviceRow.SetOnLineStatu(deviceUI.CommonDevice.IsOnline == 1);
                                        deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                                        deviceRow.HideSwitchBtn(true);
                                        deviceTypeRowLayout.AddChidren(deviceRow);
                            var editBtn = new CommonForm.RowLayoutEditButton()
                            {
                                Tag = deviceUI
                            };
                            var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
                            {
                                Tag = deviceUI
                            };
                            if (room.IsSharedRoom == false)
                            {
                                deviceTypeRowLayout.AddRightView(editBtn);
                                editBtn.MouseUpEventHandler += deviceDetailHandler;
                                deviceTypeRowLayout.AddRightView(delBtn);
                                delBtn.MouseUpEventHandler += delEvent;
                            }
                        }
                                        var editBtn = new CommonForm.RowLayoutEditButton()
                                        {
                                            Tag = deviceUI
                                        };
                                        var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
                                        {
                                            Tag = deviceUI
                                        };
                                        if (room.IsSharedRoom == false)
                                        {
                                            deviceTypeRowLayout.AddRightView(editBtn);
                                            editBtn.MouseUpEventHandler += deviceDetailHandler;
                                            deviceTypeRowLayout.AddRightView(delBtn);
                                            delBtn.MouseUpEventHandler += delEvent;
                                        }
                                    }
                                }
                                catch
                                {
                                }
                            });
                        })
                        { IsBackground=true}.Start();
                    }
                };
ZigbeeApp/Shared/Phone/UserCenter/Abount/SLAForm.cs
@@ -44,10 +44,11 @@
                Width = Application.GetRealWidth(942),
                Height = Application.GetRealHeight(800),
                Text = Language.StringByID(R.MyInternationalizationString.SLA_Detail).Replace("{\\r\\n}","\r\n\r\n"),
                TextAlignment = TextAlignment.CenterLeft,
                TextAlignment = TextAlignment.TopLeft,
                TextColor = ZigbeeColor.Current.GXCTextColor,
                IsMoreLines=true,
                TextSize = 12
                TextSize = 12,
            };
            bodyFrameLayout.AddChidren(detail);
        }
ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
@@ -223,7 +223,7 @@
                                            var attriButeList = ac.DeviceStatusReport.AttriBute;
                                            foreach(var attList in attriButeList)
                                            {
                                                var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High || attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default;
                                                var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High && attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default;
                                                switch (attList.AttributeId)
                                                {
                                                    case 0:
@@ -924,682 +924,689 @@
            else
            {
                deviceVerticalScrolViewLayout = new VerticalScrolViewLayout { };
                functionSceneBodyView.AddChidren(deviceVerticalScrolViewLayout);
                for (int i = 0; i < deviceList.Count; i++)
                {
                    int t = i % 2;
                    int tt = i / 2;
                    int xx = 43 + i % 2 * (20 + 487);
                    int yy = 14;
                    var device = deviceList[i];
                    if (device == null || device.CommonDevice == null)
                    {
                        continue;
                    }
                    if (i % 2 == 0)
                    {
                        itemView = new FrameLayout()
                    //new System.Threading.Thread(() =>
                    //{
                        Application.RunOnMainThread(() =>
                        {
                            Height = Application.GetRealHeight(14 + 348),
                        };
                        deviceVerticalScrolViewLayout.AddChidren(itemView);
                    }
                    //收藏
                    EventHandler<MouseEventArgs> collectionEvent = (sender, e) =>
                    {
                        if ((sender as Button).IsSelected)
                        {
                            Shared.Common.Room.CurrentRoom.GetLoveRoom().DeleteDevice(device.FileName);
                            (sender as Button).IsSelected = false;
                        }
                        else
                        {
                            Shared.Common.Room.CurrentRoom.GetLoveRoom().AddDevice(device.FileName);
                            (sender as Button).IsSelected = true;
                        }
                        if (Room.CurrentRoom.IsLove)
                        {
                            RefreshBodyView();
                        }
                    };
                    //////判断设备是否支持的属性 如开关等控制
                    if (device.CommonDevice.Type == ZigBee.Device.DeviceType.WindowCoveringDevice)
                    {
                        //窗帘 卷帘
                        var rollerShade = (ZigBee.Device.Rollershade)device.CommonDevice;
                        //不上非远程
                        if (rollerShade.Gateway == null)
                        {
                            continue;
                        }
                        if (rollerShade.Gateway.IsVirtual)
                        {
                            //发送读取状态命令
                            ReadStatus(rollerShade, () =>
                            try
                            {
                                ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(device.CommonDevice);
                            });
                        }
                        else
                        {
                            if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - rollerShade.LastDateTime).TotalSeconds)
                            {
                                ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(device.CommonDevice);
                            }
                        }
                        var lightView = new FunctionMainView(xx, yy);
                        lightView.Tag = device;
                        itemView.AddChidren(lightView);
                        lightView.Init();
                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                        lightView.SetStatuText(device.GetDeviceStatu());
                        lightView.SetDeviceName(rollerShade.DeviceEpointName);
                        //lightView.SetStatu(true);
                        lightView.IsSelected = rollerShade.WcdCurrentPositionLiftPercentage == 100;
                        lightView.SetCollect(true);
                        lightView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                        {
                            (sender as Button).IsSelected = !(sender as Button).IsSelected;
                            if ((sender as Button).IsSelected)
                            {
                                zbGateway = device.CommonDevice.Gateway;
                                sendedControlCommand = false;
                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
                                (device.CommonDevice as Rollershade).CurtainUpDownStopControl(0);
                                ((sender as Button).Parent as FunctionMainView).SetStatuText(CommonFormResouce.GetSwitchStatu(true));
                                ((sender as Button).Parent as FunctionMainView).IsSelected = true;
                                //控制延时回调
                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
                                int t = i % 2;
                                int tt = i / 2;
                                int xx = 43 + i % 2 * (20 + 487);
                                int yy = 14;
                                if (i % 2 == 0)
                                {
                                    if (Parent == null)
                                    itemView = new FrameLayout()
                                    {
                                        return;
                                    }
                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                    if (sendedControlCommand == false)
                                    {
                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                    }
                                });
                            }
                            else
                            {
                                zbGateway = device.CommonDevice.Gateway;
                                sendedControlCommand = false;
                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
                                (device.CommonDevice as Rollershade).CurtainUpDownStopControl(1);
                                ((sender as Button).Parent as FunctionMainView).SetStatuText(CommonFormResouce.GetSwitchStatu(false));
                                ((sender as Button).Parent as FunctionMainView).IsSelected = false;
                                //控制延时回调
                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
                                        Height = Application.GetRealHeight(14 + 348),
                                    };
                                    deviceVerticalScrolViewLayout.AddChidren(itemView);
                                }
                                //收藏
                                EventHandler<MouseEventArgs> collectionEvent = (sender, e) =>
                                {
                                    if (Parent == null)
                                    if ((sender as Button).IsSelected)
                                    {
                                        return;
                                        Common.Room.CurrentRoom.GetLoveRoom().DeleteDevice(device.FileName);
                                        (sender as Button).IsSelected = false;
                                    }
                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                    if (sendedControlCommand == false)
                                    else
                                    {
                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                        Common.Room.CurrentRoom.GetLoveRoom().AddDevice(device.FileName);
                                        (sender as Button).IsSelected = true;
                                    }
                                });
                            }
                        };
                                    if (Room.CurrentRoom.IsLove)
                                    {
                                        RefreshBodyView();
                                    }
                                };
                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                        {
                            CommonPage.Instance.IsDrawerLockMode = true;
                            var rollerShadeControl = new Phone.Device.Curtain.RollerShadeControl();
                            UserView.HomePage.Instance.AddChidren(rollerShadeControl);
                            UserView.HomePage.Instance.PageIndex += 1;
                            UserView.HomePage.Instance.ScrollEnabled = false;
                            //rollerShadeControl.action = RefreshBodyView;
                            rollerShadeControl.Show(device, Room.CurrentRoom);
                        };
                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                    }
                    else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.OnOffOutput)
                    {
                        //开关灯
                        var light = device.CommonDevice as ToggleLight;
                        //补上非远程
                        if (light.Gateway == null)
                        {
                            continue;
                        }
                        if (light.Gateway.IsVirtual)
                        {
                            //发送读取状态命令
                            ReadStatus(light, () =>
                            {
                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice);
                            });
                        }
                        else
                        {
                            if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds)
                            {
                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice);
                            }
                        }
                        var lightView = new FunctionMainView(xx, yy);
                        itemView.AddChidren(lightView);
                        lightView.Init();
                        lightView.Tag = device;
                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                        lightView.SetStatuText(device.GetDeviceStatu());
                        lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
                        lightView.IsSelected = light.OnOffStatus == 1;
                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
                        var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
                        if (dev == null)
                        {
                            lightView.CollectButton.IsSelected = false;
                        }
                        else
                        {
                            lightView.CollectButton.IsSelected = true;
                        }
                        lightView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                        {
                            (sender as Button).IsSelected = !(sender as Button).IsSelected;
                            if ((sender as Button).IsSelected)
                            {
                                zbGateway = device.CommonDevice.Gateway;
                                sendedControlCommand = false;
                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
                                light.SwitchControl(1);
                                ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu());
                                ((sender as Button).Parent as FunctionMainView).IsSelected = true;
                                //控制延时回调
                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
                                if (device.CommonDevice.Type == DeviceType.WindowCoveringDevice)
                                {
                                    if (Parent == null)
                                    //窗帘 卷帘
                                    var rollerShade = (ZigBee.Device.Rollershade)device.CommonDevice;
                                    if (rollerShade.Gateway != null)
                                    {
                                        return;
                                        new System.Threading.Thread(() =>
                                        {
                                            System.Threading.Thread.Sleep(100 * i);
                                            if (rollerShade.Gateway.IsVirtual)
                                            {
                                                ReadStatus(rollerShade, () =>
                                                {
                                                    ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(device.CommonDevice);
                                                });
                                            }
                                            else
                                            {
                                                if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - rollerShade.LastDateTime).TotalSeconds)
                                                {
                                                    ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(device.CommonDevice);
                                                }
                                            }
                                        })
                                        { IsBackground = true }.Start();
                                        var lightView = new FunctionMainView(xx, yy);
                                        lightView.Tag = device;
                                        itemView.AddChidren(lightView);
                                        lightView.Init();
                                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                                        lightView.SetStatuText(device.GetDeviceStatu());
                                        lightView.SetDeviceName(rollerShade.DeviceEpointName);
                                        //lightView.SetStatu(true);
                                        lightView.IsSelected = rollerShade.WcdCurrentPositionLiftPercentage == 100;
                                        lightView.SetCollect(true);
                                        lightView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                                        {
                                            (sender as Button).IsSelected = !(sender as Button).IsSelected;
                                            if ((sender as Button).IsSelected)
                                            {
                                                zbGateway = device.CommonDevice.Gateway;
                                                sendedControlCommand = false;
                                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
                                                (device.CommonDevice as Rollershade).CurtainUpDownStopControl(0);
                                                ((sender as Button).Parent as FunctionMainView).SetStatuText(CommonFormResouce.GetSwitchStatu(true));
                                                ((sender as Button).Parent as FunctionMainView).IsSelected = true;
                                                //控制延时回调
                                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
                                                {
                                                    if (Parent == null)
                                                    {
                                                        return;
                                                    }
                                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                                    if (sendedControlCommand == false)
                                                    {
                                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                                    }
                                                });
                                            }
                                            else
                                            {
                                                zbGateway = device.CommonDevice.Gateway;
                                                sendedControlCommand = false;
                                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
                                                (device.CommonDevice as Rollershade).CurtainUpDownStopControl(1);
                                                ((sender as Button).Parent as FunctionMainView).SetStatuText(CommonFormResouce.GetSwitchStatu(false));
                                                ((sender as Button).Parent as FunctionMainView).IsSelected = false;
                                                //控制延时回调
                                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
                                                {
                                                    if (Parent == null)
                                                    {
                                                        return;
                                                    }
                                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                                    if (sendedControlCommand == false)
                                                    {
                                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                                    }
                                                });
                                            }
                                        };
                                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                                        {
                                            CommonPage.Instance.IsDrawerLockMode = true;
                                            var rollerShadeControl = new Phone.Device.Curtain.RollerShadeControl();
                                            UserView.HomePage.Instance.AddChidren(rollerShadeControl);
                                            UserView.HomePage.Instance.PageIndex += 1;
                                            UserView.HomePage.Instance.ScrollEnabled = false;
                                            //rollerShadeControl.action = RefreshBodyView;
                                            rollerShadeControl.Show(device, Room.CurrentRoom);
                                        };
                                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                                    }
                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                    if (sendedControlCommand == false)
                                    {
                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                    }
                                });
                            }
                            else
                            {
                                zbGateway = device.CommonDevice.Gateway;
                                sendedControlCommand = false;
                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
                                light.SwitchControl(0);
                                ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu());
                                ((sender as Button).Parent as FunctionMainView).IsSelected = false;
                                //控制延时回调
                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
                                }
                                else if (device.CommonDevice.Type == DeviceType.OnOffOutput)
                                {
                                    if (Parent == null)
                                    //开关灯
                                    var light = device.CommonDevice as ToggleLight;
                                    if (light.Gateway != null)
                                    {
                                        return;
                                        new System.Threading.Thread(() =>
                                        {
                                            System.Threading.Thread.Sleep(100 * i);
                                            if (light.Gateway.IsVirtual)
                                            {
                                                ReadStatus(light, () =>
                                                {
                                                    ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice);
                                                });
                                            }
                                            else
                                            {
                                                if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds)
                                                {
                                                    ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice);
                                                }
                                            }
                                        })
                                        { IsBackground = true }.Start();
                                        var lightView = new FunctionMainView(xx, yy);
                                        itemView.AddChidren(lightView);
                                        lightView.Init();
                                        lightView.Tag = device;
                                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                                        lightView.SetStatuText(device.GetDeviceStatu());
                                        lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
                                        lightView.IsSelected = light.OnOffStatus == 1;
                                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
                                        var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
                                        if (dev == null)
                                        {
                                            lightView.CollectButton.IsSelected = false;
                                        }
                                        else
                                        {
                                            lightView.CollectButton.IsSelected = true;
                                        }
                                        lightView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                                        {
                                            (sender as Button).IsSelected = !(sender as Button).IsSelected;
                                            if ((sender as Button).IsSelected)
                                            {
                                                zbGateway = device.CommonDevice.Gateway;
                                                sendedControlCommand = false;
                                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
                                                light.SwitchControl(1);
                                                ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu());
                                                ((sender as Button).Parent as FunctionMainView).IsSelected = true;
                                                //控制延时回调
                                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
                                                {
                                                    if (Parent == null)
                                                    {
                                                        return;
                                                    }
                                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                                    if (sendedControlCommand == false)
                                                    {
                                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                                    }
                                                });
                                            }
                                            else
                                            {
                                                zbGateway = device.CommonDevice.Gateway;
                                                sendedControlCommand = false;
                                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
                                                light.SwitchControl(0);
                                                ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu());
                                                ((sender as Button).Parent as FunctionMainView).IsSelected = false;
                                                //控制延时回调
                                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
                                                {
                                                    if (Parent == null)
                                                    {
                                                        return;
                                                    }
                                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                                    if (sendedControlCommand == false)
                                                    {
                                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                                    }
                                                });
                                            }
                                        };
                                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                                        {
                                            CommonPage.Instance.IsDrawerLockMode = true;
                                            if (device.CommonDevice.DfunctionType == DeviceFunctionType.A开关)
                                            {
                                                var lightControl = new Phone.Device.Light.OnOffControl();
                                                UserView.HomePage.Instance.AddChidren(lightControl);
                                                UserView.HomePage.Instance.PageIndex += 1;
                                                //lightControl.action = RefreshBodyView;
                                                lightControl.Show(device, Room.CurrentRoom);
                                            }
                                            else if (device.CommonDevice.DfunctionType == DeviceFunctionType.A插座)
                                            {
                                                var lightControl = new Phone.Device.Light.PlugControl();
                                                UserView.HomePage.Instance.AddChidren(lightControl);
                                                UserView.HomePage.Instance.PageIndex += 1;
                                                //lightControl.action = RefreshBodyView;
                                                lightControl.Show(device, Room.CurrentRoom);
                                            }
                                            else
                                            {
                                                var lightControl = new Phone.Device.Light.LightControl();
                                                UserView.HomePage.Instance.AddChidren(lightControl);
                                                UserView.HomePage.Instance.PageIndex += 1;
                                                //lightControl.action = RefreshBodyView;
                                                lightControl.Show(device, Room.CurrentRoom);
                                            }
                                        };
                                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                                    }
                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                    if (sendedControlCommand == false)
                                    {
                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                    }
                                });
                            }
                        };
                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                        {
                            CommonPage.Instance.IsDrawerLockMode = true;
                            if (device.CommonDevice.DfunctionType == DeviceFunctionType.A开关)
                            {
                                var lightControl = new Phone.Device.Light.OnOffControl();
                                UserView.HomePage.Instance.AddChidren(lightControl);
                                UserView.HomePage.Instance.PageIndex += 1;
                                //lightControl.action = RefreshBodyView;
                                lightControl.Show(device, Room.CurrentRoom);
                            }
                            else if (device.CommonDevice.DfunctionType == DeviceFunctionType.A插座)
                            {
                                var lightControl = new Phone.Device.Light.PlugControl();
                                UserView.HomePage.Instance.AddChidren(lightControl);
                                UserView.HomePage.Instance.PageIndex += 1;
                                //lightControl.action = RefreshBodyView;
                                lightControl.Show(device, Room.CurrentRoom);
                            }
                            else
                            {
                                var lightControl = new Phone.Device.Light.LightControl();
                                UserView.HomePage.Instance.AddChidren(lightControl);
                                UserView.HomePage.Instance.PageIndex += 1;
                                //lightControl.action = RefreshBodyView;
                                lightControl.Show(device, Room.CurrentRoom);
                            }
                        };
                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                    }
                    else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.AirSwitch)
                    {
                        //空气开关
                        var airSwitch = device.CommonDevice as AirSwitch;
                        //补上非远程
                        if (airSwitch.Gateway == null)
                        {
                            continue;
                        }
                        if (airSwitch.Gateway.IsVirtual)
                        {
                            //发送读取状态命令
                            ReadStatus(airSwitch, () =>
                            {
                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice);
                            });
                        }
                        else
                        {
                            //防止短时间内多次读取设备状态
                            if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                            {
                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice);
                            }
                        }
                        var lightView = new FunctionMainView(xx, yy);
                        itemView.AddChidren(lightView);
                        lightView.Init();
                        lightView.Tag = device;
                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                        lightView.SetStatuText(device.GetDeviceStatu());
                        lightView.SetDeviceName(airSwitch.DeviceEpointName);
                        //lightView.SetStatu(true);
                        lightView.IsSelected = airSwitch.OnOffStatus == 1;
                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
                        lightView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                        {
                            (sender as Button).IsSelected = !(sender as Button).IsSelected;
                            if ((sender as Button).IsSelected)
                            {
                                zbGateway = device.CommonDevice.Gateway;
                                sendedControlCommand = false;
                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
                                airSwitch.SwitchControl(1);
                                ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu());
                                ((sender as Button).Parent as FunctionMainView).IsSelected = true;
                                //控制延时回调
                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
                                }
                                else if (device.CommonDevice.Type == DeviceType.AirSwitch)
                                {
                                    if (Parent == null)
                                    //空气开关
                                    var airSwitch = device.CommonDevice as AirSwitch;
                                    if (airSwitch.Gateway != null)
                                    {
                                        return;
                                        new System.Threading.Thread(() =>
                                        {
                                            System.Threading.Thread.Sleep(100 * i);
                                            if (airSwitch.Gateway.IsVirtual)
                                            {
                                                ReadStatus(airSwitch, () =>
                                                {
                                                    ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice);
                                                });
                                            }
                                            else
                                            {
                                                if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                                                {
                                                    ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice);
                                                }
                                            }
                                        })
                                        { IsBackground = true }.Start();
                                        var lightView = new FunctionMainView(xx, yy);
                                        itemView.AddChidren(lightView);
                                        lightView.Init();
                                        lightView.Tag = device;
                                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                                        lightView.SetStatuText(device.GetDeviceStatu());
                                        lightView.SetDeviceName(airSwitch.DeviceEpointName);
                                        //lightView.SetStatu(true);
                                        lightView.IsSelected = airSwitch.OnOffStatus == 1;
                                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
                                        lightView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                                        {
                                            (sender as Button).IsSelected = !(sender as Button).IsSelected;
                                            if ((sender as Button).IsSelected)
                                            {
                                                zbGateway = device.CommonDevice.Gateway;
                                                sendedControlCommand = false;
                                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
                                                airSwitch.SwitchControl(1);
                                                ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu());
                                                ((sender as Button).Parent as FunctionMainView).IsSelected = true;
                                                //控制延时回调
                                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
                                                {
                                                    if (Parent == null)
                                                    {
                                                        return;
                                                    }
                                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                                    if (sendedControlCommand == false)
                                                    {
                                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                                    }
                                                });
                                            }
                                            else
                                            {
                                                zbGateway = device.CommonDevice.Gateway;
                                                sendedControlCommand = false;
                                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
                                                airSwitch.SwitchControl(0);
                                                ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu());
                                                ((sender as Button).Parent as FunctionMainView).IsSelected = false;
                                                //控制延时回调
                                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
                                                {
                                                    if (Parent == null)
                                                    {
                                                        return;
                                                    }
                                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                                    if (sendedControlCommand == false)
                                                    {
                                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                                    }
                                                });
                                            }
                                        };
                                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                                        {
                                            CommonPage.Instance.IsDrawerLockMode = true;
                                            var lightControl = new Phone.Device.Light.AirSwitchControl();
                                            UserView.HomePage.Instance.AddChidren(lightControl);
                                            UserView.HomePage.Instance.PageIndex += 1;
                                            //lightControl.action = RefreshBodyView;
                                            lightControl.Show(device, Room.CurrentRoom);
                                        };
                                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                                    }
                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                    if (sendedControlCommand == false)
                                    {
                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                    }
                                });
                            }
                            else
                            {
                                zbGateway = device.CommonDevice.Gateway;
                                sendedControlCommand = false;
                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
                                airSwitch.SwitchControl(0);
                                ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu());
                                ((sender as Button).Parent as FunctionMainView).IsSelected = false;
                                //控制延时回调
                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
                                }
                                else if (device.CommonDevice.Type == DeviceType.Thermostat)
                                {
                                    if (Parent == null)
                                    //恒温器-AC-空调
                                    var ac = device.CommonDevice as AC;
                                    if (ac.Gateway != null)
                                    {
                                        return;
                                        new System.Threading.Thread(() =>
                                        {
                                            System.Threading.Thread.Sleep(100 * i);
                                            if (ac.Gateway.IsVirtual)
                                            {
                                                ReadStatus(ac, () =>
                                                {
                                                    ReadDeviceAttributeLogic.Instance.SendACStatuComand(device.CommonDevice);
                                                });
                                            }
                                            else
                                            {
                                                if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                                                {
                                                    ReadDeviceAttributeLogic.Instance.SendACStatuComand(device.CommonDevice);
                                                }
                                            }
                                        })
                                        { IsBackground = true }.Start();
                                        var lightView = new FunctionMainView(xx, yy);
                                        itemView.AddChidren(lightView);
                                        lightView.Init();
                                        lightView.Tag = device;
                                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                                        lightView.SetStatuText(device.GetDeviceStatu());
                                        lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
                                        lightView.IsSelected = ac.currentSystemMode != 0;
                                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
                                        lightView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                                        {
                                            (sender as Button).IsSelected = !(sender as Button).IsSelected;
                                            if ((sender as Button).IsSelected)
                                            {
                                                zbGateway = device.CommonDevice.Gateway;
                                                sendedControlCommand = false;
                                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
                                                ac.Open();
                                                ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu());
                                                ((sender as Button).Parent as FunctionMainView).IsSelected = true;
                                                //控制延时回调
                                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
                                                {
                                                    if (Parent == null)
                                                    {
                                                        return;
                                                    }
                                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                                    if (sendedControlCommand == false)
                                                    {
                                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                                    }
                                                });
                                            }
                                            else
                                            {
                                                zbGateway = device.CommonDevice.Gateway;
                                                sendedControlCommand = false;
                                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
                                                ac.Close();
                                                ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu());
                                                ((sender as Button).Parent as FunctionMainView).IsSelected = false;
                                                //控制延时回调
                                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
                                                {
                                                    if (Parent == null)
                                                    {
                                                        return;
                                                    }
                                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                                    if (sendedControlCommand == false)
                                                    {
                                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                                    }
                                                });
                                            }
                                        };
                                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                                        {
                                            CommonPage.Instance.IsDrawerLockMode = true;
                                            var lightControl = new Phone.Device.AC.ACControl();
                                            UserView.HomePage.Instance.AddChidren(lightControl);
                                            UserView.HomePage.Instance.PageIndex += 1;
                                            //lightControl.action = RefreshBodyView;
                                            lightControl.Show(device, Room.CurrentRoom);
                                        };
                                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                                    }
                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                    if (sendedControlCommand == false)
                                    {
                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                    }
                                });
                            }
                        };
                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                        {
                            CommonPage.Instance.IsDrawerLockMode = true;
                            var lightControl = new Phone.Device.Light.AirSwitchControl();
                            UserView.HomePage.Instance.AddChidren(lightControl);
                            UserView.HomePage.Instance.PageIndex += 1;
                            //lightControl.action = RefreshBodyView;
                            lightControl.Show(device, Room.CurrentRoom);
                        };
                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                    }
                    else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.Thermostat)
                    {
                        //恒温器-AC-空调
                        var ac = device.CommonDevice as AC;
                        //补上非远程
                        if (ac.Gateway == null)
                        {
                            continue;
                        }
                        if (ac.Gateway.IsVirtual)
                        {
                            //发送读取状态命令
                            ReadStatus(ac, () =>
                            {
                                ReadDeviceAttributeLogic.Instance.SendACStatuComand(device.CommonDevice);
                            });
                        }
                        else
                        {
                            //防止短时间内多次读取设备状态
                            if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                            {
                                ReadDeviceAttributeLogic.Instance.SendACStatuComand(device.CommonDevice);
                            }
                        }
                        var lightView = new FunctionMainView(xx, yy);
                        itemView.AddChidren(lightView);
                        lightView.Init();
                        lightView.Tag = device;
                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                        lightView.SetStatuText(device.GetDeviceStatu());
                        lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
                        lightView.IsSelected = ac.currentSystemMode != 0;
                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
                        lightView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                        {
                            (sender as Button).IsSelected = !(sender as Button).IsSelected;
                            if ((sender as Button).IsSelected)
                            {
                                zbGateway = device.CommonDevice.Gateway;
                                sendedControlCommand = false;
                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
                                ac.Open();
                                ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu());
                                ((sender as Button).Parent as FunctionMainView).IsSelected = true;
                                //控制延时回调
                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
                                }
                                else if (device.CommonDevice.Type == DeviceType.DimmableLight)
                                {
                                    if (Parent == null)
                                    //调光灯
                                    var dimmableLight = device.CommonDevice as DimmableLight;
                                    if (dimmableLight.Gateway != null)
                                    {
                                        return;
                                        new System.Threading.Thread(() =>
                                        {
                                            System.Threading.Thread.Sleep(100 * i);
                                            if (dimmableLight.Gateway.IsVirtual)
                                            {
                                                //发送读取状态命令
                                                ReadStatus(dimmableLight, () =>
                                                {
                                                    ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(device.CommonDevice);
                                                });
                                            }
                                            else
                                            {
                                                //防止短时间内多次读取设备状态
                                                if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                                                {
                                                    ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(device.CommonDevice);
                                                }
                                            }
                                        })
                                        { IsBackground = true }.Start();
                                        var lightView = new FunctionMainView(xx, yy);
                                        itemView.AddChidren(lightView);
                                        lightView.Init();
                                        lightView.Tag = device;
                                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                                        lightView.SetStatuText(device.GetDeviceStatu());
                                        lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
                                        lightView.IsSelected = dimmableLight.OnOffStatus == 1;
                                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
                                        var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
                                        if (dev == null)
                                        {
                                            lightView.CollectButton.IsSelected = false;
                                        }
                                        else
                                        {
                                            lightView.CollectButton.IsSelected = true;
                                        }
                                        lightView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                                        {
                                            (sender as Button).IsSelected = !(sender as Button).IsSelected;
                                            if ((sender as Button).IsSelected)
                                            {
                                                zbGateway = device.CommonDevice.Gateway;
                                                sendedControlCommand = false;
                                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
                                                dimmableLight.SwitchControl(1);
                                                ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu());
                                                ((sender as Button).Parent as FunctionMainView).IsSelected = true;
                                                //控制延时回调
                                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
                                                {
                                                    if (Parent == null)
                                                    {
                                                        return;
                                                    }
                                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                                    if (sendedControlCommand == false)
                                                    {
                                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                                    }
                                                });
                                            }
                                            else
                                            {
                                                zbGateway = device.CommonDevice.Gateway;
                                                sendedControlCommand = false;
                                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
                                                dimmableLight.SwitchControl(0);
                                                ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu());
                                                ((sender as Button).Parent as FunctionMainView).IsSelected = false;
                                                //控制延时回调
                                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
                                                {
                                                    if (Parent == null)
                                                    {
                                                        return;
                                                    }
                                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                                    if (sendedControlCommand == false)
                                                    {
                                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                                    }
                                                });
                                            }
                                        };
                                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                                        {
                                            CommonPage.Instance.IsDrawerLockMode = true;
                                            var dimmableLightControl = new Phone.Device.Light.DimmableLightControl();
                                            UserView.HomePage.Instance.AddChidren(dimmableLightControl);
                                            UserView.HomePage.Instance.PageIndex += 1;
                                            //dimmableLightControl.action = RefreshBodyView;
                                            dimmableLightControl.Show(device, Room.CurrentRoom);
                                        };
                                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                                    }
                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                    if (sendedControlCommand == false)
                                    {
                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                    }
                                });
                            }
                            else
                            {
                                zbGateway = device.CommonDevice.Gateway;
                                sendedControlCommand = false;
                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
                                ac.Close();
                                ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu());
                                ((sender as Button).Parent as FunctionMainView).IsSelected = false;
                                //控制延时回调
                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
                                }
                                else if (device.CommonDevice.Type == DeviceType.DoorLock)
                                {
                                    if (Parent == null)
                                    //门锁
                                    var dimmableLight = device.CommonDevice as DoorLock;
                                    var lightView = new FunctionMainView(xx, yy);
                                    itemView.AddChidren(lightView);
                                    lightView.Init();
                                    lightView.Tag = device;
                                    lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                                    lightView.SetStatuText(device.GetDeviceStatu());
                                    lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
                                    lightView.IsSelected = dimmableLight.IsOnline == 1;
                                    lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
                                    lightView.CanControl(false);
                                    var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
                                    if (dev == null)
                                    {
                                        return;
                                        lightView.CollectButton.IsSelected = false;
                                    }
                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                    if (sendedControlCommand == false)
                                    else
                                    {
                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                        lightView.CollectButton.IsSelected = true;
                                    }
                                });
                            }
                        };
                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                        {
                            CommonPage.Instance.IsDrawerLockMode = true;
                            var lightControl = new Phone.Device.AC.ACControl();
                            UserView.HomePage.Instance.AddChidren(lightControl);
                            UserView.HomePage.Instance.PageIndex += 1;
                            //lightControl.action = RefreshBodyView;
                            lightControl.Show(device, Room.CurrentRoom);
                        };
                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                    }
                    else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.DimmableLight)
                    {
                        //调光灯
                        var dimmableLight = device.CommonDevice as DimmableLight;
                        //补上非远程
                        if (dimmableLight.Gateway == null)
                        {
                            continue;
                        }
                        if (dimmableLight.Gateway.IsVirtual)
                        {
                            //发送读取状态命令
                            ReadStatus(dimmableLight, () =>
                            {
                                ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(device.CommonDevice);
                            });
                        }
                        else
                        {
                            //防止短时间内多次读取设备状态
                            if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                            {
                                ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(device.CommonDevice);
                            }
                        }
                        var lightView = new FunctionMainView(xx, yy);
                        itemView.AddChidren(lightView);
                        lightView.Init();
                        lightView.Tag = device;
                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                        lightView.SetStatuText(device.GetDeviceStatu());
                        lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
                        lightView.IsSelected = dimmableLight.OnOffStatus == 1;
                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
                        var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
                        if (dev == null)
                        {
                            lightView.CollectButton.IsSelected = false;
                        }
                        else
                        {
                            lightView.CollectButton.IsSelected = true;
                        }
                        lightView.SwitchButton.MouseUpEventHandler += (sender, e) =>
                        {
                            (sender as Button).IsSelected = !(sender as Button).IsSelected;
                            if ((sender as Button).IsSelected)
                            {
                                zbGateway = device.CommonDevice.Gateway;
                                sendedControlCommand = false;
                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
                                dimmableLight.SwitchControl(1);
                                ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu());
                                ((sender as Button).Parent as FunctionMainView).IsSelected = true;
                                //控制延时回调
                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
                                    lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                                    {
                                        CommonPage.Instance.IsDrawerLockMode = true;
                                        var userDoorLockPage = new UserDoorLockPage(Room.CurrentRoom, device);
                                        HomePage.Instance.AddChidren(userDoorLockPage);
                                        HomePage.Instance.PageIndex += 1;
                                        userDoorLockPage.Show();
                                    };
                                    lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                                }
                                else
                                {
                                    if (Parent == null)
                                    var lightView = new FunctionMainView(xx, yy);
                                    itemView.AddChidren(lightView);
                                    lightView.Init();
                                    lightView.Tag = device;
                                    lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                                    lightView.SetStatuText(device.GetDeviceStatu());
                                    lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
                                    lightView.CanControl(false);
                                    lightView.IsSelected = device.CommonDevice.IsOnline == 1;
                                    lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
                                    var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
                                    if (dev == null)
                                    {
                                        return;
                                        lightView.CollectButton.IsSelected = false;
                                    }
                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                    if (sendedControlCommand == false)
                                    else
                                    {
                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                        lightView.CollectButton.IsSelected = true;
                                    }
                                });
                                    lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                                }
                            }
                            else
                            catch(Exception ex)
                            {
                                zbGateway = device.CommonDevice.Gateway;
                                sendedControlCommand = false;
                                zbGateway.ReportAction += UpdateDeviceControllStatu;
                                AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice);
                                dimmableLight.SwitchControl(0);
                                ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu());
                                ((sender as Button).Parent as FunctionMainView).IsSelected = false;
                                //控制延时回调
                                DeviceUI.SendCommandDelayAction(device.CommonDevice, () =>
                                {
                                    if (Parent == null)
                                    {
                                        return;
                                    }
                                    RemoveUpdateControlDeviceStatuAction(zbGateway);
                                    if (sendedControlCommand == false)
                                    {
                                        DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
                                    }
                                });
                            }
                        };
                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                        {
                            CommonPage.Instance.IsDrawerLockMode = true;
                            var dimmableLightControl = new Phone.Device.Light.DimmableLightControl();
                            UserView.HomePage.Instance.AddChidren(dimmableLightControl);
                            UserView.HomePage.Instance.PageIndex += 1;
                            //dimmableLightControl.action = RefreshBodyView;
                            dimmableLightControl.Show(device, Room.CurrentRoom);
                        };
                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                    }
                    else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.DoorLock)
                    {
                        //门锁
                        var dimmableLight = device.CommonDevice as DoorLock;
                        //补上非远程
                        if (dimmableLight.Gateway == null)
                        {
                            continue;
                        }
                        var lightView = new FunctionMainView(xx, yy);
                        itemView.AddChidren(lightView);
                        lightView.Init();
                        lightView.Tag = device;
                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                        lightView.SetStatuText(device.GetDeviceStatu());
                        lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
                        lightView.IsSelected = dimmableLight.IsOnline == 1;
                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
                        lightView.CanControl(false);
                        var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
                        if (dev == null)
                        {
                            lightView.CollectButton.IsSelected = false;
                        }
                        else
                        {
                            lightView.CollectButton.IsSelected = true;
                        }
                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                        {
                            CommonPage.Instance.IsDrawerLockMode = true;
                            var userDoorLockPage = new UserDoorLockPage(Room.CurrentRoom, device);
                            HomePage.Instance.AddChidren(userDoorLockPage);
                            HomePage.Instance.PageIndex += 1;
                            userDoorLockPage.Show();
                        };
                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                    }
                    else
                    {
                        var lightView = new FunctionMainView(xx, yy);
                        itemView.AddChidren(lightView);
                        lightView.Init();
                        lightView.Tag = device;
                        lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath);
                        lightView.SetStatuText(device.GetDeviceStatu());
                        lightView.SetDeviceName(device.CommonDevice.DeviceEpointName);
                        lightView.CanControl(false);
                        lightView.IsSelected = device.CommonDevice.IsOnline == 1;
                        lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(Room.CurrentRoom, device.FileName));
                        var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FileName);
                        if (dev == null)
                        {
                            lightView.CollectButton.IsSelected = false;
                        }
                        else
                        {
                            lightView.CollectButton.IsSelected = true;
                        }
                        lightView.CollectButton.MouseUpEventHandler += collectionEvent;
                    }
                        });
                    //})
                    //{ IsBackground = true }.Start();
                }
            }
        }
        #endregion
ZigbeeApp/Shared/Phone/UserView/UserPage.cs
@@ -150,7 +150,7 @@
                                foreach(var attList in attriButeList)
                                {
                                    //此属性表明室内当前的温度 * 100,实际温度为“LocalTemperature / 100”,单位:℃
                                    var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High || attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default;
                                    var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High && attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default;
                                    switch (attList.AttributeId)
                                    {
                                        case 0: