From 34e965100d635346e2d4cd6e6013bdaed66b3004 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期四, 02 一月 2020 19:52:13 +0800 Subject: [PATCH] 2019.1.2-3 --- ZigbeeApp/Shared/Phone/Device/Category/Category.cs | 442 ++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 310 insertions(+), 132 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs index 12a2521..47604d0 100644 --- a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs +++ b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs @@ -25,7 +25,7 @@ /// <summary> /// low_High /// </summary> - private const int low_High= 127; + private const int low_High = 127; /// <summary> /// 鍔熻兘 /// </summary> @@ -85,7 +85,7 @@ /// <summary> /// 鍔熻兘绫诲瀷鎸夐挳 /// </summary> - private FunctionButton functionTypeIMG; + //private FunctionButton functionTypeIMG; /// <summary> /// 鍔熻兘绫诲瀷 /// </summary> @@ -93,7 +93,7 @@ /// <summary> /// 璁惧绫诲瀷RowLayout /// </summary> - private FrameLayout typeRowLayout; + //private FrameLayout typeRowLayout; /// <summary> /// 妤煎眰 /// </summary> @@ -119,10 +119,6 @@ /// sceneList /// </summary> private List<SceneUI> sceneList; - /// <summary> - /// 褰撳墠閫変腑鎴块棿 - /// </summary> - private Common.Room curRoom; #endregion #region 鈼� 鎺ュ彛____________________________ @@ -195,7 +191,7 @@ light.DeviceStatusReport = common.DeviceStatusReport; light.OnOffStatus = light.DeviceStatusReport.AttriBute[0].AttriButeData; var row = rowLayout.GetChildren(0) as CategoryFunctionRow; - row.SetStatu(light.OnOffStatus == 1); + row.IsSelected = light.OnOffStatus == 1; row.SetStatuText(deviceUI.GetDeviceStatu()); light.LastDateTime = DateTime.Now; } @@ -203,8 +199,6 @@ { deviceUI.CommonDevice.IsOnline = 1; deviceUI.CommonDevice.LastDateTime = DateTime.Now; - var row = rowLayout.GetChildren(0) as CategoryFunctionRow; - row.SetStatu(true); } break; @@ -216,7 +210,7 @@ airSwitch.DeviceStatusReport = common.DeviceStatusReport; airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData; var row = rowLayout.GetChildren(0) as CategoryFunctionRow; - row.SetStatu(airSwitch.OnOffStatus == 1); + row.IsSelected = airSwitch.OnOffStatus == 1; row.SetStatuText(deviceUI.GetDeviceStatu()); airSwitch.LastDateTime = DateTime.Now; } @@ -224,8 +218,6 @@ { deviceUI.CommonDevice.IsOnline = 1; deviceUI.CommonDevice.LastDateTime = DateTime.Now; - var row = rowLayout.GetChildren(0) as CategoryFunctionRow; - row.SetStatu(true); } break; case DeviceType.WindowCoveringDevice: @@ -248,6 +240,7 @@ rollerShade.DeviceStatusReport = common.DeviceStatusReport; rollerShade.WcdCurrentPositionLiftPercentage = common.DeviceStatusReport.AttriBute[0].AttriButeData; row.SetStatuText($"{Language.StringByID(R.MyInternationalizationString.Current)} { deviceUI.GetDeviceStatu()}"); + row.IsSelected = rollerShade.WcdCurrentPositionLiftPercentage != 0; rollerShade.LastDateTime = DateTime.Now; } } @@ -255,8 +248,6 @@ { deviceUI.CommonDevice.IsOnline = 1; deviceUI.CommonDevice.LastDateTime = DateTime.Now; - var row = rowLayout.GetChildren(0) as CategoryFunctionForWinRow; - row.SetStatu(true); } break; @@ -267,7 +258,7 @@ var attriButeList = common.DeviceStatusReport.AttriBute; var ac = deviceUI.CommonDevice as ZigBee.Device.AC; ac.DeviceStatusReport = common.DeviceStatusReport; - foreach(var attList in attriButeList) + foreach (var attList in attriButeList) { var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High && attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default; switch (attList.AttributeId) @@ -307,7 +298,7 @@ } } var row = rowLayout.GetChildren(0) as CategoryFunctionRow; - row.SetStatu(ac.currentSystemMode != 0); + row.IsSelected = ac.currentSystemMode != 0; row.SetStatuText(deviceUI.GetDeviceStatu()); } @@ -316,7 +307,7 @@ var ac = deviceUI.CommonDevice as ZigBee.Device.AC; var attriButeList = common.DeviceStatusReport.AttriBute; ac.DeviceStatusReport = common.DeviceStatusReport; - foreach(var attList in attriButeList) + foreach (var attList in attriButeList) { switch (attList.AttributeId) { @@ -331,7 +322,7 @@ } } var row = rowLayout.GetChildren(0) as CategoryFunctionRow; - row.SetStatu(ac.currentSystemMode != 0); + row.IsSelected = ac.currentSystemMode != 0; row.SetStatuText(deviceUI.GetDeviceStatu()); } @@ -340,8 +331,6 @@ var ac = deviceUI.CommonDevice as ZigBee.Device.AC; ac.IsOnline = 1; ac.LastDateTime = DateTime.Now; - var row = rowLayout.GetChildren(0) as CategoryFunctionRow; - row.SetStatu(true); } break; case DeviceType.DimmableLight: @@ -352,7 +341,7 @@ dimmableLight.DeviceStatusReport = common.DeviceStatusReport; dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData; var row = rowLayout.GetChildren(0) as CategoryFunctionRow; - row.SetStatu(dimmableLight.OnOffStatus == 1); + row.IsSelected = dimmableLight.OnOffStatus == 1; row.SetStatuText(deviceUI.GetDeviceStatu()); dimmableLight.LastDateTime = DateTime.Now; } @@ -362,7 +351,7 @@ dimmableLight.DeviceStatusReport = common.DeviceStatusReport; dimmableLight.Level = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData; var row = rowLayout.GetChildren(0) as CategoryFunctionRow; - row.SetStatu(dimmableLight.OnOffStatus == 1); + row.IsSelected = dimmableLight.OnOffStatus == 1; row.SetStatuText(deviceUI.GetDeviceStatu()); dimmableLight.LastDateTime = DateTime.Now; } @@ -370,8 +359,66 @@ { deviceUI.CommonDevice.IsOnline = 1; deviceUI.CommonDevice.LastDateTime = DateTime.Now; - var row = rowLayout.GetChildren(0) as CategoryFunctionRow; - row.SetStatu(true); + } + break; + + case DeviceType.TemperatureSensor: + //娓╁害 + if (common.DeviceStatusReport.CluterID == 1026) + { + var tempera = deviceUI.CommonDevice as TemperatureSensor; + foreach (var data in common.DeviceStatusReport.AttriBute) + { + if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue) + { + if (data.AttriButeData == 0) + { + tempera.Temperatrue = 0; + } + else if (data.AttriButeData > 32767) + { + //璐熸暟(鐗规畩澶勭悊) + string strValue = (data.AttriButeData - 65536).ToString(); + //灏忔暟鐐归渶瑕佷竴浣� + strValue = strValue.Substring(0, strValue.Length - 1); + tempera.Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, ".")); + } + else + { + //灏忔暟鐐归渶瑕佷竴浣� + string strValue = data.AttriButeData.ToString(); + strValue = strValue.Substring(0, strValue.Length - 1); + tempera.Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, ".")); + } + var row = rowLayout.GetChildren(0) as CategoryFunctionRow; + row.SetStatuText(deviceUI.GetDeviceStatu()); + } + } + } + //婀垮害 + if (common.DeviceStatusReport.CluterID == 1029) + { + var tempera = deviceUI.CommonDevice as TemperatureSensor; + foreach (var data in common.DeviceStatusReport.AttriBute) + { + if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue) + { + if (data.AttriButeData == 0) + { + tempera.Humidity = 0; + } + else + { + //灏忔暟鐐归渶瑕佷竴浣�(婀垮害娌℃湁璐熸暟) + string strValue = data.AttriButeData.ToString(); + strValue = strValue.Substring(0, strValue.Length - 1); + tempera.Humidity = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, ".")); + tempera.LastDateTime = DateTime.Now; + } + var row = rowLayout.GetChildren(0) as CategoryFunctionRow; + row.SetStatuText(deviceUI.GetDeviceStatu()); + } + } } break; } @@ -405,37 +452,66 @@ { case DeviceType.OnOffOutput: 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: 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; - 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: deviceUI.CommonDevice.LastDateTime = DateTime.Now; deviceUI.CommonDevice.IsOnline = common.IsOnline; - var row5 = rowLayout.GetChildren(0) as CategoryFunctionRow; - row5.SetStatu(deviceUI.CommonDevice.IsOnline == 1); + break; + } + } + } + catch (Exception ex) + { + System.Console.WriteLine($"鍒嗙被璁惧鐘舵��-Error:{ex.Message}"); + } + }); + } + else if (typeTag == "IASInfoReport") + { + Application.RunOnMainThread(() => + { + try + { + for (int i = 0; deviceListScrolView != null && i < deviceListScrolView.ChildrenCount; i++) + { + var rowLayout = deviceListScrolView.GetChildren(i) as RowLayout; + var deviceUI = rowLayout.Tag as DeviceUI; + if (deviceUI == null || deviceUI.CommonDevice == null) + { + continue; + } + if (deviceUI.CommonDevice.DeviceAddr != common.DeviceAddr || deviceUI.CommonDevice.DeviceEpoint != common.DeviceEpoint) + { + continue; + } + switch (deviceUI.CommonDevice.Type) + { + case DeviceType.IASZone: + //寮�鍏冲姛鑳� + var ias = common as IASZone; + var iAS = deviceUI.CommonDevice as ZigBee.Device.IASZone; + iAS.iASInfo = ias.iASInfo; + var row = rowLayout.GetChildren(0) as CategoryFunctionRow; + row.IsSelected = iAS.iASInfo?.Alarm1 == 1; + row.SetStatuText(deviceUI.GetDeviceStatu()); + iAS.LastDateTime = DateTime.Now; break; } } @@ -499,7 +575,7 @@ TextID = R.MyInternationalizationString.Category, TextSize = 24, TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor, - IsBold=true + IsBold = true }; topView.AddChidren(title); @@ -543,7 +619,7 @@ functionBtn.SetTitle(R.MyInternationalizationString.Function); functionBtn.X = sceneBtn.Right; //鑷姩鍖� - automationBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 * 2 + 20+50, 34); + automationBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 * 2 + 20 + 50, 34); automationBtn.Init(); automationBtn.SetTitle(R.MyInternationalizationString.Automation); automationBtn.X = functionBtn.Right; @@ -561,8 +637,8 @@ Gravity = Gravity.CenterVertical, TextAlignment = TextAlignment.CenterRight, TextColor = ZigbeeColor.Current.GXCTextBlackColor, - TextSize=14, - IsBold=true + TextSize = 14, + IsBold = true }; selectFloorBtn = new Button() @@ -630,7 +706,7 @@ addBtn.MouseUpEventHandler += AddBtn_MouseUpEventHandler; selectFloorBtn.MouseUpEventHandler += SelectedFloor_MouseUpEventHandler; - floorBtn.MouseUpEventHandler+= SelectedFloor_MouseUpEventHandler; + floorBtn.MouseUpEventHandler += SelectedFloor_MouseUpEventHandler; } @@ -641,13 +717,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(580,330,Direction.Right); + floors.Init(580, 330, Direction.Right); floors.changeFloor = true; floors.FloorAction += (floorId) => { floorBtn.Text = Config.Instance.Home.GetFloorNameById(floorId); + Common.Room.CurrentRoom = Common.Room.CurrentRoom.GetLoveRoom(); RefreshBodyView(); }; } @@ -686,11 +763,11 @@ /// <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()); + { + Common.Logic.LogicDviceList.Clear(); + if (Common.Logic.LogicDviceList.Count == 0) + { + Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray()); } functionBtn.IsSelected = false; sceneBtn.IsSelected = false; @@ -840,10 +917,10 @@ { var noFunction = new Button() { - Y=Application.GetRealHeight(320), - Width=Application.GetMinRealAverage(757), + Y = Application.GetRealHeight(320), + Width = Application.GetMinRealAverage(757), Height = Application.GetMinRealAverage(435), - UnSelectedImagePath="Item/NoFunction.png", + UnSelectedImagePath = "Item/NoFunction.png", Gravity = Gravity.CenterHorizontal }; functionSceneBodyView.AddChidren(noFunction); @@ -854,10 +931,10 @@ Height = Application.GetRealHeight(200), Width = Application.GetRealWidth(700), Gravity = Gravity.CenterHorizontal, - Text = Language.StringByID(R.MyInternationalizationString.NoFunction).Replace("{\\r\\n}","\r\n"), + Text = Language.StringByID(R.MyInternationalizationString.NoFunction).Replace("{\\r\\n}", "\r\n"), TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, TextAlignment = TextAlignment.Center, - IsMoreLines=true + IsMoreLines = true }; functionSceneBodyView.AddChidren(noFunctionTip); } @@ -911,39 +988,39 @@ deviceListScrolView = new VerticalScrolViewLayout { X = Application.GetRealWidth(CommonFormResouce.X_Left), - Y = Application.GetRealHeight(35+275), + Y = Application.GetRealHeight(35 + 279), Width = Application.GetRealWidth(1028), - Height = Application.GetRealHeight(939), + Height = Application.GetRealHeight(942), BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor }; functionSceneBodyView.AddChidren(deviceListScrolView); deviceListScrolView.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft); tempFunctionTypeBtn = new FunctionButton(); - tempFunctionTypeBtn.Init("",""); + tempFunctionTypeBtn.Init("", ""); foreach (var deviceType in typeIdDic) { - typeRowLayout = new FrameLayout() + var typeRowLayout = new FrameLayout() { Width = Application.GetRealWidth(220), }; functionTypeScrowView.AddChidren(typeRowLayout); - functionTypeIMG = new FunctionButton() + var functionTypeIMG = new FunctionButton() { Tag = deviceType.Key }; string imgPath = string.Empty; string imgSeletedPath = string.Empty; - Common.LocalDevice.Current.GetDeviceBeloneIcon(deviceType.Value, ref imgPath, ref imgSeletedPath); + Common.LocalDevice.Current.GetDeviceObjectIcon(deviceType.Value, ref imgPath, ref imgSeletedPath); functionTypeIMG.Init(imgPath, imgSeletedPath); functionTypeIMG.SetTitle(deviceType.Key); typeRowLayout.AddChidren(functionTypeIMG); functionTypeIMG.ClickBtn.MouseUpEventHandler += ShowSameTypeFunction; - if (typeRowLayout.ChildrenCount == 1) + if (functionTypeScrowView.ChildrenCount == 1) { ShowSameTypeFunction(functionTypeIMG.ImageBtn, null); } @@ -986,13 +1063,22 @@ { if (e2) { - Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.CommonDevice); - deviceListScrolView.RemoveViewByTag((delSender as Button).Tag); - sameTypeList.Remove(deviceUI); - if (sameTypeList.Count == 0) + if (Common.Room.CurrentRoom.IsLove) { - RefreshBodyView(); + Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.FileName); + deviceListScrolView.RemoveViewByTag((delSender as Button).Tag); + sameTypeList.Remove(deviceUI); } + else + { + Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.CommonDevice); + deviceListScrolView.RemoveViewByTag((delSender as Button).Tag); + sameTypeList.Remove(deviceUI); + } + //if (sameTypeList.Count == 0) + //{ + // RefreshBodyView(); + //} } }; }; @@ -1043,9 +1129,9 @@ var deviceRow = new CategoryFunctionRow(0, 35); deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); - deviceRow.SetOnLineStatu(light.IsOnline == 1); + //deviceRow.SetOnLineStatu(light.IsOnline == 1); deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); - deviceRow.SetStatu(light.OnOffStatus == 1); + deviceRow.IsSelected = light.OnOffStatus == 1; deviceTypeRowLayout.AddChidren(deviceRow); deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => @@ -1088,7 +1174,7 @@ UserView.HomePage.Instance.AddChidren(lightControl); UserView.HomePage.Instance.PageIndex += 1; //lightControl.action = RefreshBodyView; - lightControl.Show(deviceUI, curRoom); + lightControl.Show(deviceUI, Common.Room.CurrentRoom); } else if (deviceUI.CommonDevice.DfunctionType == DeviceFunctionType.A鎻掑骇) { @@ -1096,7 +1182,7 @@ UserView.HomePage.Instance.AddChidren(lightControl); UserView.HomePage.Instance.PageIndex += 1; //lightControl.action = RefreshBodyView; - lightControl.Show(deviceUI, curRoom); + lightControl.Show(deviceUI, Common.Room.CurrentRoom); } else { @@ -1104,7 +1190,7 @@ UserView.HomePage.Instance.AddChidren(lightControl); UserView.HomePage.Instance.PageIndex += 1; //lightControl.action = RefreshBodyView; - lightControl.Show(deviceUI, curRoom); + lightControl.Show(deviceUI, Common.Room.CurrentRoom); } }; @@ -1118,7 +1204,7 @@ Tag = deviceUI, Radius = 0 }; - if (curRoom.IsSharedRoom == false) + if (Common.Room.CurrentRoom.IsSharedRoom == false) { deviceTypeRowLayout.AddRightView(editBtn); editBtn.MouseUpEventHandler += deviceDetailHandler; @@ -1164,8 +1250,8 @@ 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.SetOnLineStatu(airSwitch.IsOnline == 1); + deviceRow.IsSelected = airSwitch.OnOffStatus == 1; deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); deviceTypeRowLayout.AddChidren(deviceRow); @@ -1175,8 +1261,8 @@ 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) { airSwitch.SwitchControl(1); @@ -1208,7 +1294,7 @@ UserView.HomePage.Instance.AddChidren(lightControl); UserView.HomePage.Instance.PageIndex += 1; //lightControl.action = RefreshBodyView; - lightControl.Show(deviceUI, curRoom); + lightControl.Show(deviceUI, Common.Room.CurrentRoom); }; var editBtn = new CommonForm.RowLayoutEditButton() @@ -1221,7 +1307,7 @@ Tag = deviceUI, Radius = 0 }; - if (curRoom.IsSharedRoom == false) + if (Common.Room.CurrentRoom.IsSharedRoom == false) { deviceTypeRowLayout.AddRightView(editBtn); editBtn.MouseUpEventHandler += deviceDetailHandler; @@ -1267,9 +1353,9 @@ var deviceRow = new CategoryFunctionRow(0, 35); deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); - deviceRow.SetOnLineStatu(dimmableLight.IsOnline == 1); + //deviceRow.SetOnLineStatu(dimmableLight.IsOnline == 1); deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); - deviceRow.SetStatu(dimmableLight.OnOffStatus == 1); + deviceRow.IsSelected = dimmableLight.OnOffStatus == 1; deviceTypeRowLayout.AddChidren(deviceRow); deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => @@ -1278,8 +1364,8 @@ 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) { dimmableLight.SwitchControl(1); @@ -1311,7 +1397,7 @@ UserView.HomePage.Instance.PageIndex += 1; UserView.HomePage.Instance.ScrollEnabled = false; //dimmableLightControl.action = RefreshBodyView; - dimmableLightControl.Show(deviceUI, curRoom); + dimmableLightControl.Show(deviceUI, Common.Room.CurrentRoom); }; var editBtn = new CommonForm.RowLayoutEditButton() @@ -1324,7 +1410,7 @@ Tag = deviceUI, Radius = 0 }; - if (curRoom.IsSharedRoom == false) + if (Common.Room.CurrentRoom.IsSharedRoom == false) { deviceTypeRowLayout.AddRightView(editBtn); editBtn.MouseUpEventHandler += deviceDetailHandler; @@ -1372,9 +1458,9 @@ var deviceRow = new CategoryFunctionRow(0, 35); deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); - deviceRow.SetOnLineStatu(ac.IsOnline == 1); + //deviceRow.SetOnLineStatu(ac.IsOnline == 1); deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); - deviceRow.SetStatu(ac.currentSystemMode != 1); + deviceRow.IsSelected = ac.currentSystemMode != 1; deviceTypeRowLayout.AddChidren(deviceRow); deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => @@ -1385,6 +1471,7 @@ 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) { ac.Open(); @@ -1419,7 +1506,7 @@ Tag = deviceUI, Radius = 0 }; - if (curRoom.IsSharedRoom == false) + if (Common.Room.CurrentRoom.IsSharedRoom == false) { deviceTypeRowLayout.AddRightView(editBtn); editBtn.MouseUpEventHandler += deviceDetailHandler; @@ -1434,7 +1521,7 @@ UserView.HomePage.Instance.PageIndex += 1; UserView.HomePage.Instance.ScrollEnabled = false; //rollerShadeControl.action = RefreshBodyView; - acControl.Show(deviceUI, curRoom); + acControl.Show(deviceUI, Common.Room.CurrentRoom); }; } } @@ -1476,9 +1563,9 @@ var deviceRow = new CategoryFunctionForWinRow(0, 35); deviceRow.Init(deviceUI); deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); - deviceRow.SetOnLineStatu(rollerShade.IsOnline == 1); + //deviceRow.SetOnLineStatu(rollerShade.IsOnline == 1); deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); - deviceRow.SetStatu(rollerShade.WcdCurrentPositionLiftPercentage != 0); + deviceRow.IsSelected = rollerShade.WcdCurrentPositionLiftPercentage != 0; deviceRow.SetRollerShadeIcon(rollerShade.WcdType); deviceTypeRowLayout.AddChidren(deviceRow); @@ -1502,14 +1589,12 @@ var editBtn = new CommonForm.RowLayoutEditButton() { Tag = deviceUI, - Radius = 0 }; var delBtn = new Device.CommonForm.RowLayoutDeleteButton() { Tag = deviceUI, - Radius = 0 }; - if (curRoom.IsSharedRoom == false) + if (Common.Room.CurrentRoom.IsSharedRoom == false) { deviceTypeRowLayout.AddRightView(editBtn); editBtn.MouseUpEventHandler += deviceDetailHandler; @@ -1524,7 +1609,7 @@ UserView.HomePage.Instance.PageIndex += 1; UserView.HomePage.Instance.ScrollEnabled = false; //rollerShadeControl.action = RefreshBodyView; - rollerShadeControl.Show(deviceUI, curRoom); + rollerShadeControl.Show(deviceUI, Common.Room.CurrentRoom); }; } } @@ -1541,14 +1626,14 @@ var deviceRow = new CategoryFunctionRow(0, 35); deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); - deviceRow.SetOnLineStatu(deviceUI.CommonDevice.IsOnline == 1); + //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(curRoom, deviceUI); + var userDoorLockPage = new UserDoorLockPage(Common.Room.CurrentRoom, deviceUI); HomePage.Instance.AddChidren(userDoorLockPage); HomePage.Instance.PageIndex += 1; userDoorLockPage.Show(); @@ -1562,12 +1647,118 @@ { Tag = deviceUI }; - if (curRoom.IsSharedRoom == false) + if (Common.Room.CurrentRoom.IsSharedRoom == false) { deviceTypeRowLayout.AddRightView(editBtn); editBtn.MouseUpEventHandler += deviceDetailHandler; deviceTypeRowLayout.AddRightView(delBtn); delBtn.MouseUpEventHandler += delEvent; + } + } + else if (deviceUI.CommonDevice.Type == DeviceType.IASZone) + { + 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.SetStatuText(deviceUI.GetDeviceStatu()); + deviceRow.IsSelected = (deviceUI.CommonDevice as IASZone).iASInfo?.Alarm1 == 1; + deviceRow.HideSwitchBtn(true); + deviceTypeRowLayout.AddChidren(deviceRow); + + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = deviceUI + }; + var delBtn = new Device.CommonForm.RowLayoutDeleteButton() + { + Tag = deviceUI + }; + if (Common.Room.CurrentRoom.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + } + } + else if (deviceUI.CommonDevice.Type == DeviceType.TemperatureSensor) + { + var tempera = deviceUI.CommonDevice as TemperatureSensor; + if (tempera.Gateway != null) + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (tempera.Gateway.IsVirtual) + { + UserHomeView.ReadStatus(tempera, () => + { + if (tempera.SensorDiv == 1) + { + ReadDeviceAttributeLogic.Instance.SendTemperatureStatuComand(deviceUI.CommonDevice); + } + else if (tempera.SensorDiv == 2) + { + ReadDeviceAttributeLogic.Instance.SendHumidityStatuComand(deviceUI.CommonDevice); + } + }); + } + else + { + if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - tempera.LastDateTime).TotalSeconds) + { + if (tempera.SensorDiv == 1) + { + ReadDeviceAttributeLogic.Instance.SendTemperatureStatuComand(deviceUI.CommonDevice); + } + else if (tempera.SensorDiv == 2) + { + ReadDeviceAttributeLogic.Instance.SendHumidityStatuComand(deviceUI.CommonDevice); + } + } + } + }) + { IsBackground = true }.Start(); + 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.SetStatuText(deviceUI.GetDeviceStatu()); + deviceRow.IsSelected = false; + deviceRow.HideSwitchBtn(true); + deviceTypeRowLayout.AddChidren(deviceRow); + + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = deviceUI + }; + var delBtn = new Device.CommonForm.RowLayoutDeleteButton() + { + Tag = deviceUI + }; + if (Common.Room.CurrentRoom.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + } + } } else @@ -1583,7 +1774,7 @@ var deviceRow = new CategoryFunctionRow(0, 35); deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); - deviceRow.SetOnLineStatu(deviceUI.CommonDevice.IsOnline == 1); + //deviceRow.SetOnLineStatu(deviceUI.CommonDevice.IsOnline == 1); deviceRow.SetStatuText(deviceUI.GetDeviceStatu()); deviceRow.HideSwitchBtn(true); deviceTypeRowLayout.AddChidren(deviceRow); @@ -1596,7 +1787,7 @@ { Tag = deviceUI }; - if (curRoom.IsSharedRoom == false) + if (Common.Room.CurrentRoom.IsSharedRoom == false) { deviceTypeRowLayout.AddRightView(editBtn); editBtn.MouseUpEventHandler += deviceDetailHandler; @@ -1633,45 +1824,32 @@ functionSceneBodyView = new FrameLayout() { Y = roomFL.Bottom, - Height = Application.GetRealHeight(973+279), + Height = Application.GetRealHeight(973 + 279), BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor }; functionSceneAutoBodyView.AddChidren(functionSceneBodyView); - Button curBtn = new Button(); + RoomButton curBtn = new RoomButton(0, 0); foreach (var room in Common.Room.CurrentRoom.GetRoomsByCurrentFloorIdAppendLoveRoom()) { var row = new FrameLayout() { - Width = Application.GetRealWidth(187 + 50), + Width = Application.GetRealWidth(255), 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 - }; + RoomButton roomBtn = new RoomButton(0, 0); + roomBtn.Gravity = Gravity.Center; + roomBtn.Init(); + roomBtn.SetTitle(room.Name); row.AddChidren(roomBtn); - roomBtn.SetViewShadow(true,5); - if (room.IsLove) + if (room.Id == Common.Room.CurrentRoom.Id) { roomBtn.IsSelected = true; - this.curRoom = room; curBtn = roomBtn; - - if(sceneBtn.IsSelected) + if (sceneBtn.IsSelected) { RefreshScene(room); } @@ -1679,18 +1857,18 @@ { RefreshFunction(room); } - } - roomBtn.MouseUpEventHandler += (sender, e) => + + roomBtn.ButtonClickEvent += (sender, e) => { - if ((sender as Button) == curBtn) + if (sender == curBtn) { return; } - (sender as Button).IsSelected = true; + sender.IsSelected = true; curBtn.IsSelected = false; - curBtn = sender as Button; - this.curRoom = room; + curBtn = sender; + Common.Room.CurrentRoom = room; if (sceneBtn.IsSelected) { RefreshScene(room); @@ -1720,8 +1898,8 @@ /// <param name="room"></param> public void RefreshScene(Common.Room room) { + RefreshData(room); functionSceneBodyView.RemoveAll(); - var sceneList = room.SceneUIList; if (sceneList.Count == 0) { ShowNoSceneTip(); @@ -1761,7 +1939,7 @@ Height = Application.GetRealHeight(200), Width = Application.GetRealWidth(700), Gravity = Gravity.CenterHorizontal, - Text = Language.StringByID(R.MyInternationalizationString.NoScene).Replace("{\\r\\n}","\r\n"), + Text = Language.StringByID(R.MyInternationalizationString.NoScene).Replace("{\\r\\n}", "\r\n"), TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, TextAlignment = TextAlignment.Center, IsMoreLines = true @@ -1796,7 +1974,7 @@ if (delayScenesListResponseInfo.ScenesId == sceneView.scene.Id) { sceneView.scene.RemainTime = delayScenesListResponseInfo.RemainTime; - var remainTime= delayScenesListResponseInfo.RemainTime; + var remainTime = delayScenesListResponseInfo.RemainTime; if (remainTime > 0) { new System.Threading.Thread(() => @@ -1843,10 +2021,10 @@ /// 鑷姩鍖� /// </summary> private async void ShowAutotion() - { - - functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; - + { + + functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; + var bjFrameLayout = new FrameLayout { Width = Application.GetRealWidth(1080 - 58), @@ -1878,7 +2056,7 @@ TextID = MyInternationalizationString.logictemplate, Gravity = Gravity.CenterVertical, TextColor = ZigbeeColor.Current.LogicBtnSelectedColor, - TextSize=15, + TextSize = 15, }; bjFrameLayout.AddChidren(recommendtextBtn); @@ -2638,4 +2816,4 @@ } -} +} \ No newline at end of file -- Gitblit v1.8.0