| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using Shared.Common; |
| | | using Shared.Phone.Device.AC; |
| | | using ZigBee.Device; |
| | | using Shared.Phone.Device.CommonForm; |
| | | |
| | | namespace Shared.Phone.UserView |
| | | { |
| | |
| | | /// </summary> |
| | | private static readonly int topFrameLayout_Height = 500; |
| | | /// <summary> |
| | | /// The height of the middle view.-- 1920-500-160 |
| | | /// 1524 |
| | | /// </summary> |
| | | private static readonly int midView_Height = CommonPage.AppRealHeight - topFrameLayout_Height - CommonPage.TabbarHeight; |
| | | private static readonly int midView_Height = 1524; |
| | | /// <summary> |
| | | /// The height of the room page view. -- 550 |
| | | /// </summary> |
| | |
| | | break;
|
| | | |
| | | case DeviceType.WindowCoveringDevice:
|
| | | if ((common as Rollershade).DeviceStatusReport.CluterID == 258) |
| | | { |
| | | if ((common as Rollershade).DeviceStatusReport.AttriBute[0].AttributeId == 0) |
| | | { |
| | | //窗帘类型 |
| | | var rollerShade = deviceUI.CommonDevice as Rollershade; |
| | | rollerShade.DeviceStatusReport = (common as Rollershade).DeviceStatusReport; |
| | | rollerShade.WcdType = (common as Rollershade).DeviceStatusReport.AttriBute[0].AttriButeData; |
| | | rollerShade.LastDateTime = DateTime.Now; |
| | | } |
| | | } |
| | | if ((common as ZigBee.Device.Rollershade).DeviceStatusReport.CluterID == 3) |
| | | { |
| | | var rollershade = deviceUI.CommonDevice as ZigBee.Device.Rollershade;
|
| | |
| | | { |
| | | case 0: |
| | | //此属性表明室内当前的温度 * 100,实际温度为“LocalTemperature / 100”,单位:℃ |
| | | ac.currentLocalTemperature = attriButeList[0].AttriButeData / 100; |
| | | ac.currentLocalTemperature = (attriButeList[0].AttriButeData / 100 > ACControlBase.Temperature_High || attriButeList[0].AttriButeData / 100 < ACControlBase.Temperature_Low) ? attriButeList[0].AttriButeData / 100 : ACControlBase.Temperature_Default; |
| | | ac.LastDateTime = DateTime.Now; |
| | | //indoorTemperatureBtn.Text = $"室温 {ac.currentLocalTemperature} ℃"; |
| | | //currentTemperatureBtn.Text = $"{ac.currentLocalTemperature} ℃"; |
| | | //Temparetrue |
| | | break; |
| | | |
| | | case 17: |
| | | //此属性表明此设备当前的制冷温度,实际温度为“CoolingSetpoint / 100”,单位:℃。 |
| | | ac.currentCoolingSetpoint = (attriButeList[0].AttriButeData / 100 > ACControlBase.Temperature_High || attriButeList[0].AttriButeData / 100 < ACControlBase.Temperature_Low) ? attriButeList[0].AttriButeData / 100 : ACControlBase.Temperature_Default; |
| | | ac.LastDateTime = DateTime.Now; |
| | | break; |
| | | |
| | | case 18: |
| | | //此属性表明此设备当前的制热温度,实际温度为“HeatingSetpoint / 100”,单位:℃。 |
| | | ac.currentHeatingSetpoint = (attriButeList[0].AttriButeData / 100 > ACControlBase.Temperature_High || attriButeList[0].AttriButeData / 100 < ACControlBase.Temperature_Low) ? attriButeList[0].AttriButeData / 100 : ACControlBase.Temperature_Default; |
| | | ac.LastDateTime = DateTime.Now; |
| | | break; |
| | | |
| | | case 4096: |
| | | //此属性表明此设备当前的自动温度,实际温度为“AutoSetpoint / 100”,单位:℃。 |
| | | ac.currentAutoSetpoint = (attriButeList[0].AttriButeData / 100 > ACControlBase.Temperature_High || attriButeList[0].AttriButeData / 100 < ACControlBase.Temperature_Low) ? attriButeList[0].AttriButeData / 100 : ACControlBase.Temperature_Default; |
| | | ac.LastDateTime = DateTime.Now; |
| | | break; |
| | | |
| | | case 28: |
| | | //此属性描述恒温设备正处于哪种模式 |
| | | //Off = 0 Auto = 1 Cool = 3 Heat = 4 FanOnly = 7 Dry = 8 |
| | | ac.currentSystemMode = attriButeList[0].AttriButeData; |
| | | ac.LastDateTime = DateTime.Now; |
| | | |
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++) |
| | | { |
| | | var tempView = frameLayout.GetChildren(j); |
| | |
| | | if (tempView.Tag.ToString() == "Temparetrue") |
| | | { |
| | | |
| | | (tempView as Button).Text = $"{ac.currentLocalTemperature} ℃"; |
| | | (tempView as Button).Text = $"{ACControlBase.GetCurrentModeTemperature(ac)} ℃"; |
| | | } |
| | | } |
| | | break; |
| | | |
| | | case 17: |
| | | //此属性表明此设备当前的制冷温度,实际温度为“CoolingSetpoint / 100”,单位:℃。 |
| | | ac.currentCoolingSetpoint = attriButeList[0].AttriButeData / 100; |
| | | ac.LastDateTime = DateTime.Now; |
| | | break; |
| | | |
| | | case 18: |
| | | //此属性表明此设备当前的制热温度,实际温度为“HeatingSetpoint / 100”,单位:℃。 |
| | | ac.currentHeatingSetpoint = attriButeList[0].AttriButeData / 100; |
| | | ac.LastDateTime = DateTime.Now; |
| | | break; |
| | | |
| | | case 28: |
| | | //此属性描述恒温设备正处于哪种模式 |
| | | //Off = 0 Auto = 1 Cool = 3 Heat = 4 FanOnly = 7 Dry = 8 |
| | | ac.currentSystemMode = attriButeList[0].AttriButeData; |
| | | ac.LastDateTime = DateTime.Now; |
| | | for (int j = 0; j < frameLayout.ChildrenCount; j++) |
| | | { |
| | | var tempView = frameLayout.GetChildren(j); |
| | | if (tempView.Tag == null) |
| | | { |
| | | continue; |
| | | } |
| | | if (tempView.Tag.ToString() == deviceStatus_OnOffStatus) |
| | | { |
| | | |
| | | (tempView as Button).IsSelected = ac.currentSystemMode != 0; |
| | | } |
| | | } |
| | | break; |
| | | |
| | | |
| | | } |
| | | |
| | |
| | | public UserHomeView() |
| | | { |
| | | ZbGateway.StatusList.Add(this); |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor; |
| | | BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// </summary> |
| | | public void Show() |
| | | { |
| | | |
| | | this.RemoveAll(); |
| | | |
| | | #region topview |
| | | var topFrameLayout = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(topFrameLayout_Height), |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, |
| | | Y=Application.GetRealHeight(60), |
| | | Height = Application.GetRealHeight(127), |
| | | BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor, |
| | | }; |
| | | this.AddChidren(topFrameLayout); |
| | | AddChidren(topFrameLayout); |
| | | |
| | | var homeBtn = new Device.CommonForm.SelectedStatuButton() |
| | | var floor = new Button |
| | | { |
| | | Y = Application.GetRealHeight(100), |
| | | X = Application.GetRealWidth(50), |
| | | Width = Application.GetMinRealAverage(110), |
| | | Height = Application.GetMinRealAverage(110), |
| | | UnSelectedImagePath = "Item/MyHome.png", |
| | | |
| | | X = Application.GetRealWidth(CommonFormResouce.X_Left), |
| | | Width = Application.GetMinRealAverage(69), |
| | | Height = Application.GetMinRealAverage(69), |
| | | Gravity = Gravity.CenterVertical, |
| | | UnSelectedImagePath = "Item/Floor.png" |
| | | }; |
| | | topFrameLayout.AddChidren(homeBtn); |
| | | topFrameLayout.AddChidren(floor); |
| | | |
| | | var residecneName = new Button() |
| | | var floorBtn = new Button |
| | | { |
| | | Y = Application.GetRealHeight(100), |
| | | Width = Application.GetRealWidth(600), |
| | | Height = Application.GetRealHeight(110), |
| | | TextAlignment = TextAlignment.Center, |
| | | Text = Config.Instance.Home.Name ?? Language.StringByID(R.MyInternationalizationString.TheResidenceNameNull), |
| | | TextSize = 20, |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | Gravity = Gravity.CenterHorizontal |
| | | X=floor.Right, |
| | | Width=Application.GetRealWidth(500), |
| | | Height=Application.GetRealHeight(100), |
| | | Gravity = Gravity.CenterVertical, |
| | | TextAlignment =TextAlignment.CenterLeft, |
| | | TextColor=ZigbeeColor.Current.GXCTextColor, |
| | | Text=Config.Instance.Home.GetCurrentFloorName() |
| | | }; |
| | | topFrameLayout.AddChidren(residecneName); |
| | | topFrameLayout.AddChidren(floorBtn); |
| | | |
| | | var messageBtn = new Button() |
| | | { |
| | | X = Application.GetRealWidth(CommonPage.AppRealWidth - 150), |
| | | Y = Application.GetRealHeight(100), |
| | | Width = Application.GetMinRealAverage(110), |
| | | Height = Application.GetMinRealAverage(110), |
| | | UnSelectedImagePath = "Item/Message.png" |
| | | X = Application.GetRealWidth(953), |
| | | Width = Application.GetMinRealAverage(69), |
| | | Height = Application.GetMinRealAverage(69), |
| | | Gravity = Gravity.CenterVertical, |
| | | UnSelectedImagePath = "Item/Message.png", |
| | | SelectedImagePath="Item/MessageSelected.png" |
| | | }; |
| | | //暂时隐藏 |
| | | //topFrameLayout.AddChidren(messageBtn); |
| | | topFrameLayout.AddChidren(messageBtn); |
| | | |
| | | //切换住宅 |
| | | homeBtn.MouseUpEventHandler += (send, e) => |
| | | var residecneName = new Button() |
| | | { |
| | | X=Application.GetRealWidth(CommonFormResouce.X_Left), |
| | | Y = Application.GetRealHeight(161), |
| | | Width = Application.GetRealWidth(700), |
| | | Height = Application.GetRealHeight(95), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | Text = Config.Instance.Home.Name ?? Language.StringByID(R.MyInternationalizationString.TheResidenceNameNull), |
| | | TextSize = 24, |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor |
| | | }; |
| | | if(Config.Instance.Home.IsOthreShare) |
| | | { |
| | | residecneName.Text = $"({Language.StringByID(R.MyInternationalizationString.Shared)}){Config.Instance.Home.Name}"; |
| | | } |
| | | AddChidren(residecneName); |
| | | |
| | | EventHandler<MouseEventArgs> selectFloor = (send, e) => |
| | | { |
| | | var floorFL = new Phone.Device.Category.SelectFloor(); |
| | | AddChidren(floorFL); |
| | | floorFL.Init(35,153); |
| | | floorFL.FloorAction = (floorName) => |
| | | { |
| | | floorBtn.Text = floorName; |
| | | }; |
| | | }; |
| | | floor.MouseUpEventHandler += selectFloor; |
| | | floorBtn.MouseUpEventHandler += selectFloor; |
| | | //切换住宅 |
| | | residecneName.MouseLongEventHandler += (send, e) => |
| | | { |
| | | var tempHomeBtn = send as Button; |
| | | if (Config.Instance.HomeFilePathList.Count == 0) |
| | | { |
| | | var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.CurrentlyTheUserIshHouseIsEmptyPleaseBuildANewHouseFirst), Language.StringByID(R.MyInternationalizationString.Close), Language.StringByID(R.MyInternationalizationString.OK)); |
| | |
| | | residenceListView.Close(); |
| | | }; |
| | | |
| | | var upperTriangleBtn = new Button() |
| | | var bg = new Button |
| | | { |
| | | X = Application.GetRealWidth(25) + homeBtn.X, |
| | | Y = homeBtn.Bottom, |
| | | Width = Application.GetMinRealAverage(30), |
| | | Height = Application.GetMinRealAverage(15), |
| | | UnSelectedImagePath = "Item/UpperTriangle.png" |
| | | X = Application.GetRealWidth(35), |
| | | Y = Application.GetRealHeight(248), |
| | | Width = Application.GetMinRealAverage(449), |
| | | Height = Application.GetMinRealAverage(478), |
| | | UnSelectedImagePath = "Item/SelectHouse" |
| | | }; |
| | | closeBGview.AddChidren(upperTriangleBtn); |
| | | closeBGview.AddChidren(bg); |
| | | |
| | | var changeHomeFL = new FrameLayout() |
| | | { |
| | | X = Application.GetRealWidth(25), |
| | | Y = upperTriangleBtn.Bottom, |
| | | Height = Application.GetRealHeight(340), |
| | | Width = Application.GetRealWidth(500), |
| | | X = Application.GetRealWidth(35), |
| | | Y = Application.GetRealHeight(271), |
| | | Height = Application.GetRealHeight(449), |
| | | Width = Application.GetRealWidth(440), |
| | | Radius = CommonPage.BigFormRadius, |
| | | BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor |
| | | }; |
| | |
| | | var changeHomeBtn = new Button() |
| | | { |
| | | X = Application.GetRealWidth(80), |
| | | Width = Application.GetRealWidth(450), |
| | | Height = Application.GetRealHeight(110), |
| | | TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, |
| | | Width = Application.GetRealWidth(350), |
| | | Height = Application.GetRealHeight(150), |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | TextID = R.MyInternationalizationString.ChangeHome, |
| | | TextAlignment = TextAlignment.CenterLeft |
| | | }; |
| | |
| | | var scrolView = new VerticalScrolViewLayout() |
| | | { |
| | | Y = changeHomeBtn.Bottom, |
| | | Height = Application.GetRealHeight(220) |
| | | Height = Application.GetMinRealAverage(305-10) |
| | | }; |
| | | changeHomeFL.AddChidren(scrolView); |
| | | |
| | |
| | | } |
| | | var rowView = new RowLayout() |
| | | { |
| | | Height = Application.GetRealHeight(110) |
| | | Height = Application.GetRealHeight(150) |
| | | }; |
| | | scrolView.AddChidren(rowView); |
| | | var pointBtn = new Device.CommonForm.SelectedStatuButton() |
| | | { |
| | | X=Application.GetRealWidth(80), |
| | | Width = Application.GetMinRealAverage(80), |
| | | Height = Application.GetMinRealAverage(110), |
| | | Height = Application.GetMinRealAverage(80), |
| | | Gravity = Gravity.CenterVertical, |
| | | UnSelectedImagePath = "Item/Point.png", |
| | | SelectedImagePath = "Item/PointSelected.png", |
| | | UnSelectedImagePath = "Item/House.png", |
| | | SelectedImagePath = "Item/HouseSelected.png", |
| | | IsSelected = home.Id == Config.Instance.Home.Id |
| | | }; |
| | | rowView.AddChidren(pointBtn); |
| | | var nameBtn = new Device.CommonForm.SelectedStatuButton() |
| | | { |
| | | X = Application.GetRealWidth(80), |
| | | Width = Application.GetRealWidth(500 - 80 - 50), |
| | | X = Application.GetRealWidth(173), |
| | | Width = Application.GetRealWidth(280), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | Text = home.Name, |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | SelectedTextColor = ZigbeeColor.Current.GXCTextBlueColor, |
| | | TextColor = ZigbeeColor.Current.GXCTextGrayColor, |
| | | SelectedTextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | IsSelected = home.Id == Config.Instance.Home.Id |
| | | }; |
| | | if(home.IsOthreShare) |
| | | { |
| | | nameBtn.Text = $"({Language.StringByID(R.MyInternationalizationString.Shared)}){home.Name}"; |
| | | } |
| | | rowView.AddChidren(nameBtn); |
| | | |
| | | EventHandler<MouseEventArgs> selectedResidenceHandler = (send1, e1) => |
| | | { |
| | | if (Config.Instance.Home == home) |
| | | if (Config.Instance.Home.FileName == homeFilePath) |
| | | { |
| | | return; |
| | | } |
| | |
| | | nameBtn.IsSelected = true; |
| | | |
| | | residecneName.Text = home.Name; |
| | | if(home.IsOthreShare) |
| | | { |
| | | nameBtn.Text = $"({Language.StringByID(R.MyInternationalizationString.Shared)}){home.Name}"; |
| | | } |
| | | clickCheckBtn = pointBtn; |
| | | clickNameBtn = nameBtn; |
| | | residenceListView.Close(); |
| | |
| | | clickCheckBtn = pointBtn; |
| | | clickNameBtn = nameBtn; |
| | | residecneName.Text = home.Name; |
| | | if (home.IsOthreShare) |
| | | { |
| | | residecneName.Text = nameBtn.Text = $"({Language.StringByID(R.MyInternationalizationString.Shared)}){home.Name}"; |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | { |
| | | |
| | | }; |
| | | |
| | | #endregion |
| | | |
| | | #region midView |
| | | var midView = new FrameLayout() |
| | | if(CanBindGateway()==false) |
| | | { |
| | | Y = topFrameLayout.Bottom, |
| | | Height = midView_Height, |
| | | }; |
| | | AddChidren(midView); |
| | | #endregion |
| | | |
| | | #region --roomPage |
| | | var roomPageView = new PageLayout() |
| | | { |
| | | Y = Application.GetRealHeight(50) + residecneName.Bottom, |
| | | Y = Application.GetRealHeight(302), |
| | | Width = Application.GetRealWidth(CommonPage.AppRealWidth - CommonPage.XLeft * 2), |
| | | Height = Application.GetMinRealAverage(roomPageView_Height), |
| | | Radius = CommonPage.BigFormRadius, |
| | |
| | | AddChidren(roomPageView); |
| | | |
| | | //当前房间 |
| | | if (Shared.Common.Room.canInitAllRoom == true) |
| | | if (Shared.Common.Room.CanInitAllRoom == true) |
| | | { |
| | | //Room.CurrentRoom = Room.CurrentRoom == null ? Room.Lists[0] : Room.CurrentRoom; |
| | | Room.CurrentRoom = Room.Lists[0]; |
| | |
| | | |
| | | roomListBtn.MouseUpEventHandler += (send, e) => |
| | | { |
| | | var roomList = new Device.Room.RoomManagement(); |
| | | HomePage.Instance.AddChidren(roomList); |
| | | //var roomList = new Device.Room.RoomManagement(); |
| | | //HomePage.Instance.AddChidren(roomList); |
| | | //HomePage.Instance.PageIndex += 1; |
| | | //roomList.Show(); |
| | | //roomList.action += () => |
| | | //{ |
| | | // Show(); |
| | | //}; |
| | | |
| | | var editRoom = new Device.Room.AddRoom(); |
| | | HomePage.Instance.AddChidren(editRoom); |
| | | HomePage.Instance.PageIndex += 1; |
| | | roomList.Show(); |
| | | roomList.action += () => |
| | | editRoom.Show(); |
| | | editRoom.action += () => |
| | | { |
| | | Show(); |
| | | }; |
| | | |
| | | }; |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | |
| | | |
| | | var functionSceneView = new FrameLayout() |
| | | { |
| | | Y = roomPageView.Bottom, |
| | | Height = Application.GetRealHeight(CommonPage.AppRealHeight - CommonPage.TabbarHeight) - roomPageView.Bottom, |
| | | Y = Application.GetRealHeight(861), |
| | | Width=Application.GetRealWidth(832), |
| | | Height = Application.GetRealHeight(167), |
| | | Gravity=Gravity.CenterHorizontal, |
| | | BackgroundImagePath="Item/SceneFunctionBG.png" |
| | | }; |
| | | AddChidren(functionSceneView); |
| | | |
| | | //功能 |
| | | functionBtn = new Button() |
| | | { |
| | | X = Application.GetRealWidth(50), |
| | | Width = Application.GetRealWidth(540 - 50) - 2, |
| | | Height = Application.GetRealHeight(150), |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | SelectedTextColor = ZigbeeColor.Current.GXCTextBlueColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | TextSize = 16, |
| | | X = Application.GetRealWidth(30), |
| | | Y=Application.GetRealHeight(12), |
| | | Width = Application.GetRealWidth(350), |
| | | Height = Application.GetRealHeight(100), |
| | | TextColor = ZigbeeColor.Current.GXCTextGrayColor3, |
| | | SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor, |
| | | TextID = R.MyInternationalizationString.Function, |
| | | IsSelected = true |
| | | }; |
| | | functionSceneView.AddChidren(functionBtn); |
| | | var functionSceneMidLine = new Button() |
| | | { |
| | | X = functionBtn.Right, |
| | | Width = 2, |
| | | Y = Application.GetRealHeight(60), |
| | | Height = Application.GetRealHeight(60), |
| | | BackgroundColor = ZigbeeColor.Current.GXCLineColor |
| | | }; |
| | | functionSceneView.AddChidren(functionSceneMidLine); |
| | | |
| | | //场景 |
| | | var sceneBtn = new Button() |
| | | { |
| | | X = functionBtn.Right, |
| | | Width = Application.GetRealWidth(540 - 50), |
| | | Height = Application.GetRealHeight(150), |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor, |
| | | SelectedTextColor = ZigbeeColor.Current.GXCTextBlueColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | TextSize = 16, |
| | | X = Application.GetRealWidth(430), |
| | | Y = Application.GetRealHeight(12), |
| | | Width = Application.GetRealWidth(360), |
| | | Height = Application.GetRealHeight(100), |
| | | TextColor = ZigbeeColor.Current.GXCTextGrayColor3, |
| | | SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor, |
| | | TextID = R.MyInternationalizationString.Scence, |
| | | IsSelected = false |
| | | }; |
| | | functionSceneView.AddChidren(sceneBtn); |
| | | var functionSceneBottomLine = new Button() |
| | | { |
| | | Y = functionBtn.Bottom, |
| | | Height = CommonPage.LineHeight, |
| | | X = functionBtn.X, |
| | | Width = roomPageView.Width, |
| | | BackgroundColor = ZigbeeColor.Current.GXCLineColor |
| | | }; |
| | | functionSceneView.AddChidren(functionSceneBottomLine); |
| | | |
| | | var line = new Button() |
| | | { |
| | | Y = functionBtn.Bottom, |
| | | Height = CommonPage.LineHeight, |
| | | X = functionBtn.X, |
| | | Width = Application.GetRealWidth(540 - 50), |
| | | BackgroundColor = ZigbeeColor.Current.GXCButtonBlueColor |
| | | }; |
| | | functionSceneView.AddChidren(line); |
| | | //功能和场景bodyView |
| | | functionSceneBodyView = new FrameLayout() |
| | | { |
| | | Y = line.Bottom, |
| | | Height = functionSceneView.Height - functionBtn.Height, |
| | | Width = roomPageView.Width, |
| | | Gravity = Gravity.CenterHorizontal |
| | | Y = functionSceneView.Bottom, |
| | | Height = Application.GetRealHeight(750), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | BackgroundColor=ZigbeeColor.Current.GXCGrayBackgroundColor |
| | | }; |
| | | functionSceneView.AddChidren(functionSceneBodyView); |
| | | AddChidren(functionSceneBodyView); |
| | | |
| | | //选择功能分栏 |
| | | functionBtn.MouseUpEventHandler += (sender, e) => |
| | | { |
| | | sceneBtn.IsSelected = false; |
| | | functionBtn.IsSelected = true; |
| | | line.X = functionBtn.X; |
| | | RefreshBodyView(); |
| | | }; |
| | | //选择场景分栏 |
| | |
| | | { |
| | | functionBtn.IsSelected = false; |
| | | sceneBtn.IsSelected = true; |
| | | line.X = sceneBtn.X; |
| | | RefreshBodyView(); |
| | | }; |
| | | |
| | | RefreshBodyView(); |
| | | |
| | | #endregion |
| | | |
| | | roomPageView.PageChange += (sender, e) => |
| | | { |
| | |
| | | Room.CurrentRoom = Room.CurrentRoom == null ? Room.Lists[0] : Room.Lists[roomPageView.PageIndex]; |
| | | RefreshBodyView(); |
| | | }; |
| | | //roomPageView.PageIndex = Room.Lists.IndexOf(Room.CurrentRoom); |
| | | } |
| | | else |
| | | { |
| | | ShowNoGatewayTip(); |
| | | } |
| | | |
| | | } |
| | | |
| | | #endregion |
| | |
| | | |
| | | public void RefreshBodyView() |
| | | { |
| | | if (Room.canInitAllRoom == false) |
| | | if (Room.CanInitAllRoom == false) |
| | | { |
| | | return; |
| | | } |
| | |
| | | /// <returns><c>true</c>, if bing gateway was caned, <c>false</c> otherwise.</returns> |
| | | private bool CanBindGateway() |
| | | { |
| | | if (HadBindGateway() == false && UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 1) |
| | | if (HadBindGateway() == false && (UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenter.UserCenterResourse.UserInfo.AuthorityNo == 2)) |
| | | { |
| | | return true; |
| | | } |
| | |
| | | /// </summary> |
| | | private void ShowNoGatewayTip() |
| | | { |
| | | var addGatewayBtn = new Button() |
| | | var bg = new Button |
| | | { |
| | | Height = Application.GetMinRealAverage(200), |
| | | Width = Application.GetMinRealAverage(200), |
| | | UnSelectedImagePath = "Room/AddScenceFunction.png", |
| | | Gravity = Gravity.Center |
| | | Y = Application.GetRealHeight(302), |
| | | Width = Application.GetMinRealAverage(717), |
| | | Height = Application.GetMinRealAverage(478), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | UnSelectedImagePath = "Item/NoBindGW.png" |
| | | }; |
| | | functionSceneBodyView.AddChidren(addGatewayBtn); |
| | | addGatewayBtn.MouseUpEventHandler += GoToAddGateWay; |
| | | AddChidren(bg); |
| | | |
| | | var noGatewayTip = new Button() |
| | | var tip = new Button |
| | | { |
| | | Y = addGatewayBtn.Bottom, |
| | | Height = Application.GetRealHeight(150), |
| | | TextID = R.MyInternationalizationString.NoGateway, |
| | | TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | Y = Application.GetRealHeight(815), |
| | | Width = Application.GetMinRealAverage(717), |
| | | Height = Application.GetMinRealAverage(58), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | TextID = R.MyInternationalizationString.NewAccountNeedBingGW, |
| | | TextColor = ZigbeeColor.Current.GXCTextGrayColor |
| | | }; |
| | | AddChidren(tip); |
| | | |
| | | var addBG = new Button |
| | | { |
| | | Y = Application.GetRealHeight(1048), |
| | | Height = Application.GetMinRealAverage(366), |
| | | Width = Application.GetMinRealAverage(971), |
| | | UnSelectedImagePath = "Item/VirtualFrame.png", |
| | | Gravity = Gravity.CenterHorizontal |
| | | }; |
| | | functionSceneBodyView.AddChidren(noGatewayTip); |
| | | AddChidren(addBG); |
| | | |
| | | var addGatewayBtn = new Button() |
| | | { |
| | | Y = Application.GetRealHeight(1143), |
| | | Height = Application.GetMinRealAverage(89), |
| | | Width = Application.GetMinRealAverage(89), |
| | | UnSelectedImagePath = "Item/Add_GW.png", |
| | | Gravity = Gravity.CenterHorizontal |
| | | }; |
| | | AddChidren(addGatewayBtn); |
| | | addGatewayBtn.MouseUpEventHandler += GoToAddGateWay; |
| | | |
| | | var addTip = new Button |
| | | { |
| | | Y = Application.GetRealHeight(1256), |
| | | Width = Application.GetMinRealAverage(717), |
| | | Height = Application.GetMinRealAverage(58), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | TextID = R.MyInternationalizationString.AddSmartGW, |
| | | TextColor = ZigbeeColor.Current.GXCTextBlackColor |
| | | }; |
| | | AddChidren(addTip); |
| | | addTip.MouseUpEventHandler += GoToAddGateWay; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param> |
| | | private void GoToAddGateWay(object sender, MouseEventArgs mouseEventArgs) |
| | | { |
| | | var selectNewGateWayForm = new UserCenter.GatewayAdd.NewGateWaySelectForm(); |
| | | selectNewGateWayForm.AddForm(); |
| | | UserCenter.GatewayAdd.NewGateWaySelectForm selectNewGateWayForm = new UserCenter.GatewayAdd.NewGateWaySelectForm { }; |
| | | selectNewGateWayForm.AddForm(selectNewGateWayForm); |
| | | } |
| | | |
| | | #endregion |
| | |
| | | /// 显示功能 |
| | | /// </summary> |
| | | private void ShowFunction() |
| | | { |
| | | if (CanBindGateway() == false) |
| | | { |
| | | //选择功能--直接从房间的devicelist中获取 |
| | | var deviceList = Room.CurrentRoom.DeviceUIList; |
| | |
| | | IsMoreLines = true |
| | | }; |
| | | deviceItemFL.AddChidren(deviceName); |
| | | |
| | | var closeBtnBG = new Device.CommonForm.SelectedStatuButton() |
| | | { |
| | | X = deviceName.Right, |
| | | Width = Application.GetMinRealAverage(250), |
| | | Height = Application.GetMinRealAverage(250), |
| | | Gravity = Gravity.CenterVertical, |
| | | }; |
| | | deviceItemFL.AddChidren(closeBtnBG); |
| | | |
| | | var closeBtn = new Device.CommonForm.SelectedStatuButton() |
| | | { |
| | | X = Application.GetRealWidth(50) + deviceName.Right, |
| | |
| | | //Visible=false |
| | | }; |
| | | deviceItemFL.AddChidren(closeBtn); |
| | | |
| | | var stopBtnBG = new Device.CommonForm.SelectedStatuButton() |
| | | { |
| | | X = Application.GetRealWidth(120) + closeBtn.Right, |
| | | Width = Application.GetMinRealAverage(250), |
| | | Height = Application.GetMinRealAverage(250), |
| | | Gravity = Gravity.CenterVertical, |
| | | }; |
| | | deviceItemFL.AddChidren(stopBtnBG); |
| | | var stopBtn = new Device.CommonForm.SelectedStatuButton() |
| | | { |
| | | X = Application.GetRealWidth(120) + closeBtn.Right, |
| | |
| | | //Visible=false |
| | | }; |
| | | deviceItemFL.AddChidren(stopBtn); |
| | | |
| | | var openBtnBG = new Device.CommonForm.SelectedStatuButton() |
| | | { |
| | | X = Application.GetRealWidth(20) + stopBtn.Right, |
| | | Width = Application.GetMinRealAverage(250), |
| | | Height = Application.GetMinRealAverage(250), |
| | | Gravity = Gravity.CenterVertical, |
| | | }; |
| | | deviceItemFL.AddChidren(openBtnBG); |
| | | var openBtn = new Device.CommonForm.SelectedStatuButton() |
| | | { |
| | | X = Application.GetRealWidth(120) + stopBtn.Right, |
| | |
| | | SelectedImagePath = "WindowCovering/RollerShadeOpenSelected.png", |
| | | //Visible=false |
| | | }; |
| | | |
| | | deviceItemFL.AddChidren(openBtn); |
| | | var collectionBtn = new Button() |
| | | { |
| | |
| | | deviceRowLayout.AddRightView(deleteBtn); |
| | | } |
| | | |
| | | if (rollerShade.WcdType == -1) |
| | | { |
| | | CommonPage.Loading.Start(); |
| | | new System.Threading.Thread(() => |
| | | { |
| | | ZigBee.Device.Rollershade.ReadWcdTypeAction(rollerShade, () => |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (rollerShade.WcdType == 0) |
| | | { |
| | | closeBtn.UnSelectedImagePath = "WindowCovering/RollerShadeDown.png"; |
| | | closeBtn.SelectedImagePath = "WindowCovering/RollerShadeDownSelected.png"; |
| | | openBtn.UnSelectedImagePath = "WindowCovering/RollerShadeUp.png"; |
| | | openBtn.SelectedImagePath = "WindowCovering/RollerShadeUpSelected.png"; |
| | | } |
| | | else |
| | | { |
| | | closeBtn.UnSelectedImagePath = "WindowCovering/RollerShadeClose.png"; |
| | | closeBtn.SelectedImagePath = "WindowCovering/RollerShadeCloseSelected.png"; |
| | | openBtn.UnSelectedImagePath = "WindowCovering/RollerShadeOpen.png"; |
| | | openBtn.SelectedImagePath = "WindowCovering/RollerShadeOpenSelected.png"; |
| | | } |
| | | CommonPage.Loading.Hide(); |
| | | }); |
| | | }); |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | else if (rollerShade.WcdType == 0) |
| | | { |
| | | closeBtn.UnSelectedImagePath = "WindowCovering/RollerShadeDown.png"; |
| | | closeBtn.SelectedImagePath = "WindowCovering/RollerShadeDownSelected.png"; |
| | | openBtn.UnSelectedImagePath = "WindowCovering/RollerShadeUp.png"; |
| | | openBtn.SelectedImagePath = "WindowCovering/RollerShadeUpSelected.png"; |
| | | } |
| | | else |
| | | { |
| | | closeBtn.UnSelectedImagePath = "WindowCovering/RollerShadeClose.png"; |
| | | closeBtn.SelectedImagePath = "WindowCovering/RollerShadeCloseSelected.png"; |
| | | openBtn.UnSelectedImagePath = "WindowCovering/RollerShadeOpen.png"; |
| | | openBtn.SelectedImagePath = "WindowCovering/RollerShadeOpenSelected.png"; |
| | | } |
| | | |
| | | |
| | | EventHandler<MouseEventArgs> curtainHandler = (sender, e) => |
| | | { |
| | |
| | | curtain.Show(device, Room.CurrentRoom); |
| | | }; |
| | | deviceItemFL.MouseUpEventHandler += curtainHandler; |
| | | deviceItemFL.MouseLongEventHandler += curtainHandler; |
| | | //deviceItemFL.MouseLongEventHandler += curtainHandler; |
| | | deviceIMG.MouseUpEventHandler += curtainHandler; |
| | | deviceName.MouseUpEventHandler += curtainHandler; |
| | | |
| | |
| | | }; |
| | | //***先隐藏****** |
| | | //deviceItemFL.AddChidren(collectionBtn); |
| | | var switchBtnBG = new Button |
| | | { |
| | | X = deviceItemFL.Right - Application.GetRealWidth(250), |
| | | Width = Application.GetMinRealAverage(250), |
| | | Height = Application.GetMinRealAverage(250), |
| | | Gravity = Gravity.CenterVertical |
| | | }; |
| | | deviceItemFL.AddChidren(switchBtnBG); |
| | | |
| | | var switchBtn = new Button |
| | | { |
| | | X = deviceItemFL.Right - Application.GetRealWidth(200), |
| | |
| | | lightControl.action = RefreshBodyView; |
| | | lightControl.Show(device, Room.CurrentRoom); |
| | | }; |
| | | deviceItemFL.MouseLongEventHandler += lightHandler; |
| | | //deviceItemFL.MouseLongEventHandler += lightHandler; |
| | | deviceItemFL.MouseUpEventHandler += lightHandler; |
| | | deviceName.MouseUpEventHandler += lightHandler; |
| | | deviceIMG.MouseUpEventHandler += lightHandler; |
| | |
| | | }; |
| | | //***先隐藏****** |
| | | //deviceItemFL.AddChidren(collectionBtn); |
| | | var switchBtnBG = new Button |
| | | { |
| | | X = deviceItemFL.Right - Application.GetRealWidth(250), |
| | | Width = Application.GetMinRealAverage(250), |
| | | Height = Application.GetMinRealAverage(250), |
| | | Gravity = Gravity.CenterVertical |
| | | }; |
| | | deviceItemFL.AddChidren(switchBtnBG); |
| | | var switchBtn = new Button |
| | | { |
| | | X = deviceItemFL.Right - Application.GetRealWidth(200), |
| | |
| | | airSwitchControl.action = RefreshBodyView; |
| | | airSwitchControl.Show(device, Room.CurrentRoom); |
| | | }; |
| | | deviceItemFL.MouseLongEventHandler += airSwitchHandler; |
| | | //deviceItemFL.MouseLongEventHandler += airSwitchHandler; |
| | | deviceItemFL.MouseUpEventHandler += airSwitchHandler; |
| | | deviceName.MouseUpEventHandler += airSwitchHandler; |
| | | deviceIMG.MouseUpEventHandler += airSwitchHandler; |
| | |
| | | ReadStatus(ac, () => |
| | | { |
| | | ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ac.ReadFanMode(); |
| | | ac.ReadSystemMode(); |
| | | ac.ReadLocalTemperature(); |
| | | ac.ReadCoolingSetpoint(); |
| | | ac.ReadHeatingSetpoint(); |
| | | ac.ReadAutoSetpoint(); |
| | | ac.ReadFanMode(); |
| | | ac.ReadSystemMode(); |
| | | }); |
| | | } |
| | | else |
| | |
| | | if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) |
| | | { |
| | | ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); |
| | | ac.ReadFanMode(); |
| | | ac.ReadSystemMode(); |
| | | ac.ReadLocalTemperature(); |
| | | ac.ReadCoolingSetpoint(); |
| | | ac.ReadHeatingSetpoint(); |
| | | ac.ReadAutoSetpoint(); |
| | | ac.ReadFanMode(); |
| | | ac.ReadSystemMode(); |
| | | } |
| | | } |
| | | |
| | |
| | | //deviceItemFL.AddChidren(collectionBtn); |
| | | |
| | | //减 |
| | | var reduceBtnBG = new Device.CommonForm.SelectedStatuButton() |
| | | { |
| | | X = deviceName.Right, |
| | | Width = Application.GetMinRealAverage(250), |
| | | Height = Application.GetMinRealAverage(250), |
| | | Gravity = Gravity.CenterVertical, |
| | | }; |
| | | deviceItemFL.AddChidren(reduceBtnBG); |
| | | |
| | | var reduceBtn = new Device.CommonForm.SelectedStatuButton() |
| | | { |
| | | X = Application.GetRealWidth(30) + deviceName.Right, |
| | |
| | | return; |
| | | } |
| | | //cool |
| | | if (ac.currentSystemMode == 3) |
| | | if (ac.currentSystemMode == 3 || ac.currentSystemMode == 8) |
| | | { |
| | | if (ac.currentCoolingSetpoint <= ACControlBase.Temperature_Low) |
| | | { |
| | | return; |
| | | } |
| | | ac.currentCoolingSetpoint -= 1; |
| | | ac.SetCoolingTemperatureAsync(ac.currentCoolingSetpoint); |
| | | ac.SetCoolingTemperatureAsync(ac.currentCoolingSetpoint * 100); |
| | | currentTemperatureBtn.Text = $"{ac.currentCoolingSetpoint} °C"; |
| | | } |
| | | //heat |
| | | else if (ac.currentSystemMode == 4) |
| | | { |
| | | if (ac.currentHeatingSetpoint <= ACControlBase.Temperature_Low) |
| | | { |
| | | return; |
| | | } |
| | | ac.currentHeatingSetpoint -= 1; |
| | | ac.SetHeatingTemperatureAsync(ac.currentHeatingSetpoint); |
| | | |
| | | ac.SetHeatingTemperatureAsync(ac.currentHeatingSetpoint * 100); |
| | | currentTemperatureBtn.Text = $"{ac.currentHeatingSetpoint} °C"; |
| | | } |
| | | else if (ac.currentSystemMode == 1) |
| | | { |
| | | if (ac.currentAutoSetpoint <= ACControlBase.Temperature_Low) |
| | | { |
| | | return; |
| | | } |
| | | ac.currentAutoSetpoint -= 1; |
| | | ac.SetAutoTemperatureAsync(ac.currentAutoSetpoint * 100); |
| | | currentTemperatureBtn.Text = $"{ac.currentAutoSetpoint} °C"; |
| | | } |
| | | //auto |
| | | //dry |
| | | //currentTemperatureBtn.Text = $"{Device.AC.ACControlBase.GetCurrentModeTemperature(ac)} °C"; |
| | | }; |
| | | |
| | | var addBtnBG = new Device.CommonForm.SelectedStatuButton() |
| | | { |
| | | X = currentTemperatureBtn.Right, |
| | | Width = Application.GetMinRealAverage(250), |
| | | Height = Application.GetMinRealAverage(250), |
| | | Gravity = Gravity.CenterVertical |
| | | }; |
| | | deviceItemFL.AddChidren(addBtnBG); |
| | | |
| | | var addBtn = new Device.CommonForm.SelectedStatuButton() |
| | | { |
| | |
| | | return; |
| | | } |
| | | //cool |
| | | if (ac.currentSystemMode == 3) |
| | | if (ac.currentSystemMode == 3 || ac.currentSystemMode == 8) |
| | | { |
| | | if (ac.currentCoolingSetpoint >= ACControlBase.Temperature_High) |
| | | { |
| | | return; |
| | | } |
| | | ac.currentCoolingSetpoint += 1; |
| | | ac.SetCoolingTemperatureAsync(ac.currentCoolingSetpoint); |
| | | ac.SetCoolingTemperatureAsync(ac.currentCoolingSetpoint * 100); |
| | | |
| | | currentTemperatureBtn.Text = $"{ac.currentCoolingSetpoint} °C"; |
| | | } |
| | | //heat |
| | | else if (ac.currentSystemMode == 4) |
| | | { |
| | | if (ac.currentHeatingSetpoint >= ACControlBase.Temperature_High) |
| | | { |
| | | return; |
| | | } |
| | | ac.currentHeatingSetpoint += 1; |
| | | ac.SetHeatingTemperatureAsync(ac.currentHeatingSetpoint); |
| | | ac.SetHeatingTemperatureAsync(ac.currentHeatingSetpoint * 100); |
| | | |
| | | currentTemperatureBtn.Text = $"{ac.currentHeatingSetpoint} °C"; |
| | | } |
| | | //auto |
| | | //dry |
| | | else if (ac.currentSystemMode == 1) |
| | | { |
| | | if (ac.currentAutoSetpoint >= ACControlBase.Temperature_High) |
| | | { |
| | | return; |
| | | } |
| | | ac.currentAutoSetpoint += 1; |
| | | ac.SetAutoTemperatureAsync(ac.currentAutoSetpoint * 100); |
| | | currentTemperatureBtn.Text = $"{ac.currentAutoSetpoint} °C"; |
| | | } |
| | | |
| | | }; |
| | | |
| | | var switchBtnBG = new Button |
| | | { |
| | | X = deviceItemFL.Right - Application.GetRealWidth(250), |
| | | Width = Application.GetMinRealAverage(250), |
| | | Height = Application.GetMinRealAverage(250), |
| | | Gravity = Gravity.CenterVertical |
| | | }; |
| | | deviceItemFL.AddChidren(switchBtnBG); |
| | | var switchBtn = new Button |
| | | { |
| | | X = deviceItemFL.Right - Application.GetRealWidth(200), |
| | |
| | | acControl.action = RefreshBodyView; |
| | | acControl.Show(device, Room.CurrentRoom); |
| | | }; |
| | | deviceItemFL.MouseLongEventHandler += acHandler; |
| | | //deviceItemFL.MouseLongEventHandler += acHandler; |
| | | deviceItemFL.MouseUpEventHandler += acHandler; |
| | | deviceName.MouseUpEventHandler += acHandler; |
| | | deviceIMG.MouseUpEventHandler += acHandler; |
| | |
| | | }; |
| | | //***先隐藏****** |
| | | //deviceItemFL.AddChidren(collectionBtn); |
| | | var switchBtnBG = new Button |
| | | { |
| | | X = deviceItemFL.Right - Application.GetRealWidth(250), |
| | | Width = Application.GetMinRealAverage(250), |
| | | Height = Application.GetMinRealAverage(250), |
| | | Gravity = Gravity.CenterVertical |
| | | }; |
| | | deviceItemFL.AddChidren(switchBtnBG); |
| | | var switchBtn = new Button |
| | | { |
| | | X = deviceItemFL.Right - Application.GetRealWidth(200), |
| | |
| | | dimmableLightControl.action = RefreshBodyView; |
| | | dimmableLightControl.Show(device, Room.CurrentRoom); |
| | | }; |
| | | deviceItemFL.MouseLongEventHandler += dimmableLightHandler; |
| | | //deviceItemFL.MouseLongEventHandler += dimmableLightHandler; |
| | | deviceItemFL.MouseUpEventHandler += dimmableLightHandler; |
| | | deviceName.MouseUpEventHandler += dimmableLightHandler; |
| | | deviceIMG.MouseUpEventHandler += dimmableLightHandler; |
| | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | ShowNoGatewayTip(); |
| | | } |
| | | |
| | | } |
| | | |
| | | #endregion |
| | |
| | | /// 显示场景 |
| | | /// </summary> |
| | | private void ShowScene() |
| | | { |
| | | if (CanBindGateway() == false) |
| | | { |
| | | //选择场景 |
| | | var sceneList = Room.CurrentRoom.SceneUIList; |
| | |
| | | deleteBtn.MouseUpEventHandler += delEvent; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | ShowNoGatewayTip(); |
| | | } |
| | | |
| | | } |
| | | |
| | | #endregion |
| | |
| | | new System.Threading.Thread(async () =>
|
| | | { |
| | | Config.Instance.HomeId = home.Id; |
| | | Config.Instance.Home = House.GetHouseByFilePath(home.FileName); |
| | | Global.CreateHomeDirectory(home.Id); |
| | | Config.Instance.Save();
|
| | | //刷新个人中心的内存及线程
|