From f1c3921b08bb22ac6f5db22d620e01d7e8e5c49f Mon Sep 17 00:00:00 2001 From: WJC <wjc@hdlchina.com.cn> Date: 星期一, 30 十二月 2019 13:32:33 +0800 Subject: [PATCH] 2019-12-30-1 --- ZigbeeApp/Shared/Phone/Device/Category/Category.cs | 2552 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 1,269 insertions(+), 1,283 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs index edec647..6122be0 100644 --- a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs +++ b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs @@ -5,6 +5,8 @@ using Shared.R; using ZigBee.Device; using Shared.Phone.Device.CommonForm; +using Shared.Phone.Device.AC; +using Shared.Phone.UserCenter.DoorLock; namespace Shared.Phone.Device.Category { @@ -22,7 +24,7 @@ /// <summary> /// low_High /// </summary> - private const int low_High = 127; + private const int low_High= 127; /// <summary> /// 鍔熻兘 /// </summary> @@ -36,9 +38,13 @@ /// </summary> private ButtonLineForm automationBtn; /// <summary> - /// 涓儴鑳屾櫙bodyView + /// 鍦烘櫙鍔熻兘涓儴鑳屾櫙bodyView /// </summary> public FrameLayout functionSceneBodyView; + /// <summary> + /// 涓儴鑳屾櫙bodyView + /// </summary> + public FrameLayout functionSceneAutoBodyView; /// <summary> /// 鐩稿悓鐨勮澶囧垪琛� /// </summary> @@ -86,7 +92,7 @@ /// <summary> /// 璁惧绫诲瀷RowLayout /// </summary> - private RowLayout typeRowLayout; + private FrameLayout typeRowLayout; /// <summary> /// 妤煎眰 /// </summary> @@ -158,245 +164,203 @@ { case DeviceType.OnOffOutput: //寮�鍏冲姛鑳� - if ((common as ToggleLight).DeviceStatusReport.CluterID == 6) + if (common.DeviceStatusReport.CluterID == 6) { var light = deviceUI.CommonDevice as ToggleLight; - light.DeviceStatusReport = (common as ToggleLight).DeviceStatusReport; - for (int j = 0; j < rowLayout.ChildrenCount; j++) + light.DeviceStatusReport = common.DeviceStatusReport; + if (light.DeviceStatusReport.AttriBute == null || light.DeviceStatusReport.AttriBute.Count == 0) { - var tempView = rowLayout.GetChildren(j); - if (tempView.Tag == null) - { - continue; - } - if (tempView.Tag.ToString() == deviceStatus_OnOffStatus) - { - //璁板綍銆佹洿鏂扮姸鎬� - if (light.DeviceStatusReport.AttriBute == null || light.DeviceStatusReport.AttriBute.Count == 0) - { - continue; - } - light.OnOffStatus = light.DeviceStatusReport.AttriBute[0].AttriButeData; - (tempView as Button).IsSelected = light.OnOffStatus == 1; - //璁板綍鍥炲鏃堕棿 - light.LastDateTime = DateTime.Now; - } + continue; } - } - if ((common as ToggleLight).DeviceStatusReport.CluterID == 3) - { - var light = deviceUI.CommonDevice as ToggleLight; - light.IsOnline = 1; - //璁板綍鍥炲鏃堕棿 + light.OnOffStatus = light.DeviceStatusReport.AttriBute[0].AttriButeData; + var row = rowLayout.GetChildren(0) as CategoryFunctionRow; + row.SetStatu(light.OnOffStatus == 1); + row.SetStatuText(deviceUI.GetDeviceStatu()); light.LastDateTime = DateTime.Now; - for (int j = 0; j < rowLayout.ChildrenCount; j++) - { - var tempView = rowLayout.GetChildren(j); - if (tempView.Tag == null) - { - continue; - } - if (tempView.Tag.ToString() == deviceStatus_Online) - { - (tempView as Button).IsSelected = light.IsOnline == 1; - } - } + } + if (common.DeviceStatusReport.CluterID == 3) + { + deviceUI.CommonDevice.IsOnline = 1; + deviceUI.CommonDevice.LastDateTime = DateTime.Now; + var row = rowLayout.GetChildren(0) as CategoryFunctionRow; + row.SetStatu(true); } break; case DeviceType.AirSwitch: //寮�鍏冲姛鑳� - if ((common as ZigBee.Device.AirSwitch).DeviceStatusReport.CluterID == 6) + if (common.DeviceStatusReport.CluterID == 6) { var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; - airSwitch.DeviceStatusReport = (common as ZigBee.Device.AirSwitch).DeviceStatusReport; - for (int j = 0; j < rowLayout.ChildrenCount; j++) + airSwitch.DeviceStatusReport = common.DeviceStatusReport; + if (airSwitch.DeviceStatusReport.AttriBute == null || airSwitch.DeviceStatusReport.AttriBute.Count == 0) { - var tempView = rowLayout.GetChildren(j); - if (tempView.Tag == null) - { - continue; - } - if (tempView.Tag.ToString() == deviceStatus_OnOffStatus) - { - //璁板綍銆佹洿鏂扮姸鎬� - if (airSwitch.DeviceStatusReport.AttriBute == null || airSwitch.DeviceStatusReport.AttriBute.Count == 0) - { - return; - } - airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData; - (tempView as Button).IsSelected = airSwitch.OnOffStatus == 1; - //璁板綍鍥炲鏃堕棿 - airSwitch.LastDateTime = DateTime.Now; - } + return; } - } - if ((common as ZigBee.Device.AirSwitch).DeviceStatusReport.CluterID == 3) - { - var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; - airSwitch.IsOnline = 1; - //璁板綍鍥炲鏃堕棿 + airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData; + var row = rowLayout.GetChildren(0) as CategoryFunctionRow; + row.SetStatu(airSwitch.OnOffStatus == 1); + row.SetStatuText(deviceUI.GetDeviceStatu()); airSwitch.LastDateTime = DateTime.Now; - for (int j = 0; j < rowLayout.ChildrenCount; j++) - { - var tempView = rowLayout.GetChildren(j); - if (tempView.Tag == null) - { - continue; - } - if (tempView.Tag.ToString() == deviceStatus_Online) - { - (tempView as Button).IsSelected = airSwitch.IsOnline == 1; - } - } + } + if (common.DeviceStatusReport.CluterID == 3) + { + deviceUI.CommonDevice.IsOnline = 1; + deviceUI.CommonDevice.LastDateTime = DateTime.Now; + var row = rowLayout.GetChildren(0) as CategoryFunctionRow; + row.SetStatu(true); } break; case DeviceType.WindowCoveringDevice: - if ((common as Rollershade).DeviceStatusReport.CluterID == 3) + + if (common.DeviceStatusReport.CluterID == 258) { - var rollerShape = deviceUI.CommonDevice as Rollershade; - //璁板綍鍥炲鏃堕棿 - rollerShape.LastDateTime = DateTime.Now; - rollerShape.IsOnline = 1; - for (int j = 0; j < rowLayout.ChildrenCount; j++) + if (common.DeviceStatusReport.AttriBute[0].AttributeId == 0) { - var tempView = rowLayout.GetChildren(j); - if (tempView.Tag == null) - { - continue; - } - if (tempView.Tag.ToString() == deviceStatus_Online) - { - (tempView as Button).IsSelected = rollerShape.IsOnline == 1; - } + //绐楀笜绫诲瀷 + var rollerShade = deviceUI.CommonDevice as Rollershade; + rollerShade.DeviceStatusReport = common.DeviceStatusReport; + rollerShade.WcdType = common.DeviceStatusReport.AttriBute[0].AttriButeData; + rollerShade.LastDateTime = DateTime.Now; } + if (common.DeviceStatusReport.AttriBute[0].AttributeId == 8) + { + var row = rowLayout.GetChildren(0) as CategoryFunctionForWinRow; + //绐楀笜鐧惧垎姣� + var rollerShade = deviceUI.CommonDevice as Rollershade; + rollerShade.DeviceStatusReport = common.DeviceStatusReport; + rollerShade.WcdCurrentPositionLiftPercentage = common.DeviceStatusReport.AttriBute[0].AttriButeData; + row.SetStatuText($"{Language.StringByID(R.MyInternationalizationString.Current)} { deviceUI.GetDeviceStatu()}"); + rollerShade.LastDateTime = DateTime.Now; + } + } + if (common.DeviceStatusReport.CluterID == 3) + { + deviceUI.CommonDevice.IsOnline = 1; + deviceUI.CommonDevice.LastDateTime = DateTime.Now; + var row = rowLayout.GetChildren(0) as CategoryFunctionForWinRow; + row.SetStatu(true); } break; case DeviceType.Thermostat: //AC鍔熻兘 - if ((common as ZigBee.Device.AC).DeviceStatusReport.CluterID == 513) + if (common.DeviceStatusReport.CluterID == 513) { - var attriButeList = (common as ZigBee.Device.AC).DeviceStatusReport.AttriBute; + var attriButeList = common.DeviceStatusReport.AttriBute; if (attriButeList == null || attriButeList.Count == 0) { return; } var ac = deviceUI.CommonDevice as ZigBee.Device.AC; - ac.DeviceStatusReport = (common as ZigBee.Device.AC).DeviceStatusReport; + ac.DeviceStatusReport = common.DeviceStatusReport; + + var curTemp = (attriButeList[0].AttriButeData / 100 < ACControlBase.Temperature_High || attriButeList[0].AttriButeData / 100 > ACControlBase.Temperature_Low) ? attriButeList[0].AttriButeData / 100 : ACControlBase.Temperature_Default; switch (attriButeList[0].AttributeId) { case 0: - //姝ゅ睘鎬ц〃鏄庡鍐呭綋鍓嶇殑娓╁害 * 100锛屽疄闄呮俯搴︿负鈥淟ocalTemperature / 100鈥濓紝鍗曚綅锛氣剝 - ac.currentLocalTemperature = attriButeList[0].AttriButeData / 100; + ac.currentLocalTemperature = curTemp; ac.LastDateTime = DateTime.Now; break; case 17: - //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勫埗鍐锋俯搴︼紝瀹為檯娓╁害涓衡�淐oolingSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆� - ac.currentCoolingSetpoint = attriButeList[0].AttriButeData / 100; + ac.currentCoolingSetpoint = curTemp; ac.LastDateTime = DateTime.Now; break; case 18: - //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勫埗鐑俯搴︼紝瀹為檯娓╁害涓衡�淗eatingSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆� - ac.currentHeatingSetpoint = attriButeList[0].AttriButeData / 100; + ac.currentHeatingSetpoint = curTemp; + ac.LastDateTime = DateTime.Now; + break; + + case 4096: + ac.currentAutoSetpoint = curTemp; 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 < rowLayout.ChildrenCount; j++) + 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++) { - var tempView = rowLayout.GetChildren(j); - if (tempView.Tag == null) - { - continue; - } - if (tempView.Tag.ToString() == deviceStatus_OnOffStatus) - { - if (ac.currentSystemMode == 0) - { - (tempView as Button).IsSelected = false; - } - else - { - (tempView as Button).IsSelected = true; - } - } + ac.listSupportMode[j] = Convert.ToInt32(modeStr[j]) == 49 ? 1 : 0; } + break; + + case 4097: + //杩囪檻缃戞竻娲楁爣蹇�:42 + ac.CleanStatu = attriButeList[0].AttriButeData == 42; break; } + var row = rowLayout.GetChildren(0) as CategoryFunctionRow; + row.SetStatu(ac.currentSystemMode != 0); + row.SetStatuText(deviceUI.GetDeviceStatu()); } - if ((common as ZigBee.Device.AC).DeviceStatusReport.CluterID == 3) + + if (common.DeviceStatusReport.CluterID == 514) + { + var ac = deviceUI.CommonDevice as ZigBee.Device.AC; + var attriButeList = common.DeviceStatusReport.AttriBute; + if (attriButeList == null || attriButeList.Count == 0) + { + return; + } + ac.DeviceStatusReport = common.DeviceStatusReport; + switch (attriButeList[0].AttributeId) + { + case 0: + ac.currentFanMode = attriButeList[0].AttriButeData; + ac.LastDateTime = DateTime.Now; + break; + case 4096: + ac.currentFanSwingMode = attriButeList[0].AttriButeData; + ac.LastDateTime = DateTime.Now; + break; + } + var row = rowLayout.GetChildren(0) as CategoryFunctionRow; + row.SetStatu(ac.currentSystemMode != 0); + row.SetStatuText(deviceUI.GetDeviceStatu()); + } + + if (common.DeviceStatusReport.CluterID == 3) { var ac = deviceUI.CommonDevice as ZigBee.Device.AC; ac.IsOnline = 1; - //璁板綍鍥炲鏃堕棿 ac.LastDateTime = DateTime.Now; - for (int j = 0; j < rowLayout.ChildrenCount; j++) - { - var tempView = rowLayout.GetChildren(j); - if (tempView.Tag == null) - { - continue; - } - if (tempView.Tag.ToString() == deviceStatus_Online) - { - (tempView as Button).IsSelected = ac.IsOnline == 1; - } - } + var row = rowLayout.GetChildren(0) as CategoryFunctionRow; + row.SetStatu(true); } break; case DeviceType.DimmableLight: //璋冨厜鐏姛鑳� - if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 6) + if (common.DeviceStatusReport.CluterID == 6) { - var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; - dimmableLight.DeviceStatusReport = (common as ZigBee.Device.DimmableLight).DeviceStatusReport; - for (int j = 0; j < rowLayout.ChildrenCount; j++) + var dimmableLight = deviceUI.CommonDevice as DimmableLight; + dimmableLight.DeviceStatusReport = common.DeviceStatusReport; + //璁板綍銆佹洿鏂扮姸鎬� + if (dimmableLight.DeviceStatusReport.AttriBute == null || dimmableLight.DeviceStatusReport.AttriBute.Count == 0) { - var tempView = rowLayout.GetChildren(j); - if (tempView.Tag == null) - { - continue; - } - if (tempView.Tag.ToString() == deviceStatus_OnOffStatus) - { - //璁板綍銆佹洿鏂扮姸鎬� - if (dimmableLight.DeviceStatusReport.AttriBute == null || dimmableLight.DeviceStatusReport.AttriBute.Count == 0) - { - return; - } - dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData; - (tempView as Button).IsSelected = dimmableLight.OnOffStatus == 1; - //璁板綍鍥炲鏃堕棿 - dimmableLight.LastDateTime = DateTime.Now; - } + continue; } - } - if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 3) - { - var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; - dimmableLight.IsOnline = 1; - //璁板綍鍥炲鏃堕棿 + dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData; + var row = rowLayout.GetChildren(0) as CategoryFunctionRow; + row.SetStatu(dimmableLight.OnOffStatus == 1); + row.SetStatuText(deviceUI.GetDeviceStatu()); dimmableLight.LastDateTime = DateTime.Now; - for (int j = 0; j < rowLayout.ChildrenCount; j++) - { - var tempView = rowLayout.GetChildren(j); - if (tempView.Tag == null) - { - continue; - } - if (tempView.Tag.ToString() == deviceStatus_Online) - { - (tempView as Button).IsSelected = dimmableLight.IsOnline == 1; - } - } + } + if (common.DeviceStatusReport.CluterID == 3) + { + deviceUI.CommonDevice.IsOnline = 1; + deviceUI.CommonDevice.LastDateTime = DateTime.Now; + var row = rowLayout.GetChildren(0) as CategoryFunctionRow; + row.SetStatu(true); } break; } @@ -429,77 +393,38 @@ switch (deviceUI.CommonDevice.Type) { case DeviceType.OnOffOutput: - var light = deviceUI.CommonDevice as ToggleLight; - light.IsOnline = (common as ToggleLight).IsOnline; - //璁板綍鍥炲鏃堕棿 - light.LastDateTime = DateTime.Now; - for (int j = 0; j < rowLayout.ChildrenCount; j++) - { - var tempView = rowLayout.GetChildren(j); - if (tempView.Tag == null) - { - continue; - } - if (tempView.Tag.ToString() == deviceStatus_Online) - { - (tempView as Button).IsSelected = light.IsOnline == 1; - } - } + deviceUI.CommonDevice.IsOnline = common.IsOnline; + var row = rowLayout.GetChildren(0) as CategoryFunctionRow; + row.SetStatu(deviceUI.CommonDevice.IsOnline == 1); + deviceUI.CommonDevice.LastDateTime = DateTime.Now; break; + case DeviceType.AirSwitch: - var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; - airSwitch.IsOnline = (common as ZigBee.Device.AirSwitch).IsOnline; - //璁板綍鍥炲鏃堕棿 - airSwitch.LastDateTime = DateTime.Now; - for (int j = 0; j < rowLayout.ChildrenCount; j++) - { - var tempView = rowLayout.GetChildren(j); - if (tempView.Tag == null) - { - continue; - } - if (tempView.Tag.ToString() == deviceStatus_Online) - { - (tempView as Button).IsSelected = airSwitch.IsOnline == 1; - } - } + deviceUI.CommonDevice.IsOnline = common.IsOnline; + var row1 = rowLayout.GetChildren(0) as CategoryFunctionRow; + row1.SetStatu(deviceUI.CommonDevice.IsOnline == 1); + deviceUI.CommonDevice.LastDateTime = DateTime.Now; break; + case DeviceType.WindowCoveringDevice: - var rollerShape = deviceUI.CommonDevice as Rollershade; - //璁板綍鍥炲鏃堕棿 - rollerShape.LastDateTime = DateTime.Now; - rollerShape.IsOnline = (common as Rollershade).IsOnline; - for (int j = 0; j < rowLayout.ChildrenCount; j++) - { - var tempView = rowLayout.GetChildren(j); - if (tempView.Tag == null) - { - continue; - } - if (tempView.Tag.ToString() == deviceStatus_Online) - { - (tempView as Button).IsSelected = rollerShape.IsOnline == 1; - } - } + deviceUI.CommonDevice.LastDateTime = DateTime.Now; + deviceUI.CommonDevice.IsOnline = common.IsOnline; + var row2 = rowLayout.GetChildren(0) as CategoryFunctionForWinRow; + row2.SetStatu(deviceUI.CommonDevice.IsOnline == 1); + break; + + case DeviceType.DimmableLight: + deviceUI.CommonDevice.LastDateTime = DateTime.Now; + deviceUI.CommonDevice.IsOnline = common.IsOnline; + var row3 = rowLayout.GetChildren(0) as CategoryFunctionRow; + row3.SetStatu(deviceUI.CommonDevice.IsOnline == 1); break; case DeviceType.Thermostat: - var ac = deviceUI.CommonDevice as ZigBee.Device.AC; - //璁板綍鍥炲鏃堕棿 - ac.LastDateTime = DateTime.Now; - ac.IsOnline = (common as ZigBee.Device.AC).IsOnline; - for (int j = 0; j < rowLayout.ChildrenCount; j++) - { - var tempView = rowLayout.GetChildren(j); - if (tempView.Tag == null) - { - continue; - } - if (tempView.Tag.ToString() == deviceStatus_Online) - { - (tempView as Button).IsSelected = ac.IsOnline == 1; - } - } + deviceUI.CommonDevice.LastDateTime = DateTime.Now; + deviceUI.CommonDevice.IsOnline = common.IsOnline; + var row5 = rowLayout.GetChildren(0) as CategoryFunctionRow; + row5.SetStatu(deviceUI.CommonDevice.IsOnline == 1); break; } } @@ -531,28 +456,7 @@ { BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor; instance = this; - } - - public void InitFloor() - { - Config.Instance.Home.FloorDics.Clear(); - Config.Instance.Home.FloorDics.Add("Floor1", "涓�妤�"); - Config.Instance.Home.FloorDics.Add("Floor2", "浜屾ゼ"); - Config.Instance.Home.FloorDics.Add("Floor3", "涓夋ゼ"); - Config.Instance.Home.FloorDics.Add("Floor4", "鍥涙ゼ"); - Config.Instance.Home.FloorDics.Add("Floor5", "鈶ゆゼ"); - if (string.IsNullOrEmpty(Config.Instance.Home.CurrentFloorId)) - { - if (Config.Instance.Home.FloorDics.Count > 0) - { - foreach (var floor in Config.Instance.Home.FloorDics) - { - Config.Instance.Home.CurrentFloorId = floor.Key; - break; - } - } - } - //Config.Instance.Save(); + ZbGateway.StatusList.Add(this); } /// <summary> @@ -561,8 +465,6 @@ /// <param name="selectedBtn">閫変腑閭d釜鐣岄潰 0--鍔熻兘 1--鍦烘櫙 2--鑷姩鍖� </param> public void Show(int selectedBtn = 1) { - - ZbGateway.StatusList.Add(this); RemoveAll(); #region topview @@ -603,7 +505,7 @@ var midFL = new FrameLayout { Y = topView.Bottom, - Height = Application.GetRealHeight(CommonPage.AppRealHeight - CommonPage.TabbarHeight) - topView.Bottom, + Height = Application.GetRealHeight(1549), BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor }; AddChidren(midFL); @@ -614,18 +516,17 @@ BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor }; midFL.AddChidren(functionSceneAutoBG); - //鍔熻兘 - functionBtn = new ButtonLineForm(CommonFormResouce.X_Left, 34, 150, 68); - functionSceneAutoBG.AddChidren(functionBtn); - functionBtn.Init(); - functionBtn.SetTitle(R.MyInternationalizationString.Function); //鍦烘櫙 - sceneBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 + 20, 34, 150, 68); + sceneBtn = new ButtonLineForm(CommonFormResouce.X_Left, 34, 150, 68); functionSceneAutoBG.AddChidren(sceneBtn); sceneBtn.Init(); sceneBtn.SetTitle(R.MyInternationalizationString.Scence); - + //鍔熻兘 + functionBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 + 20, 34, 150, 68); + functionSceneAutoBG.AddChidren(functionBtn); + functionBtn.Init(); + functionBtn.SetTitle(R.MyInternationalizationString.Function); //鑷姩鍖� automationBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 * 2 + 20, 34, 150, 68); automationBtn.Init(); @@ -662,80 +563,13 @@ functionSceneAutoBG.AddChidren(selectFloorBtn); } - var roomFL = new HorizontalScrolViewLayout() + functionSceneAutoBodyView = new FrameLayout { - X = Application.GetRealWidth(CommonFormResouce.X_Left), Y = functionSceneAutoBG.Bottom, - Height = Application.GetRealHeight(167), - Width = Application.GetRealWidth(CommonPage.AppRealWidth - CommonFormResouce.X_Left), + Height = Application.GetRealHeight(1423), BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor }; - midFL.AddChidren(roomFL); - - Button curBtn = new Button(); - for (int i = 0; i < Config.Instance.Home.RoomFilePathList.Count; i++) - { - var roomFilePath = Config.Instance.Home.RoomFilePathList[i]; - var room = Shared.Common.Room.GetRoomByFilePath(roomFilePath); - if (room == null) - { - continue; - } - var row = new RowLayout() - { - Width = Application.GetRealWidth(187 + 50), - Height = Application.GetRealHeight(167), - LineColor = ZigbeeColor.Current.GXCGrayBackgroundColor - }; - 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 - }; - row.AddChidren(roomBtn); - if (Shared.Common.Room.CurrentRoom == null) - { - continue; - } - if (Shared.Common.Room.CurrentRoom.FileName == roomFilePath) - { - roomBtn.IsSelected = true; - curBtn = roomBtn; - } - - roomBtn.MouseUpEventHandler += (sender, e) => - { - if ((sender as Button) == curBtn) - { - return; - } - (sender as Button).IsSelected = true; - curBtn.IsSelected = false; - curBtn = (sender as Button); - Shared.Common.Room.CurrentRoom = room; - }; - } - - - //鍔熻兘鍜屽満鏅痓odyView - functionSceneBodyView = new FrameLayout() - { - Y = roomFL.Bottom, - Height = Application.GetRealHeight(CommonPage.AppRealHeight - CommonPage.TabbarHeight) - functionBtn.Height - topView.Height - roomFL.Height - CommonPage.LineHeight, - BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor - }; - midFL.AddChidren(functionSceneBodyView); + midFL.AddChidren(functionSceneAutoBodyView); if (selectedBtn == 0) { @@ -777,7 +611,7 @@ addBtn.MouseUpEventHandler += AddBtn_MouseUpEventHandler; selectFloorBtn.MouseUpEventHandler += SelectedFloor_MouseUpEventHandler; - floorBtn.MouseUpEventHandler += SelectedFloor_MouseUpEventHandler; + floorBtn.MouseUpEventHandler+= SelectedFloor_MouseUpEventHandler; } @@ -788,12 +622,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(599, 357); - floors.FloorAction += (floorName) => + floors.Init(580,330,Direction.Right); + floors.changeFloor = true; + floors.FloorAction += (floorId) => { - floorBtn.Text = floorName; + floorBtn.Text = Config.Instance.Home.GetFloorNameById(floorId); + RefreshBodyView(); }; } @@ -831,7 +667,12 @@ /// <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()); + } functionBtn.IsSelected = false; sceneBtn.IsSelected = false; automationBtn.IsSelected = true; @@ -870,12 +711,6 @@ var scene = new CategoryAddScene(); UserView.HomePage.Instance.AddChidren(scene); UserView.HomePage.Instance.PageIndex += 1; - CategoryAddScene.sceneTargetDevicesList?.Clear(); - CategoryAddScene.SceneText = ""; - CategoryAddScene.CurrentRoom = Shared.Common.Room.CurrentRoom; - CategoryAddScene.ModifySceneUI = null; - CategoryAddScene.Modify = false; - CategoryAddScene.ImagePath = "Scene/Scene0.png"; scene.Show(); } @@ -887,11 +722,21 @@ //new涓�涓柊閫昏緫瀵硅薄锛� Common.Logic.CurrentLogic = new Common.Logic(); Common.Logic.CurrentLogic.IsEnable = 1;//榛樿涓哄紑 + Common.Logic.CurrentLogic.LogicCustomPushText = Language.StringByID(MyInternationalizationString.defaulttext); Common.Logic.CurrentLogic.LogicName = Language.StringByID(MyInternationalizationString.automation1); var addLogicPage = new Shared.Phone.Device.Logic.AddLogicPage(); UserView.HomePage.Instance.AddChidren(addLogicPage); UserView.HomePage.Instance.PageIndex += 1; addLogicPage.Show(); + } + /// <summary> + /// HidenFloor + /// </summary> + /// <param name="statu"></param> + private void HidenFloor(bool statu) + { + selectFloorBtn.Visible = !statu; + floorBtn.Visible = !statu; } #endregion @@ -902,17 +747,20 @@ /// </summary> public void RefreshBodyView() { - functionSceneBodyView.RemoveAll(); + functionSceneAutoBodyView.RemoveAll(); if (functionBtn.IsSelected) { + HidenFloor(false); ShowFunction(); } else if (sceneBtn.IsSelected) { + HidenFloor(false); ShowScene(); } else if (automationBtn.IsSelected) { + HidenFloor(true); ShowAutotion(); } } @@ -925,16 +773,49 @@ /// </summary> public void ShowFunction() { + AddRoomView(); + } + + /// <summary> + /// 鎻愮ず娌℃湁鍔熻兘 + /// </summary> + private void ShowNoFunctionTip() + { + var noFunction = new Button() + { + Y=Application.GetRealHeight(320), + Width=Application.GetMinRealAverage(757), + Height = Application.GetMinRealAverage(435), + UnSelectedImagePath="Item/NoFunction.png", + Gravity = Gravity.CenterHorizontal + }; + functionSceneBodyView.AddChidren(noFunction); + + var noFunctionTip = new Button() + { + Y = noFunction.Bottom + Application.GetRealHeight(32), + Height = Application.GetRealHeight(200), + Width = Application.GetRealWidth(700), + Gravity = Gravity.CenterHorizontal, + Text = Language.StringByID(R.MyInternationalizationString.NoFunction).Replace("{\\r\\n}","\r\n"), + TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, + TextAlignment = TextAlignment.Center, + IsMoreLines=true + }; + functionSceneBodyView.AddChidren(noFunctionTip); + } + + /// <summary> + /// RefreshFunction + /// </summary> + /// <param name="room"></param> + private void RefreshFunction(Common.Room room) + { //绉婚櫎鐩戝惉 RemoveAllUpdateControlDeviceStatuAction(); - //閫夋嫨鍔熻兘--鐩存帴浠庢埧闂寸殑devicelist涓幏鍙� - Shared.Common.Room.GetAllRoomDeviceUIList(); - Shared.Common.Room.GetAllRoomDeviceTypeList(); - if (Common.Room.AllRoomDeviceUIList == null) - { - return; - } - if (Common.Room.AllRoomDeviceUIList.Count == 0) + functionSceneBodyView.RemoveAll(); + + if (room.DeviceUIList.Count == 0) { ShowNoFunctionTip(); } @@ -952,21 +833,676 @@ deviceListScrolView = new VerticalScrolViewLayout { X = Application.GetRealWidth(CommonFormResouce.X_Left), - Y = functionTypeScrowView.Bottom + Application.GetRealHeight(50), + Y = Application.GetRealHeight(35+275), Width = Application.GetRealWidth(1028), - Height = functionSceneBodyView.Height - Application.GetRealHeight(279 + 50) - 1, + Height = Application.GetRealHeight(938) - 1, BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor - }; functionSceneBodyView.AddChidren(deviceListScrolView); tempFunctionTypeBtn = new FunctionButton(); - foreach (var deviceType in Common.Room.AllRoomDeviceTypeList) + EventHandler<MouseEventArgs> ShowSameTypeFunction = (object typeSender, MouseEventArgs mouseEventArgs) => { - typeRowLayout = new RowLayout() + tempFunctionTypeBtn.IsSelected = false; + tempFunctionTypeBtn = (typeSender as Button).Parent as FunctionButton; + ((typeSender as Button).Parent as FunctionButton).IsSelected = true; + + deviceListScrolView.RemoveAll(); + + var sameTypeList = new List<DeviceUI> { }; + foreach (var devieceUI in room.DeviceUIList) + { + if (devieceUI == null || devieceUI.CommonDevice == null) + { + continue; + } + if (devieceUI.CommonDevice.Type.ToString() == (typeSender as Button).Tag.ToString()) + { + if (!sameTypeList.Contains(devieceUI)) + { + sameTypeList.Add(devieceUI); + } + } + } + foreach (var deviceUI in sameTypeList) + { + //鍒犻櫎璁惧 + EventHandler<MouseEventArgs> delEvent = (delSender, delE) => + { + var alert = new CustomAlert(); + AddChidren(alert); + alert.Show(Language.StringByID(R.MyInternationalizationString.ConfirmDelete)); + alert.ResultEventHandler += (e2) => + { + if (e2) + { + Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.CommonDevice); + deviceListScrolView.RemoveViewByTag((delSender as Button).Tag); + sameTypeList.Remove(deviceUI); + if (sameTypeList.Count == 0) + { + RefreshBodyView(); + } + } + }; + }; + EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) => + { + var detailInfo = new Device.CommonForm.DeviceDetailInfo { }; + UserView.HomePage.Instance.AddChidren(detailInfo); + UserView.HomePage.Instance.PageIndex += 1; + detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom); + detailInfo.action = RefreshBodyView; + }; + + if (deviceUI.CommonDevice.Type == DeviceType.OnOffOutput) + { + //鐏� + var light = deviceUI.CommonDevice as ToggleLight; + //琛ヤ笂闈炶繙绋� + if (light.Gateway == null) + { + continue; + } + if (light.Gateway.IsVirtual) + { + UserHomeView.ReadStatus(light, () => + { + light.ReadOnOffStatus(); + light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); + }); + } + else + { + //闃叉鐭椂闂村唴澶氭璇诲彇鐘舵�� + if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds) + { + light.ReadOnOffStatus(); + light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); + } + } + + var deviceTypeRowLayout = new RowLayout() + { + Height = Application.GetRealHeight(129 + 35), + LineColor = ZigbeeColor.Current.GXCBackgroundColor, + Tag = deviceUI + }; + deviceListScrolView.AddChidren(deviceTypeRowLayout); + + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); + deviceRow.SetOnLineStatu(light.IsOnline == 1); + deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); + deviceRow.SetStatu(light.OnOffStatus == 1); + deviceTypeRowLayout.AddChidren(deviceRow); + + deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => + { + zbGateway = deviceUI.CommonDevice.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); + (send2 as Button).IsSelected = !(send2 as Button).IsSelected; + deviceRow.IsSelected = (send2 as Button).IsSelected; + if ((send2 as Button).IsSelected) + { + light.SwitchControl(1); + } + else + { + light.SwitchControl(0); + } + deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); + //鎺у埗寤舵椂鍥炶皟 + DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + }; + + deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => + { + if (deviceUI.CommonDevice.DfunctionType == DeviceFunctionType.A寮�鍏�) + { + var lightControl = new Phone.Device.Light.OnOffControl(); + UserView.HomePage.Instance.AddChidren(lightControl); + UserView.HomePage.Instance.PageIndex += 1; + //lightControl.action = RefreshBodyView; + lightControl.Show(deviceUI, room); + } + else if (deviceUI.CommonDevice.DfunctionType == DeviceFunctionType.A鎻掑骇) + { + var lightControl = new Phone.Device.Light.PlugControl(); + UserView.HomePage.Instance.AddChidren(lightControl); + UserView.HomePage.Instance.PageIndex += 1; + //lightControl.action = RefreshBodyView; + lightControl.Show(deviceUI, room); + } + else + { + var lightControl = new Phone.Device.Light.LightControl(); + UserView.HomePage.Instance.AddChidren(lightControl); + UserView.HomePage.Instance.PageIndex += 1; + //lightControl.action = RefreshBodyView; + lightControl.Show(deviceUI, room); + } + }; + + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = deviceUI, + Radius = 0 + }; + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + + var delBtn = new Device.CommonForm.RowLayoutDeleteButton() + { + Tag = deviceUI, + Radius = 0 + }; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + } + else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.AirSwitch) + { + //绌烘皵寮�鍏� + var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; + //琛ヤ笂闈炶繙绋� + if (airSwitch.Gateway == null) + { + continue; + } + if (airSwitch.Gateway.IsVirtual) + { + UserHomeView.ReadStatus(airSwitch, () => + { + airSwitch.ReadOnOffStatus(); + airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); + }); + } + else + { + if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + airSwitch.ReadOnOffStatus(); + airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); + } + } + + var deviceTypeRowLayout = new RowLayout() + { + Height = Application.GetRealHeight(129 + 35), + LineColor = ZigbeeColor.Current.GXCBackgroundColor, + Tag = deviceUI + }; + deviceListScrolView.AddChidren(deviceTypeRowLayout); + + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); + deviceRow.SetOnLineStatu(airSwitch.IsOnline == 1); + deviceRow.SetStatu(airSwitch.OnOffStatus == 1); + deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); + deviceTypeRowLayout.AddChidren(deviceRow); + + deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => + { + zbGateway = deviceUI.CommonDevice.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); + + (send2 as Button).IsSelected = !(send2 as Button).IsSelected; + if ((send2 as Button).IsSelected) + { + airSwitch.SwitchControl(1); + } + else + { + airSwitch.SwitchControl(0); + } + deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); + //鎺у埗寤舵椂鍥炶皟 + DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + }; + + deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => + { + + var lightControl = new Phone.Device.Light.AirSwitchControl(); + UserView.HomePage.Instance.AddChidren(lightControl); + UserView.HomePage.Instance.PageIndex += 1; + //lightControl.action = RefreshBodyView; + lightControl.Show(deviceUI, room); + }; + + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = deviceUI, + Radius = 0 + }; + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + + var delBtn = new Device.CommonForm.RowLayoutDeleteButton() + { + Tag = deviceUI, + Radius = 0 + }; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + } + else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.DimmableLight) + { + //璋冨厜鐏� + var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; + //琛ヤ笂闈炶繙绋� + if (dimmableLight.Gateway == null) + { + continue; + } + if (dimmableLight.Gateway.IsVirtual) + { + UserHomeView.ReadStatus(dimmableLight, () => + { + dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); + dimmableLight.ReadOnOffStatus(); + dimmableLight.ReadLevel(); + }); + } + else + { + if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); + dimmableLight.ReadOnOffStatus(); + dimmableLight.ReadLevel(); + } + } + + var deviceTypeRowLayout = new RowLayout() + { + Height = Application.GetRealHeight(129 + 35), + LineColor = ZigbeeColor.Current.GXCBackgroundColor, + Tag = deviceUI + }; + deviceListScrolView.AddChidren(deviceTypeRowLayout); + + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); + deviceRow.SetOnLineStatu(dimmableLight.IsOnline == 1); + deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); + deviceRow.SetStatu(dimmableLight.OnOffStatus == 1); + deviceTypeRowLayout.AddChidren(deviceRow); + + deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => + { + zbGateway = deviceUI.CommonDevice.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); + + (send2 as Button).IsSelected = !(send2 as Button).IsSelected; + if ((send2 as Button).IsSelected) + { + dimmableLight.SwitchControl(1); + } + else + { + dimmableLight.SwitchControl(0); + } + deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); + //鎺у埗寤舵椂鍥炶皟 + DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + }; + + deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => + { + var dimmableLightControl = new Phone.Device.Light.DimmableLightControl(); + UserView.HomePage.Instance.AddChidren(dimmableLightControl); + UserView.HomePage.Instance.PageIndex += 1; + UserView.HomePage.Instance.ScrollEnabled = false; + //dimmableLightControl.action = RefreshBodyView; + dimmableLightControl.Show(deviceUI, room); + }; + + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = deviceUI, + Radius = 0 + }; + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + + var delBtn = new Device.CommonForm.RowLayoutDeleteButton() + { + Tag = deviceUI, + Radius = 0 + }; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + + } + else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.Thermostat) + { + //绌鸿皟 + var ac = deviceUI.CommonDevice as ZigBee.Device.AC; + //琛ヤ笂闈炶繙绋� + if (ac.Gateway == null) + { + continue; + } + if (ac.Gateway.IsVirtual) + { + //鍙戦�佽鍙栫姸鎬佸懡浠� + UserView.UserHomeView.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(); + ac.ReadCleanStatu(); + }); + } + else + { + //闃叉鐭椂闂村唴澶氭璇诲彇璁惧鐘舵�� + 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(); + ac.ReadCleanStatu(); + } + } + + var deviceTypeRowLayout = new RowLayout() + { + Height = Application.GetRealHeight(129 + 35), + LineColor = ZigbeeColor.Current.GXCBackgroundColor, + Tag = deviceUI + }; + deviceListScrolView.AddChidren(deviceTypeRowLayout); + + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); + deviceRow.SetOnLineStatu(ac.IsOnline == 1); + deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); + deviceRow.SetStatu(ac.currentSystemMode != 1); + deviceTypeRowLayout.AddChidren(deviceRow); + + deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => + { + zbGateway = deviceUI.CommonDevice.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); + + (send2 as Button).IsSelected = !(send2 as Button).IsSelected; + if ((send2 as Button).IsSelected) + { + ac.Open(); + } + else + { + ac.Close(); + } + deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); + //鎺у埗寤舵椂鍥炶皟 + DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + }; + + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = deviceUI, + Radius = 0 + }; + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + + var delBtn = new Device.CommonForm.RowLayoutDeleteButton() + { + Tag = deviceUI, + Radius = 0 + }; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + + deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => + { + var acControl = new Phone.Device.AC.ACControl(); + UserView.HomePage.Instance.AddChidren(acControl); + UserView.HomePage.Instance.PageIndex += 1; + UserView.HomePage.Instance.ScrollEnabled = false; + //rollerShadeControl.action = RefreshBodyView; + acControl.Show(deviceUI, room); + }; + } + else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.WindowCoveringDevice) + { + //鍗峰笜 + var rollerShade = deviceUI.CommonDevice as ZigBee.Device.Rollershade; + //涓嶄笂闈炶繙绋� + if (rollerShade.Gateway == null) + { + continue; + } + if (rollerShade.Gateway.IsVirtual) + { + UserHomeView.ReadStatus(rollerShade, () => + { + rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); + rollerShade.ReadWcdCurrentPositionLiftPercentage(); + }); + } + else + { + //闃叉鐭椂闂村唴澶氭璇诲彇 + if ((DateTime.Now - rollerShade.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); + rollerShade.ReadWcdCurrentPositionLiftPercentage(); + } + } + + var deviceTypeRowLayout = new RowLayout() + { + Height = Application.GetRealHeight(129 + 35), + LineColor = ZigbeeColor.Current.GXCBackgroundColor, + Tag = deviceUI + }; + deviceListScrolView.AddChidren(deviceTypeRowLayout); + + var deviceRow = new CategoryFunctionForWinRow(0, 35); + deviceRow.Init(deviceUI); + deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); + deviceRow.SetOnLineStatu(rollerShade.IsOnline == 1); + deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); + deviceRow.SetStatu(rollerShade.WcdCurrentPositionLiftPercentage != 0); + deviceRow.SetRollerShadeIcon(rollerShade.WcdType); + deviceTypeRowLayout.AddChidren(deviceRow); + + if (rollerShade.WcdType == -1) + { + CommonPage.Loading.Start(); + new System.Threading.Thread(() => + { + Rollershade.ReadWcdTypeAction(rollerShade, () => + { + Application.RunOnMainThread(() => + { + deviceRow.SetRollerShadeIcon(rollerShade.WcdType); + CommonPage.Loading.Hide(); + }); + }); + }) + { IsBackground = true }.Start(); + } + + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = deviceUI, + Radius = 0 + }; + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + + var delBtn = new Device.CommonForm.RowLayoutDeleteButton() + { + Tag = deviceUI, + Radius = 0 + }; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + + deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => + { + var rollerShadeControl = new Phone.Device.Curtain.RollerShadeControl(); + UserView.HomePage.Instance.AddChidren(rollerShadeControl); + UserView.HomePage.Instance.PageIndex += 1; + UserView.HomePage.Instance.ScrollEnabled = false; + //rollerShadeControl.action = RefreshBodyView; + rollerShadeControl.Show(deviceUI, room); + }; + } + else if(deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.DoorLock) + { + var deviceTypeRowLayout = new RowLayout() + { + Height = Application.GetRealHeight(129 + 35), + LineColor = ZigbeeColor.Current.GXCBackgroundColor, + Tag = deviceUI + }; + deviceListScrolView.AddChidren(deviceTypeRowLayout); + + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); + deviceRow.SetOnLineStatu(deviceUI.CommonDevice.IsOnline == 1); + deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); + deviceRow.HideSwitchBtn(true); + deviceTypeRowLayout.AddChidren(deviceRow); + + + deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => + { + var userDoorLockPage = new UserDoorLockPage(room, deviceUI); + HomePage.Instance.AddChidren(userDoorLockPage); + HomePage.Instance.PageIndex += 1; + userDoorLockPage.Show(); + }; + + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = deviceUI + }; + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + + var delBtn = new Device.CommonForm.RowLayoutDeleteButton() + { + Tag = deviceUI + }; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + } + else + { + var deviceTypeRowLayout = new RowLayout() + { + Height = Application.GetRealHeight(129 + 35), + LineColor = ZigbeeColor.Current.GXCBackgroundColor, + Tag = deviceUI + }; + deviceListScrolView.AddChidren(deviceTypeRowLayout); + + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); + deviceRow.SetOnLineStatu(deviceUI.CommonDevice.IsOnline == 1); + deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); + deviceRow.HideSwitchBtn(true); + deviceTypeRowLayout.AddChidren(deviceRow); + + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = deviceUI + }; + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + + var delBtn = new Device.CommonForm.RowLayoutDeleteButton() + { + Tag = deviceUI + }; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + } + } + }; + + foreach (var deviceType in Common.Room.GetdeviceTypes(room)) + { + typeRowLayout = new FrameLayout() { Width = Application.GetRealWidth(CommonPage.AppRealWidth / 5), - LineColor = ZigbeeColor.Current.GXCBackgroundColor, Tag = deviceType }; functionTypeScrowView.AddChidren(typeRowLayout); @@ -979,12 +1515,10 @@ functionTypeIMG.SetTitle(DeviceUI.GetDeviceTypeName(deviceType)); typeRowLayout.AddChidren(functionTypeIMG); + functionTypeIMG.ClickBtn.MouseUpEventHandler += ShowSameTypeFunction; - functionTypeIMG.ImageBtn.MouseUpEventHandler += ShowSameTypeFunction; - functionTypeIMG.NameBtn.MouseUpEventHandler += ShowSameTypeFunction; - functionTypeIMG.ImageBG.MouseUpEventHandler += ShowSameTypeFunction; - if (deviceType == Shared.Common.Room.AllRoomDeviceUIList[0].CommonDevice.Type) + if (deviceType == room.DeviceUIList[0].CommonDevice.Type) { ShowSameTypeFunction(functionTypeIMG.ImageBtn, null); } @@ -993,552 +1527,90 @@ } /// <summary> - /// 鏄剧ず鐩稿悓绫诲瀷鐨勫姛鑳� + /// AddRoomView /// </summary> - /// <param name="typeSender">typeSender.</param> - /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param> - private void ShowSameTypeFunction(object typeSender, MouseEventArgs mouseEventArgs) + private void AddRoomView() { - //閫夋嫨鍔熻兘--鐩存帴浠庢埧闂寸殑devicelist涓幏鍙� - Shared.Common.Room.GetAllRoomDeviceUIList(); - tempFunctionTypeBtn.IsSelected = false; - tempFunctionTypeBtn = (typeSender as Button).Parent as FunctionButton; - ((typeSender as Button).Parent as FunctionButton).IsSelected = true; - - deviceListScrolView.RemoveAll(); - - var sameTypeList = new List<DeviceUI> { }; - foreach (var devieceUI in Common.Room.AllRoomDeviceUIList) + var roomFL = new HorizontalScrolViewLayout() { - if (devieceUI == null || devieceUI.CommonDevice == null) - { - continue; - } - if (devieceUI.CommonDevice.Type.ToString() == (typeSender as Button).Tag.ToString()) - { - if (!sameTypeList.Contains(devieceUI)) - { - sameTypeList.Add(devieceUI); - } - } - } - foreach (var deviceUI in sameTypeList) - { - //鍒犻櫎璁惧 - EventHandler<MouseEventArgs> delEvent = (delSender, delE) => - { - var alert = new CustomAlert(); - AddChidren(alert); - alert.Show(Language.StringByID(R.MyInternationalizationString.ConfirmDelete)); - alert.ResultEventHandler += (e2) => - { - if (e2) - { - Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.CommonDevice); - deviceListScrolView.RemoveViewByTag((delSender as Button).Tag); - sameTypeList.Remove(deviceUI); - if (sameTypeList.Count == 0) - { - RefreshBodyView(); - } - } - }; - }; - EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) => - { - var detailInfo = new Device.CommonForm.DeviceDetailInfo { }; - UserView.HomePage.Instance.AddChidren(detailInfo); - UserView.HomePage.Instance.PageIndex += 1; - detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom); - detailInfo.action = RefreshBodyView; - }; - - if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.OnOffOutput) - { - //鐏� - var light = deviceUI.CommonDevice as ZigBee.Device.ToggleLight; - //琛ヤ笂闈炶繙绋� - if (light.Gateway == null) - { - continue; - } - if (light.Gateway.IsVirtual) - { - UserHomeView.ReadStatus(light, () => - { - light.ReadOnOffStatus(); - light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - }); - } - else - { - //闃叉鐭椂闂村唴澶氭璇诲彇鐘舵�� - if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds) - { - light.ReadOnOffStatus(); - light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - } - } - - var deviceTypeRowLayout = new RowLayout() - { - Height = Application.GetRealHeight(127 + 35), - LineColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag = deviceUI - }; - deviceListScrolView.AddChidren(deviceTypeRowLayout); - - var deviceRow = new FunctionRow(0, 35); - deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); - deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); - deviceRow.SetStatu(light.IsOnline == 1); - deviceTypeRowLayout.AddChidren(deviceRow); - - - deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => - { - zbGateway = deviceUI.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); - (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected; - if ((send2 as CommonForm.SelectedStatuButton).IsSelected) - { - light.SwitchControl(1); - } - else - { - light.SwitchControl(0); - } - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - - var editBtn = new CommonForm.RowLayoutEditButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - } - else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.AirSwitch) - { - //绌烘皵寮�鍏� - var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; - //琛ヤ笂闈炶繙绋� - if (airSwitch.Gateway == null) - { - continue; - } - if (airSwitch.Gateway.IsVirtual) - { - UserHomeView.ReadStatus(airSwitch, () => - { - airSwitch.ReadOnOffStatus(); - airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - }); - } - else - { - if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) - { - airSwitch.ReadOnOffStatus(); - airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - } - } - - var deviceTypeRowLayout = new RowLayout() - { - Height = Application.GetRealHeight(127 + 35), - LineColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag = deviceUI - }; - deviceListScrolView.AddChidren(deviceTypeRowLayout); - - var deviceRow = new FunctionRow(0, 35); - deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); - deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); - deviceRow.SetStatu(airSwitch.IsOnline == 1); - deviceTypeRowLayout.AddChidren(deviceRow); - - deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => - { - zbGateway = deviceUI.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); - - (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected; - if ((send2 as CommonForm.SelectedStatuButton).IsSelected) - { - airSwitch.SwitchControl(1); - } - else - { - airSwitch.SwitchControl(0); - } - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - - var editBtn = new CommonForm.RowLayoutEditButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - } - else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.DimmableLight) - { - //璋冨厜鐏� - var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; - //琛ヤ笂闈炶繙绋� - if (dimmableLight.Gateway == null) - { - continue; - } - if (dimmableLight.Gateway.IsVirtual) - { - UserHomeView.ReadStatus(dimmableLight, () => - { - dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - dimmableLight.ReadOnOffStatus(); - dimmableLight.ReadLevel(); - }); - } - else - { - if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) - { - dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - dimmableLight.ReadOnOffStatus(); - dimmableLight.ReadLevel(); - } - } - - var deviceTypeRowLayout = new RowLayout() - { - Height = Application.GetRealHeight(127 + 35), - LineColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag = deviceUI - }; - deviceListScrolView.AddChidren(deviceTypeRowLayout); - - var deviceRow = new FunctionRow(0, 35); - deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); - deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); - deviceRow.SetStatu(dimmableLight.IsOnline == 1); - deviceTypeRowLayout.AddChidren(deviceRow); - - deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => - { - zbGateway = deviceUI.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); - - (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected; - if ((send2 as CommonForm.SelectedStatuButton).IsSelected) - { - dimmableLight.SwitchControl(1); - } - else - { - dimmableLight.SwitchControl(0); - } - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - - var editBtn = new CommonForm.RowLayoutEditButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - - } - else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.Thermostat) - { - //绌鸿皟 - var ac = deviceUI.CommonDevice as ZigBee.Device.AC; - //琛ヤ笂闈炶繙绋� - if (ac.Gateway == null) - { - continue; - } - if (ac.Gateway.IsVirtual) - { - //鍙戦�佽鍙栫姸鎬佸懡浠� - UserView.UserHomeView.ReadStatus(ac, () => - { - ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - ac.ReadFanMode(); - ac.ReadSystemMode(); - ac.ReadLocalTemperature(); - ac.ReadCoolingSetpoint(); - ac.ReadHeatingSetpoint(); - }); - } - 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(); - } - } - - var deviceTypeRowLayout = new RowLayout() - { - Height = Application.GetRealHeight(127 + 35), - LineColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag = deviceUI - }; - deviceListScrolView.AddChidren(deviceTypeRowLayout); - - var deviceRow = new FunctionRow(0, 35); - deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); - deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); - deviceRow.SetStatu(ac.IsOnline == 1); - deviceTypeRowLayout.AddChidren(deviceRow); - - deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => - { - zbGateway = deviceUI.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); - - (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected; - if ((send2 as CommonForm.SelectedStatuButton).IsSelected) - { - ac.Open(); - } - else - { - ac.Close(); - } - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - - var editBtn = new CommonForm.RowLayoutEditButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - } - else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.WindowCoveringDevice) - { - //鍗峰笜 - var rollerShade = deviceUI.CommonDevice as ZigBee.Device.Rollershade; - //涓嶄笂闈炶繙绋� - if (rollerShade.Gateway == null) - { - continue; - } - if (rollerShade.Gateway.IsVirtual) - { - UserHomeView.ReadStatus(rollerShade, () => - { - rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - }); - } - else - { - //闃叉鐭椂闂村唴澶氭璇诲彇 - if ((DateTime.Now - rollerShade.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) - { - rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - } - } - - - var deviceTypeRowLayout = new RowLayout() - { - Height = Application.GetRealHeight(127 + 35), - LineColor = ZigbeeColor.Current.GXCLineColor, - Tag = deviceUI - }; - deviceListScrolView.AddChidren(deviceTypeRowLayout); - - var deviceRow = new FunctionRow(0, 35); - deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); - deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); - deviceRow.SetStatu(rollerShade.IsOnline == 1); - deviceTypeRowLayout.AddChidren(deviceRow); - - var editBtn = new CommonForm.RowLayoutEditButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() - { - Tag = deviceUI, - Radius = 0 - }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; - - - deviceRow.SwitchBtn.MouseUpEventHandler += (sender, e) => - { - zbGateway = deviceUI.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice); - - (sender as CommonForm.SelectedStatuButton).IsSelected = !(sender as CommonForm.SelectedStatuButton).IsSelected; - if ((sender as CommonForm.SelectedStatuButton).IsSelected) - { - rollerShade.CurtainUpDownStopControl(0); - } - else - { - rollerShade.CurtainUpDownStopControl(1); - } - - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - } - else - { - - } - } - } - - /// <summary> - /// 鎻愮ず娌℃湁鍔熻兘 - /// </summary> - private void ShowNoFunctionTip() - { - var noFunction = new Button() - { - Y = Application.GetRealHeight(320), - Width = Application.GetMinRealAverage(757), - Height = Application.GetMinRealAverage(435), - UnSelectedImagePath = "Item/NoFunction.png", - Gravity = Gravity.CenterHorizontal + X = Application.GetRealWidth(CommonFormResouce.X_Left), + Height = Application.GetRealHeight(170), + Width = Application.GetRealWidth(CommonPage.AppRealWidth - CommonFormResouce.X_Left), + BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor }; - functionSceneBodyView.AddChidren(noFunction); + functionSceneAutoBodyView.AddChidren(roomFL); - var noFunctionTip = new Button() + //鍔熻兘鍜屽満鏅痓odyView + functionSceneBodyView = new FrameLayout() { - Y = noFunction.Bottom + Application.GetRealHeight(32), - Height = Application.GetRealHeight(200), - Width = Application.GetRealWidth(700), - Gravity = Gravity.CenterHorizontal, - TextID = R.MyInternationalizationString.NoFunction, - //Text = "娌℃湁鍔熻兘 \n 璇峰湪涓汉涓績涓�--璁惧绠$悊澶勬坊鍔�", - TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, - TextAlignment = TextAlignment.Center, - IsMoreLines = true + Y = roomFL.Bottom, + Height = Application.GetRealHeight(973+279), + BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor }; - functionSceneBodyView.AddChidren(noFunctionTip); + functionSceneAutoBodyView.AddChidren(functionSceneBodyView); + + Button curBtn = new Button(); + foreach (var room in Common.Room.CurrentRoom.GetRoomsByCurrentFloorIdAppendLoveRoom()) + { + var row = new FrameLayout() + { + Width = Application.GetRealWidth(187 + 50), + 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 + }; + row.AddChidren(roomBtn); + roomBtn.SetViewShadow(true,5); + + if (room.IsLove) + { + roomBtn.IsSelected = true; + curBtn = roomBtn; + + if(sceneBtn.IsSelected) + { + RefreshScene(room); + } + else + { + RefreshFunction(room); + } + + } + roomBtn.MouseUpEventHandler += (sender, e) => + { + if ((sender as Button) == curBtn) + { + return; + } + (sender as Button).IsSelected = true; + curBtn.IsSelected = false; + curBtn = sender as Button; + if (sceneBtn.IsSelected) + { + RefreshScene(room); + } + else + { + RefreshFunction(room); + } + }; + } + } #endregion @@ -1549,229 +1621,32 @@ /// </summary> public void ShowScene() { - //鍒锋柊鍦烘櫙 - //var reFreshResult=await Shared.Common.Room.RefreshSceneUIList(); - Shared.Common.SceneRoomUI.GetAllSceneRoomUIList(); - if (SceneRoomUI.AllSceneRoomUIList == null) - { - return; - } - var sceneList = SceneRoomUI.AllSceneRoomUIList; - Shared.Common.Room.GetAllRoomDeviceUIList(); + AddRoomView(); + } + + /// <summary> + /// RefreshScene + /// </summary> + /// <param name="room"></param> + public void RefreshScene(Common.Room room) + { + functionSceneBodyView.RemoveAll(); + var sceneList = room.SceneUIList; if (sceneList.Count == 0) { ShowNoSceneTip(); } else { - var sceneScrolView = new VerticalScrolViewLayout - { - Y = Application.GetRealHeight(58) - }; + var sceneScrolView = new VerticalScrolViewLayout { }; functionSceneBodyView.AddChidren(sceneScrolView); - foreach (var sceneRoomUI in sceneList) + foreach (var scene in sceneList) { - var sceneFL = new FrameLayout() - { - Height = Application.GetRealHeight(446), - Gravity = Gravity.CenterHorizontal, - BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor, - Tag = sceneRoomUI - }; - sceneScrolView.AddChidren(sceneFL); - var sceneRowLayout = new RowLayout() - { - Y = Application.GetRealHeight(46), - Height = Application.GetRealHeight(446 - 46), - Gravity = Gravity.CenterHorizontal, - LineColor = ZigbeeColor.Current.GXCGrayBackgroundColor, - Radius = CommonPage.BigFormRadius - }; - sceneFL.AddChidren(sceneRowLayout); - - var sceneImg = new Button() - { - X = Application.GetRealWidth(179), - Width = Application.GetMinReal(844), - Height = Application.GetMinReal(400), - Gravity = Gravity.CenterVertical, - UnSelectedImagePath = sceneRoomUI.sceneUI.IconPath, - Radius = (uint)Application.GetRealHeight(CommonFormResouce.BigFormRadius) - }; - sceneRowLayout.AddChidren(sceneImg); - - var leftFL = new FrameLayout - { - X = Application.GetRealWidth(CommonFormResouce.X_Left), - Width = Application.GetRealWidth(251), - Height = Application.GetRealHeight(282), - Gravity = Gravity.CenterVertical, - BackgroundColor = ZigbeeColor.Current.GXCBlackBackgroundColor2 - }; - sceneRowLayout.AddChidren(leftFL); - - var collectionBtn = new Button - { - X = Application.GetRealWidth(23), - Y = Application.GetRealHeight(23), - Width = Application.GetMinRealAverage(65), - Height = Application.GetMinRealAverage(65), - UnSelectedImagePath = "Item/Collection.png", - SelectedImagePath = "Item/CollectionSelected.png" - }; - leftFL.AddChidren(collectionBtn); - - var sceneNameBtn = new Button() - { - Width = Application.GetRealWidth(176), - Height = Application.GetRealHeight(200), - TextColor = ZigbeeColor.Current.GXCTextWhiteColor, - Text = sceneRoomUI.sceneUI.Name, - Gravity = Gravity.Center, - IsMoreLines = true - }; - leftFL.AddChidren(sceneNameBtn); - - //瀹氭椂 - var delayBtn = new RowLayoutDeleteButton - { - TextID = R.MyInternationalizationString.Delay, - Tag = sceneRoomUI.sceneUI.SceneDelayTime - }; - sceneRowLayout.AddLeftView(delayBtn); - - //缂栬緫 - var settingBtn = new Device.CommonForm.RowLayoutEditButton() - { - TextID = R.MyInternationalizationString.Setting, - Tag = sceneRoomUI.sceneUI.SceneDelayTime - }; - //鍒犻櫎 - var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton - { - Tag = sceneRoomUI - }; - - if (!sceneRoomUI.room.IsSharedRoom) - { - sceneRowLayout.AddRightView(settingBtn); - sceneRowLayout.AddRightView(deleteBtn); - } - - //璋冪敤鍦烘櫙 - - EventHandler<MouseEventArgs> sceneUpHandler = async (sender, e) => - { - //1鎴愬姛 0澶辫触 - //鍚庨潰琛ヤ笂鐩稿叧鎻愮ず - //瑕佸厛浠庣綉鍏宠鍙栧欢鏃舵槸鍚︽鍦ㄦ墽琛岋紝濡傛灉鏄繘琛屽�掕鏃讹紝涓嶅厑璁稿湪鐐瑰嚮 - var sceneOpenAllData = await ZigBee.Device.Scene.ControlSceneAsync(sceneRoomUI.sceneUI.Id, sceneRoomUI.sceneUI.SceneDelayTime); - //涓荤綉鍏充笉鍦ㄧ嚎 - if (sceneOpenAllData == null) - { - //CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheMainGatewayIsNotOnLine); - CommonPage.Instance.FailureToServer(); - return; - } - if (sceneOpenAllData.sceneOpenData == null) - { - CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain); - return; - } - //鎴愬姛 - if (sceneOpenAllData.sceneOpenData.Result == 1) - { - - } - //澶辫触 - else - { - CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain); - return; - } - }; - sceneImg.MouseUpEventHandler += sceneUpHandler; - //鍒犻櫎鍦烘櫙 - EventHandler<MouseEventArgs> delEvent = (sender, e) => - { - var tip = new CustomAlert { }; - AddChidren(tip); - tip.Show(Language.StringByID(R.MyInternationalizationString.ConfirmDelete)); - - //var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.ConfirmDelete), Language.StringByID(R.MyInternationalizationString.Cancel), Language.StringByID(R.MyInternationalizationString.Confrim)); - //alert.Show(); - tip.ResultEventHandler += async (e1) => - { - if (e1) - { - //0 绉婚櫎澶辫触 1 绉婚櫎鎴愬姛 2 娌℃湁璇ュ満鏅� - var removeSceneAllData = await ZigBee.Device.Scene.DeleteSceneAsync(sceneRoomUI.sceneUI.Id); - if (removeSceneAllData == null || removeSceneAllData.removeSceneData == null) - { - //CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheMainGatewayIsNotOnLine); - CommonPage.Instance.FailureToServer(); - return; - } - //1鎴愬姛 - if (removeSceneAllData.removeSceneData.Result == 1) - { - sceneRoomUI.room.RemoveScene(sceneRoomUI.sceneUI); - //RefreshBodyView(); - sceneScrolView.RemoveViewByTag((sender as Button).Tag); - } - //0 绉婚櫎澶辫触 - else if (removeSceneAllData.removeSceneData.Result == 0) - { - CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain); - return; - } - //2 娌℃湁璇ュ満鏅� - else if (removeSceneAllData.removeSceneData.Result == 2) - { - sceneRoomUI.room.RemoveScene(sceneRoomUI.sceneUI); - //RefreshBodyView(); - sceneScrolView.RemoveViewByTag((sender as Button).Tag); - CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneIsNull); - return; - } - } - }; - }; - deleteBtn.MouseUpEventHandler += delEvent; - //缂栬緫鍦烘櫙 - settingBtn.MouseUpEventHandler += (sender, e) => - { - SceneRoomUI.EditScene(sceneRoomUI.sceneUI, sceneRoomUI.room); - }; - //缂栬緫寤舵椂 - delayBtn.MouseUpEventHandler += (sender, e) => - { - var tList = new List<string>() { }; - - for (int i = 0; i < 60; i++) - { - tList.Add($"{i} {Language.StringByID(R.MyInternationalizationString.Second)}"); - } - //int beforeIndex = (int)(sender as CommonForm.RowLayoutEditButton).Tag; - //PickerView.Show(tList, (obj) => - //{ - // var tempRoom = Shared.Common.Room.GetRoomByFilePath(sceneRoomUI.room.FileName); - // if (tempRoom == null) - // { - // return; - // } - // foreach (var ss in tempRoom.SceneUIList) - // { - // if (ss.Id == sceneRoomUI.sceneUI.Id) - // { - // ss.SceneDelayTime = int.Parse(obj.Split(' ')[0]); - // sceneRoomUI.room.Save(); - // RefreshBodyView(); - // return; - // } - // } - //}, Language.StringByID(R.MyInternationalizationString.Confrim), tList[(int)(sender as CommonForm.RowLayoutEditButton).Tag]); - }; + var sceneView = new SceneCategoryView(0, 0); + sceneScrolView.AddChidren(sceneView); + sceneView.Init(scene, room); + sceneView.SetViewShadow(true); + GetDelayScene(sceneScrolView); } } } @@ -1797,7 +1672,7 @@ Height = Application.GetRealHeight(200), Width = Application.GetRealWidth(700), Gravity = Gravity.CenterHorizontal, - TextID = R.MyInternationalizationString.NoScene, + Text = Language.StringByID(R.MyInternationalizationString.NoScene).Replace("{\\r\\n}","\r\n"), TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, TextAlignment = TextAlignment.Center, IsMoreLines = true @@ -1806,28 +1681,85 @@ } + /// <summary> + /// GetDelayScene + /// </summary> + /// <param name="scrolViewLayout"></param> + private void GetDelayScene(VerticalScrolViewLayout scrolViewLayout) + { + new System.Threading.Thread(async () => + { + var catDelaySceneResponseAllData = await Scene.CatDelaySceneAsync(); + if (catDelaySceneResponseAllData == null) + { + return; + } + var catDelaySceneResponseData = catDelaySceneResponseAllData.catDelaySceneResponseData; + if (catDelaySceneResponseData == null || catDelaySceneResponseData.DelayScenesList.Count == 0) + { + return; + } + var delayList = catDelaySceneResponseData.DelayScenesList; + + Application.RunOnMainThread(() => + { + for (int i = 0; scrolViewLayout != null && i < scrolViewLayout.ChildrenCount; i++) + { + var sceneView = scrolViewLayout.GetChildren(i) as SceneCategoryView; + foreach (var delayScenesListResponseInfo in delayList) + { + if (delayScenesListResponseInfo.ScenesId == sceneView.scene.Id) + { + sceneView.scene.RemainTime = delayScenesListResponseInfo.RemainTime; + new System.Threading.Thread(() => + { + while (sceneView.scene.RemainTime > 0) + { + System.Threading.Thread.Sleep(1000); + Application.RunOnMainThread(() => + { + sceneView.SetTimeText(CommonFormResouce.GetTimeString(sceneView.scene.RemainTime)); + }); + sceneView.scene.RemainTime -= 1; + } + Application.RunOnMainThread(() => + { + sceneView.SetTimeImage(); + }); + }) + { IsBackground = true }.Start(); + + break; + } + } + } + }); + }) + { IsBackground = true }.Start(); + } + #endregion #region 鈼� 鑷姩鍖朹_________________________ - + /// <summary> - /// 鑷姩鍖� + /// 鑷姩鍖栧姛鑳戒唬鐮佸叆鍙� /// </summary> - public async void ShowAutotion() - { - functionSceneBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; - + private void ShowAutotion() + { + // functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; + var bjFrameLayout = new FrameLayout { Width = Application.GetRealWidth(1080 - 58), Height = Application.GetRealHeight(170), BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor, X = Application.GetRealWidth(58), - Radius = (uint)Application.GetRealHeight(50), + //Radius = (uint)Application.GetRealHeight(50), Y = Application.GetRealHeight(30), }; - functionSceneBodyView.AddChidren(bjFrameLayout); - + functionSceneAutoBodyView.AddChidren(bjFrameLayout); + bjFrameLayout.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft); var sigBtn = new Button { Width = Application.GetMinRealAverage(84), @@ -1848,6 +1780,7 @@ TextID = MyInternationalizationString.logictemplate, Gravity = Gravity.CenterVertical, TextColor = ZigbeeColor.Current.LogicBtnSelectedColor, + TextSize = 15, }; bjFrameLayout.AddChidren(recommendtextBtn); @@ -1870,19 +1803,18 @@ Y = bjFrameLayout.Bottom + Application.GetRealHeight(30), Height = Application.GetRealHeight(0), }; - functionSceneBodyView.AddChidren(scenehorizontalScrol); + functionSceneAutoBodyView.AddChidren(scenehorizontalScrol); - var logicScrolView = new VerticalScrolViewLayout + var logicScrolView = new VerticalRefreshLayout//VerticalScrolViewLayout { - Height = functionSceneBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30), - BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, + Height = functionSceneAutoBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30), + //BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,/ X = Application.GetRealWidth(58), - Radius = (uint)Application.GetRealHeight(50), Y = scenehorizontalScrol.Bottom, }; - functionSceneBodyView.AddChidren(logicScrolView); - - + functionSceneAutoBodyView.AddChidren(logicScrolView); + logicScrolView.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft); + bool no = false; recommendswitchBtn.MouseUpEventHandler += (sender, e) => { int Yheight = 0; @@ -1890,6 +1822,7 @@ scenehorizontalScrol.RemoveAll(); if (recommendswitchBtn.IsSelected) { + no = true; scenehorizontalScrol.Height = Application.GetRealHeight(246); Yheight = 20; for (int i = 1; i < 4; i++) @@ -1918,6 +1851,7 @@ Y = Application.GetRealHeight(246 - 23 - 80), TextAlignment = TextAlignment.CenterLeft, TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor, + TextSize = 14, }; frameLayout.AddChidren(logicnameBtn); @@ -1949,12 +1883,7 @@ } else { - Common.Logic.LogicDviceList.Clear(); - if (Common.Logic.LogicDviceList.Count == 0) - { - Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray()); - } - Common.Logic.CurrentLogic.LogicType = 2; + Common.Logic.CurrentLogic.LogicName = logicnameBtn.Text; Logic.TemplatePage templatePage = new Logic.TemplatePage(); Logic.TemplatePage.s = logiciocnBtn.Tag.ToString(); @@ -1969,90 +1898,137 @@ } else { + no = false; scenehorizontalScrol.Height = Application.GetRealHeight(0); Yheight = 0; } logicScrolView.Y = scenehorizontalScrol.Bottom + Yheight; - logicScrolView.Height = functionSceneBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30) - Yheight; - Automationview(logicScrolView); + logicScrolView.Height = functionSceneAutoBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30) - Yheight; + Automationview(logicScrolView,no); }; + logicScrolView.BeginHeaderRefreshingAction += () => + { + //閲嶆柊鍒锋柊logic鍒楄〃 + Common.Logic.LogicList.Clear(); + Read(logicScrolView,no); + //鍏抽棴鍒锋柊View锛� + logicScrolView.EndHeaderRefreshing(); + }; + + Read(logicScrolView,no); + } + /// <summary> + /// 璇诲彇鑷姩鍖栧垪琛ㄦ暟鎹紱 + /// </summary> + /// <param name="logicScrolView"></param> + private async void Read(VerticalRefreshLayout logicScrolView,bool no) + { CommonPage.Loading.Start(); if (Common.Logic.LogicList.Count == 0) { - //var Idlist = await Logic.Send.GetLogicId(); - //if (Idlist.Count != 0) - //{ - // foreach (var LogicId in Idlist) - // { - // var logic = await Logic.Send.GetLogic(LogicId); - // if (logic != null) - // { - // Common.Logic.LogicList.Add(logic); - // } - // } - //} - var Idlist = await Logic.Send.GetLogicId(); + var Idlist = await Logic.Send.GetLogicId(0); if (Idlist.Count != 0) { - var listlogic = await Logic.Send.ReadList(Idlist.Count); - for (int i = 0; i < Idlist.Count; i++) + var listlogic = await Logic.Send.ReadList(Idlist.Count, 0); + //foreach鍙兘闆嗗悎宸茶淇敼,鏋氫妇鎿嶄綔鍙兘涓嶄細鎵ц,鍙兘鍑虹幇宕╂簝(寤鸿for)銆� + for (int j = 0; j < listlogic.Count; j++) { - var LogicId = Idlist[i]; - //foreach鍙兘闆嗗悎宸茶淇敼,鏋氫妇鎿嶄綔鍙兘涓嶄細鎵ц,鍙兘鍑虹幇宕╂簝(寤鸿for)銆� - for (int j = 0; j < listlogic.Count; j++) + var logic = listlogic[j]; + if (logic.LogicType != 0) { - var logic = listlogic[j]; - if (logic.LogicId == LogicId) - { - Common.Logic.LogicList.Add(logic); - } + continue; } + Common.Logic.LogicList.Add(logic); } } } //鑷姩鍖� - Automationview(logicScrolView); + Automationview(logicScrolView,no); CommonPage.Loading.Hide(); } - /// <summary> - /// 鑷姩鍖栧垪琛ㄧ晫闈� + /// 鍔犺浇鑷姩鍖栧垪琛ㄧ晫闈� /// </summary> /// <param name="refresview">Refresview.</param> - public async void Automationview(VerticalScrolViewLayout refresview) + private async void Automationview(VerticalRefreshLayout refresview,bool no) { refresview.RemoveAll(); + if (Common.Logic.LogicList.Count == 0&&no==false) + { + //灏辨槸涓轰簡鏄剧ず寮曞娣诲姞鍥炬爣; + refresview.BackgroundColor = 0x00000000; + var noFrameLayout = new FrameLayout + { + Height = Application.GetRealHeight(434+ 200+32+160), + //BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, + }; + refresview.AddChidren(noFrameLayout); + + + var noIconBtn = new Button + { + Y=Application.GetRealHeight(160), + Width = Application.GetMinRealAverage(756), + Height = Application.GetMinRealAverage(434), + UnSelectedImagePath = "Item/NoFunction.png", + X = Application.GetRealWidth(104), + }; + noFrameLayout.AddChidren(noIconBtn); + + var noTextBtn = new Button() + { + Y = noIconBtn.Bottom, + Height = Application.GetRealHeight(200)+Application.GetRealHeight(32), + Width = Application.GetRealWidth(700), + //Gravity = Gravity.CenterHorizontal, + Text = Language.StringByID(MyInternationalizationString.automationaddtext).Replace("{\\r\\n}", "\r\n"), + TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, + TextAlignment = TextAlignment.Center, + IsMoreLines = true, + X = Application.GetRealWidth(190-58), + }; + noFrameLayout.AddChidren(noTextBtn); + + } + else + { + + if (Common.Logic.LogicList.Count == 0 && no == true) + { + ///鏀瑰彉婊戝姩view鐨勯鑹诧紱 + refresview.BackgroundColor = 0x00000000; + } + else + { + refresview.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor; + } + } foreach (var logic in Common.Logic.LogicList) { - var bjRow = new RowLayout - { - Width = Application.GetRealWidth(1080 - 58), - Height = Application.GetRealHeight(220), - LineColor = ZigbeeColor.Current.LogicBackgroundColor, - BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor, - }; - refresview.AddChidren(bjRow); var logicRowlayout = new RowLayout { - Y = Application.GetRealHeight(220 - 190), - Height = Application.GetRealHeight(190), - Width = Application.GetRealWidth(1080 - 58 - 46), - LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor, - X = Application.GetRealWidth(46), + Height = Application.GetRealHeight(190 + 30), + Width = Application.GetRealWidth(1080-58), + LineColor = ZigbeeColor.Current.LogicBackgroundColor, + BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor, }; - bjRow.AddChidren(logicRowlayout); + refresview.AddChidren(logicRowlayout); + + var logicnameBtn = new Button { Height = Application.GetRealHeight(58), Width = Application.GetRealWidth(350), Text = logic.LogicName, - X = Application.GetRealWidth(12), + X = Application.GetRealWidth(12 + 46), + Y = Application.GetRealHeight(30), TextAlignment = TextAlignment.CenterLeft, TextColor = ZigbeeColor.Current.LogicTextBlackColor, + TextSize = 14, }; logicRowlayout.AddChidren(logicnameBtn); @@ -2063,8 +2039,8 @@ Height = Application.GetMinRealAverage(63), UnSelectedImagePath = "ZigeeLogic/logicclose.png", SelectedImagePath = "ZigeeLogic/logicopen.png", - X = logicRowlayout.Width - Application.GetRealWidth(104 + 58), - Y = Application.GetRealHeight(58 + 30 + 9), + X = logicRowlayout.Width - Application.GetRealWidth(104 + 58 + 58), + Y = Application.GetRealHeight(58 + 30 + 9 + 30), }; logicRowlayout.AddChidren(logicswitchBtn); @@ -2105,19 +2081,14 @@ Text = Language.StringByID(MyInternationalizationString.edit), TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor, }; - bjRow.AddRightView(edit); + logicRowlayout.AddRightView(edit); edit.MouseUpEventHandler += (sender, e) => { - Common.Logic.LogicDviceList.Clear(); - if (Common.Logic.LogicDviceList.Count == 0) - { - Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray()); - } Common.Logic.CurrentLogic = logic; var logicCommunalPage = new Logic.LogicCommunalPage(); HomePage.Instance.AddChidren(logicCommunalPage); HomePage.Instance.PageIndex += 1; - logicCommunalPage.Show(() => { logicnameBtn.Text = logic.LogicName; Automationview(refresview); }); + logicCommunalPage.Show(() => { logicnameBtn.Text = logic.LogicName; Automationview(refresview,no); }); }; @@ -2129,7 +2100,7 @@ Text = Language.StringByID(MyInternationalizationString.del), TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor, }; - bjRow.AddRightView(del); + logicRowlayout.AddRightView(del); del.MouseUpEventHandler += (sender, e) => { var alert = new Alert(Language.StringByID(MyInternationalizationString.tip), Language.StringByID(MyInternationalizationString.doyouwanttodelete), @@ -2139,100 +2110,39 @@ if (e1) { Common.Logic.LogicList.Remove(logic); - Automationview(refresview); + Automationview(refresview,no); Logic.Send.DelLogic(logic.LogicId); } }; alert.Show(); }; - - } - - - } - - #endregion - - #region 鈼� 鎺у埗鐘舵�乢________________________ - - /// <summary> - /// 鏄剧ず璁惧鎺у埗鐘舵�� - /// </summary> - /// <param name="command">Command.</param> - /// <param name="objValue">Object value.</param> - private void UpdateDeviceControllStatu(string command, object objValue) - { - if (command != "DeviceDefaultAck" || objValue == null) - { - return; - } - var tempDevice = (CommonDevice)objValue; - if (null == commonDeviceList.Find((obj) => obj.DeviceEpoint == tempDevice.DeviceEpoint && obj.DeviceAddr == tempDevice.DeviceAddr)) - { - return; - } - //鏍囪宸茬粡鍙戦�佹帶鍒跺懡浠ゅ埌缃戝叧 - sendedControlCommand = true; - //DeviceUI.ShowStatuTip(R.MyInternationalizationString.Success); - } - - /// <summary> - /// 绉婚櫎鍏ㄩ儴鏇存柊鎺у埗璁惧鐨刟ction - /// </summary> - private void RemoveAllUpdateControlDeviceStatuAction() - { - foreach (var gateway in zbGatewayList) - { - //绉婚櫎action - if (gateway != null) + var line = new Button { - gateway.ReportAction -= UpdateDeviceControllStatu; - } + Y = Application.GetRealHeight(215), + Height = Application.GetRealHeight(5), + Width = Application.GetRealWidth(1080 - 58), + BackgroundColor = ZigbeeColor.Current.LogicRowLayoutLineColor, + X = Application.GetRealWidth(58), + }; + logicRowlayout.AddChidren(line); } - } + } /// <summary> - /// 绉婚櫎鍗曚釜鎺у埗璁惧鐨勬洿鏂扮姸鎬乤ction + /// 鏄剧ず鑷姩鍖栬緭鍑哄姛鑳芥ā鍧楀浘鏍囩殑棰滆壊 /// </summary> - /// <param name="gateway">Gateway.</param> - private void RemoveUpdateControlDeviceStatuAction(ZbGateway gateway) - { - //绉婚櫎action - if (gateway != null) - { - gateway.ReportAction -= UpdateDeviceControllStatu; - } - } - - /// <summary> - /// 娣诲姞闇�瑕佺洃鎺у洖璋冪姸鎬佺殑缃戝叧鍜岃澶� - /// </summary> - /// <param name="gatewayList">Gateway list.</param> - /// <param name="gateway">Gateway.</param> - /// <param name="deviceList">Device list.</param> - /// <param name="common">Common.</param> - private void AddZbGateway(List<ZbGateway> gatewayList, ZbGateway gateway, List<CommonDevice> deviceList, CommonDevice common) - { - if (null == gatewayList.Find((obj) => obj.getGatewayBaseInfo.gwID == gateway.getGatewayBaseInfo.gwID)) - { - gatewayList.Add(gateway); - } - if (null == commonDeviceList.Find((obj) => obj.DeviceEpoint == common.DeviceEpoint && obj.DeviceAddr == common.DeviceAddr)) - { - commonDeviceList.Add(common); - } - } - - #endregion - + /// <param name="logic"></param> + /// <param name="logicRowlayout"></param> + /// <param name="intvalue"></param> private void StatusColor(Common.Logic logic, RowLayout logicRowlayout, int intvalue) { var logictimeBtn = new Button { Height = Application.GetRealHeight(58), - Width = logicRowlayout.Width - Application.GetRealWidth(58 + 12 + 350), + Width = logicRowlayout.Width - Application.GetRealWidth(58 + 12 + 350 + 58), + Y = Application.GetRealHeight(30), X = Application.GetRealWidth(365), TextAlignment = TextAlignment.CenterRight, TextColor = ZigbeeColor.Current.LogicListWeekTextColor, @@ -2523,8 +2433,8 @@ { Width = Application.GetRealWidth(82), Height = Application.GetRealHeight(82), - X = Application.GetRealWidth(12 + (12 + 82 + 45 + 12) * i), - Y = Application.GetRealHeight(58 + 30), + X = Application.GetRealWidth(58) + Application.GetRealWidth(12 + (12 + 82 + 45 + 12) * i), + Y = Application.GetRealHeight(58 + 30 + 30), Radius = (uint)Application.GetRealHeight(41), BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, }; @@ -2542,7 +2452,7 @@ var connectIconBtn = new Button { Y = typebjBtn.Y + Application.GetRealHeight(35), - X = Application.GetRealWidth((12 + 82 + 12) + (12 + 45 + 82 + 12) * i), + X = Application.GetRealWidth(58) + Application.GetRealWidth((12 + 82 + 12) + (12 + 45 + 82 + 12) * i), Width = Application.GetRealWidth(48), Height = Application.GetRealHeight(15), UnSelectedImagePath = "ZigeeLogic/connect.png", @@ -2619,5 +2529,81 @@ } } } + + #endregion + + #region 鈼� 鎺у埗鐘舵�乢________________________ + + /// <summary> + /// 鏄剧ず璁惧鎺у埗鐘舵�� + /// </summary> + /// <param name="command">Command.</param> + /// <param name="objValue">Object value.</param> + private void UpdateDeviceControllStatu(string command, object objValue) + { + if (command != "DeviceDefaultAck" || objValue == null) + { + return; + } + var tempDevice = (CommonDevice)objValue; + if (null == commonDeviceList.Find((obj) => obj.DeviceEpoint == tempDevice.DeviceEpoint && obj.DeviceAddr == tempDevice.DeviceAddr)) + { + return; + } + //鏍囪宸茬粡鍙戦�佹帶鍒跺懡浠ゅ埌缃戝叧 + sendedControlCommand = true; + //DeviceUI.ShowStatuTip(R.MyInternationalizationString.Success); + } + + /// <summary> + /// 绉婚櫎鍏ㄩ儴鏇存柊鎺у埗璁惧鐨刟ction + /// </summary> + private void RemoveAllUpdateControlDeviceStatuAction() + { + foreach (var gateway in zbGatewayList) + { + //绉婚櫎action + if (gateway != null) + { + gateway.ReportAction -= UpdateDeviceControllStatu; + } + } + } + + /// <summary> + /// 绉婚櫎鍗曚釜鎺у埗璁惧鐨勬洿鏂扮姸鎬乤ction + /// </summary> + /// <param name="gateway">Gateway.</param> + private void RemoveUpdateControlDeviceStatuAction(ZbGateway gateway) + { + //绉婚櫎action + if (gateway != null) + { + gateway.ReportAction -= UpdateDeviceControllStatu; + } + } + + /// <summary> + /// 娣诲姞闇�瑕佺洃鎺у洖璋冪姸鎬佺殑缃戝叧鍜岃澶� + /// </summary> + /// <param name="gatewayList">Gateway list.</param> + /// <param name="gateway">Gateway.</param> + /// <param name="deviceList">Device list.</param> + /// <param name="common">Common.</param> + private void AddZbGateway(List<ZbGateway> gatewayList, ZbGateway gateway, List<CommonDevice> deviceList, CommonDevice common) + { + if (null == gatewayList.Find((obj) => obj.getGatewayBaseInfo.gwID == gateway.getGatewayBaseInfo.gwID)) + { + gatewayList.Add(gateway); + } + if (null == commonDeviceList.Find((obj) => obj.DeviceEpoint == common.DeviceEpoint && obj.DeviceAddr == common.DeviceAddr)) + { + commonDeviceList.Add(common); + } + } + + #endregion + + } } -- Gitblit v1.8.0