From 1a2061079e97a738ec7b8959bfd9a6e6c6997403 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期四, 31 十月 2019 09:59:29 +0800 Subject: [PATCH] 2019.10.31 --- ZigbeeApp/Shared/Phone/Device/Category/Category.cs | 266 +++++++++++++++++++++++++++++----------------------- 1 files changed, 148 insertions(+), 118 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 9ed8a71..4405a9a --- a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs +++ b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs @@ -162,10 +162,10 @@ { case DeviceType.OnOffOutput: //寮�鍏冲姛鑳� - if (common.DeviceStatusReport.CluterID == 6) + if ((common as ToggleLight).DeviceStatusReport.CluterID == 6) { var light = deviceUI.CommonDevice as ToggleLight; - light.DeviceStatusReport = common.DeviceStatusReport; + light.DeviceStatusReport = (common as ToggleLight).DeviceStatusReport; for (int j = 0; j < rowLayout.ChildrenCount; j++) { var tempView = rowLayout.GetChildren(j); @@ -187,7 +187,7 @@ } } } - if (common.DeviceStatusReport.CluterID == 3) + if ((common as ToggleLight).DeviceStatusReport.CluterID == 3) { var light = deviceUI.CommonDevice as ToggleLight; light.IsOnline = 1; @@ -210,10 +210,10 @@ case DeviceType.AirSwitch: //寮�鍏冲姛鑳� - if (common.DeviceStatusReport.CluterID == 6) + if ((common as ZigBee.Device.AirSwitch).DeviceStatusReport.CluterID == 6) { var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; - airSwitch.DeviceStatusReport = common.DeviceStatusReport; + airSwitch.DeviceStatusReport = (common as ZigBee.Device.AirSwitch).DeviceStatusReport; for (int j = 0; j < rowLayout.ChildrenCount; j++) { var tempView = rowLayout.GetChildren(j); @@ -235,7 +235,7 @@ } } } - if (common.DeviceStatusReport.CluterID == 3) + if ((common as ZigBee.Device.AirSwitch).DeviceStatusReport.CluterID == 3) { var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; airSwitch.IsOnline = 1; @@ -256,7 +256,7 @@ } break; case DeviceType.WindowCoveringDevice: - if (common.DeviceStatusReport.CluterID == 3) + if ((common as Rollershade).DeviceStatusReport.CluterID == 3) { var rollerShape = deviceUI.CommonDevice as Rollershade; //璁板綍鍥炲鏃堕棿 @@ -279,15 +279,15 @@ case DeviceType.Thermostat: //AC鍔熻兘 - if (common.DeviceStatusReport.CluterID == 513) + if ((common as ZigBee.Device.AC).DeviceStatusReport.CluterID == 513) { - var attriButeList = common.DeviceStatusReport.AttriBute; + var attriButeList = (common as ZigBee.Device.AC).DeviceStatusReport.AttriBute; if (attriButeList == null || attriButeList.Count == 0) { return; } var ac = deviceUI.CommonDevice as ZigBee.Device.AC; - ac.DeviceStatusReport = common.DeviceStatusReport; + ac.DeviceStatusReport = (common as ZigBee.Device.AC).DeviceStatusReport; switch (attriButeList[0].AttributeId) { case 0: @@ -336,7 +336,7 @@ } } - if (common.DeviceStatusReport.CluterID == 3) + if ((common as ZigBee.Device.AC).DeviceStatusReport.CluterID == 3) { var ac = deviceUI.CommonDevice as ZigBee.Device.AC; ac.IsOnline = 1; @@ -358,10 +358,10 @@ break; case DeviceType.DimmableLight: //璋冨厜鐏姛鑳� - if (common.DeviceStatusReport.CluterID == 6) + if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 6) { var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; - dimmableLight.DeviceStatusReport = common.DeviceStatusReport; + dimmableLight.DeviceStatusReport = (common as ZigBee.Device.DimmableLight).DeviceStatusReport; for (int j = 0; j < rowLayout.ChildrenCount; j++) { var tempView = rowLayout.GetChildren(j); @@ -383,7 +383,7 @@ } } } - if (common.DeviceStatusReport.CluterID == 3) + if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 3) { var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; dimmableLight.IsOnline = 1; @@ -543,7 +543,7 @@ /// <param name="selectedBtn">閫変腑閭d釜鐣岄潰 0--鍔熻兘 1--鍦烘櫙 2--鑷姩鍖� </param> public void Show(int selectedBtn = 1) { - + ZbGateway.StatusList.Add(this); RemoveAll(); @@ -585,7 +585,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); @@ -596,18 +596,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(); @@ -895,11 +894,10 @@ 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(); @@ -987,18 +985,18 @@ var deviceTypeRowLayout = new RowLayout() { - Height = Application.GetRealHeight(127 + 35), + Height = Application.GetRealHeight(129 + 35), LineColor = ZigbeeColor.Current.GXCBackgroundColor, Tag = deviceUI }; deviceListScrolView.AddChidren(deviceTypeRowLayout); - var deviceRow = new FunctionRow(0, 35); + var deviceRow = new CategoryFunctionRow(0, 35); deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); deviceRow.SetStatu(light.IsOnline == 1); + deviceRow.SetZoneText(deviceUI.GetZone()); deviceTypeRowLayout.AddChidren(deviceRow); - deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => { @@ -1007,6 +1005,7 @@ 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); @@ -1028,6 +1027,15 @@ DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); } }); + }; + + 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); }; var editBtn = new CommonForm.RowLayoutEditButton() @@ -1080,10 +1088,11 @@ }; deviceListScrolView.AddChidren(deviceTypeRowLayout); - var deviceRow = new FunctionRow(0, 35); + var deviceRow = new CategoryFunctionRow(0, 35); deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); deviceRow.SetStatu(airSwitch.IsOnline == 1); + deviceRow.SetZoneText(deviceUI.GetZone()); deviceTypeRowLayout.AddChidren(deviceRow); deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => @@ -1093,8 +1102,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) { airSwitch.SwitchControl(1); } @@ -1115,6 +1124,15 @@ DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); } }); + }; + + 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); }; var editBtn = new CommonForm.RowLayoutEditButton() @@ -1163,16 +1181,17 @@ var deviceTypeRowLayout = new RowLayout() { - Height = Application.GetRealHeight(127 + 35), + Height = Application.GetRealHeight(129 + 35), LineColor = ZigbeeColor.Current.GXCBackgroundColor, Tag = deviceUI }; deviceListScrolView.AddChidren(deviceTypeRowLayout); - var deviceRow = new FunctionRow(0, 35); + var deviceRow = new CategoryFunctionRow(0, 35); deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName); deviceRow.SetStatu(dimmableLight.IsOnline == 1); + deviceRow.SetZoneText(deviceUI.GetZone()); deviceTypeRowLayout.AddChidren(deviceRow); deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => @@ -1182,8 +1201,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) { dimmableLight.SwitchControl(1); } @@ -1204,6 +1223,16 @@ 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() @@ -1434,7 +1463,7 @@ typeRowLayout.AddChidren(functionTypeIMG); functionTypeIMG.ClickBtn.MouseUpEventHandler += ShowSameTypeFunction; - + if (deviceType == room.DeviceUIList[0].CommonDevice.Type) { @@ -1452,7 +1481,7 @@ var roomFL = new HorizontalScrolViewLayout() { X = Application.GetRealWidth(CommonFormResouce.X_Left), - Height = Application.GetRealHeight(167), + Height = Application.GetRealHeight(170), Width = Application.GetRealWidth(CommonPage.AppRealWidth - CommonFormResouce.X_Left), BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor }; @@ -1462,7 +1491,7 @@ functionSceneBodyView = new FrameLayout() { Y = roomFL.Bottom, - Height = Application.GetRealHeight(1316), + Height = Application.GetRealHeight(973+279), BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor }; functionSceneAutoBodyView.AddChidren(functionSceneBodyView); @@ -1505,7 +1534,7 @@ { RefreshFunction(room); } - + } roomBtn.MouseUpEventHandler += (sender, e) => { @@ -1526,7 +1555,7 @@ } }; } - + } #endregion @@ -1556,7 +1585,7 @@ { var sceneScrolView = new VerticalScrolViewLayout { - Y = Application.GetRealHeight(58) + //Y = Application.GetRealHeight(58) }; functionSceneBodyView.AddChidren(sceneScrolView); foreach (var scene in sceneList) @@ -1611,7 +1640,7 @@ Tag = scene }; leftFL.AddChidren(collectionBtn); - + var sceneNameBtn = new Button() { Width = Application.GetRealWidth(176), @@ -1760,7 +1789,7 @@ } }; } - + }; deleteBtn.MouseUpEventHandler += delEvent; //缂栬緫鍦烘櫙 @@ -1816,6 +1845,7 @@ #endregion + #region 鈼� 鑷姩鍖朹_________________________ /// <summary> @@ -1825,7 +1855,7 @@ { functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; - + var bjFrameLayout = new FrameLayout { Width = Application.GetRealWidth(1080 - 58), @@ -1992,7 +2022,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++) { @@ -2145,78 +2175,6 @@ } - - #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 private void StatusColor(Common.Logic logic, RowLayout logicRowlayout, int intvalue) { @@ -2612,5 +2570,77 @@ } } #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