From 94e4e5b9fd3da964c44b7b14227d6fe2bbb426d7 Mon Sep 17 00:00:00 2001 From: WJC <wjc@hdlchina.com.cn> Date: 星期四, 02 四月 2020 13:56:39 +0800 Subject: [PATCH] 2020-04-02-2 --- ZigbeeApp/Shared/Phone/Device/Category/Category.cs | 2769 ++++++++++++++++++++++++++++++++-------------------------- 1 files changed, 1,520 insertions(+), 1,249 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs index bc4aa84..e87c0be 100644 --- a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs +++ b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs @@ -5,6 +5,10 @@ using Shared.R; using ZigBee.Device; using Shared.Phone.Device.CommonForm; +using Shared.Phone.Device.AC; +using Shared.Phone.UserCenter.DoorLock; +using Shared.Phone.Device.DeviceLogic; +using Shared.Phone.UserCenter; namespace Shared.Phone.Device.Category { @@ -22,7 +26,7 @@ /// <summary> /// low_High /// </summary> - private const int low_High= 127; + private const int low_High = 127; /// <summary> /// 鍔熻兘 /// </summary> @@ -82,7 +86,7 @@ /// <summary> /// 鍔熻兘绫诲瀷鎸夐挳 /// </summary> - private FunctionButton functionTypeIMG; + //private FunctionButton functionTypeIMG; /// <summary> /// 鍔熻兘绫诲瀷 /// </summary> @@ -90,7 +94,7 @@ /// <summary> /// 璁惧绫诲瀷RowLayout /// </summary> - private FrameLayout typeRowLayout; + //private FrameLayout typeRowLayout; /// <summary> /// 妤煎眰 /// </summary> @@ -100,33 +104,26 @@ /// </summary> private Button selectFloorBtn; + /// <summary> + /// 鐩稿悓绫诲瀷鐨勮澶囧垪琛� + /// </summary> + private Dictionary<int, List<CommonDevice>> typeDeviceDic; + /// <summary> + /// 璁惧绫诲瀷鐨勫浘id + /// </summary> + private Dictionary<int, DeviceConcreteType> typeIdDic; + /// <summary> + /// dList + /// </summary> + private List<CommonDevice> devList; + /// <summary> + /// sceneList + /// </summary> + private List<SceneUI> sceneList; #endregion #region 鈼� 鎺ュ彛____________________________ - /// <summary> - /// 璇ユ帴鍙e皢寮冪敤 鏀圭敤DeviceInfoChange() - /// </summary> - /// <param name="common">Common.</param> - public void Changed(CommonDevice common) - { - - } - /// <summary> - /// Changeds the IL ogic status. - /// </summary> - /// <param name="logic">Logic.</param> - public void ChangedILogicStatus(ZigBee.Device.Logic logic) - { - - } - /// <summary> - /// Changeds the IS cene status. - /// </summary> - /// <param name="scene">Scene.</param> - public void ChangedISceneStatus(Scene scene) - { - - } + /// <summary> /// 璁惧鐘舵�佹洿鏂版帴鍙� /// <para>type锛氬鏋滀负 DeviceInComingRespon:璁惧鏂颁笂鎶�</para> @@ -146,65 +143,40 @@ { 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; - var deviceUI = rowLayout.Tag as DeviceUI; - if (deviceUI == null || deviceUI.CommonDevice == null) + var deviceUI = LocalDevice.Current.GetDevice(rowLayout.Tag.ToString()); + if (deviceUI == null) { continue; } - if (deviceUI.CommonDevice.DeviceAddr != common.DeviceAddr || deviceUI.CommonDevice.DeviceEpoint != common.DeviceEpoint) + if (deviceUI.DeviceAddr != common.DeviceAddr || deviceUI.DeviceEpoint != common.DeviceEpoint) { continue; } - switch (deviceUI.CommonDevice.Type) + switch (deviceUI.Type) { case DeviceType.OnOffOutput: //寮�鍏冲姛鑳� if (common.DeviceStatusReport.CluterID == 6) { - var light = deviceUI.CommonDevice as ToggleLight; + var light = deviceUI as ToggleLight; light.DeviceStatusReport = common.DeviceStatusReport; - 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 (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; - } - } + light.OnOffStatus = light.DeviceStatusReport.AttriBute[0].AttriButeData; + var row = rowLayout.GetChildren(0) as CategoryFunctionRow; + row.IsSelected = light.OnOffStatus == 1; + row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + light.LastDateTime = DateTime.Now; } if (common.DeviceStatusReport.CluterID == 3) { - var light = deviceUI.CommonDevice as ToggleLight; - light.IsOnline = 1; - //璁板綍鍥炲鏃堕棿 - 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.IsOnline = 1; + deviceUI.LastDateTime = DateTime.Now; } break; @@ -212,68 +184,48 @@ //寮�鍏冲姛鑳� if (common.DeviceStatusReport.CluterID == 6) { - var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; + var airSwitch = deviceUI as ZigBee.Device.AirSwitch; airSwitch.DeviceStatusReport = common.DeviceStatusReport; - 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 (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; - } - } + airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData; + var row = rowLayout.GetChildren(0) as CategoryFunctionRow; + row.IsSelected = airSwitch.OnOffStatus == 1; + row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + airSwitch.LastDateTime = DateTime.Now; } if (common.DeviceStatusReport.CluterID == 3) { - var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; - airSwitch.IsOnline = 1; - //璁板綍鍥炲鏃堕棿 - 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.IsOnline = 1; + deviceUI.LastDateTime = DateTime.Now; } break; case DeviceType.WindowCoveringDevice: + + if (common.DeviceStatusReport.CluterID == 258) + { + if (common.DeviceStatusReport.AttriBute[0].AttributeId == 0) + { + //绐楀笜绫诲瀷 + var rollerShade = deviceUI 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 as Rollershade; + rollerShade.DeviceStatusReport = common.DeviceStatusReport; + rollerShade.WcdCurrentPositionLiftPercentage = common.DeviceStatusReport.AttriBute[0].AttriButeData; + row.SetStatuText($"{Language.StringByID(R.MyInternationalizationString.Current)} { HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)}"); + row.IsSelected = rollerShade.WcdCurrentPositionLiftPercentage != 0; + rollerShade.LastDateTime = DateTime.Now; + } + } if (common.DeviceStatusReport.CluterID == 3) { - var rollerShape = deviceUI.CommonDevice as Rollershade; - //璁板綍鍥炲鏃堕棿 - rollerShape.LastDateTime = DateTime.Now; - rollerShape.IsOnline = 1; - 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.IsOnline = 1; + deviceUI.LastDateTime = DateTime.Now; } break; @@ -282,123 +234,159 @@ 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; + var ac = deviceUI as ZigBee.Device.AC; ac.DeviceStatusReport = common.DeviceStatusReport; - switch (attriButeList[0].AttributeId) + foreach (var attList in attriButeList) { - case 0: - //姝ゅ睘鎬ц〃鏄庡鍐呭綋鍓嶇殑娓╁害 * 100锛屽疄闄呮俯搴︿负鈥淟ocalTemperature / 100鈥濓紝鍗曚綅锛氣剝 - ac.currentLocalTemperature = attriButeList[0].AttriButeData / 100; - ac.LastDateTime = DateTime.Now; - break; - - case 17: - //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勫埗鍐锋俯搴︼紝瀹為檯娓╁害涓衡�淐oolingSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆� - ac.currentCoolingSetpoint = attriButeList[0].AttriButeData / 100; - ac.LastDateTime = DateTime.Now; - break; - - case 18: - //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勫埗鐑俯搴︼紝瀹為檯娓╁害涓衡�淗eatingSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆� - ac.currentHeatingSetpoint = attriButeList[0].AttriButeData / 100; - 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 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 4097: + //杩囪檻缃戞竻娲楁爣蹇�:42 + ac.CleanStatu = attList.AttriButeData == 42; + break; + } } - + var row = rowLayout.GetChildren(0) as CategoryFunctionRow; + row.IsSelected = ac.currentSystemMode != 0; + row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); } + + if (common.DeviceStatusReport.CluterID == 514) + { + var ac = deviceUI as ZigBee.Device.AC; + var attriButeList = common.DeviceStatusReport.AttriBute; + ac.DeviceStatusReport = common.DeviceStatusReport; + foreach (var attList in attriButeList) + { + 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.IsSelected = ac.currentSystemMode != 0; + row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + } + if (common.DeviceStatusReport.CluterID == 3) { - var ac = deviceUI.CommonDevice as ZigBee.Device.AC; + var ac = deviceUI 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; - } - } } break; case DeviceType.DimmableLight: //璋冨厜鐏姛鑳� if (common.DeviceStatusReport.CluterID == 6) { - var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; + var dimmableLight = deviceUI as DimmableLight; dimmableLight.DeviceStatusReport = common.DeviceStatusReport; - 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 (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; - } - } + dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData; + var row = rowLayout.GetChildren(0) as CategoryFunctionRow; + row.IsSelected = dimmableLight.OnOffStatus == 1; + row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + dimmableLight.LastDateTime = DateTime.Now; + } + if (common.DeviceStatusReport.CluterID == 8) + { + var dimmableLight = deviceUI as DimmableLight; + dimmableLight.DeviceStatusReport = common.DeviceStatusReport; + dimmableLight.Level = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData; + var row = rowLayout.GetChildren(0) as CategoryFunctionRow; + row.IsSelected = dimmableLight.OnOffStatus == 1; + row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + dimmableLight.LastDateTime = DateTime.Now; } if (common.DeviceStatusReport.CluterID == 3) { - var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; - dimmableLight.IsOnline = 1; - //璁板綍鍥炲鏃堕棿 - dimmableLight.LastDateTime = DateTime.Now; - for (int j = 0; j < rowLayout.ChildrenCount; j++) + deviceUI.IsOnline = 1; + deviceUI.LastDateTime = DateTime.Now; + } + break; + + case DeviceType.TemperatureSensor: + //娓╁害 + if (common.DeviceStatusReport.CluterID == 1026) + { + var tempera = deviceUI as TemperatureSensor; + foreach (var data in common.DeviceStatusReport.AttriBute) { - var tempView = rowLayout.GetChildren(j); - if (tempView.Tag == null) + if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue) { - continue; + 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(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); } - if (tempView.Tag.ToString() == deviceStatus_Online) + } + } + //婀垮害 + if (common.DeviceStatusReport.CluterID == 1029) + { + var tempera = deviceUI as TemperatureSensor; + foreach (var data in common.DeviceStatusReport.AttriBute) + { + if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue) { - (tempView as Button).IsSelected = dimmableLight.IsOnline == 1; + 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(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); } } } @@ -421,89 +409,79 @@ 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) + var deviceUI = LocalDevice.Current.GetDevice(rowLayout.Tag.ToString()); + if (deviceUI == null) { continue; } - if (deviceUI.CommonDevice.DeviceAddr != common.DeviceAddr || deviceUI.CommonDevice.DeviceEpoint != common.DeviceEpoint) + if (deviceUI.DeviceAddr != common.DeviceAddr || deviceUI.DeviceEpoint != common.DeviceEpoint) { continue; } - switch (deviceUI.CommonDevice.Type) + switch (deviceUI.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.IsOnline = common.IsOnline; + deviceUI.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.IsOnline = common.IsOnline; + deviceUI.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.LastDateTime = DateTime.Now; + deviceUI.IsOnline = common.IsOnline; + break; + + case DeviceType.DimmableLight: + deviceUI.LastDateTime = DateTime.Now; + deviceUI.IsOnline = common.IsOnline; 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.LastDateTime = DateTime.Now; + deviceUI.IsOnline = common.IsOnline; + 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 = LocalDevice.Current.GetDevice(rowLayout.Tag.ToString()); + if (deviceUI == null) + { + continue; + } + if (deviceUI.DeviceAddr != common.DeviceAddr || deviceUI.DeviceEpoint != common.DeviceEpoint) + { + continue; + } + switch (deviceUI.Type) + { + case DeviceType.IASZone: + //寮�鍏冲姛鑳� + var ias = common as IASZone; + var iAS = deviceUI as ZigBee.Device.IASZone; + iAS.iASInfo = ias.iASInfo; + var row = rowLayout.GetChildren(0) as CategoryFunctionRow; + row.IsSelected = iAS.iASInfo?.Alarm1 == 1; + row.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + iAS.LastDateTime = DateTime.Now; break; } } @@ -535,6 +513,7 @@ { BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor; instance = this; + ZbGateway.StatusList.Add(this); } /// <summary> @@ -543,8 +522,8 @@ /// <param name="selectedBtn">閫変腑閭d釜鐣岄潰 0--鍔熻兘 1--鍦烘櫙 2--鑷姩鍖� </param> public void Show(int selectedBtn = 1) { + InitData(); - ZbGateway.StatusList.Add(this); RemoveAll(); #region topview @@ -564,8 +543,9 @@ Gravity = Gravity.CenterVertical, TextAlignment = TextAlignment.CenterLeft, TextID = R.MyInternationalizationString.Category, - TextSize = 20, + TextSize = 24, TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor, + IsBold = true }; topView.AddChidren(title); @@ -598,19 +578,21 @@ midFL.AddChidren(functionSceneAutoBG); //鍦烘櫙 - sceneBtn = new ButtonLineForm(CommonFormResouce.X_Left, 34, 150, 68); + sceneBtn = new ButtonLineForm(CommonFormResouce.X_Left, 34); functionSceneAutoBG.AddChidren(sceneBtn); sceneBtn.Init(); sceneBtn.SetTitle(R.MyInternationalizationString.Scence); //鍔熻兘 - functionBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 + 20, 34, 150, 68); + functionBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 + 20, 34); functionSceneAutoBG.AddChidren(functionBtn); functionBtn.Init(); functionBtn.SetTitle(R.MyInternationalizationString.Function); + functionBtn.X = sceneBtn.Right; //鑷姩鍖� - automationBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 * 2 + 20, 34, 150, 68); + automationBtn = new ButtonLineForm(CommonFormResouce.X_Left + 150 * 2 + 20 + 50, 34); automationBtn.Init(); automationBtn.SetTitle(R.MyInternationalizationString.Automation); + automationBtn.X = functionBtn.Right; //闅愯棌鑷姩鍖� if (UserCenter.UserCenterResourse.UserInfo.AuthorityNo != 3) { @@ -625,6 +607,8 @@ Gravity = Gravity.CenterVertical, TextAlignment = TextAlignment.CenterRight, TextColor = ZigbeeColor.Current.GXCTextBlackColor, + TextSize = 14, + IsBold = true }; selectFloorBtn = new Button() @@ -671,6 +655,7 @@ #endregion //缁戝畾鎸夐挳浜嬩欢 BindEvent(); + } #endregion @@ -691,7 +676,7 @@ addBtn.MouseUpEventHandler += AddBtn_MouseUpEventHandler; selectFloorBtn.MouseUpEventHandler += SelectedFloor_MouseUpEventHandler; - floorBtn.MouseUpEventHandler+= SelectedFloor_MouseUpEventHandler; + floorBtn.MouseUpEventHandler += SelectedFloor_MouseUpEventHandler; } @@ -702,12 +687,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.FloorAction += (floorName) => + floors.Init(580, 330, Direction.Right); + floors.changeFloor = true; + floors.FloorAction += (floorId) => { - floorBtn.Text = floorName; + floorBtn.Text = Config.Instance.Home.GetFloorNameById(floorId); + HdlRoomLogic.Current.CurrentRoom = HdlRoomLogic.Current.GetLoveRoom(); RefreshBodyView(); }; } @@ -746,12 +733,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; @@ -792,6 +778,10 @@ UserView.HomePage.Instance.AddChidren(scene); UserView.HomePage.Instance.PageIndex += 1; scene.Show(); + scene.AddAction = () => + { + ShowScene(); + }; } /// <summary> @@ -799,14 +789,24 @@ /// </summary> private void Add_Automation() { - //new涓�涓柊閫昏緫瀵硅薄锛� - Common.Logic.CurrentLogic = new Common.Logic(); - Common.Logic.CurrentLogic.IsEnable = 1;//榛樿涓哄紑 - 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(); + ////new涓�涓柊閫昏緫瀵硅薄锛� + //Common.Logic.CurrentLogic = new Common.Logic(); + //Common.Logic.CurrentLogic.IsEnable = 1;//榛樿涓哄紑 + //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(); + Shared.Phone.Device.Logic.SkipView.SkipAddLogic(0); + } + /// <summary> + /// HidenFloor + /// </summary> + /// <param name="statu"></param> + private void HidenFloor(bool statu) + { + selectFloorBtn.Visible = !statu; + floorBtn.Visible = !statu; } #endregion @@ -820,15 +820,57 @@ functionSceneAutoBodyView.RemoveAll(); if (functionBtn.IsSelected) { + HidenFloor(false); ShowFunction(); } else if (sceneBtn.IsSelected) { + HidenFloor(false); ShowScene(); } else if (automationBtn.IsSelected) { + HidenFloor(true); ShowAutotion(); + } + } + + /// <summary> + /// InitData + /// </summary> + private void InitData() + { + typeDeviceDic = new Dictionary<int, List<CommonDevice>> { }; + typeIdDic = new Dictionary<int, DeviceConcreteType> { }; + } + + /// <summary> + /// RefreshData + /// </summary> + private void RefreshData(Common.Room room) + { + devList = HdlRoomLogic.Current.GetRoomListDevice(room); + sceneList = HdlSceneLogic.Current.GetRoomSceneList(room); + typeDeviceDic.Clear(); + typeIdDic.Clear(); + foreach (var device in devList) + { + var info = Common.LocalDevice.Current.GetDeviceBelongEnumInfo(device); + if (info.BeloneType == DeviceBeloneType.A骞叉帴鐐� || info.BeloneType == DeviceBeloneType.A涓户鍣�) + { + continue; + } + if (typeDeviceDic.ContainsKey(info.BeloneTextId) == false) + { + var sameDevList = new List<CommonDevice> { }; + sameDevList.Add(device); + typeDeviceDic[info.BeloneTextId] = sameDevList; + } + else + { + typeDeviceDic[info.BeloneTextId].Add(device); + } + typeIdDic[info.BeloneTextId] = info.ConcreteType; } } @@ -850,10 +892,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); @@ -864,10 +906,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); } @@ -878,608 +920,913 @@ /// <param name="room"></param> private void RefreshFunction(Common.Room room) { + RefreshData(room); //绉婚櫎鐩戝惉 RemoveAllUpdateControlDeviceStatuAction(); functionSceneBodyView.RemoveAll(); - if (room.DeviceUIList.Count == 0) + if (typeDeviceDic.Count == 0) { ShowNoFunctionTip(); } else { + var functionTypeView1 = new FrameLayout + { + X = Application.GetRealWidth(CommonFormResouce.X_Left), + Height = Application.GetRealHeight(160), + Width = Application.GetRealWidth(1028), + BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor + }; + functionSceneBodyView.AddChidren(functionTypeView1); + functionTypeView1.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerTopLeft); + + var functionTypeView2 = new FrameLayout + { + X = Application.GetRealWidth(CommonFormResouce.X_Left), + Y = Application.GetRealHeight(150), + Height = Application.GetRealHeight(279 - 150), + Width = Application.GetRealWidth(1028), + BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor + }; + functionSceneBodyView.AddChidren(functionTypeView2); + functionTypeView2.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft); + functionTypeScrowView = new HorizontalScrolViewLayout { X = Application.GetRealWidth(CommonFormResouce.X_Left), Height = Application.GetRealHeight(279), Width = Application.GetRealWidth(1028), - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor }; functionSceneBodyView.AddChidren(functionTypeScrowView); 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(938) - 1, + Height = Application.GetRealHeight(942), BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor }; functionSceneBodyView.AddChidren(deviceListScrolView); + deviceListScrolView.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft); + tempFunctionTypeBtn = new FunctionButton(); + tempFunctionTypeBtn.Init("", ""); - EventHandler<MouseEventArgs> ShowSameTypeFunction = (object typeSender, MouseEventArgs mouseEventArgs) => + foreach (var deviceType in typeIdDic) { - 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) + var typeRowLayout = new FrameLayout() { - 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(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.SetStatu(light.IsOnline == 1); - deviceRow.SetZoneText(deviceUI.GetZone()); - 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); - } - //鎺у埗寤舵椂鍥炶皟 - 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.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(127 + 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.SetStatu(airSwitch.IsOnline == 1); - deviceRow.SetZoneText(deviceUI.GetZone()); - 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); - } - }); - }; - - 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() - { - 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.SetStatu(dimmableLight.IsOnline == 1); - deviceRow.SetZoneText(deviceUI.GetZone()); - 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); - } - }); - }; - - 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.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 - { - - } - } - }; - - foreach (var deviceType in Common.Room.GetdeviceTypes(room)) - { - typeRowLayout = new FrameLayout() - { - Width = Application.GetRealWidth(CommonPage.AppRealWidth / 5), - Tag = deviceType + Width = Application.GetRealWidth(220), }; functionTypeScrowView.AddChidren(typeRowLayout); - functionTypeIMG = new FunctionButton() + var functionTypeIMG = new FunctionButton() { - Tag = deviceType + Tag = deviceType.Key }; - functionTypeIMG.Init(DeviceUI.GetDeviceTypeUnSelectedImagePath(deviceType), DeviceUI.GetDeviceTypeUnSelectedImagePath(deviceType)); - functionTypeIMG.SetTitle(DeviceUI.GetDeviceTypeName(deviceType)); + string imgPath = string.Empty; + string imgSeletedPath = string.Empty; + 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 (deviceType == room.DeviceUIList[0].CommonDevice.Type) + if (functionTypeScrowView.ChildrenCount == 1) { ShowSameTypeFunction(functionTypeIMG.ImageBtn, null); } } - - } } + + /// <summary> + /// 鏄剧ず鐩稿悓绫诲瀷鐨勫姛鑳� + /// </summary> + /// <param name="typeSender">typeSender.</param> + /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param> + private void ShowSameTypeFunction(object typeSender, MouseEventArgs mouseEventArgs) + { + tempFunctionTypeBtn.IsSelected = false; + tempFunctionTypeBtn = (typeSender as Button).Parent as FunctionButton; + ((typeSender as Button).Parent as FunctionButton).IsSelected = true; + + deviceListScrolView.RemoveAll(); + + var sameTypeList = new List<CommonDevice> { }; + sameTypeList = typeDeviceDic[int.Parse((typeSender as Button).Tag.ToString())]; + + for (int i = 0; i < sameTypeList.Count; i++) + { + var deviceUI = sameTypeList[i]; + new System.Threading.Thread(() => + { + Application.RunOnMainThread(() => + { + try + { + var deviceTypeRowLayout = new RowLayout() + { + Height = Application.GetRealHeight(127 + 35), + LineColor = ZigbeeColor.Current.GXCClearColor, + Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI), + SubViewWidth = Application.GetRealWidth(184) + }; + deviceListScrolView.AddChidren(deviceTypeRowLayout); + + if (deviceUI.Type == DeviceType.OnOffOutput) + { + //鐏� + var light = deviceUI as ToggleLight; + if (light.Gateway != null) + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (light.Gateway.IsVirtual) + { + UserHomeView.ReadStatus(light, () => + { + ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI); + }); + } + else + { + //闃叉鐭椂闂村唴澶氭璇诲彇鐘舵�� + if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds) + { + ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI); + } + } + }) + { IsBackground = true }.Start(); + + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + deviceRow.IsSelected = light.OnOffStatus == 1; + deviceTypeRowLayout.AddChidren(deviceRow); + + deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => + { + zbGateway = deviceUI.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI); + (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(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + //鎺у埗寤舵椂鍥炶皟 + HdlDeviceOtherLogic.Current.SendCommandDelayAction(deviceUI, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + HdlDeviceOtherLogic.Current.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + }; + deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => + { + var lightControl = new Phone.Device.Light.OnOffControl(); + UserView.HomePage.Instance.AddChidren(lightControl); + UserView.HomePage.Instance.PageIndex += 1; + lightControl.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + lightControl.action += (curDev, curRoom) => + { + ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + }; + }; + + EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) => + { + var detailInfo = new Device.CommonForm.DeviceDetailInfo { }; + UserView.HomePage.Instance.AddChidren(detailInfo); + UserView.HomePage.Instance.PageIndex += 1; + detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + detailInfo.EditAction += (curDevice, curRoom) => + { + ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + }; + }; + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI) + }; + if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + } + } + } + else if (deviceUI.Type == DeviceType.AirSwitch) + { + //绌烘皵寮�鍏� + var airSwitch = deviceUI as AirSwitch; + if (airSwitch.Gateway != null) + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (airSwitch.Gateway.IsVirtual) + { + UserHomeView.ReadStatus(airSwitch, () => + { + ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI); + }); + } + else + { + if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + ReadDeviceAttributeLogic.Instance.SendLightStatuComand(deviceUI); + } + } + }) + { IsBackground = true }.Start(); + + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + deviceRow.IsSelected = airSwitch.OnOffStatus == 1; + deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + deviceTypeRowLayout.AddChidren(deviceRow); + deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => + { + zbGateway = deviceUI.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI); + (send2 as Button).IsSelected = !(send2 as Button).IsSelected; + deviceRow.IsSelected = (send2 as Button).IsSelected; + if ((send2 as Button).IsSelected) + { + airSwitch.SwitchControl(1); + } + else + { + airSwitch.SwitchControl(0); + } + deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + //鎺у埗寤舵椂鍥炶皟 + HdlDeviceOtherLogic.Current.SendCommandDelayAction(deviceUI, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + HdlDeviceOtherLogic.Current.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.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + lightControl.action += (curDev, curRoom) => + { + + ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + + }; + }; + + EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) => + { + var detailInfo = new Device.CommonForm.DeviceDetailInfo { }; + UserView.HomePage.Instance.AddChidren(detailInfo); + UserView.HomePage.Instance.PageIndex += 1; + detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + detailInfo.EditAction += (curDevice, curRoom) => + { + ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + + }; + }; + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI) + }; + if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + } + } + } + else if (deviceUI.Type == DeviceType.DimmableLight) + { + //璋冨厜鐏� + var dimmableLight = deviceUI as ZigBee.Device.DimmableLight; + if (dimmableLight.Gateway != null) + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (dimmableLight.Gateway.IsVirtual) + { + UserHomeView.ReadStatus(dimmableLight, () => + { + ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI); + }); + } + else + { + if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(deviceUI); + } + } + }) + { IsBackground = true }.Start(); + + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + deviceRow.IsSelected = dimmableLight.OnOffStatus == 1; + deviceTypeRowLayout.AddChidren(deviceRow); + + deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => + { + zbGateway = deviceUI.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI); + (send2 as Button).IsSelected = !(send2 as Button).IsSelected; + deviceRow.IsSelected = (send2 as Button).IsSelected; + if ((send2 as Button).IsSelected) + { + dimmableLight.SwitchControl(1); + } + else + { + dimmableLight.SwitchControl(0); + } + deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + //鎺у埗寤舵椂鍥炶皟 + HdlDeviceOtherLogic.Current.SendCommandDelayAction(deviceUI, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + HdlDeviceOtherLogic.Current.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.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + dimmableLightControl.action += (curDev, curRoom) => + { + ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + }; + + }; + + EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) => + { + var detailInfo = new Device.CommonForm.DeviceDetailInfo { }; + UserView.HomePage.Instance.AddChidren(detailInfo); + UserView.HomePage.Instance.PageIndex += 1; + detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + detailInfo.EditAction += (curDevice, curRoom) => + { + ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + }; + }; + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI) + }; + if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + } + } + } + else if (deviceUI.Type == DeviceType.Thermostat) + { + //绌鸿皟 + var ac = deviceUI as ZigBee.Device.AC; + if (ac.Gateway != null) + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (ac.Gateway.IsVirtual) + { + //鍙戦�佽鍙栫姸鎬佸懡浠� + UserView.UserHomeView.ReadStatus(ac, () => + { + ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI); + }); + } + else + { + //闃叉鐭椂闂村唴澶氭璇诲彇璁惧鐘舵�� + if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + ReadDeviceAttributeLogic.Instance.SendACStatuComand(deviceUI); + } + } + }) + { IsBackground = true }.Start(); + + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + deviceRow.IsSelected = ac.currentSystemMode != 1; + deviceTypeRowLayout.AddChidren(deviceRow); + + deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) => + { + zbGateway = deviceUI.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI); + + (send2 as Button).IsSelected = !(send2 as Button).IsSelected; + deviceRow.IsSelected = (send2 as Button).IsSelected; + if ((send2 as Button).IsSelected) + { + ac.Open(); + } + else + { + ac.Close(); + } + deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + //鎺у埗寤舵椂鍥炶皟 + HdlDeviceOtherLogic.Current.SendCommandDelayAction(deviceUI, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + HdlDeviceOtherLogic.Current.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + }; + 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; + acControl.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + acControl.action += (curDev, curRoom) => + { + ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + + }; + }; + + EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) => + { + var detailInfo = new Device.CommonForm.DeviceDetailInfo { }; + UserView.HomePage.Instance.AddChidren(detailInfo); + UserView.HomePage.Instance.PageIndex += 1; + detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + detailInfo.EditAction += (curDevice, curRoom) => + { + ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + + }; + }; + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI) + }; + if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + } + } + } + else if (deviceUI.Type == DeviceType.WindowCoveringDevice) + { + //鍗峰笜 + var rollerShade = deviceUI as ZigBee.Device.Rollershade; + if (rollerShade.Gateway != null) + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (rollerShade.Gateway.IsVirtual) + { + UserHomeView.ReadStatus(rollerShade, () => + { + ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI); + }); + } + else + { + //闃叉鐭椂闂村唴澶氭璇诲彇 + if ((DateTime.Now - rollerShade.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(deviceUI); + } + } + }) + { IsBackground = true }.Start(); + + var deviceRow = new CategoryFunctionForWinRow(0, 35); + deviceRow.Init(deviceUI); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + deviceRow.IsSelected = 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(); + } + + 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.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + rollerShadeControl.action += (curDev, curRoom) => + { + ReFreshDeviceActionForWin(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + }; + }; + + EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) => + { + var detailInfo = new Device.CommonForm.DeviceDetailInfo { }; + UserView.HomePage.Instance.AddChidren(detailInfo); + UserView.HomePage.Instance.PageIndex += 1; + detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + detailInfo.EditAction += (curDevice, curRoom) => + { + ReFreshDeviceActionForWin(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + }; + }; + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI) + }; + if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + } + } + } + else if (deviceUI.Type == DeviceType.DoorLock) + { + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + deviceRow.HideSwitchBtn(true); + deviceTypeRowLayout.AddChidren(deviceRow); + + deviceRow.ClickBtn.MouseUpEventHandler += (send2, e2) => + { + var userDoorLockPage = new UserDoorLockPage(HdlRoomLogic.Current.CurrentRoom, deviceUI); + HomePage.Instance.AddChidren(userDoorLockPage); + HomePage.Instance.PageIndex += 1; + userDoorLockPage.Show(); + }; + EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) => + { + var detailInfo = new Device.CommonForm.DeviceDetailInfo { }; + UserView.HomePage.Instance.AddChidren(detailInfo); + UserView.HomePage.Instance.PageIndex += 1; + detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + detailInfo.EditAction += (curDevice, curRoom) => + { + ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + }; + }; + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI) + }; + if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + } + } + else if (deviceUI.Type == DeviceType.IASZone) + { + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + deviceRow.IsSelected = (deviceUI as IASZone).iASInfo?.Alarm1 == 1; + deviceRow.HideSwitchBtn(true); + deviceTypeRowLayout.AddChidren(deviceRow); + + EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) => + { + var detailInfo = new Device.CommonForm.DeviceDetailInfo { }; + UserView.HomePage.Instance.AddChidren(detailInfo); + UserView.HomePage.Instance.PageIndex += 1; + detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + detailInfo.EditAction += (curDevice, curRoom) => + { + ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + }; + }; + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI) + }; + if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + } + } + else if (deviceUI.Type == DeviceType.TemperatureSensor) + { + var tempera = deviceUI 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); + } + else if (tempera.SensorDiv == 2) + { + ReadDeviceAttributeLogic.Instance.SendHumidityStatuComand(deviceUI); + } + }); + } + else + { + if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - tempera.LastDateTime).TotalSeconds) + { + if (tempera.SensorDiv == 1) + { + ReadDeviceAttributeLogic.Instance.SendTemperatureStatuComand(deviceUI); + } + else if (tempera.SensorDiv == 2) + { + ReadDeviceAttributeLogic.Instance.SendHumidityStatuComand(deviceUI); + } + } + } + }) + { IsBackground = true }.Start(); + + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + deviceRow.IsSelected = false; + deviceRow.HideSwitchBtn(true); + deviceTypeRowLayout.AddChidren(deviceRow); + + EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) => + { + var detailInfo = new Device.CommonForm.DeviceDetailInfo { }; + UserView.HomePage.Instance.AddChidren(detailInfo); + UserView.HomePage.Instance.PageIndex += 1; + detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + detailInfo.EditAction += (curDevice, curRoom) => + { + ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + }; + }; + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI) + }; + if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + } + } + } + else + { + var deviceRow = new CategoryFunctionRow(0, 35); + deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + deviceRow.SetStatuText(HdlDeviceOtherLogic.Current.GetDeviceStatu(deviceUI)); + deviceRow.HideSwitchBtn(true); + deviceTypeRowLayout.AddChidren(deviceRow); + + EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) => + { + var detailInfo = new Device.CommonForm.DeviceDetailInfo { }; + UserView.HomePage.Instance.AddChidren(detailInfo); + UserView.HomePage.Instance.PageIndex += 1; + detailInfo.Show(deviceUI, HdlRoomLogic.Current.CurrentRoom); + detailInfo.EditAction += (curDevice, curRoom) => + { + ReFreshDeviceAction(deviceUI, curRoom, sameTypeList, deviceListScrolView, deviceRow); + }; + }; + var editBtn = new CommonForm.RowLayoutEditButton() + { + Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI) + }; + if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(editBtn); + editBtn.MouseUpEventHandler += deviceDetailHandler; + } + } + + //鍒犻櫎璁惧 + EventHandler<MouseEventArgs> delEvent = (delSender, delE) => + { + var alert = new UserCenter.ShowMsgControl(ShowMsgType.Confirm, Language.StringByID(R.MyInternationalizationString.DeleteFunction)); + alert.Show(); + alert.ConfirmClickEvent += () => + { + if (HdlRoomLogic.Current.CurrentRoom.IsLove) + { + HdlRoomLogic.Current.DeleteLoveDevice(deviceUI); + deviceListScrolView.RemoveViewByTag((delSender as Button).Tag); + sameTypeList.Remove(deviceUI); + } + else + { + HdlRoomLogic.Current.DeleteDevice(deviceUI); + deviceListScrolView.RemoveViewByTag((delSender as Button).Tag); + sameTypeList.Remove(deviceUI); + + HdlRoomLogic.Current.DeleteLoveDevice(deviceUI); + } + if (sameTypeList.Count == 0) + { + RefreshBodyView(); + } + }; + }; + var delBtn = new CommonForm.RowLayoutDeleteButton() + { + Tag = LocalDevice.Current.GetDeviceMainKeys(deviceUI) + }; + if (HdlRoomLogic.Current.CurrentRoom.IsSharedRoom == false) + { + deviceTypeRowLayout.AddRightView(delBtn); + delBtn.MouseUpEventHandler += delEvent; + } + } + catch { } + }); + }) + { IsBackground = true }.Start(); + } + } + + /// <summary> + /// ReFreshDeviceAction + /// </summary> + /// <param name="curRoom"></param> + /// <param name="sameTypeList"></param> + /// <param name="devListScrolView"></param> + /// <param name="deviceRow"></param> + private void ReFreshDeviceAction(CommonDevice deviceUI, Common.Room curRoom, List<CommonDevice> sameTypeList, VerticalScrolViewLayout devListScrolView, CategoryFunctionRow deviceRow) + { + if (HdlRoomLogic.Current.CurrentRoom.IsLove) + { + deviceRow.SetDeviceIcon(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + if (HdlRoomLogic.Current.IsCollectInRoom(deviceUI) == false) + { + devListScrolView.RemoveViewByTag(deviceUI); + sameTypeList.Remove(deviceUI); + if (sameTypeList.Count == 0) + { + RefreshFunction(HdlRoomLogic.Current.CurrentRoom); + } + } + } + else + { + if (curRoom.Id != HdlRoomLogic.Current.CurrentRoom.Id) + { + HdlRoomLogic.Current.DeleteDevice(deviceUI); + devListScrolView.RemoveViewByTag(deviceUI); + sameTypeList.Remove(deviceUI); + if (sameTypeList.Count == 0) + { + RefreshFunction(HdlRoomLogic.Current.CurrentRoom); + } + } + else + { + deviceRow.SetDeviceIcon(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + } + } + } + + /// <summary> + /// ReFreshDeviceAction + /// </summary> + /// <param name="curRoom"></param> + /// <param name="sameTypeList"></param> + /// <param name="devListScrolView"></param> + /// <param name="deviceRow"></param> + private void ReFreshDeviceActionForWin(CommonDevice deviceUI, Common.Room curRoom, List<CommonDevice> sameTypeList, VerticalScrolViewLayout devListScrolView, CategoryFunctionForWinRow deviceRow) + { + if (HdlRoomLogic.Current.CurrentRoom.IsLove) + { + deviceRow.SetDeviceIcon(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + if (HdlRoomLogic.Current.IsCollectInRoom(deviceUI) == false) + { + devListScrolView.RemoveViewByTag(deviceUI); + sameTypeList.Remove(deviceUI); + if (sameTypeList.Count == 0) + { + RefreshFunction(HdlRoomLogic.Current.CurrentRoom); + } + } + } + else + { + if (curRoom.Id != HdlRoomLogic.Current.CurrentRoom.Id) + { + HdlRoomLogic.Current.DeleteDevice(deviceUI); + devListScrolView.RemoveViewByTag(deviceUI); + sameTypeList.Remove(deviceUI); + if (sameTypeList.Count == 0) + { + RefreshFunction(HdlRoomLogic.Current.CurrentRoom); + } + } + else + { + deviceRow.SetDeviceIcon(deviceUI.IconPath, deviceUI.OnlineIconPath); + deviceRow.SetTitle(Common.LocalDevice.Current.GetDeviceEpointName(deviceUI)); + } + } + } + /// <summary> /// AddRoomView @@ -1499,42 +1846,33 @@ 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(); - foreach (var room in Common.Room.CurrentRoom.GetRoomsByCurrentFloorIdAppendLoveRoom()) + RoomButton curBtn = new RoomButton(0, 0); + var lisrRoom = HdlRoomLogic.Current.GetRoomsByCurrentFloorIdAppendLoveRoom(); + foreach (var room in lisrRoom) { 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); - if (room.IsLove) + + if (room.Id == HdlRoomLogic.Current.CurrentRoom.Id) { roomBtn.IsSelected = true; curBtn = roomBtn; - - if(sceneBtn.IsSelected) + if (sceneBtn.IsSelected) { RefreshScene(room); } @@ -1542,17 +1880,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; + curBtn = sender; + HdlRoomLogic.Current.CurrentRoom = room; if (sceneBtn.IsSelected) { RefreshScene(room); @@ -1563,7 +1902,6 @@ } }; } - } #endregion @@ -1583,241 +1921,23 @@ /// <param name="room"></param> public void RefreshScene(Common.Room room) { + RefreshData(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 scene in sceneList) { - var sceneFL = new FrameLayout() - { - Height = Application.GetRealHeight(446), - BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor, - Tag = scene - }; - sceneScrolView.AddChidren(sceneFL); - var sceneRowLayout = new RowLayout - { - Y = Application.GetRealHeight(46), - Height = Application.GetRealHeight(446 - 46), - LineColor = ZigbeeColor.Current.GXCGrayBackgroundColor, - Radius = CommonPage.BigFormRadius - }; - sceneFL.AddChidren(sceneRowLayout); - - var sceneImg = new Button() - { - X = Application.GetRealWidth(179), - Width = Application.GetRealWidth(844), - Height = Application.GetRealHeight(400), - BackgroundColor = ZigbeeColor.Current.GXCRedColor, - UnSelectedImagePath = scene.IconPath, - Radius = (uint)Application.GetRealHeight(17) - }; - sceneRowLayout.AddChidren(sceneImg); - - var leftFL = new FrameLayout - { - X = Application.GetRealWidth(CommonFormResouce.X_Left), - Y = Application.GetRealHeight(58), - Width = Application.GetRealWidth(251), - Height = Application.GetRealHeight(282), - BackgroundColor = ZigbeeColor.Current.GXCBlackBackgroundColor2, - Radius = (uint)Application.GetRealHeight(17) - }; - 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", - IsSelected = Common.Room.CurrentRoom.GetLoveRoom().SceneUIFilePathList.Contains(scene.FileName), - Tag = scene - }; - leftFL.AddChidren(collectionBtn); - - var sceneNameBtn = new Button() - { - Width = Application.GetRealWidth(176), - Height = Application.GetRealHeight(150), - TextColor = ZigbeeColor.Current.GXCTextWhiteColor, - Text = scene.Name, - Gravity = Gravity.Center, - IsMoreLines = true - }; - leftFL.AddChidren(sceneNameBtn); - - var collection = new Button - { - Tag=scene - }; - leftFL.AddChidren(collection); - collection.MouseUpEventHandler += (sender, e) => - { - if (room.IsLove) - { - Common.Room.CurrentRoom.GetLoveRoom().DeleteScene(scene); - sceneScrolView.RemoveViewByTag(collectionBtn.Tag); - } - else - { - collectionBtn.IsSelected = !collectionBtn.IsSelected; - if (collectionBtn.IsSelected) - { - Common.Room.CurrentRoom.GetLoveRoom().AddScene(scene); - } - else - { - Common.Room.CurrentRoom.GetLoveRoom().DeleteScene(scene); - } - } - }; - - //瀹氭椂 - var delayBtn = new RowLayoutDeleteButton - { - TextID = R.MyInternationalizationString.Delay, - Tag = scene.SceneDelayTime - }; - sceneRowLayout.AddLeftView(delayBtn); - - //缂栬緫 - var settingBtn = new Device.CommonForm.RowLayoutEditButton() - { - TextID = R.MyInternationalizationString.Editor, - Tag = scene.SceneDelayTime - }; - //鍒犻櫎 - var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton - { - Tag = scene - }; - - if (!room.IsSharedRoom) - { - sceneRowLayout.AddRightView(settingBtn); - sceneRowLayout.AddRightView(deleteBtn); - } - - //璋冪敤鍦烘櫙 - EventHandler<MouseEventArgs> sceneUpHandler = async (sender, e) => - { - //1鎴愬姛 0澶辫触 - //鍚庨潰琛ヤ笂鐩稿叧鎻愮ず - //瑕佸厛浠庣綉鍏宠鍙栧欢鏃舵槸鍚︽鍦ㄦ墽琛岋紝濡傛灉鏄繘琛屽�掕鏃讹紝涓嶅厑璁稿湪鐐瑰嚮 - var sceneOpenAllData = await ZigBee.Device.Scene.ControlSceneAsync(scene.Id, scene.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) => - { - if(room.IsLove) - { - Shared.Common.Room.CurrentRoom.GetLoveRoom().DeleteScene(scene); - sceneScrolView.RemoveViewByTag((sender as Button).Tag); - } - else - { - 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(scene.Id); - if (removeSceneAllData == null || removeSceneAllData.removeSceneData == null) - { - //CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheMainGatewayIsNotOnLine); - CommonPage.Instance.FailureToServer(); - return; - } - //1鎴愬姛 - if (removeSceneAllData.removeSceneData.Result == 1) - { - room.RemoveScene(scene); - //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) - { - room.RemoveScene(scene); - //RefreshBodyView(); - sceneScrolView.RemoveViewByTag((sender as Button).Tag); - CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneIsNull); - return; - } - } - }; - } - - }; - deleteBtn.MouseUpEventHandler += delEvent; - //缂栬緫鍦烘櫙 - settingBtn.MouseUpEventHandler += (sender, e) => - { - SceneUI.EditScene(scene, room); - }; - //缂栬緫寤舵椂 - delayBtn.MouseUpEventHandler += (sender, e) => - { - var timeSelect = new SelectTime(); - CommonPage.Instance.AddChidren(timeSelect); - timeSelect.TempTime = scene.SceneDelayTime; - timeSelect.Init(); - timeSelect.TimeAction = (t) => - { - scene.SceneDelayTime = t; - }; - }; - } + var sceneView = new SceneCategoryView(); + sceneScrolView.AddChidren(sceneView); + sceneView.InitControl(scene, room); + } + GetDelayScene(sceneScrolView); } } @@ -1842,7 +1962,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 @@ -1851,17 +1971,78 @@ } - #endregion - - #region 鈼� 鑷姩鍖朹_________________________ - /// <summary> - /// 鑷姩鍖� + /// GetDelayScene /// </summary> - private async void ShowAutotion() + /// <param name="scrolViewLayout"></param> + private async void GetDelayScene(VerticalScrolViewLayout scrolViewLayout) { + 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; + + for (int i = 0; scrolViewLayout != null && i < scrolViewLayout.ChildrenCount; i++) + { + var sceneView = scrolViewLayout.GetChildren(i) as SceneCategoryView; + if (sceneView == null) + { + continue; + } + foreach (var delayScenesListResponseInfo in delayList) + { + if (delayScenesListResponseInfo.ScenesId == sceneView.scene.Id) + { + sceneView.scene.RemainTime = delayScenesListResponseInfo.RemainTime; + var remainTime = delayScenesListResponseInfo.RemainTime; + if (remainTime > 0) + { + //寮�鍚唴閮ㄥ欢鏃舵椂闂寸嚎绋�(鏃ㄥ湪鍏ㄩ儴鍦版柟鐨勫悓涓�鍦烘櫙鏃堕棿鍚屾) + HdlSceneLogic.Current.StartDelayTimeThread(sceneView.scene); + new System.Threading.Thread(() => + { + while (remainTime > 0 && this.Parent != null) + { + System.Threading.Thread.Sleep(1000); + Application.RunOnMainThread(() => + { + sceneView.SetTimeText(CommonFormResouce.GetTimeString(remainTime)); + }); + remainTime--; + } + Application.RunOnMainThread(() => + { + if (this.Parent != null) + { + sceneView.SetTimeImage(); + } + }); + }) + { IsBackground = true }.Start(); + } + break; + } + } + } + } - functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; + #endregion + + #region 鈼� 鑷姩鍖朹_________________________ + + /// <summary> + /// 鑷姩鍖栧姛鑳戒唬鐮佸叆鍙� + /// </summary> + private void ShowAutotion() + { + // functionSceneAutoBodyView.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; var bjFrameLayout = new FrameLayout { @@ -1869,11 +2050,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(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft); var sigBtn = new Button { Width = Application.GetMinRealAverage(84), @@ -1894,6 +2075,7 @@ TextID = MyInternationalizationString.logictemplate, Gravity = Gravity.CenterVertical, TextColor = ZigbeeColor.Current.LogicBtnSelectedColor, + TextSize = 15, }; bjFrameLayout.AddChidren(recommendtextBtn); @@ -1918,17 +2100,16 @@ }; functionSceneAutoBodyView.AddChidren(scenehorizontalScrol); - var logicScrolView = new VerticalScrolViewLayout + var logicScrolView = new VerticalRefreshLayout//VerticalScrolViewLayout { Height = functionSceneAutoBodyView.Height - bjFrameLayout.Height - bjFrameLayout.Y - scenehorizontalScrol.Height - Application.GetRealHeight(30), - BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, + //BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,/ X = Application.GetRealWidth(58), - Radius = (uint)Application.GetRealHeight(50), Y = scenehorizontalScrol.Bottom, }; functionSceneAutoBodyView.AddChidren(logicScrolView); - - + logicScrolView.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft); + bool no = false; recommendswitchBtn.MouseUpEventHandler += (sender, e) => { int Yheight = 0; @@ -1936,6 +2117,7 @@ scenehorizontalScrol.RemoveAll(); if (recommendswitchBtn.IsSelected) { + no = true; scenehorizontalScrol.Height = Application.GetRealHeight(246); Yheight = 20; for (int i = 1; i < 4; i++) @@ -1964,6 +2146,7 @@ Y = Application.GetRealHeight(246 - 23 - 80), TextAlignment = TextAlignment.CenterLeft, TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor, + TextSize = 14, }; frameLayout.AddChidren(logicnameBtn); @@ -1987,7 +2170,8 @@ Common.Logic.CurrentLogic.IsEnable = 1;//榛樿涓哄紑 if (logiciocnBtn.Tag.ToString() == "3") { - Common.Logic.CurrentLogic.LogicName = logicnameBtn.Text;// Language.StringByID(MyInternationalizationString.automation1); + Common.Logic.CurrentLogic.LogicName = logicnameBtn.Text; + //Common.Logic.CurrentLogic.LogicCustomPushText = Common.Logic.CurrentLogic.LogicName + Language.StringByID(MyInternationalizationString.defaulttext); var addLogicPage = new Logic.AddLogicPage(); HomePage.Instance.AddChidren(addLogicPage); HomePage.Instance.PageIndex += 1; @@ -1997,6 +2181,7 @@ { Common.Logic.CurrentLogic.LogicName = logicnameBtn.Text; + //Common.Logic.CurrentLogic.LogicCustomPushText = Common.Logic.CurrentLogic.LogicName + Language.StringByID(MyInternationalizationString.defaulttext); Logic.TemplatePage templatePage = new Logic.TemplatePage(); Logic.TemplatePage.s = logiciocnBtn.Tag.ToString(); HomePage.Instance.AddChidren(templatePage); @@ -2010,21 +2195,39 @@ } 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(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++) { @@ -2038,47 +2241,98 @@ } } //鑷姩鍖� - Automationview(logicScrolView); + Automationview(logicScrolView, no); CommonPage.Loading.Hide(); } - /// <summary> - /// 鑷姩鍖栧垪琛ㄧ晫闈� + /// 鍔犺浇鑷姩鍖栧垪琛ㄧ晫闈� /// </summary> /// <param name="refresview">Refresview.</param> - private 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 + var fLayout = new FrameLayout { + Height = Application.GetRealHeight(190 + 30), Width = Application.GetRealWidth(1080 - 58), - Height = Application.GetRealHeight(220), - LineColor = ZigbeeColor.Current.LogicBackgroundColor, BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor, - }; - refresview.AddChidren(bjRow); - + refresview.AddChidren(fLayout); + 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); + fLayout.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); @@ -2090,7 +2344,7 @@ UnSelectedImagePath = "ZigeeLogic/logicclose.png", SelectedImagePath = "ZigeeLogic/logicopen.png", X = logicRowlayout.Width - Application.GetRealWidth(104 + 58), - Y = Application.GetRealHeight(58 + 30 + 9), + Y = Application.GetRealHeight(58 + 30 + 9 + 30), }; logicRowlayout.AddChidren(logicswitchBtn); @@ -2138,7 +2392,10 @@ 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); + }); }; @@ -2153,98 +2410,36 @@ logicRowlayout.AddRightView(del); del.MouseUpEventHandler += (sender, e) => { - var alert = new Alert(Language.StringByID(MyInternationalizationString.tip), Language.StringByID(MyInternationalizationString.doyouwanttodelete), - Language.StringByID(MyInternationalizationString.cancel), Language.StringByID(MyInternationalizationString.confrim)); - alert.ResultEventHandler += (sender1, e1) => - { - if (e1) - { - Common.Logic.LogicList.Remove(logic); - Automationview(refresview); - Logic.Send.DelLogic(logic.LogicId); - } + var alert = new UserCenter.ShowMsgControl(UserCenter.ShowMsgType.Confirm, + Language.StringByID(MyInternationalizationString.doyouwanttodelete), + Language.StringByID(MyInternationalizationString.confrim)); + alert.Show(); + alert.ConfirmClickEvent += () => + { + Common.Logic.LogicList.Remove(logic); + Automationview(refresview, no); + Logic.Send.DelLogic(logic.LogicId); }; - alert.Show(); }; - - } - - - } - - #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 = fLayout.Height - 1, + Height = 1, + X = Application.GetRealWidth(58), + Width = Application.GetRealWidth(1080 - 58), + BackgroundColor = ZigbeeColor.Current.LogicRowLayoutLineColor, + }; + fLayout.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) { @@ -2252,6 +2447,7 @@ { Height = Application.GetRealHeight(58), Width = logicRowlayout.Width - Application.GetRealWidth(58 + 12 + 350), + Y = Application.GetRealHeight(30), X = Application.GetRealWidth(365), TextAlignment = TextAlignment.CenterRight, TextColor = ZigbeeColor.Current.LogicListWeekTextColor, @@ -2542,8 +2738,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, }; @@ -2561,7 +2757,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", @@ -2638,6 +2834,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