gxc
2019-11-29 ac334861efbf06933e95c62ced0484410f34bece
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
{
@@ -259,6 +260,15 @@
                                                //此属性描述恒温设备正处于哪种模式
                                                ac.currentSystemMode = attriButeList[0].AttriButeData;
                                                ac.LastDateTime = DateTime.Now;
                                                break;
                                            case 4099:
                                                var value = Convert.ToString(attriButeList[0].AttriButeData, 2).PadLeft(16, '0');
                                                var modeStr = value.Substring(value.Length - 5, 5);
                                                for (int j = 0; j < modeStr.Length; j++)
                                                {
                                                    ac.listSupportMode[j] = Convert.ToInt32(modeStr[j]) == 49 ? 1 : 0;
                                                }
                                                break;
                                        }
                                        (rowFL.GetChildren(0) as FunctionMainView).IsSelected = ac.currentSystemMode != 0;
@@ -621,16 +631,20 @@
            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),
                    //Radius = CommonPage.BigFormRadius,
                    //Gravity = Gravity.CenterHorizontal,
                };
                AddChidren(roomPageView);
                //与屏幕边框的边距
                roomPageView.RowPadding = Application.GetRealWidth(181);
                //两个page之间的间距
                roomPageView.PagePadding = Application.GetRealWidth(69);
                //当前房间
                //Room.CurrentRoom = Room.CurrentRoom == null ? Room.Lists[0] : Room.CurrentRoom;
@@ -640,15 +654,18 @@
                {
                    var roomBackView = new FrameLayout()
                    {
                        BackgroundImagePath = room.BackgroundImage
                        BackgroundImagePath = room.BackgroundImage,
                        Width = Application.GetRealWidth(717),
                        Height=Application.GetRealHeight(478),
                        Radius=(uint)Application.GetRealHeight(10)
                    };
                    roomPageView.AddChidren(roomBackView);
                    var roomBG = new Button()
                    if (room.BackgroundImageType != 0)
                    {
                        UnSelectedImagePath = "Room/HomeBG.png",
                        //UnSelectedImagePath = room.BackgroundImage
                    };
                    roomBackView.AddChidren(roomBG);
                        roomBackView.BackgroundImagePath = System.IO.Path.Combine(Config.Instance.FullPath, room.BackgroundImage);
                    }
                    var roomName = new Button()
                    {
                        X = Application.GetRealWidth(20),
@@ -661,18 +678,19 @@
                        TextSize = 18,
                    };
                    roomBackView.AddChidren(roomName);
                    var roomListBtn = new Device.CommonForm.SelectedStatuButton()
                    var roomListBtn = new Button()
                    {
                        X = roomPageView.Width - Application.GetRealWidth(100 + 20),
                        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);
                    roomListBtn.MouseUpEventHandler += (send, e) =>
                    {
                        CommonPage.Instance.IsDrawerLockMode = true;
                        var editRoom = new Device.Room.EditRoom();
                        HomePage.Instance.AddChidren(editRoom);
                        HomePage.Instance.PageIndex += 1;
@@ -792,9 +810,10 @@
            var floorFL = new Phone.Device.Category.SelectFloor();
            AddChidren(floorFL);
            floorFL.Init(35, 153);
            floorFL.FloorAction = (floorName) =>
            floorFL.changeFloor = true;
            floorFL.FloorAction = (floorId) =>
            {
                floorBtn.Text = floorName;
                floorBtn.Text = Config.Instance.Home.GetFloorNameById(floorId);
                Show();
            };
        }
@@ -1008,14 +1027,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);
@@ -1087,6 +1106,7 @@
                        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;
@@ -1112,16 +1132,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);
                            }
                        }
@@ -1203,6 +1221,7 @@
                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                        {
                            CommonPage.Instance.IsDrawerLockMode = true;
                            if (device.CommonDevice.DfunctionType == DeviceFunctionType.A开关)
                            {
                                var lightControl = new Phone.Device.Light.OnOffControl();
@@ -1246,8 +1265,7 @@
                            //发送读取状态命令
                            ReadStatus(airSwitch, () =>
                            {
                                airSwitch.ReadOnOffStatus();
                                airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice);
                            });
                        }
                        else
@@ -1255,8 +1273,7 @@
                            //防止短时间内多次读取设备状态
                            if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                            {
                                airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                airSwitch.ReadOnOffStatus();
                                ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice);
                            }
                        }
@@ -1329,6 +1346,7 @@
                        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;
@@ -1353,14 +1371,7 @@
                            //发送读取状态命令
                            ReadStatus(ac, () =>
                            {
                                ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                ac.ReadLocalTemperature();
                                ac.ReadCoolingSetpoint();
                                ac.ReadHeatingSetpoint();
                                ac.ReadAutoSetpoint();
                                ac.ReadFanMode();
                                ac.ReadSystemMode();
                                ac.ReadSystemFansSwingMode();
                                ReadDeviceAttributeLogic.Instance.SendACStatuComand(device.CommonDevice);
                            });
                        }
                        else
@@ -1368,14 +1379,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();
                                ReadDeviceAttributeLogic.Instance.SendACStatuComand(device.CommonDevice);
                            }
                        }
                        var lightView = new FunctionMainView(xx, yy);
@@ -1446,6 +1450,7 @@
                        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;
@@ -1469,8 +1474,7 @@
                            //发送读取状态命令
                            ReadStatus(dimmableLight, () =>
                            {
                                dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                dimmableLight.ReadOnOffStatus();
                                ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(device.CommonDevice);
                            });
                        }
                        else
@@ -1478,8 +1482,7 @@
                            //防止短时间内多次读取设备状态
                            if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
                            {
                                dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
                                dimmableLight.ReadOnOffStatus();
                                ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(device.CommonDevice);
                            }
                        }
@@ -1561,6 +1564,7 @@
                        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;
@@ -1578,20 +1582,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);
@@ -1615,6 +1605,7 @@
                        lightView.CardBG.MouseUpEventHandler += (sender, e) =>
                        {
                            CommonPage.Instance.IsDrawerLockMode = true;
                            var userDoorLockPage = new UserDoorLockPage(Room.CurrentRoom, device);
                            HomePage.Instance.AddChidren(userDoorLockPage);
                            HomePage.Instance.PageIndex += 1;