gxc
2019-12-02 5204bc34549ba4718158c447cbb3c74b39ffe163
ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs
@@ -6,6 +6,7 @@
using Shared.Phone.Device.CommonForm;
using Shared.Phone.UserCenter.DoorLock;
using System.Timers;
using Shared.Phone.Device.DeviceLogic;
namespace Shared.Phone.UserView
{
@@ -630,16 +631,18 @@
            if (CanBindGateway() == false)
            {
                var roomPageView = new PageLayout()
                var roomPageView = new HorizontalPages()
                {
                    Y = Application.GetRealHeight(302),
                    Width = Application.GetRealWidth(CommonPage.AppRealWidth - CommonPage.XLeft * 2),
                    Height = Application.GetMinRealAverage(roomPageView_Height),
                    Radius = CommonPage.BigFormRadius,
                    Gravity = Gravity.CenterHorizontal,
                    IsShowPoint = false
                    Width = Application.GetRealWidth(CommonPage.AppRealWidth),
                    Height = Application.GetRealHeight(478),
                };
                AddChidren(roomPageView);
                //与屏幕边框的边距
                roomPageView.RowPadding = Application.GetRealWidth(181);
                //两个page之间的间距
                roomPageView.PagePadding = Application.GetRealWidth(69);
                //当前房间
                //Room.CurrentRoom = Room.CurrentRoom == null ? Room.Lists[0] : Room.CurrentRoom;
@@ -649,34 +652,98 @@
                {
                    var roomBackView = new FrameLayout()
                    {
                        BackgroundImagePath = room.BackgroundImage
                        Width = Application.GetRealWidth(717),
                        Height=Application.GetRealHeight(478)
                    };
                    roomPageView.AddChidren(roomBackView);
                    var roomBG = new Button()
                    var roomImg = new ImageView()
                    {
                        UnSelectedImagePath = "Room/HomeBG.png",
                        //UnSelectedImagePath = room.BackgroundImage
                        ImagePath = room.BackgroundImageType == 0 ? room.BackgroundImage : System.IO.Path.Combine(Config.Instance.FullPath, room.BackgroundImage),
                        Radius = (uint)Application.GetRealHeight(17)
                    };
                    roomBackView.AddChidren(roomBG);
                    roomBackView.AddChidren(roomImg);
                    var roomNameBackground = new FrameLayout
                    {
                        X = Application.GetRealWidth(29),
                        Y = Application.GetRealHeight(282),
                        Width = Application.GetRealWidth(200),
                        Height = Application.GetRealHeight(80),
                        BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor2
                    };
                    roomBackView.AddChidren(roomNameBackground);
                    roomNameBackground.SetCornerWithSameRadius(Application.GetRealHeight(40), HDLUtils.RectCornerTopRight | HDLUtils.RectCornerBottomRight);
                    var roomName = new Button()
                    {
                        X = Application.GetRealWidth(20),
                        Y = Application.GetRealHeight(20),
                        Width = Application.GetRealWidth(500),
                        Height = Application.GetRealHeight(80),
                        X = Application.GetRealWidth(5),
                        Width = Application.GetRealWidth(190),
                        Text = room.Name,
                        TextAlignment = TextAlignment.CenterLeft,
                        TextColor = ZigbeeColor.Current.GXCTextWhiteColor,
                        TextSize = 18,
                    };
                    roomBackView.AddChidren(roomName);
                    var roomListBtn = new Device.CommonForm.SelectedStatuButton()
                    roomNameBackground.AddChidren(roomName);
                    var roomTemperatureBackground = new FrameLayout
                    {
                        X = roomPageView.Width - Application.GetRealWidth(100 + 20),
                        X = Application.GetRealWidth(29),
                        Y = Application.GetRealHeight(374),
                        Width = Application.GetRealWidth(340),
                        Height = Application.GetRealHeight(80),
                        BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor2
                    };
                    roomBackView.AddChidren(roomTemperatureBackground);
                    roomTemperatureBackground.SetCornerWithSameRadius(Application.GetRealHeight(40), HDLUtils.RectCornerTopRight | HDLUtils.RectCornerBottomRight);
                    var temperatureIcon = new Button
                    {
                        X = Application.GetRealWidth(12),
                        Width = Application.GetMinRealAverage(58),
                        Height = Application.GetMinRealAverage(58),
                        Gravity = Gravity.CenterVertical,
                        UnSelectedImagePath = "Room/Temperature.png"
                    };
                    roomTemperatureBackground.AddChidren(temperatureIcon);
                    var temperatureText = new Button
                    {
                        X = Application.GetRealWidth(69),
                        Width = Application.GetRealWidth(86),
                        Height = Application.GetRealHeight(58),
                        Gravity = Gravity.CenterVertical,
                        Text="26℃"
                    };
                    roomTemperatureBackground.AddChidren(temperatureText);
                    var humidityIcon = new Button
                    {
                        X = Application.GetRealWidth(179),
                        Width = Application.GetMinRealAverage(58),
                        Height = Application.GetMinRealAverage(58),
                        Gravity = Gravity.CenterVertical,
                        UnSelectedImagePath = "Room/Humidity.png"
                    };
                    roomTemperatureBackground.AddChidren(humidityIcon);
                    var humidityText = new Button
                    {
                        X = Application.GetRealWidth(236),
                        Width = Application.GetRealWidth(86),
                        Height = Application.GetRealHeight(58),
                        Gravity = Gravity.CenterVertical,
                        Text = "13%"
                    };
                    roomTemperatureBackground.AddChidren(humidityText);
                    var roomListBtn = new Button()
                    {
                        X = roomBackView.Width - Application.GetRealWidth(100 + 20),
                        Y = Application.GetRealHeight(20),
                        Width = Application.GetMinRealAverage(100),
                        Height = Application.GetMinRealAverage(100),
                        UnSelectedImagePath = "Item/List.png",
                        UnSelectedImagePath = "Room/List.png",
                    };
                    roomBackView.AddChidren(roomListBtn);
@@ -1019,14 +1086,14 @@
                            //发送读取状态命令
                            ReadStatus(rollerShade, () =>
                            {
                                rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(device.CommonDevice);
                            });
                        }
                        else
                        {
                            if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - rollerShade.LastDateTime).TotalSeconds)
                            {
                                rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(device.CommonDevice);
                            }
                        }
                        var lightView = new FunctionMainView(xx, yy);
@@ -1124,16 +1191,14 @@
                            //发送读取状态命令
                            ReadStatus(light, () =>
                            {
                                light.ReadOnOffStatus();
                                light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice);
                            });
                        }
                        else
                        {
                            if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds)
                            {
                                light.ReadOnOffStatus();
                                light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice);
                            }
                        }
@@ -1259,8 +1324,7 @@
                            //发送读取状态命令
                            ReadStatus(airSwitch, () =>
                            {
                                airSwitch.ReadOnOffStatus();
                                airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice);
                            });
                        }
                        else
@@ -1268,8 +1332,7 @@
                            //防止短时间内多次读取设备状态
                            if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                            {
                                airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                airSwitch.ReadOnOffStatus();
                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice);
                            }
                        }
@@ -1367,15 +1430,7 @@
                            //发送读取状态命令
                            ReadStatus(ac, () =>
                            {
                                ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                ac.ReadLocalTemperature();
                                ac.ReadCoolingSetpoint();
                                ac.ReadHeatingSetpoint();
                                ac.ReadAutoSetpoint();
                                ac.ReadFanMode();
                                ac.ReadSystemMode();
                                ac.ReadSystemFansSwingMode();
                                ac.ReadModeSupport();
                                ReadDeviceAttributeLogic.Instance.SendACStatuComand(device.CommonDevice);
                            });
                        }
                        else
@@ -1383,15 +1438,7 @@
                            //防止短时间内多次读取设备状态
                            if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                            {
                                ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                ac.ReadLocalTemperature();
                                ac.ReadCoolingSetpoint();
                                ac.ReadHeatingSetpoint();
                                ac.ReadAutoSetpoint();
                                ac.ReadFanMode();
                                ac.ReadSystemMode();
                                ac.ReadSystemFansSwingMode();
                                ac.ReadModeSupport();
                                ReadDeviceAttributeLogic.Instance.SendACStatuComand(device.CommonDevice);
                            }
                        }
                        var lightView = new FunctionMainView(xx, yy);
@@ -1486,8 +1533,7 @@
                            //发送读取状态命令
                            ReadStatus(dimmableLight, () =>
                            {
                                dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                dimmableLight.ReadOnOffStatus();
                                ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(device.CommonDevice);
                            });
                        }
                        else
@@ -1495,8 +1541,7 @@
                            //防止短时间内多次读取设备状态
                            if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                            {
                                dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                dimmableLight.ReadOnOffStatus();
                                ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(device.CommonDevice);
                            }
                        }
@@ -1596,20 +1641,6 @@
                        if (dimmableLight.Gateway == null)
                        {
                            continue;
                        }
                        if (dimmableLight.Gateway.IsVirtual)
                        {
                            ReadStatus(dimmableLight, () =>
                            {
                                dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                            });
                        }
                        else
                        {
                            if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                            {
                                dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                            }
                        }
                        var lightView = new FunctionMainView(xx, yy);