gxc
2020-01-02 34e965100d635346e2d4cd6e6013bdaed66b3004
ZigbeeApp/Shared/Phone/Device/Category/Category.cs
@@ -25,7 +25,7 @@
        /// <summary>
        /// low_High
        /// </summary>
        private const int low_High= 127;
        private const int low_High = 127;
        /// <summary>
        /// 功能
        /// </summary>
@@ -119,10 +119,6 @@
        /// sceneList
        /// </summary>
        private List<SceneUI> sceneList;
        /// <summary>
        /// 当前选中房间
        /// </summary>
        private Common.Room curRoom;
        #endregion
        #region ◆ 接口____________________________
@@ -262,7 +258,7 @@
                                        var attriButeList = common.DeviceStatusReport.AttriBute;
                                        var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
                                        ac.DeviceStatusReport = common.DeviceStatusReport;
                                        foreach(var attList in attriButeList)
                                        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;
                                            switch (attList.AttributeId)
@@ -311,7 +307,7 @@
                                        var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
                                        var attriButeList = common.DeviceStatusReport.AttriBute;
                                        ac.DeviceStatusReport = common.DeviceStatusReport;
                                        foreach(var attList in attriButeList)
                                        foreach (var attList in attriButeList)
                                        {
                                            switch (attList.AttributeId)
                                            {
@@ -363,6 +359,66 @@
                                    {
                                        deviceUI.CommonDevice.IsOnline = 1;
                                        deviceUI.CommonDevice.LastDateTime = DateTime.Now;
                                    }
                                    break;
                                case DeviceType.TemperatureSensor:
                                    //温度
                                    if (common.DeviceStatusReport.CluterID == 1026)
                                    {
                                        var tempera = deviceUI.CommonDevice as TemperatureSensor;
                                        foreach (var data in common.DeviceStatusReport.AttriBute)
                                        {
                                            if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue)
                                            {
                                                if (data.AttriButeData == 0)
                                                {
                                                    tempera.Temperatrue = 0;
                                                }
                                                else if (data.AttriButeData > 32767)
                                                {
                                                    //负数(特殊处理)
                                                    string strValue = (data.AttriButeData - 65536).ToString();
                                                    //小数点需要一位
                                                    strValue = strValue.Substring(0, strValue.Length - 1);
                                                    tempera.Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
                                                }
                                                else
                                                {
                                                    //小数点需要一位
                                                    string strValue = data.AttriButeData.ToString();
                                                    strValue = strValue.Substring(0, strValue.Length - 1);
                                                    tempera.Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
                                                }
                                                var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
                                                row.SetStatuText(deviceUI.GetDeviceStatu());
                                            }
                                        }
                                    }
                                    //湿度
                                    if (common.DeviceStatusReport.CluterID == 1029)
                                    {
                                        var tempera = deviceUI.CommonDevice as TemperatureSensor;
                                        foreach (var data in common.DeviceStatusReport.AttriBute)
                                        {
                                            if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue)
                                            {
                                                if (data.AttriButeData == 0)
                                                {
                                                    tempera.Humidity = 0;
                                                }
                                                else
                                                {
                                                    //小数点需要一位(湿度没有负数)
                                                    string strValue = data.AttriButeData.ToString();
                                                    strValue = strValue.Substring(0, strValue.Length - 1);
                                                    tempera.Humidity = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
                                                    tempera.LastDateTime = DateTime.Now;
                                                }
                                                var row = rowLayout.GetChildren(0) as CategoryFunctionRow;
                                                row.SetStatuText(deviceUI.GetDeviceStatu());
                                            }
                                        }
                                    }
                                    break;
                            }
@@ -519,7 +575,7 @@
                TextID = R.MyInternationalizationString.Category,
                TextSize = 24,
                TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor,
                IsBold=true
                IsBold = true
            };
            topView.AddChidren(title);
@@ -563,7 +619,7 @@
            functionBtn.SetTitle(R.MyInternationalizationString.Function);
            functionBtn.X = sceneBtn.Right;
            //自动化
            automationBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 * 2 + 20+50, 34);
            automationBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 * 2 + 20 + 50, 34);
            automationBtn.Init();
            automationBtn.SetTitle(R.MyInternationalizationString.Automation);
            automationBtn.X = functionBtn.Right;
@@ -581,8 +637,8 @@
                Gravity = Gravity.CenterVertical,
                TextAlignment = TextAlignment.CenterRight,
                TextColor = ZigbeeColor.Current.GXCTextBlackColor,
                TextSize=14,
                IsBold=true
                TextSize = 14,
                IsBold = true
            };
            selectFloorBtn = new Button()
@@ -650,7 +706,7 @@
            addBtn.MouseUpEventHandler += AddBtn_MouseUpEventHandler;
            selectFloorBtn.MouseUpEventHandler += SelectedFloor_MouseUpEventHandler;
            floorBtn.MouseUpEventHandler+= SelectedFloor_MouseUpEventHandler;
            floorBtn.MouseUpEventHandler += SelectedFloor_MouseUpEventHandler;
        }
@@ -661,13 +717,14 @@
        /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
        private void SelectedFloor_MouseUpEventHandler(object sender, MouseEventArgs mouseEventArgs)
        {
            var floors = new SelectFloor ();
            var floors = new SelectFloor();
            AddChidren(floors);
            floors.Init(580,330,Direction.Right);
            floors.Init(580, 330, Direction.Right);
            floors.changeFloor = true;
            floors.FloorAction += (floorId) =>
            {
                floorBtn.Text = Config.Instance.Home.GetFloorNameById(floorId);
                Common.Room.CurrentRoom = Common.Room.CurrentRoom.GetLoveRoom();
                RefreshBodyView();
            };
        }
@@ -706,11 +763,11 @@
        /// <param name="sender">Sender.</param>
        /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
        private void AutomationBtn_MouseUpEventHandler(object sender, MouseEventArgs mouseEventArgs)
        {
            Common.Logic.LogicDviceList.Clear();
            if (Common.Logic.LogicDviceList.Count == 0)
            {
                Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray());
        {
            Common.Logic.LogicDviceList.Clear();
            if (Common.Logic.LogicDviceList.Count == 0)
            {
                Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray());
            }
            functionBtn.IsSelected = false;
            sceneBtn.IsSelected = false;
@@ -860,10 +917,10 @@
        {
            var noFunction = new Button()
            {
                Y=Application.GetRealHeight(320),
                Width=Application.GetMinRealAverage(757),
                Y = Application.GetRealHeight(320),
                Width = Application.GetMinRealAverage(757),
                Height = Application.GetMinRealAverage(435),
                UnSelectedImagePath="Item/NoFunction.png",
                UnSelectedImagePath = "Item/NoFunction.png",
                Gravity = Gravity.CenterHorizontal
            };
            functionSceneBodyView.AddChidren(noFunction);
@@ -874,10 +931,10 @@
                Height = Application.GetRealHeight(200),
                Width = Application.GetRealWidth(700),
                Gravity = Gravity.CenterHorizontal,
                Text = Language.StringByID(R.MyInternationalizationString.NoFunction).Replace("{\\r\\n}","\r\n"),
                Text = Language.StringByID(R.MyInternationalizationString.NoFunction).Replace("{\\r\\n}", "\r\n"),
                TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
                TextAlignment = TextAlignment.Center,
                IsMoreLines=true
                IsMoreLines = true
            };
            functionSceneBodyView.AddChidren(noFunctionTip);
        }
@@ -931,7 +988,7 @@
                deviceListScrolView = new VerticalScrolViewLayout
                {
                    X = Application.GetRealWidth(CommonFormResouce.X_Left),
                    Y = Application.GetRealHeight(35+279),
                    Y = Application.GetRealHeight(35 + 279),
                    Width = Application.GetRealWidth(1028),
                    Height = Application.GetRealHeight(942),
                    BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
@@ -940,7 +997,7 @@
                deviceListScrolView.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
                tempFunctionTypeBtn = new FunctionButton();
                tempFunctionTypeBtn.Init("","");
                tempFunctionTypeBtn.Init("", "");
                foreach (var deviceType in typeIdDic)
                {
@@ -956,7 +1013,7 @@
                    };
                    string imgPath = string.Empty;
                    string imgSeletedPath = string.Empty;
                    Common.LocalDevice.Current.GetDeviceBeloneIcon(deviceType.Value, ref imgPath, ref imgSeletedPath);
                    Common.LocalDevice.Current.GetDeviceObjectIcon(deviceType.Value, ref imgPath, ref imgSeletedPath);
                    functionTypeIMG.Init(imgPath, imgSeletedPath);
                    functionTypeIMG.SetTitle(deviceType.Key);
                    typeRowLayout.AddChidren(functionTypeIMG);
@@ -1006,7 +1063,7 @@
                                {
                                    if (e2)
                                    {
                                        if(curRoom.IsLove)
                                        if (Common.Room.CurrentRoom.IsLove)
                                        {
                                            Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.FileName);
                                            deviceListScrolView.RemoveViewByTag((delSender as Button).Tag);
@@ -1072,9 +1129,9 @@
                                    var deviceRow = new CategoryFunctionRow(0, 35);
                                    deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                                    deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
                                    deviceRow.SetOnLineStatu(light.IsOnline == 1);
                                    //deviceRow.SetOnLineStatu(light.IsOnline == 1);
                                    deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                                    deviceRow.SetStatu(light.OnOffStatus == 1);
                                    deviceRow.IsSelected = light.OnOffStatus == 1;
                                    deviceTypeRowLayout.AddChidren(deviceRow);
                                    deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
@@ -1117,7 +1174,7 @@
                                            UserView.HomePage.Instance.AddChidren(lightControl);
                                            UserView.HomePage.Instance.PageIndex += 1;
                                            //lightControl.action = RefreshBodyView;
                                            lightControl.Show(deviceUI, curRoom);
                                            lightControl.Show(deviceUI, Common.Room.CurrentRoom);
                                        }
                                        else if (deviceUI.CommonDevice.DfunctionType == DeviceFunctionType.A插座)
                                        {
@@ -1125,7 +1182,7 @@
                                            UserView.HomePage.Instance.AddChidren(lightControl);
                                            UserView.HomePage.Instance.PageIndex += 1;
                                            //lightControl.action = RefreshBodyView;
                                            lightControl.Show(deviceUI, curRoom);
                                            lightControl.Show(deviceUI, Common.Room.CurrentRoom);
                                        }
                                        else
                                        {
@@ -1133,7 +1190,7 @@
                                            UserView.HomePage.Instance.AddChidren(lightControl);
                                            UserView.HomePage.Instance.PageIndex += 1;
                                            //lightControl.action = RefreshBodyView;
                                            lightControl.Show(deviceUI, curRoom);
                                            lightControl.Show(deviceUI, Common.Room.CurrentRoom);
                                        }
                                    };
@@ -1147,7 +1204,7 @@
                                        Tag = deviceUI,
                                        Radius = 0
                                    };
                                    if (curRoom.IsSharedRoom == false)
                                    if (Common.Room.CurrentRoom.IsSharedRoom == false)
                                    {
                                        deviceTypeRowLayout.AddRightView(editBtn);
                                        editBtn.MouseUpEventHandler += deviceDetailHandler;
@@ -1193,8 +1250,8 @@
                                    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.SetOnLineStatu(airSwitch.IsOnline == 1);
                                    deviceRow.IsSelected = airSwitch.OnOffStatus == 1;
                                    deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                                    deviceTypeRowLayout.AddChidren(deviceRow);
@@ -1204,8 +1261,8 @@
                                        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)
                                        {
                                            airSwitch.SwitchControl(1);
@@ -1237,7 +1294,7 @@
                                        UserView.HomePage.Instance.AddChidren(lightControl);
                                        UserView.HomePage.Instance.PageIndex += 1;
                                        //lightControl.action = RefreshBodyView;
                                        lightControl.Show(deviceUI, curRoom);
                                        lightControl.Show(deviceUI, Common.Room.CurrentRoom);
                                    };
                                    var editBtn = new CommonForm.RowLayoutEditButton()
@@ -1250,7 +1307,7 @@
                                        Tag = deviceUI,
                                        Radius = 0
                                    };
                                    if (curRoom.IsSharedRoom == false)
                                    if (Common.Room.CurrentRoom.IsSharedRoom == false)
                                    {
                                        deviceTypeRowLayout.AddRightView(editBtn);
                                        editBtn.MouseUpEventHandler += deviceDetailHandler;
@@ -1296,9 +1353,9 @@
                                    var deviceRow = new CategoryFunctionRow(0, 35);
                                    deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                                    deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
                                    deviceRow.SetOnLineStatu(dimmableLight.IsOnline == 1);
                                    //deviceRow.SetOnLineStatu(dimmableLight.IsOnline == 1);
                                    deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                                    deviceRow.SetStatu(dimmableLight.OnOffStatus == 1);
                                    deviceRow.IsSelected = dimmableLight.OnOffStatus == 1;
                                    deviceTypeRowLayout.AddChidren(deviceRow);
                                    deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
@@ -1307,8 +1364,8 @@
                                        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)
                                        {
                                            dimmableLight.SwitchControl(1);
@@ -1340,7 +1397,7 @@
                                        UserView.HomePage.Instance.PageIndex += 1;
                                        UserView.HomePage.Instance.ScrollEnabled = false;
                                        //dimmableLightControl.action = RefreshBodyView;
                                        dimmableLightControl.Show(deviceUI, curRoom);
                                        dimmableLightControl.Show(deviceUI, Common.Room.CurrentRoom);
                                    };
                                    var editBtn = new CommonForm.RowLayoutEditButton()
@@ -1353,7 +1410,7 @@
                                        Tag = deviceUI,
                                        Radius = 0
                                    };
                                    if (curRoom.IsSharedRoom == false)
                                    if (Common.Room.CurrentRoom.IsSharedRoom == false)
                                    {
                                        deviceTypeRowLayout.AddRightView(editBtn);
                                        editBtn.MouseUpEventHandler += deviceDetailHandler;
@@ -1401,9 +1458,9 @@
                                    var deviceRow = new CategoryFunctionRow(0, 35);
                                    deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                                    deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
                                    deviceRow.SetOnLineStatu(ac.IsOnline == 1);
                                    //deviceRow.SetOnLineStatu(ac.IsOnline == 1);
                                    deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                                    deviceRow.SetStatu(ac.currentSystemMode != 1);
                                    deviceRow.IsSelected = ac.currentSystemMode != 1;
                                    deviceTypeRowLayout.AddChidren(deviceRow);
                                    deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
@@ -1414,6 +1471,7 @@
                                        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)
                                        {
                                            ac.Open();
@@ -1448,7 +1506,7 @@
                                        Tag = deviceUI,
                                        Radius = 0
                                    };
                                    if (curRoom.IsSharedRoom == false)
                                    if (Common.Room.CurrentRoom.IsSharedRoom == false)
                                    {
                                        deviceTypeRowLayout.AddRightView(editBtn);
                                        editBtn.MouseUpEventHandler += deviceDetailHandler;
@@ -1463,7 +1521,7 @@
                                        UserView.HomePage.Instance.PageIndex += 1;
                                        UserView.HomePage.Instance.ScrollEnabled = false;
                                        //rollerShadeControl.action = RefreshBodyView;
                                        acControl.Show(deviceUI, curRoom);
                                        acControl.Show(deviceUI, Common.Room.CurrentRoom);
                                    };
                                }
                            }
@@ -1505,7 +1563,7 @@
                                    var deviceRow = new CategoryFunctionForWinRow(0, 35);
                                    deviceRow.Init(deviceUI);
                                    deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
                                    deviceRow.SetOnLineStatu(rollerShade.IsOnline == 1);
                                    //deviceRow.SetOnLineStatu(rollerShade.IsOnline == 1);
                                    deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                                    deviceRow.IsSelected = rollerShade.WcdCurrentPositionLiftPercentage != 0;
                                    deviceRow.SetRollerShadeIcon(rollerShade.WcdType);
@@ -1531,14 +1589,12 @@
                                    var editBtn = new CommonForm.RowLayoutEditButton()
                                    {
                                        Tag = deviceUI,
                                        Radius = 0
                                    };
                                    var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
                                    {
                                        Tag = deviceUI,
                                        Radius = 0
                                    };
                                    if (curRoom.IsSharedRoom == false)
                                    if (Common.Room.CurrentRoom.IsSharedRoom == false)
                                    {
                                        deviceTypeRowLayout.AddRightView(editBtn);
                                        editBtn.MouseUpEventHandler += deviceDetailHandler;
@@ -1553,7 +1609,7 @@
                                        UserView.HomePage.Instance.PageIndex += 1;
                                        UserView.HomePage.Instance.ScrollEnabled = false;
                                        //rollerShadeControl.action = RefreshBodyView;
                                        rollerShadeControl.Show(deviceUI, curRoom);
                                        rollerShadeControl.Show(deviceUI, Common.Room.CurrentRoom);
                                    };
                                }
                            }
@@ -1570,14 +1626,14 @@
                                var deviceRow = new CategoryFunctionRow(0, 35);
                                deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                                deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
                                deviceRow.SetOnLineStatu(deviceUI.CommonDevice.IsOnline == 1);
                                //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(curRoom, deviceUI);
                                    var userDoorLockPage = new UserDoorLockPage(Common.Room.CurrentRoom, deviceUI);
                                    HomePage.Instance.AddChidren(userDoorLockPage);
                                    HomePage.Instance.PageIndex += 1;
                                    userDoorLockPage.Show();
@@ -1591,12 +1647,118 @@
                                {
                                    Tag = deviceUI
                                };
                                if (curRoom.IsSharedRoom == false)
                                if (Common.Room.CurrentRoom.IsSharedRoom == false)
                                {
                                    deviceTypeRowLayout.AddRightView(editBtn);
                                    editBtn.MouseUpEventHandler += deviceDetailHandler;
                                    deviceTypeRowLayout.AddRightView(delBtn);
                                    delBtn.MouseUpEventHandler += delEvent;
                                }
                            }
                            else if (deviceUI.CommonDevice.Type == DeviceType.IASZone)
                            {
                                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.SetStatuText(deviceUI.GetDeviceStatu());
                                deviceRow.IsSelected = (deviceUI.CommonDevice as IASZone).iASInfo?.Alarm1 == 1;
                                deviceRow.HideSwitchBtn(true);
                                deviceTypeRowLayout.AddChidren(deviceRow);
                                var editBtn = new CommonForm.RowLayoutEditButton()
                                {
                                    Tag = deviceUI
                                };
                                var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
                                {
                                    Tag = deviceUI
                                };
                                if (Common.Room.CurrentRoom.IsSharedRoom == false)
                                {
                                    deviceTypeRowLayout.AddRightView(editBtn);
                                    editBtn.MouseUpEventHandler += deviceDetailHandler;
                                    deviceTypeRowLayout.AddRightView(delBtn);
                                    delBtn.MouseUpEventHandler += delEvent;
                                }
                            }
                            else if (deviceUI.CommonDevice.Type == DeviceType.TemperatureSensor)
                            {
                                var tempera = deviceUI.CommonDevice as TemperatureSensor;
                                if (tempera.Gateway != null)
                                {
                                    new System.Threading.Thread(() =>
                                    {
                                        System.Threading.Thread.Sleep(100 * i);
                                        if (tempera.Gateway.IsVirtual)
                                        {
                                            UserHomeView.ReadStatus(tempera, () =>
                                            {
                                                if (tempera.SensorDiv == 1)
                                                {
                                                    ReadDeviceAttributeLogic.Instance.SendTemperatureStatuComand(deviceUI.CommonDevice);
                                                }
                                                else if (tempera.SensorDiv == 2)
                                                {
                                                    ReadDeviceAttributeLogic.Instance.SendHumidityStatuComand(deviceUI.CommonDevice);
                                                }
                                            });
                                        }
                                        else
                                        {
                                            if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - tempera.LastDateTime).TotalSeconds)
                                            {
                                                if (tempera.SensorDiv == 1)
                                                {
                                                    ReadDeviceAttributeLogic.Instance.SendTemperatureStatuComand(deviceUI.CommonDevice);
                                                }
                                                else if (tempera.SensorDiv == 2)
                                                {
                                                    ReadDeviceAttributeLogic.Instance.SendHumidityStatuComand(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.SetStatuText(deviceUI.GetDeviceStatu());
                                    deviceRow.IsSelected = false;
                                    deviceRow.HideSwitchBtn(true);
                                    deviceTypeRowLayout.AddChidren(deviceRow);
                                    var editBtn = new CommonForm.RowLayoutEditButton()
                                    {
                                        Tag = deviceUI
                                    };
                                    var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
                                    {
                                        Tag = deviceUI
                                    };
                                    if (Common.Room.CurrentRoom.IsSharedRoom == false)
                                    {
                                        deviceTypeRowLayout.AddRightView(editBtn);
                                        editBtn.MouseUpEventHandler += deviceDetailHandler;
                                        deviceTypeRowLayout.AddRightView(delBtn);
                                        delBtn.MouseUpEventHandler += delEvent;
                                    }
                                }
                            }
                            else
@@ -1612,7 +1774,7 @@
                                var deviceRow = new CategoryFunctionRow(0, 35);
                                deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
                                deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
                                deviceRow.SetOnLineStatu(deviceUI.CommonDevice.IsOnline == 1);
                                //deviceRow.SetOnLineStatu(deviceUI.CommonDevice.IsOnline == 1);
                                deviceRow.SetStatuText(deviceUI.GetDeviceStatu());
                                deviceRow.HideSwitchBtn(true);
                                deviceTypeRowLayout.AddChidren(deviceRow);
@@ -1625,7 +1787,7 @@
                                {
                                    Tag = deviceUI
                                };
                                if (curRoom.IsSharedRoom == false)
                                if (Common.Room.CurrentRoom.IsSharedRoom == false)
                                {
                                    deviceTypeRowLayout.AddRightView(editBtn);
                                    editBtn.MouseUpEventHandler += deviceDetailHandler;
@@ -1662,44 +1824,32 @@
            functionSceneBodyView = new FrameLayout()
            {
                Y = roomFL.Bottom,
                Height = Application.GetRealHeight(973+279),
                Height = Application.GetRealHeight(973 + 279),
                BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor
            };
            functionSceneAutoBodyView.AddChidren(functionSceneBodyView);
            Button curBtn = new Button();
            RoomButton curBtn = new RoomButton(0, 0);
            foreach (var room in Common.Room.CurrentRoom.GetRoomsByCurrentFloorIdAppendLoveRoom())
            {
                var row = new FrameLayout()
                {
                    Width = Application.GetRealWidth(187 + 50),
                    Width = Application.GetRealWidth(255),
                    Height = Application.GetRealHeight(167)
                };
                roomFL.AddChidren(row);
                var roomBtn = new Button()
                {
                    Width = Application.GetRealWidth(187),
                    Height = Application.GetRealHeight(78),
                    Radius = (uint)Application.GetRealHeight(78 / 2),
                    Gravity = Gravity.Center,
                    Text = room.Name,
                    TextColor = ZigbeeColor.Current.GXCTextGrayColor,
                    SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor,
                    BackgroundColor = ZigbeeColor.Current.GXCButtonUnSelectedColor3,
                    SelectedBackgroundColor = ZigbeeColor.Current.GXCButtonSelectedColor,
                    BorderColor = ZigbeeColor.Current.GXCBorderUnSelectedColor,
                    BorderWidth = 1
                };
                RoomButton roomBtn = new RoomButton(0, 0);
                roomBtn.Gravity = Gravity.Center;
                roomBtn.Init();
                roomBtn.SetTitle(room.Name);
                row.AddChidren(roomBtn);
                roomBtn.SetViewShadow(true,5);
                if (room.IsLove)
                if (room.Id == Common.Room.CurrentRoom.Id)
                {
                    roomBtn.IsSelected = true;
                    this.curRoom = room;
                    curBtn = roomBtn;
                    if(sceneBtn.IsSelected)
                    if (sceneBtn.IsSelected)
                    {
                        RefreshScene(room);
                    }
@@ -1707,18 +1857,18 @@
                    {
                        RefreshFunction(room);
                    }
                }
                roomBtn.MouseUpEventHandler += (sender, e) =>
                roomBtn.ButtonClickEvent += (sender, e) =>
                {
                    if ((sender as Button) == curBtn)
                    if (sender == curBtn)
                    {
                        return;
                    }
                    (sender as Button).IsSelected = true;
                    sender.IsSelected = true;
                    curBtn.IsSelected = false;
                    curBtn = sender as Button;
                    this.curRoom = room;
                    curBtn = sender;
                    Common.Room.CurrentRoom = room;
                    if (sceneBtn.IsSelected)
                    {
                        RefreshScene(room);
@@ -1789,7 +1939,7 @@
                Height = Application.GetRealHeight(200),
                Width = Application.GetRealWidth(700),
                Gravity = Gravity.CenterHorizontal,
                Text = Language.StringByID(R.MyInternationalizationString.NoScene).Replace("{\\r\\n}","\r\n"),
                Text = Language.StringByID(R.MyInternationalizationString.NoScene).Replace("{\\r\\n}", "\r\n"),
                TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
                TextAlignment = TextAlignment.Center,
                IsMoreLines = true
@@ -1824,7 +1974,7 @@
                    if (delayScenesListResponseInfo.ScenesId == sceneView.scene.Id)
                    {
                        sceneView.scene.RemainTime = delayScenesListResponseInfo.RemainTime;
                        var remainTime= delayScenesListResponseInfo.RemainTime;
                        var remainTime = delayScenesListResponseInfo.RemainTime;
                        if (remainTime > 0)
                        {
                            new System.Threading.Thread(() =>
@@ -1871,10 +2021,10 @@
        /// 自动化
        /// </summary>
        private async void ShowAutotion()
        {
            functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
        {
            functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
            var bjFrameLayout = new FrameLayout
            {
                Width = Application.GetRealWidth(1080 - 58),
@@ -1906,7 +2056,7 @@
                TextID = MyInternationalizationString.logictemplate,
                Gravity = Gravity.CenterVertical,
                TextColor = ZigbeeColor.Current.LogicBtnSelectedColor,
                TextSize=15,
                TextSize = 15,
            };
            bjFrameLayout.AddChidren(recommendtextBtn);
@@ -2666,4 +2816,4 @@
    }
}
}