From bc6d6b77675b8915635aa04ba765ea627ac63cfa Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期二, 17 十二月 2019 09:38:17 +0800 Subject: [PATCH] 2019.12.17 --- ZigbeeApp/Shared/Phone/Device/Category/Category.cs | 323 +++++++++++++++++++++++++++-------------------------- 1 files changed, 164 insertions(+), 159 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs index b0abfc8..e52cefb 100644 --- a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs +++ b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs @@ -149,6 +149,10 @@ { try { + if (common.DeviceStatusReport.AttriBute == null || common.DeviceStatusReport.AttriBute.Count == 0) + { + return; + } for (int i = 0; deviceListScrolView != null && i < deviceListScrolView.ChildrenCount; i++) { var rowLayout = deviceListScrolView.GetChildren(i) as RowLayout; @@ -169,10 +173,6 @@ { 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); @@ -194,10 +194,6 @@ { var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; airSwitch.DeviceStatusReport = common.DeviceStatusReport; - if (airSwitch.DeviceStatusReport.AttriBute == null || airSwitch.DeviceStatusReport.AttriBute.Count == 0) - { - return; - } airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData; var row = rowLayout.GetChildren(0) as CategoryFunctionRow; row.SetStatu(airSwitch.OnOffStatus == 1); @@ -249,57 +245,47 @@ if (common.DeviceStatusReport.CluterID == 513) { var attriButeList = common.DeviceStatusReport.AttriBute; - if (attriButeList == null || attriButeList.Count == 0) - { - return; - } 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) + foreach(var attList in attriButeList) { - case 0: - ac.currentLocalTemperature = curTemp; - ac.LastDateTime = DateTime.Now; - break; - - case 17: - ac.currentCoolingSetpoint = curTemp; - ac.LastDateTime = DateTime.Now; - break; - - case 18: - ac.currentHeatingSetpoint = curTemp; - ac.LastDateTime = DateTime.Now; - break; - - case 4096: - ac.currentAutoSetpoint = curTemp; - ac.LastDateTime = DateTime.Now; - break; - - case 28: - //姝ゅ睘鎬ф弿杩版亽娓╄澶囨澶勪簬鍝妯″紡 - ac.currentSystemMode = attriButeList[0].AttriButeData; - ac.LastDateTime = DateTime.Now; - break; - - case 4099: - var value = Convert.ToString(attriButeList[0].AttriButeData, 2).PadLeft(16, '0'); - var modeStr = value.Substring(value.Length - 5, 5); - for (int j = 0; j < modeStr.Length; j++) - { - ac.listSupportMode[j] = Convert.ToInt32(modeStr[j]) == 49 ? 1 : 0; - } - break; - - case 4097: - //杩囪檻缃戞竻娲楁爣蹇�:42 - ac.CleanStatu = attriButeList[0].AttriButeData == 42; - break; + var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High || attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default; + switch (attList.AttributeId) + { + case 0: + ac.currentLocalTemperature = curTemp; + ac.LastDateTime = DateTime.Now; + break; + case 17: + ac.currentCoolingSetpoint = curTemp; + ac.LastDateTime = DateTime.Now; + break; + case 18: + ac.currentHeatingSetpoint = curTemp; + ac.LastDateTime = DateTime.Now; + break; + case 4096: + ac.currentAutoSetpoint = curTemp; + ac.LastDateTime = DateTime.Now; + break; + case 28: + ac.currentSystemMode = attList.AttriButeData; + ac.LastDateTime = DateTime.Now; + break; + case 4099: + var value = Convert.ToString(attList.AttriButeData, 2).PadLeft(16, '0'); + var modeStr = value.Substring(value.Length - 5, 5); + for (int j = 0; j < modeStr.Length; j++) + { + ac.listSupportMode[j] = Convert.ToInt32(modeStr[j]) == 49 ? 1 : 0; + } + break; + case 4097: + //杩囪檻缃戞竻娲楁爣蹇�:42 + ac.CleanStatu = attList.AttriButeData == 42; + break; + } } - var row = rowLayout.GetChildren(0) as CategoryFunctionRow; row.SetStatu(ac.currentSystemMode != 0); row.SetStatuText(deviceUI.GetDeviceStatu()); @@ -309,21 +295,20 @@ { 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) + foreach(var attList in attriButeList) { - case 0: - ac.currentFanMode = attriButeList[0].AttriButeData; - ac.LastDateTime = DateTime.Now; - break; - case 4096: - ac.currentFanSwingMode = attriButeList[0].AttriButeData; - ac.LastDateTime = DateTime.Now; - break; + switch (attList.AttributeId) + { + case 0: + ac.currentFanMode = attList.AttriButeData; + ac.LastDateTime = DateTime.Now; + break; + case 4096: + ac.currentFanSwingMode = attList.AttriButeData; + ac.LastDateTime = DateTime.Now; + break; + } } var row = rowLayout.GetChildren(0) as CategoryFunctionRow; row.SetStatu(ac.currentSystemMode != 0); @@ -345,12 +330,17 @@ { var dimmableLight = deviceUI.CommonDevice as DimmableLight; dimmableLight.DeviceStatusReport = common.DeviceStatusReport; - //璁板綍銆佹洿鏂扮姸鎬� - if (dimmableLight.DeviceStatusReport.AttriBute == null || dimmableLight.DeviceStatusReport.AttriBute.Count == 0) - { - continue; - } 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 == 8) + { + var dimmableLight = deviceUI.CommonDevice as DimmableLight; + dimmableLight.DeviceStatusReport = common.DeviceStatusReport; + dimmableLight.Level = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData; var row = rowLayout.GetChildren(0) as CategoryFunctionRow; row.SetStatu(dimmableLight.OnOffStatus == 1); row.SetStatuText(deviceUI.GetDeviceStatu()); @@ -485,8 +475,9 @@ Gravity = Gravity.CenterVertical, TextAlignment = TextAlignment.CenterLeft, TextID = R.MyInternationalizationString.Category, - TextSize = 20, + TextSize = 24, TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor, + IsBold=true }; topView.AddChidren(title); @@ -843,6 +834,7 @@ //deviceListScrolView.SetCornerWithSameRadius(Application.GetRealHeight(50), HDLUtils.RectCornerTopLeft); tempFunctionTypeBtn = new FunctionButton(); + tempFunctionTypeBtn.Init("",""); EventHandler<MouseEventArgs> ShowSameTypeFunction = (object typeSender, MouseEventArgs mouseEventArgs) => { @@ -874,7 +866,7 @@ { var alert = new CustomAlert(); AddChidren(alert); - alert.Show(Language.StringByID(R.MyInternationalizationString.ConfirmDelete)); + alert.Show(Language.StringByID(R.MyInternationalizationString.DeleteFunction)); alert.ResultEventHandler += (e2) => { if (e2) @@ -1004,18 +996,20 @@ 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; + if (room.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + } } - else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.AirSwitch) + else if (deviceUI.CommonDevice.Type == DeviceType.AirSwitch) { //绌烘皵寮�鍏� var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; @@ -1102,18 +1096,21 @@ 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; + if (room.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + } + } - else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.DimmableLight) + else if (deviceUI.CommonDevice.Type == DeviceType.DimmableLight) { //璋冨厜鐏� var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; @@ -1200,19 +1197,20 @@ 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; - + if (room.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + } } - else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.Thermostat) + else if (deviceUI.CommonDevice.Type == DeviceType.Thermostat) { //绌鸿皟 var ac = deviceUI.CommonDevice as ZigBee.Device.AC; @@ -1291,16 +1289,18 @@ Tag = deviceUI, Radius = 0 }; - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() + var delBtn = new CommonForm.RowLayoutDeleteButton() { Tag = deviceUI, Radius = 0 }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; + if (room.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + } deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => { @@ -1312,7 +1312,7 @@ acControl.Show(deviceUI, room); }; } - else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.WindowCoveringDevice) + else if (deviceUI.CommonDevice.Type == DeviceType.WindowCoveringDevice) { //鍗峰笜 var rollerShade = deviceUI.CommonDevice as ZigBee.Device.Rollershade; @@ -1376,16 +1376,18 @@ 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; + if (room.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + } deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => { @@ -1397,7 +1399,7 @@ rollerShadeControl.Show(deviceUI, room); }; } - else if(deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.DoorLock) + else if (deviceUI.CommonDevice.Type == DeviceType.DoorLock) { var deviceTypeRowLayout = new RowLayout() { @@ -1428,15 +1430,17 @@ { Tag = deviceUI }; - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() { Tag = deviceUI }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; + if (room.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + } } else { @@ -1460,15 +1464,17 @@ { Tag = deviceUI }; - deviceTypeRowLayout.AddRightView(editBtn); - editBtn.MouseUpEventHandler += deviceDetailHandler; - var delBtn = new Device.CommonForm.RowLayoutDeleteButton() { Tag = deviceUI }; - deviceTypeRowLayout.AddRightView(delBtn); - delBtn.MouseUpEventHandler += delEvent; + if (room.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + } } } }; @@ -1491,7 +1497,6 @@ typeRowLayout.AddChidren(functionTypeIMG); functionTypeIMG.ClickBtn.MouseUpEventHandler += ShowSameTypeFunction; - if (deviceType == room.DeviceUIList[0].CommonDevice.Type) { @@ -1659,57 +1664,53 @@ /// GetDelayScene /// </summary> /// <param name="scrolViewLayout"></param> - private void GetDelayScene(VerticalScrolViewLayout scrolViewLayout) + private async void GetDelayScene(VerticalScrolViewLayout scrolViewLayout) { - new System.Threading.Thread(async () => + var catDelaySceneResponseAllData = await Scene.CatDelaySceneAsync(); + if (catDelaySceneResponseAllData == null) { - 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; + 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) { - for (int i = 0; scrolViewLayout != null && i < scrolViewLayout.ChildrenCount; i++) + if (delayScenesListResponseInfo.ScenesId == sceneView.scene.Id) { - var sceneView = scrolViewLayout.GetChildren(i) as SceneCategoryView; - foreach (var delayScenesListResponseInfo in delayList) + sceneView.scene.RemainTime = delayScenesListResponseInfo.RemainTime; + var remainTime= delayScenesListResponseInfo.RemainTime; + if (remainTime > 0) { - if (delayScenesListResponseInfo.ScenesId == sceneView.scene.Id) + new System.Threading.Thread(() => { - sceneView.scene.RemainTime = delayScenesListResponseInfo.RemainTime; - new System.Threading.Thread(() => + while (remainTime-- > 0) { - while (sceneView.scene.RemainTime > 0) - { - System.Threading.Thread.Sleep(1000); - Application.RunOnMainThread(() => - { - sceneView.SetTimeText(CommonFormResouce.GetTimeString(sceneView.scene.RemainTime)); - }); - sceneView.scene.RemainTime -= 1; - } + System.Threading.Thread.Sleep(1000); Application.RunOnMainThread(() => { - sceneView.SetTimeImage(); + sceneView.SetTimeText(CommonFormResouce.GetTimeString(remainTime)); }); - }) - { IsBackground = true }.Start(); - - break; - } + } + Application.RunOnMainThread(() => + { + sceneView.scene.RemainTime = 0; + sceneView.SetTimeImage(); + }); + }) + { IsBackground = true }.Start(); } + break; } - }); - }) - { IsBackground = true }.Start(); + } + } } /// <summary> @@ -1742,11 +1743,11 @@ 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), }; functionSceneAutoBodyView.AddChidren(bjFrameLayout); - + bjFrameLayout.SetCornerWithSameRadius(25, HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerBottomLeft); var sigBtn = new Button { Width = Application.GetMinRealAverage(84), @@ -1767,6 +1768,7 @@ TextID = MyInternationalizationString.logictemplate, Gravity = Gravity.CenterVertical, TextColor = ZigbeeColor.Current.LogicBtnSelectedColor, + TextSize=15, }; bjFrameLayout.AddChidren(recommendtextBtn); @@ -1796,10 +1798,11 @@ Height = functionSceneAutoBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30), BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, X = Application.GetRealWidth(58), - Radius = (uint)Application.GetRealHeight(50), + //Radius = (uint)Application.GetRealHeight(50), Y = scenehorizontalScrol.Bottom, }; functionSceneAutoBodyView.AddChidren(logicScrolView); + logicScrolView.SetCornerWithSameRadius(20, HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerBottomLeft); recommendswitchBtn.MouseUpEventHandler += (sender, e) => @@ -1837,6 +1840,7 @@ Y = Application.GetRealHeight(246 - 23 - 80), TextAlignment = TextAlignment.CenterLeft, TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor, + TextSize = 14, }; frameLayout.AddChidren(logicnameBtn); @@ -1947,6 +1951,7 @@ Y = Application.GetRealHeight(30), TextAlignment = TextAlignment.CenterLeft, TextColor = ZigbeeColor.Current.LogicTextBlackColor, + TextSize = 14, }; logicRowlayout.AddChidren(logicnameBtn); -- Gitblit v1.8.0