From 05ce435c3b58e53eeab04c672affdeeab75f3036 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期五, 15 十一月 2019 14:41:39 +0800 Subject: [PATCH] 2019.11.15-1 --- ZigbeeApp/Shared/Phone/Device/Category/Category.cs | 249 ++++++++++++++++++++++++++++++++++--------------- 1 files changed, 173 insertions(+), 76 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs old mode 100755 new mode 100644 index 2c7eb8b..7fefc25 --- 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 { @@ -166,17 +168,14 @@ { var light = deviceUI.CommonDevice as ToggleLight; light.DeviceStatusReport = common.DeviceStatusReport; - //璁板綍銆佹洿鏂扮姸鎬� if (light.DeviceStatusReport.AttriBute == null || light.DeviceStatusReport.AttriBute.Count == 0) { continue; } 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; } if (common.DeviceStatusReport.CluterID == 3) @@ -194,7 +193,6 @@ { var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; airSwitch.DeviceStatusReport = common.DeviceStatusReport; - //璁板綍銆佹洿鏂扮姸鎬� if (airSwitch.DeviceStatusReport.AttriBute == null || airSwitch.DeviceStatusReport.AttriBute.Count == 0) { return; @@ -203,7 +201,6 @@ var row = rowLayout.GetChildren(0) as CategoryFunctionRow; row.SetStatu(airSwitch.OnOffStatus == 1); row.SetStatuText(deviceUI.GetDeviceStatu()); - //璁板綍鍥炲鏃堕棿 airSwitch.LastDateTime = DateTime.Now; } if (common.DeviceStatusReport.CluterID == 3) @@ -257,72 +254,74 @@ } var ac = deviceUI.CommonDevice as ZigBee.Device.AC; 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++) - { - 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; - } - } - } break; } + var row = rowLayout.GetChildren(0) as CategoryFunctionRow; + row.SetStatu(ac.currentSystemMode != 0); + row.SetStatuText(deviceUI.GetDeviceStatu()); } + + 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: @@ -338,10 +337,8 @@ } 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; } if (common.DeviceStatusReport.CluterID == 3) @@ -387,12 +384,14 @@ row.SetStatu(deviceUI.CommonDevice.IsOnline == 1); deviceUI.CommonDevice.LastDateTime = DateTime.Now; break; + case DeviceType.AirSwitch: 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: deviceUI.CommonDevice.LastDateTime = DateTime.Now; deviceUI.CommonDevice.IsOnline = common.IsOnline; @@ -406,11 +405,12 @@ var row3 = rowLayout.GetChildren(0) as CategoryFunctionRow; row3.SetStatu(deviceUI.CommonDevice.IsOnline == 1); break; + case DeviceType.Thermostat: deviceUI.CommonDevice.LastDateTime = DateTime.Now; deviceUI.CommonDevice.IsOnline = common.IsOnline; - //var row4 = rowLayout.GetChildren(0) as CategoryFunctionRow; - //row4.SetStatu(deviceUI.CommonDevice.IsOnline == 1); + var row5 = rowLayout.GetChildren(0) as CategoryFunctionRow; + row5.SetStatu(deviceUI.CommonDevice.IsOnline == 1); break; } } @@ -442,6 +442,7 @@ { BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor; instance = this; + ZbGateway.StatusList.Add(this); } /// <summary> @@ -450,8 +451,6 @@ /// <param name="selectedBtn">閫変腑閭d釜鐣岄潰 0--鍔熻兘 1--鍦烘櫙 2--鑷姩鍖� </param> public void Show(int selectedBtn = 1) { - - ZbGateway.StatusList.Add(this); RemoveAll(); #region topview @@ -714,6 +713,15 @@ 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 @@ -726,14 +734,17 @@ functionSceneAutoBodyView.RemoveAll(); if (functionBtn.IsSelected) { + HidenFloor(false); ShowFunction(); } else if (sceneBtn.IsSelected) { + HidenFloor(false); ShowScene(); } else if (automationBtn.IsSelected) { + HidenFloor(true); ShowAutotion(); } } @@ -868,10 +879,10 @@ detailInfo.action = RefreshBodyView; }; - if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.OnOffOutput) + if (deviceUI.CommonDevice.Type == DeviceType.OnOffOutput) { //鐏� - var light = deviceUI.CommonDevice as ZigBee.Device.ToggleLight; + var light = deviceUI.CommonDevice as ToggleLight; //琛ヤ笂闈炶繙绋� if (light.Gateway == null) { @@ -945,13 +956,32 @@ deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => { - var lightControl = new Phone.Device.Light.LightControl(); - UserView.HomePage.Instance.AddChidren(lightControl); - UserView.HomePage.Instance.PageIndex += 1; - //lightControl.action = RefreshBodyView; - lightControl.Show(deviceUI, room); + 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, @@ -1044,6 +1074,7 @@ deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => { + var lightControl = new Phone.Device.Light.AirSwitchControl(); UserView.HomePage.Instance.AddChidren(lightControl); UserView.HomePage.Instance.PageIndex += 1; @@ -1185,11 +1216,13 @@ UserView.UserHomeView.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(); + ac.ReadSystemFansSwingMode(); }); } else @@ -1198,11 +1231,13 @@ 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(); + ac.ReadSystemFansSwingMode(); } } @@ -1229,8 +1264,8 @@ 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) + (send2 as Button).IsSelected = !(send2 as Button).IsSelected; + if ((send2 as Button).IsSelected) { ac.Open(); } @@ -1269,6 +1304,16 @@ }; 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) { @@ -1284,6 +1329,7 @@ UserHomeView.ReadStatus(rollerShade, () => { rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); + rollerShade.ReadWcdCurrentPositionLiftPercentage(); }); } else @@ -1292,9 +1338,9 @@ if ((DateTime.Now - rollerShade.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) { rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); + rollerShade.ReadWcdCurrentPositionLiftPercentage(); } } - var deviceTypeRowLayout = new RowLayout() { @@ -1358,7 +1404,44 @@ } 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); + + + 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; } } }; @@ -1452,7 +1535,7 @@ { RefreshFunction(room); } - + } roomBtn.MouseUpEventHandler += (sender, e) => { @@ -1473,7 +1556,7 @@ } }; } - + } #endregion @@ -1529,7 +1612,6 @@ X = Application.GetRealWidth(179), Width = Application.GetRealWidth(844), Height = Application.GetRealHeight(400), - BackgroundColor = ZigbeeColor.Current.GXCRedColor, UnSelectedImagePath = scene.IconPath, Radius = (uint)Application.GetRealHeight(17) }; @@ -1558,7 +1640,7 @@ Tag = scene }; leftFL.AddChidren(collectionBtn); - + var sceneNameBtn = new Button() { Width = Application.GetRealWidth(176), @@ -1616,11 +1698,24 @@ Tag = scene }; - if (!room.IsSharedRoom) + + if(room.IsSharedRoom) { - sceneRowLayout.AddRightView(settingBtn); - sceneRowLayout.AddRightView(deleteBtn); + } + else + { + if(room.IsLove) + { + sceneRowLayout.AddRightView(deleteBtn); + } + else + { + sceneRowLayout.AddRightView(settingBtn); + sceneRowLayout.AddRightView(deleteBtn); + } + } + //璋冪敤鍦烘櫙 EventHandler<MouseEventArgs> sceneUpHandler = async (sender, e) => @@ -1707,7 +1802,7 @@ } }; } - + }; deleteBtn.MouseUpEventHandler += delEvent; //缂栬緫鍦烘櫙 @@ -1763,6 +1858,7 @@ #endregion + #region 鈼� 鑷姩鍖朹_________________________ /// <summary> @@ -1772,6 +1868,7 @@ { functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; + var bjFrameLayout = new FrameLayout { Width = Application.GetRealWidth(1080 - 58), @@ -1933,7 +2030,7 @@ var Idlist = await Logic.Send.GetLogicId(0); if (Idlist.Count != 0) { - var listlogic = await Logic.Send.ReadList(Idlist.Count,0); + var listlogic = await Logic.Send.ReadList(Idlist.Count, 0); //foreach鍙兘闆嗗悎宸茶淇敼,鏋氫妇鎿嶄綔鍙兘涓嶄細鎵ц,鍙兘鍑虹幇宕╂簝(寤鸿for)銆� for (int j = 0; j < listlogic.Count; j++) { @@ -1949,7 +2046,7 @@ //鑷姩鍖� Automationview(logicScrolView); CommonPage.Loading.Hide(); - + } /// <summary> @@ -2557,6 +2654,6 @@ #endregion - + } } -- Gitblit v1.8.0