From 66a9965c44ecc32a6696abca876ab9d1cd091584 Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期五, 28 二月 2020 15:25:13 +0800 Subject: [PATCH] 2020.2.28 --- ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs | 3514 +++++++++++++++++++++-------------------------------------- 1 files changed, 1,262 insertions(+), 2,252 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs b/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs old mode 100755 new mode 100644 index 8004460..44eaab9 --- a/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs +++ b/ZigbeeApp/Shared/Phone/UserView/UserHomeView.cs @@ -1,9 +1,13 @@ 锘縰sing System; using System.Collections.Generic; +using System.Timers; using Shared.Common; using Shared.Phone.Device.AC; -using ZigBee.Device; using Shared.Phone.Device.CommonForm; +using Shared.Phone.Device.DeviceLogic; +using Shared.Phone.UserCenter; +using Shared.Phone.UserCenter.DoorLock; +using ZigBee.Device; namespace Shared.Phone.UserView { @@ -30,14 +34,7 @@ /// 鍔熻兘鍜屽満鏅痓odyView /// </summary> private FrameLayout functionSceneBodyView; - /// <summary> - /// The height of the top frame layout -- 500 - /// </summary> - private static readonly int topFrameLayout_Height = 500; - /// <summary> - /// 1524 - /// </summary> - private static readonly int midView_Height = 1524; + /// <summary> /// The height of the room page view. -- 550 /// </summary> @@ -78,6 +75,22 @@ /// </summary> private readonly int sleepSpan = 300; + + private FrameLayout itemView = new FrameLayout(); + /// <summary> + /// floorBtn + /// </summary> + private Button floorBtn; + /// <summary> + /// timeDic + /// </summary> + private Dictionary<string, Timer> timerDic = new Dictionary<string, Timer> { }; + /// <summary> + /// sceneScrolView + /// </summary> + private VerticalScrolViewLayout sceneScrolView ; + + #endregion #region 鈼� 鎺ュ彛____________________________ @@ -112,329 +125,262 @@ { try { + if (common.DeviceStatusReport.AttriBute == null || common.DeviceStatusReport.AttriBute.Count == 0) + { + return; + } for (int i = 0; deviceVerticalScrolViewLayout != null && i < deviceVerticalScrolViewLayout.ChildrenCount; i++) { var rowFL = deviceVerticalScrolViewLayout.GetChildren(i) as FrameLayout; - var rowLayout = rowFL.GetChildren(0) as RowLayout; - var deviceUI = rowLayout.Tag as DeviceUI; - if (deviceUI.CommonDevice == null || rowLayout.ChildrenCount == 0) + if (rowFL.ChildrenCount == 0) { //璁惧涓虹┖鎴栬�呮帶浠朵负绌� continue; } - if (common.DeviceAddr != deviceUI.CommonDevice.DeviceAddr || common.DeviceEpoint != deviceUI.CommonDevice.DeviceEpoint) - { - //鍒ゆ柇鏄惁涓哄綋鍓嶈澶� - continue; - } - var frameLayout = rowLayout.GetChildren(0) as FrameLayout; - switch (deviceUI.CommonDevice.Type) - { - case DeviceType.OnOffOutput: - //寮�鍏冲姛鑳� - if ((common as ZigBee.Device.ToggleLight).DeviceStatusReport.CluterID == 6) - { - var onOffOutputLight = deviceUI.CommonDevice as ZigBee.Device.ToggleLight; - onOffOutputLight.DeviceStatusReport = (common as ZigBee.Device.ToggleLight).DeviceStatusReport; - for (int j = 0; j < frameLayout.ChildrenCount; j++) - { - var tempView = frameLayout.GetChildren(j); - if (tempView.Tag == null) - { - continue; - } - if (tempView.Tag.ToString() == deviceStatus_OnOffStatus) - { - //璁板綍銆佹洿鏂扮姸鎬� - if (onOffOutputLight.DeviceStatusReport.AttriBute == null || onOffOutputLight.DeviceStatusReport.AttriBute.Count == 0) + for (int j = 0; j < rowFL.ChildrenCount; j++) + { + var deviceUI = (rowFL.GetChildren(j) as FunctionMainView).Tag as DeviceUI; + if (deviceUI == null || deviceUI.CommonDevice == null) + { + //璁惧涓虹┖鎴栬�呮帶浠朵负绌� + continue; + } + if (common.DeviceAddr != deviceUI.CommonDevice.DeviceAddr || common.DeviceEpoint != deviceUI.CommonDevice.DeviceEpoint) + { + //鍒ゆ柇鏄惁涓哄綋鍓嶈澶� + continue; + } + + switch (deviceUI.CommonDevice.Type) + { + case DeviceType.OnOffOutput: + //寮�鍏冲姛鑳� + if (common.DeviceStatusReport.CluterID == 6) + { + var onOffOutputLight = deviceUI.CommonDevice as ZigBee.Device.ToggleLight; + onOffOutputLight.DeviceStatusReport = common.DeviceStatusReport; + onOffOutputLight.OnOffStatus = onOffOutputLight.DeviceStatusReport.AttriBute[0].AttriButeData; + (rowFL.GetChildren(j) as FunctionMainView).IsSelected = onOffOutputLight.OnOffStatus == 1; + (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); + onOffOutputLight.LastDateTime = DateTime.Now; + } + break; + + case DeviceType.AirSwitch: + //寮�鍏冲姛鑳� + if (common.DeviceStatusReport.CluterID == 6) + { + var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; + airSwitch.DeviceStatusReport = common.DeviceStatusReport; + airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData; + (rowFL.GetChildren(j) as FunctionMainView).IsSelected = airSwitch.OnOffStatus == 1; + (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); + airSwitch.LastDateTime = DateTime.Now; + } + //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁� + if (common.DeviceStatusReport.CluterID == 3) + { + deviceUI.CommonDevice.IsOnline = 1; + deviceUI.CommonDevice.LastDateTime = DateTime.Now; + } + break; + + case DeviceType.WindowCoveringDevice: + if (common.DeviceStatusReport.CluterID == 258) + { + if (common.DeviceStatusReport.AttriBute[0].AttributeId == 0) + { + //绐楀笜绫诲瀷 + var rollerShade = deviceUI.CommonDevice as Rollershade; + rollerShade.DeviceStatusReport = common.DeviceStatusReport; + rollerShade.WcdType = common.DeviceStatusReport.AttriBute[0].AttriButeData; + rollerShade.LastDateTime = DateTime.Now; + (rowFL.GetChildren(j) as FunctionMainView).IsSelected = rollerShade.WcdCurrentPositionLiftPercentage == 100; + (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); + } + if (common.DeviceStatusReport.AttriBute[0].AttributeId == 8) + { + //绐楀笜鐧惧垎姣� + var rollerShade = deviceUI.CommonDevice as Rollershade; + rollerShade.DeviceStatusReport = common.DeviceStatusReport; + rollerShade.WcdCurrentPositionLiftPercentage = common.DeviceStatusReport.AttriBute[0].AttriButeData; + rollerShade.LastDateTime = DateTime.Now; + (rowFL.GetChildren(j) as FunctionMainView).IsSelected = rollerShade.WcdCurrentPositionLiftPercentage == 100; + (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); + } + } + if (common.DeviceStatusReport.CluterID == 3) + { + deviceUI.CommonDevice.IsOnline = 1; + deviceUI.CommonDevice.LastDateTime = DateTime.Now; + } + break; + + case DeviceType.Thermostat: + //AC鍔熻兘 + if (common.DeviceStatusReport.CluterID == 513) + { + var ac = deviceUI.CommonDevice as ZigBee.Device.AC; + ac.DeviceStatusReport = common.DeviceStatusReport; + var attriButeList = ac.DeviceStatusReport.AttriBute; + foreach (var attList in attriButeList) + { + var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High && attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default; + switch (attList.AttributeId) { - continue; + case 0: + //姝ゅ睘鎬ц〃鏄庡鍐呭綋鍓嶇殑娓╁害 * 100锛屽疄闄呮俯搴︿负鈥淟ocalTemperature / 100鈥濓紝鍗曚綅锛氣剝 + ac.currentLocalTemperature = curTemp; + ac.LastDateTime = DateTime.Now; + break; + case 17: + //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勫埗鍐锋俯搴︼紝瀹為檯娓╁害涓衡�淐oolingSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆� + ac.currentCoolingSetpoint = curTemp; + ac.LastDateTime = DateTime.Now; + break; + case 18: + //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勫埗鐑俯搴︼紝瀹為檯娓╁害涓衡�淗eatingSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆� + ac.currentHeatingSetpoint = curTemp; + ac.LastDateTime = DateTime.Now; + break; + case 4096: + //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勮嚜鍔ㄦ俯搴︼紝瀹為檯娓╁害涓衡�淎utoSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆� + ac.currentAutoSetpoint = curTemp; + ac.LastDateTime = DateTime.Now; + break; + + case 28: + //姝ゅ睘鎬ф弿杩版亽娓╄澶囨澶勪簬鍝妯″紡 + ac.currentSystemMode = attList.AttriButeData; + ac.LastDateTime = DateTime.Now; + break; } - onOffOutputLight.OnOffStatus = onOffOutputLight.DeviceStatusReport.AttriBute[0].AttriButeData; - (tempView as Button).IsSelected = onOffOutputLight.OnOffStatus == 1; - //璁板綍鍥炲鏃堕棿 - onOffOutputLight.LastDateTime = DateTime.Now; - } - } - } - //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁� - if ((common as ZigBee.Device.ToggleLight).DeviceStatusReport.CluterID == 3) - { - var onOffOutputLight = deviceUI.CommonDevice as ToggleLight; - onOffOutputLight.IsOnline = 1; - for (int j = 0; j < frameLayout.ChildrenCount; j++) - { - var tempView = frameLayout.GetChildren(j); - if (tempView.Tag == null) - { - continue; } - if (tempView.Tag.ToString() == deviceStatus_Online) - { - (tempView as Button).IsSelected = onOffOutputLight.IsOnline == 1; - //璁板綍鍥炲鏃堕棿 - onOffOutputLight.LastDateTime = DateTime.Now; - } + (rowFL.GetChildren(j) as FunctionMainView).IsSelected = ac.currentSystemMode != 0; + (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); } - - } - break; - - case DeviceType.AirSwitch: - //寮�鍏冲姛鑳� - if ((common as ZigBee.Device.AirSwitch).DeviceStatusReport.CluterID == 6) - { - var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch; - airSwitch.DeviceStatusReport = (common as ZigBee.Device.AirSwitch).DeviceStatusReport; - for (int j = 0; j < frameLayout.ChildrenCount; j++) - { - var tempView = frameLayout.GetChildren(j); - if (tempView.Tag == null) - { - continue; - } - if (tempView.Tag.ToString() == deviceStatus_OnOffStatus) - { - //璁板綍銆佹洿鏂扮姸鎬� - if (airSwitch.DeviceStatusReport.AttriBute == null || airSwitch.DeviceStatusReport.AttriBute.Count == 0) + if (common.DeviceStatusReport.CluterID == 514) + { + var ac = deviceUI.CommonDevice as ZigBee.Device.AC; + var attriButeList = common.DeviceStatusReport.AttriBute; + ac.DeviceStatusReport = common.DeviceStatusReport; + foreach (var attList in attriButeList) + { + switch (attList.AttributeId) { - return; + case 0: + ac.currentFanMode = attList.AttriButeData; + ac.LastDateTime = DateTime.Now; + break; + case 4096: + ac.currentFanSwingMode = attList.AttriButeData; + ac.LastDateTime = DateTime.Now; + break; } - airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData; - (tempView as Button).IsSelected = airSwitch.OnOffStatus == 1; - //璁板綍鍥炲鏃堕棿 - airSwitch.LastDateTime = DateTime.Now; - } - } - } - //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁� - if ((common as ZigBee.Device.AirSwitch).DeviceStatusReport.CluterID == 3) - { - var airSwitch = deviceUI.CommonDevice as AirSwitch; - airSwitch.IsOnline = 1; - for (int j = 0; j < frameLayout.ChildrenCount; j++) - { - var tempView = frameLayout.GetChildren(j); - if (tempView.Tag == null) - { - continue; } - if (tempView.Tag.ToString() == deviceStatus_Online) + (rowFL.GetChildren(j) as FunctionMainView).IsSelected = ac.currentSystemMode != 0; + (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); + } + //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁� + if (common.DeviceStatusReport.CluterID == 3) + { + var ac = deviceUI.CommonDevice as AC; + ac.IsOnline = 1; + ac.LastDateTime = DateTime.Now; + } + break; + + case DeviceType.DimmableLight: + //璋冨厜鐏姛鑳� + if (common.DeviceStatusReport.CluterID == 6) + { + var dimmableLight = deviceUI.CommonDevice as DimmableLight; + dimmableLight.DeviceStatusReport = common.DeviceStatusReport; + dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData; + (rowFL.GetChildren(j) as FunctionMainView).IsSelected = dimmableLight.OnOffStatus == 1; + (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); + dimmableLight.LastDateTime = DateTime.Now; + } + + //浜害 + if (common.DeviceStatusReport.CluterID == 8) + { + var dimmableLight = deviceUI.CommonDevice as DimmableLight; + dimmableLight.DeviceStatusReport = common.DeviceStatusReport; + var attriButeList = dimmableLight.DeviceStatusReport.AttriBute; + switch (attriButeList[0].AttributeId) { - (tempView as Button).IsSelected = airSwitch.IsOnline == 1; - //璁板綍鍥炲鏃堕棿 - airSwitch.LastDateTime = DateTime.Now; + case 0: + //姝ゅ睘鎬ц〃鏄庡綋鍓嶄寒搴︾▼搴� + dimmableLight.Level = attriButeList[0].AttriButeData; + dimmableLight.LastDateTime = DateTime.Now; + //(rowFL.GetChildren(j) as FunctionMainView).IsSelected = true; + (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); + break; } } - } - break; - - case DeviceType.WindowCoveringDevice: - if ((common as Rollershade).DeviceStatusReport.CluterID == 258) - { - if ((common as Rollershade).DeviceStatusReport.AttriBute[0].AttributeId == 0) + break; + case DeviceType.TemperatureSensor: + //娓╁害 + if (common.DeviceStatusReport.CluterID == 1026) { - //绐楀笜绫诲瀷 - var rollerShade = deviceUI.CommonDevice as Rollershade; - rollerShade.DeviceStatusReport = (common as Rollershade).DeviceStatusReport; - rollerShade.WcdType = (common as Rollershade).DeviceStatusReport.AttriBute[0].AttriButeData; - rollerShade.LastDateTime = DateTime.Now; - } - } - if ((common as ZigBee.Device.Rollershade).DeviceStatusReport.CluterID == 3) - { - var rollershade = deviceUI.CommonDevice as ZigBee.Device.Rollershade; - rollershade.IsOnline = 1; - for (int j = 0; j < frameLayout.ChildrenCount; j++) - { - var tempView = frameLayout.GetChildren(j); - if (tempView.Tag == null) + var tempera = deviceUI.CommonDevice as TemperatureSensor; + foreach (var data in common.DeviceStatusReport.AttriBute) { - continue; - } - if (tempView.Tag.ToString() == deviceStatus_Online) - { - (tempView as Button).IsSelected = rollershade.IsOnline == 1; - //璁板綍鍥炲鏃堕棿 - rollershade.LastDateTime = DateTime.Now; - } - } - } - break; - - case DeviceType.Thermostat: - //AC鍔熻兘 - if ((common as ZigBee.Device.AC).DeviceStatusReport.CluterID == 513) - { - var ac = deviceUI.CommonDevice as ZigBee.Device.AC; - ac.DeviceStatusReport = (common as ZigBee.Device.AC).DeviceStatusReport; - var attriButeList = ac.DeviceStatusReport.AttriBute; - if (attriButeList == null || attriButeList.Count == 0) - { - continue; - } - switch (attriButeList[0].AttributeId) - { - case 0: - //姝ゅ睘鎬ц〃鏄庡鍐呭綋鍓嶇殑娓╁害 * 100锛屽疄闄呮俯搴︿负鈥淟ocalTemperature / 100鈥濓紝鍗曚綅锛氣剝 - ac.currentLocalTemperature = (attriButeList[0].AttriButeData / 100 > ACControlBase.Temperature_High || attriButeList[0].AttriButeData / 100 < ACControlBase.Temperature_Low) ? attriButeList[0].AttriButeData / 100 : ACControlBase.Temperature_Default; - ac.LastDateTime = DateTime.Now; - break; - - case 17: - //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勫埗鍐锋俯搴︼紝瀹為檯娓╁害涓衡�淐oolingSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆� - ac.currentCoolingSetpoint = (attriButeList[0].AttriButeData / 100 > ACControlBase.Temperature_High || attriButeList[0].AttriButeData / 100 < ACControlBase.Temperature_Low) ? attriButeList[0].AttriButeData / 100 : ACControlBase.Temperature_Default; - ac.LastDateTime = DateTime.Now; - break; - - case 18: - //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勫埗鐑俯搴︼紝瀹為檯娓╁害涓衡�淗eatingSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆� - ac.currentHeatingSetpoint = (attriButeList[0].AttriButeData / 100 > ACControlBase.Temperature_High || attriButeList[0].AttriButeData / 100 < ACControlBase.Temperature_Low) ? attriButeList[0].AttriButeData / 100 : ACControlBase.Temperature_Default; - ac.LastDateTime = DateTime.Now; - break; - - case 4096: - //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勮嚜鍔ㄦ俯搴︼紝瀹為檯娓╁害涓衡�淎utoSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆� - ac.currentAutoSetpoint = (attriButeList[0].AttriButeData / 100 > ACControlBase.Temperature_High || attriButeList[0].AttriButeData / 100 < ACControlBase.Temperature_Low) ? attriButeList[0].AttriButeData / 100 : ACControlBase.Temperature_Default; - 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 < frameLayout.ChildrenCount; j++) + if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue) { - var tempView = frameLayout.GetChildren(j); - if (tempView.Tag == null) + if (data.AttriButeData == 0) { - continue; + tempera.Temperatrue = 0; } - if (tempView.Tag.ToString() == "Temparetrue") + else if (data.AttriButeData > 32767) { - - (tempView as Button).Text = $"{ACControlBase.GetCurrentModeTemperature(ac)} 鈩�"; + //璐熸暟(鐗规畩澶勭悊) + 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, ".")); } - if (tempView.Tag.ToString() == deviceStatus_OnOffStatus) - { - (tempView as Button).IsSelected = ac.currentSystemMode != 0; - } + tempera.LastDateTime = DateTime.Now; + (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); } - break; - - - } - - } - //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁� - if ((common as ZigBee.Device.AC).DeviceStatusReport.CluterID == 3) - { - var ac = deviceUI.CommonDevice as AC; - ac.IsOnline = 1; - for (int j = 0; j < frameLayout.ChildrenCount; j++) - { - var tempView = frameLayout.GetChildren(j); - if (tempView.Tag == null) - { - continue; - } - if (tempView.Tag.ToString() == deviceStatus_Online) - { - (tempView as Button).IsSelected = ac.IsOnline == 1; - //璁板綍鍥炲鏃堕棿 - ac.LastDateTime = DateTime.Now; } } - - } - break; - - case DeviceType.DimmableLight: - //璋冨厜鐏姛鑳� - //寮�鍏冲姛鑳� - if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 6) - { - var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; - dimmableLight.DeviceStatusReport = (common as ZigBee.Device.DimmableLight).DeviceStatusReport; - for (int j = 0; j < frameLayout.ChildrenCount; j++) + //婀垮害 + if (common.DeviceStatusReport.CluterID == 1029) { - var tempView = frameLayout.GetChildren(j); - if (tempView.Tag == null) + var tempera = deviceUI.CommonDevice as TemperatureSensor; + foreach (var data in common.DeviceStatusReport.AttriBute) { - continue; - } - if (tempView.Tag.ToString() == deviceStatus_OnOffStatus) - { - //璁板綍銆佹洿鏂扮姸鎬� - if (dimmableLight.DeviceStatusReport.AttriBute == null || dimmableLight.DeviceStatusReport.AttriBute.Count == 0) + if (data.AttributeId == (int)ZigBee.Device.AttriButeId.MeasuredValue) { - return; - } - dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData; - (tempView as Button).IsSelected = dimmableLight.OnOffStatus == 1; - //璁板綍鍥炲鏃堕棿 - dimmableLight.LastDateTime = DateTime.Now; - } - } - } - //浜害 - if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 8) - { - var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; - dimmableLight.DeviceStatusReport = (common as ZigBee.Device.DimmableLight).DeviceStatusReport; - var attriButeList = dimmableLight.DeviceStatusReport.AttriBute; - if (attriButeList == null || attriButeList.Count == 0) - { - continue; - } - switch (attriButeList[0].AttributeId) - { - case 0: - //姝ゅ睘鎬ц〃鏄庡綋鍓嶄寒搴︾▼搴� - dimmableLight.Level = attriButeList[0].AttriButeData ; - dimmableLight.LastDateTime = DateTime.Now; - for (int j = 0; j < frameLayout.ChildrenCount; j++) - { - var tempView = frameLayout.GetChildren(j); - if (tempView.Tag == null) + if (data.AttriButeData == 0) { - continue; + tempera.Humidity = 0; } - if (tempView.Tag.ToString() == "LevelSeekBar") + else { - (tempView as HorizontalSeekBar).Progress = dimmableLight.Level; + //灏忔暟鐐归渶瑕佷竴浣�(婀垮害娌℃湁璐熸暟) + 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; + (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); } - break; - } - } - //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁� - if ((common as ZigBee.Device.DimmableLight).DeviceStatusReport.CluterID == 3) - { - var dimmableLight = deviceUI.CommonDevice as DimmableLight; - dimmableLight.IsOnline = 1; - for (int j = 0; j < frameLayout.ChildrenCount; j++) - { - var tempView = frameLayout.GetChildren(j); - if (tempView.Tag == null) - { - continue; - } - if (tempView.Tag.ToString() == deviceStatus_Online) - { - (tempView as Button).IsSelected = dimmableLight.IsOnline == 1; - //璁板綍鍥炲鏃堕棿 - dimmableLight.LastDateTime = DateTime.Now; } } - - } - break; - + break; + } } } } @@ -444,129 +390,55 @@ } }); } - //璁惧鍦ㄧ嚎鐘舵�佷笂鎶� - else if (typeTag == "OnlineStatusChange") - { + else if (typeTag == "IASInfoReport") + { Application.RunOnMainThread(() => { try - { + { for (int i = 0; deviceVerticalScrolViewLayout != null && i < deviceVerticalScrolViewLayout.ChildrenCount; i++) { var rowFL = deviceVerticalScrolViewLayout.GetChildren(i) as FrameLayout; - var rowLayout = rowFL.GetChildren(0) as RowLayout; - var deviceUI = rowLayout.Tag as DeviceUI; - if (deviceUI.CommonDevice == null || rowLayout.ChildrenCount == 0) + if (rowFL.ChildrenCount == 0) { //璁惧涓虹┖鎴栬�呮帶浠朵负绌� continue; } - if (common.DeviceAddr != deviceUI.CommonDevice.DeviceAddr || common.DeviceEpoint != deviceUI.CommonDevice.DeviceEpoint) - { - //鍒ゆ柇鏄惁涓哄綋鍓嶈澶� - continue; + + for (int j = 0; j < rowFL.ChildrenCount; j++) + { + var deviceUI = (rowFL.GetChildren(j) as FunctionMainView).Tag as DeviceUI; + if (deviceUI == null || deviceUI.CommonDevice == null) + { + //璁惧涓虹┖鎴栬�呮帶浠朵负绌� + continue; + } + if (common.DeviceAddr != deviceUI.CommonDevice.DeviceAddr || common.DeviceEpoint != deviceUI.CommonDevice.DeviceEpoint) + { + //鍒ゆ柇鏄惁涓哄綋鍓嶈澶� + continue; + } + + switch (deviceUI.CommonDevice.Type) + { + case DeviceType.IASZone: + //ias + var ias = common as IASZone; + var iAS = deviceUI.CommonDevice as ZigBee.Device.IASZone; + iAS.iASInfo = ias.iASInfo; + (rowFL.GetChildren(j) as FunctionMainView).IsSelected = iAS.iASInfo?.Alarm1 == 1; + (rowFL.GetChildren(j) as FunctionMainView).StatuButton.Text = deviceUI.GetDeviceStatu(); + iAS.LastDateTime = DateTime.Now; + break; + } } - var frameLayout = rowLayout.GetChildren(0) as FrameLayout; - switch (deviceUI.CommonDevice.Type) - { - case DeviceType.OnOffOutput: - var onOffOutputLight = deviceUI.CommonDevice as ToggleLight; - onOffOutputLight.IsOnline = (common as ToggleLight).IsOnline; - for (int j = 0; j < frameLayout.ChildrenCount; j++) - { - var tempView = frameLayout.GetChildren(j); - if (tempView.Tag == null) - { - continue; - } - if (tempView.Tag.ToString() == deviceStatus_Online) - { - (tempView as Button).IsSelected = onOffOutputLight.IsOnline == 1; - } - } - //璁板綍鍥炲鏃堕棿 - onOffOutputLight.LastDateTime = DateTime.Now; - break; - case DeviceType.AirSwitch: - var airSwitch = deviceUI.CommonDevice as AirSwitch; - airSwitch.IsOnline = (common as AirSwitch).IsOnline; - for (int j = 0; j < frameLayout.ChildrenCount; j++) - { - var tempView = frameLayout.GetChildren(j); - if (tempView.Tag == null) - { - continue; - } - if (tempView.Tag.ToString() == deviceStatus_Online) - { - (tempView as Button).IsSelected = airSwitch.IsOnline == 1; - } - } - //璁板綍鍥炲鏃堕棿 - airSwitch.LastDateTime = DateTime.Now; - break; - case DeviceType.WindowCoveringDevice: - var rollershade = deviceUI.CommonDevice as ZigBee.Device.Rollershade; - rollershade.IsOnline = (common as Rollershade).IsOnline; - for (int j = 0; j < frameLayout.ChildrenCount; j++) - { - var tempView = frameLayout.GetChildren(j); - if (tempView.Tag == null) - { - continue; - } - if (tempView.Tag.ToString() == deviceStatus_Online) - { - (tempView as Button).IsSelected = rollershade.IsOnline == 1; - } - } - //璁板綍鍥炲鏃堕棿 - rollershade.LastDateTime = DateTime.Now; - break; - case DeviceType.Thermostat: - var ac = deviceUI.CommonDevice as ZigBee.Device.AC; - ac.IsOnline = (common as ZigBee.Device.AC).IsOnline; - for (int j = 0; j < frameLayout.ChildrenCount; j++) - { - var tempView = frameLayout.GetChildren(j); - if (tempView.Tag == null) - { - continue; - } - if (tempView.Tag.ToString() == deviceStatus_Online) - { - (tempView as Button).IsSelected = ac.IsOnline == 1; - } - } - //璁板綍鍥炲鏃堕棿 - ac.LastDateTime = DateTime.Now; - break; - case DeviceType.DimmableLight: - var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight; - dimmableLight.IsOnline = (common as ZigBee.Device.DimmableLight).IsOnline; - for (int j = 0; j < frameLayout.ChildrenCount; j++) - { - var tempView = frameLayout.GetChildren(j); - if (tempView.Tag == null) - { - continue; - } - if (tempView.Tag.ToString() == deviceStatus_Online) - { - (tempView as Button).IsSelected = dimmableLight.IsOnline == 1; - } - } - //璁板綍鍥炲鏃堕棿 - dimmableLight.LastDateTime = DateTime.Now; - break; - } - } + } } catch (Exception ex) { - System.Console.WriteLine($"涓婚〉鍔熻兘鍒锋柊-Error:{ex.Message}"); + System.Console.WriteLine($"Error:{ex.Message}"); } - }); + }); } } /// <summary> @@ -623,7 +495,7 @@ #region topview var topFrameLayout = new FrameLayout() { - Y=Application.GetRealHeight(60), + Y = Application.GetRealHeight(60), Height = Application.GetRealHeight(127), BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor, }; @@ -637,67 +509,70 @@ Gravity = Gravity.CenterVertical, UnSelectedImagePath = "Item/Floor.png" }; - topFrameLayout.AddChidren(floor); - - var floorBtn = new Button + if (Config.Instance.Home.FloorDics.Count > 0) { - X=floor.Right, - Width=Application.GetRealWidth(500), - Height=Application.GetRealHeight(100), - Gravity = Gravity.CenterVertical, - TextAlignment =TextAlignment.CenterLeft, - TextColor=ZigbeeColor.Current.GXCTextColor, - Text=Config.Instance.Home.GetCurrentFloorName() - }; - topFrameLayout.AddChidren(floorBtn); + topFrameLayout.AddChidren(floor); + } - var messageBtn = new Button() + floorBtn = new Button { - X = Application.GetRealWidth(953), - Width = Application.GetMinRealAverage(69), - Height = Application.GetMinRealAverage(69), + X = floor.Right, + Width = Application.GetRealWidth(500), + Height = Application.GetRealHeight(100), Gravity = Gravity.CenterVertical, - UnSelectedImagePath = "Item/Message.png", - SelectedImagePath="Item/MessageSelected.png" + TextAlignment = TextAlignment.CenterLeft, + TextColor = ZigbeeColor.Current.GXCTextColor, + Text = Config.Instance.Home.GetCurrentFloorName, + IsBold = true, + TextSize = 14 }; + if (Config.Instance.Home.FloorDics.Count > 0) + { + topFrameLayout.AddChidren(floorBtn); + } + + if(UserCenterResourse.Option.SafetyShortcut) + { + var safetyBtn = new SafetyShortcutControl(); + safetyBtn.X = Application.GetRealWidth(860); + safetyBtn.Gravity = Gravity.CenterVertical; + topFrameLayout.AddChidren(safetyBtn); + } + + var messageBtn = new MessageManagementControl(); + messageBtn.X = Application.GetRealWidth(953); + messageBtn.Gravity = Gravity.CenterVertical; + messageBtn.UnSelectedImagePath = "Item/Message.png"; + messageBtn.SelectedImagePath = "Item/MessageSelected.png"; topFrameLayout.AddChidren(messageBtn); var residecneName = new Button() { - X=Application.GetRealWidth(CommonFormResouce.X_Left), + X = Application.GetRealWidth(CommonFormResouce.X_Left), Y = Application.GetRealHeight(161), Width = Application.GetRealWidth(700), Height = Application.GetRealHeight(95), TextAlignment = TextAlignment.CenterLeft, Text = Config.Instance.Home.Name ?? Language.StringByID(R.MyInternationalizationString.TheResidenceNameNull), TextSize = 24, - TextColor = ZigbeeColor.Current.GXCTextBlackColor + TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor, + IsBold=true }; - if(Config.Instance.Home.IsOthreShare) + if (Config.Instance.Home.IsOthreShare) { - residecneName.Text = $"({Language.StringByID(R.MyInternationalizationString.Shared)}){Config.Instance.Home.Name}"; + residecneName.Text = $"{Config.Instance.Home.Name}"; } AddChidren(residecneName); - EventHandler<MouseEventArgs> selectFloor = (send, e) => - { - var floorFL = new Phone.Device.Category.SelectFloor(); - AddChidren(floorFL); - floorFL.Init(35,153); - floorFL.FloorAction = (floorName) => - { - floorBtn.Text = floorName; - }; - }; - floor.MouseUpEventHandler += selectFloor; - floorBtn.MouseUpEventHandler += selectFloor; + floor.MouseUpEventHandler += SelectFloor; + floorBtn.MouseUpEventHandler += SelectFloor; //鍒囨崲浣忓畢 residecneName.MouseLongEventHandler += (send, e) => { var tempHomeBtn = send as Button; if (Config.Instance.HomeFilePathList.Count == 0) { - var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.CurrentlyTheUserIshHouseIsEmptyPleaseBuildANewHouseFirst), Language.StringByID(R.MyInternationalizationString.Close), Language.StringByID(R.MyInternationalizationString.OK)); + var alert = new Alert(Language.StringByID(R.MyInternationalizationString.TIP), Language.StringByID(R.MyInternationalizationString.CurrentlyTheUserIshHouseIsEmptyPleaseBuildANewHouseFirst), Language.StringByID(R.MyInternationalizationString.Close), Language.StringByID(R.MyInternationalizationString.Confrim)); alert.Show(); alert.ResultEventHandler += (senderHouse, eHouse) => { @@ -709,284 +584,82 @@ } else { - var residenceListView = new Dialog(); - residenceListView.Show(); - var closeBGview = new FrameLayout(); - residenceListView.AddChidren(closeBGview); - closeBGview.MouseUpEventHandler += (send1, e1) => + var selectHouse = new Device.Category.SelectHouse(); + selectHouse.Init(); + selectHouse.HouseAction = (houseId) => { - residenceListView.Close(); - }; - - var bg = new Button - { - X = Application.GetRealWidth(35), - Y = Application.GetRealHeight(248), - Width = Application.GetMinRealAverage(449), - Height = Application.GetMinRealAverage(478), - UnSelectedImagePath = "Item/SelectHouse" - }; - closeBGview.AddChidren(bg); - - var changeHomeFL = new FrameLayout() - { - X = Application.GetRealWidth(35), - Y = Application.GetRealHeight(271), - Height = Application.GetRealHeight(449), - Width = Application.GetRealWidth(440), - Radius = CommonPage.BigFormRadius, - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor - }; - closeBGview.AddChidren(changeHomeFL); - - var changeHomeBtn = new Button() - { - X = Application.GetRealWidth(80), - Width = Application.GetRealWidth(350), - Height = Application.GetRealHeight(150), - TextColor = ZigbeeColor.Current.GXCTextBlackColor, - TextID = R.MyInternationalizationString.ChangeHome, - TextAlignment = TextAlignment.CenterLeft - }; - changeHomeFL.AddChidren(changeHomeBtn); - - var scrolView = new VerticalScrolViewLayout() - { - Y = changeHomeBtn.Bottom, - Height = Application.GetMinRealAverage(305-10) - }; - changeHomeFL.AddChidren(scrolView); - - var clickCheckBtn = new Device.CommonForm.SelectedStatuButton(); - var clickNameBtn = new Device.CommonForm.SelectedStatuButton(); - foreach (var homeFilePath in Config.Instance.HomeFilePathList) - { - var home = House.GetHouseByFilePath(homeFilePath); - if (home == null) - { - continue; - } - var rowView = new RowLayout() - { - Height = Application.GetRealHeight(150) - }; - scrolView.AddChidren(rowView); - var pointBtn = new Device.CommonForm.SelectedStatuButton() - { - X=Application.GetRealWidth(80), - Width = Application.GetMinRealAverage(80), - Height = Application.GetMinRealAverage(80), - Gravity = Gravity.CenterVertical, - UnSelectedImagePath = "Item/House.png", - SelectedImagePath = "Item/HouseSelected.png", - IsSelected = home.Id == Config.Instance.Home.Id - }; - rowView.AddChidren(pointBtn); - var nameBtn = new Device.CommonForm.SelectedStatuButton() - { - X = Application.GetRealWidth(173), - Width = Application.GetRealWidth(280), - TextAlignment = TextAlignment.CenterLeft, - Text = home.Name, - TextColor = ZigbeeColor.Current.GXCTextGrayColor, - SelectedTextColor = ZigbeeColor.Current.GXCTextBlackColor, - IsSelected = home.Id == Config.Instance.Home.Id - }; - if(home.IsOthreShare) - { - nameBtn.Text = $"({Language.StringByID(R.MyInternationalizationString.Shared)}){home.Name}"; - } - rowView.AddChidren(nameBtn); - - EventHandler<MouseEventArgs> selectedResidenceHandler = (send1, e1) => - { - if (Config.Instance.Home.FileName == homeFilePath) - { - return; - } - clickCheckBtn.IsSelected = false; - clickNameBtn.IsSelected = false; - pointBtn.IsSelected = true; - nameBtn.IsSelected = true; - - residecneName.Text = home.Name; - if(home.IsOthreShare) - { - nameBtn.Text = $"({Language.StringByID(R.MyInternationalizationString.Shared)}){home.Name}"; - } - clickCheckBtn = pointBtn; - clickNameBtn = nameBtn; - residenceListView.Close(); - ChangeResidence(home); - }; - nameBtn.MouseUpEventHandler += selectedResidenceHandler; - pointBtn.MouseUpEventHandler += selectedResidenceHandler; - rowView.MouseUpEventHandler += selectedResidenceHandler; - if (home.Id == Config.Instance.Home.Id) - { - pointBtn.IsSelected = true; - nameBtn.IsSelected = true; - clickCheckBtn = pointBtn; - clickNameBtn = nameBtn; - residecneName.Text = home.Name; - if (home.IsOthreShare) - { - residecneName.Text = nameBtn.Text = $"({Language.StringByID(R.MyInternationalizationString.Shared)}){home.Name}"; - } - } - else - { - pointBtn.IsSelected = false; - nameBtn.IsSelected = false; - } + ChangeResidence(House.GetHouseByHouseId(houseId)); }; } - }; - //娑堟伅 - messageBtn.MouseUpEventHandler += (send, e) => - { - }; #endregion - if(CanBindGateway()==false) + if (CanBindGateway() == false) { - var roomPageView = new PageLayout() + + var roomPageView = new HorizontalPages() { Y = Application.GetRealHeight(302), - Width = Application.GetRealWidth(CommonPage.AppRealWidth - CommonPage.XLeft * 2), - Height = Application.GetMinRealAverage(roomPageView_Height), - Radius = CommonPage.BigFormRadius, - Gravity = Gravity.CenterHorizontal, - IsShowPoint = false + Width = Application.GetRealWidth(CommonPage.AppRealWidth), + Height = Application.GetRealHeight(478), }; AddChidren(roomPageView); + //绐佸嚭杈硅窛 + roomPageView.TCBJ = Application.GetRealWidth(181); + //涓や釜page涔嬮棿鐨勯棿璺� + roomPageView.JMBJ = Application.GetRealWidth(0); //褰撳墠鎴块棿 - if (Shared.Common.Room.CanInitAllRoom == true) + var rList = Room.CurrentRoom.GetRoomsByCurrentFloorIdAppendLoveRoom(); + Room.CurrentRoom = Room.CurrentRoom ?? rList[0]; + foreach (var room in rList) { - //Room.CurrentRoom = Room.CurrentRoom == null ? Room.Lists[0] : Room.CurrentRoom; - Room.CurrentRoom = Room.Lists[0]; - foreach (var room in Room.Lists) + var roomView = new Device.CommonForm.RoomView(0, 0); + roomPageView.AddChidren(roomView); + roomView.Init(room); + roomView.HideName(true); + roomView.action += () => { - var roomBackView = new FrameLayout() - { - BackgroundImagePath = room.BackgroundImage - }; - roomPageView.AddChidren(roomBackView); - var roomBG = new Button() - { - UnSelectedImagePath = "Room/HomeBG.png", - }; - roomBackView.AddChidren(roomBG); - var roomName = new Button() - { - X = Application.GetRealWidth(20), - Y = Application.GetRealHeight(20), - Width = Application.GetRealWidth(500), - Height = Application.GetRealHeight(80), - Text = room.Name, - TextAlignment = TextAlignment.CenterLeft, - TextColor = ZigbeeColor.Current.GXCTextWhiteColor, - TextSize = 18, - }; - roomBackView.AddChidren(roomName); - var roomListBtn = new Device.CommonForm.SelectedStatuButton() - { - X = roomPageView.Width - Application.GetRealWidth(100 + 20), - Y = Application.GetRealHeight(20), - Width = Application.GetMinRealAverage(100), - Height = Application.GetMinRealAverage(100), - UnSelectedImagePath = "Item/List.png", - SelectedImagePath = "Item/ListSelected.png" - }; - roomBackView.AddChidren(roomListBtn); - - roomListBtn.MouseUpEventHandler += (send, e) => - { - //var roomList = new Device.Room.RoomManagement(); - //HomePage.Instance.AddChidren(roomList); - //HomePage.Instance.PageIndex += 1; - //roomList.Show(); - //roomList.action += () => - //{ - // Show(); - //}; - - var editRoom = new Device.Room.AddRoom(); - HomePage.Instance.AddChidren(editRoom); - HomePage.Instance.PageIndex += 1; - editRoom.Show(); - editRoom.action += () => - { - Show(); - }; - - }; - } + Show(); + }; } - else + var curIndex = rList.FindIndex((obj) => obj.Id == Room.CurrentRoom.Id); + roomPageView.PageIndex = curIndex; + if (roomPageView.GetChildren(roomPageView.PageIndex) != null) { - var roomBackView = new FrameLayout() - { - BackgroundImagePath = "Room/r0.png" - }; - roomPageView.AddChidren(roomBackView); - var roomBG = new Button() - { - UnSelectedImagePath = "Room/HomeBG.png", - }; - roomBackView.AddChidren(roomBG); - var roomName = new Button() - { - X = Application.GetRealWidth(20), - Y = Application.GetRealHeight(20), - Width = Application.GetRealWidth(500), - Height = Application.GetRealHeight(80), - Text = Language.StringByID(R.MyInternationalizationString.Favorite), - TextAlignment = TextAlignment.CenterLeft, - TextColor = ZigbeeColor.Current.GXCTextWhiteColor, - TextSize = 18, - }; - roomBackView.AddChidren(roomName); - var roomListBtn = new Button() - { - X = roomPageView.Width - Application.GetRealWidth(100 + 20), - Y = Application.GetRealHeight(20), - Width = Application.GetMinRealAverage(100), - Height = Application.GetMinRealAverage(100), - UnSelectedImagePath = "Item/List.png" - }; - roomBackView.AddChidren(roomListBtn); + (roomPageView.GetChildren(roomPageView.PageIndex) as RoomView).HideName(false); + } var functionSceneView = new FrameLayout() { Y = Application.GetRealHeight(861), - Width=Application.GetRealWidth(832), + Width = Application.GetRealWidth(832), Height = Application.GetRealHeight(167), - Gravity=Gravity.CenterHorizontal, - BackgroundImagePath="Item/SceneFunctionBG.png" + Gravity = Gravity.CenterHorizontal, + BackgroundImagePath = "Item/SceneFunctionBG.png" }; AddChidren(functionSceneView); - //鍔熻兘 - functionBtn = new Button() + //鍦烘櫙 + var sceneBtn = new Button() { X = Application.GetRealWidth(30), - Y=Application.GetRealHeight(12), + Y = Application.GetRealHeight(12), Width = Application.GetRealWidth(350), Height = Application.GetRealHeight(100), TextColor = ZigbeeColor.Current.GXCTextGrayColor3, SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor, - TextID = R.MyInternationalizationString.Function, - IsSelected = true + TextID = R.MyInternationalizationString.Scence, + IsSelected = true, + TextSize=16, + IsBold=true }; - functionSceneView.AddChidren(functionBtn); + functionSceneView.AddChidren(sceneBtn); //鍦烘櫙 - var sceneBtn = new Button() + functionBtn = new Button() { X = Application.GetRealWidth(430), Y = Application.GetRealHeight(12), @@ -994,10 +667,11 @@ Height = Application.GetRealHeight(100), TextColor = ZigbeeColor.Current.GXCTextGrayColor3, SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor, - TextID = R.MyInternationalizationString.Scence, - IsSelected = false + TextID = R.MyInternationalizationString.Function, + IsSelected = false, + TextSize=14 }; - functionSceneView.AddChidren(sceneBtn); + functionSceneView.AddChidren(functionBtn); //鍔熻兘鍜屽満鏅痓odyView functionSceneBodyView = new FrameLayout() @@ -1005,7 +679,7 @@ Y = functionSceneView.Bottom, Height = Application.GetRealHeight(750), Gravity = Gravity.CenterHorizontal, - BackgroundColor=ZigbeeColor.Current.GXCGrayBackgroundColor + BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor }; AddChidren(functionSceneBodyView); @@ -1014,6 +688,10 @@ { sceneBtn.IsSelected = false; functionBtn.IsSelected = true; + sceneBtn.TextSize = 14; + sceneBtn.IsBold = false; + functionBtn.TextSize = 16; + functionBtn.IsBold = true; RefreshBodyView(); }; //閫夋嫨鍦烘櫙鍒嗘爮 @@ -1021,6 +699,10 @@ { functionBtn.IsSelected = false; sceneBtn.IsSelected = true; + sceneBtn.TextSize = 16; + sceneBtn.IsBold = true; + functionBtn.TextSize = 14; + functionBtn.IsBold = false; RefreshBodyView(); }; @@ -1028,9 +710,22 @@ roomPageView.PageChange += (sender, e) => { + if(roomPageView.GetChildren(roomPageView.PageIndex - 1) !=null) + { + (roomPageView.GetChildren(roomPageView.PageIndex - 1) as RoomView).HideName(true); + } + if (roomPageView.GetChildren(roomPageView.PageIndex + 1) != null) + { + (roomPageView.GetChildren(roomPageView.PageIndex + 1) as RoomView).HideName(true); + } + if (roomPageView.GetChildren(roomPageView.PageIndex) != null) + { + (roomPageView.GetChildren(roomPageView.PageIndex) as RoomView).HideName(false); + } //鍒囨崲褰撳墠鎴块棿 - Room.CurrentRoom = Room.CurrentRoom == null ? Room.Lists[0] : Room.Lists[roomPageView.PageIndex]; + Room.CurrentRoom = rList[roomPageView.PageIndex]; RefreshBodyView(); + }; } else @@ -1043,13 +738,11 @@ #endregion #region 鈼� 鍒锋柊____________________________ - + /// <summary> + /// RefreshBodyView + /// </summary> public void RefreshBodyView() { - if (Room.CanInitAllRoom == false) - { - return; - } functionSceneBodyView.RemoveAll(); if (functionBtn.IsSelected) { @@ -1059,6 +752,25 @@ { ShowScene(); } + } + + /// <summary> + /// SelectFloor + /// </summary> + /// <param name="sender"></param> + /// <param name="mouseEventArgs"></param> + public void SelectFloor(object sender, MouseEventArgs mouseEventArgs) + { + var floorFL = new Phone.Device.Category.SelectFloor(); + AddChidren(floorFL); + floorFL.Init(35, 153); + floorFL.changeFloor = true; + floorFL.FloorAction = (floorId) => + { + floorBtn.Text = Config.Instance.Home.GetFloorNameById(floorId); + Common.Room.CurrentRoom = Common.Room.CurrentRoom?.GetLoveRoom(); + Show(); + }; } #endregion @@ -1159,7 +871,7 @@ /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param> private void GoToAddGateWay(object sender, MouseEventArgs mouseEventArgs) { - UserCenter.GatewayAdd.NewGateWaySelectForm selectNewGateWayForm = new UserCenter.GatewayAdd.NewGateWaySelectForm { }; + var selectNewGateWayForm = new UserCenter.GatewayAdd.NewGateWayMenuSelectForm { }; selectNewGateWayForm.AddForm(selectNewGateWayForm); } @@ -1172,13 +884,24 @@ /// </summary> private void ShowNoFunctionTip() { + var noFunction = new Button + { + Y = Application.GetRealHeight(69), + Width = Application.GetMinRealAverage(683), + Height = Application.GetMinRealAverage(392), + Gravity = Gravity.CenterHorizontal, + UnSelectedImagePath = "Item/NoFunction.png" + }; + functionSceneBodyView.AddChidren(noFunction); + var noFunctionTip = new Button() { + Y = noFunction.Bottom, Height = Application.GetRealHeight(200), - TextID = R.MyInternationalizationString.NoFunction, + Text = Language.StringByID(R.MyInternationalizationString.NoFunction_Tip).Replace("{\\r\\n}", "\r\n"), TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, - TextAlignment = TextAlignment.Center, - Gravity = Gravity.Center + TextAlignment=TextAlignment.Center, + IsMoreLines = true }; functionSceneBodyView.AddChidren(noFunctionTip); } @@ -1188,6 +911,7 @@ /// </summary> private void ShowFunction() { + functionSceneBodyView.RemoveAll(); //閫夋嫨鍔熻兘--鐩存帴浠庢埧闂寸殑devicelist涓幏鍙� var deviceList = Room.CurrentRoom.DeviceUIList; if (deviceList == null) @@ -1201,1480 +925,817 @@ } else { - deviceVerticalScrolViewLayout = new VerticalScrolViewLayout { }; - functionSceneBodyView.AddChidren(deviceVerticalScrolViewLayout); - foreach (var device in deviceList) + var dList = new List<DeviceUI> { }; + foreach(var device in deviceList) { - if (device == null || device.CommonDevice == null) + var info = Common.LocalDevice.Current.GetDeviceBelongEnumInfo(device.CommonDevice); + if (info.BeloneType == DeviceBeloneType.A骞叉帴鐐� || info.BeloneType == DeviceBeloneType.A涓户鍣�) { continue; } - //鍒犻櫎璁惧 - EventHandler<MouseEventArgs> delEvent = (sender, e) => - { - 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(); - alert.ResultEventHandler += (send1, e1) => - { - if (e1) - { - Room.CurrentRoom.DeleteDevice(device.FileName); - //RefreshBodyView(); - deviceVerticalScrolViewLayout.RemoveViewByTag((sender as Button).Tag); - } - }; - }; - //鏀惰棌 - //EventHandler<MouseEventArgs> collectionEvent = (sender, e) => + dList.Add(device); + } + + deviceVerticalScrolViewLayout = new VerticalScrolViewLayout { }; + functionSceneBodyView.AddChidren(deviceVerticalScrolViewLayout); + for (int i = 0; i < dList.Count; i++) + { + var device = dList[i]; + //new System.Threading.Thread(() => //{ - // if ((sender as Button).IsSelected) - // { - // Room.Lists[0].DeleteDevice(device.FilePath); - // (sender as Button).IsSelected = false; - // if (Room.CurrentRoom == Room.Lists[0]) - // { - // DeviceVerticalScrolViewLayout.RemoveViewByTag((sender as Button).Tag); - // } - // } - // else - // { - // Room.Lists[0].AddDevice(device.FilePath); - // (sender as Button).IsSelected = true; - // } - // //RefreshBodyView(); - //}; - EventHandler<MouseEventArgs> collectionEvent = (sender, e) => - { - if (Room.CurrentRoom == Room.Lists[0]) + Application.RunOnMainThread(() => { - Room.Lists[0].DeleteDevice(device.FileName); - deviceVerticalScrolViewLayout.RemoveViewByTag((sender as Button).Tag); - } - }; - - //////鍒ゆ柇璁惧鏄惁鏀寔鐨勫睘鎬� 濡傚紑鍏崇瓑鎺у埗 - if (device.CommonDevice.Type == ZigBee.Device.DeviceType.WindowCoveringDevice) - { - //绐楀笜 鍗峰笜 - var rollerShade = (ZigBee.Device.Rollershade)device.CommonDevice; - //涓嶄笂闈炶繙绋� - if (rollerShade.Gateway == null) - { - continue; - } - if (rollerShade.Gateway.IsVirtual) - { - //鍙戦�佽鍙栫姸鎬佸懡浠� - ReadStatus(rollerShade, () => + try { - rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - }); - } - else - { - if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - rollerShade.LastDateTime).TotalSeconds) - { - rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - } - } - - var deviceFL = new FrameLayout - { - Height = Application.GetRealHeight(deviceFL_Height), - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag = device - }; - deviceVerticalScrolViewLayout.AddChidren(deviceFL); - var deviceRowLayout = new RowLayout - { - Y = Application.GetRealHeight(25), - Height = Application.GetRealHeight(deviceFL_Height - 25) - 1, - LineColor = ZigbeeColor.Current.GXCBackgroundColor, - BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor, - Radius = CommonPage.BigFormRadius, - Tag = device - }; - deviceFL.AddChidren(deviceRowLayout); - var deviceItemFL = new FrameLayout() - { - BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor, - Radius = CommonPage.BigFormRadius - }; - deviceRowLayout.AddChidren(deviceItemFL); - var deviceIMG = new Button() - { - X = Application.GetRealWidth(50), - Y = Application.GetRealHeight(30), - Width = Application.GetMinRealAverage(110), - Height = Application.GetMinRealAverage(110), - UnSelectedImagePath = device.IconPath, - SelectedImagePath = device.OnlineIconPath, - IsSelected = rollerShade.IsOnline == 1, - Tag = deviceStatus_Online - }; - deviceItemFL.AddChidren(deviceIMG); - var deviceName = new Button() - { - X = Application.GetRealWidth(10), - Y = deviceIMG.Bottom, - Width = Application.GetRealWidth(180), - Height = Application.GetRealHeight(80), - TextColor = ZigbeeColor.Current.GXCTextBlackColor, - TextAlignment = TextAlignment.Center, - Text = device.CommonDevice.DeviceEpointName, - TextSize = 10, - IsMoreLines = true - }; - deviceItemFL.AddChidren(deviceName); - - var closeBtnBG = new Device.CommonForm.SelectedStatuButton() - { - X = deviceName.Right, - Width = Application.GetMinRealAverage(250), - Height = Application.GetMinRealAverage(250), - Gravity = Gravity.CenterVertical, - }; - deviceItemFL.AddChidren(closeBtnBG); - - var closeBtn = new Device.CommonForm.SelectedStatuButton() - { - X = Application.GetRealWidth(50) + deviceName.Right, - Width = Application.GetMinRealAverage(110), - Height = Application.GetMinRealAverage(110), - Gravity = Gravity.CenterVertical, - UnSelectedImagePath = "WindowCovering/RollerShadeClose.png", - SelectedImagePath = "WindowCovering/RollerShadeCloseSelected.png", - //Visible=false - }; - deviceItemFL.AddChidren(closeBtn); - - var stopBtnBG = new Device.CommonForm.SelectedStatuButton() - { - X = Application.GetRealWidth(120) + closeBtn.Right, - Width = Application.GetMinRealAverage(250), - Height = Application.GetMinRealAverage(250), - Gravity = Gravity.CenterVertical, - }; - deviceItemFL.AddChidren(stopBtnBG); - var stopBtn = new Device.CommonForm.SelectedStatuButton() - { - X = Application.GetRealWidth(120) + closeBtn.Right, - Width = Application.GetMinRealAverage(110), - Height = Application.GetMinRealAverage(110), - Gravity = Gravity.CenterVertical, - UnSelectedImagePath = "WindowCovering/RollerShadeStop.png", - SelectedImagePath = "WindowCovering/RollerShadeStopSelected.png", - //Visible=false - }; - deviceItemFL.AddChidren(stopBtn); - - var openBtnBG = new Device.CommonForm.SelectedStatuButton() - { - X = Application.GetRealWidth(20) + stopBtn.Right, - Width = Application.GetMinRealAverage(250), - Height = Application.GetMinRealAverage(250), - Gravity = Gravity.CenterVertical, - }; - deviceItemFL.AddChidren(openBtnBG); - var openBtn = new Device.CommonForm.SelectedStatuButton() - { - X = Application.GetRealWidth(120) + stopBtn.Right, - Width = Application.GetMinRealAverage(110), - Height = Application.GetMinRealAverage(110), - Gravity = Gravity.CenterVertical, - UnSelectedImagePath = "WindowCovering/RollerShadeOpen.png", - SelectedImagePath = "WindowCovering/RollerShadeOpenSelected.png", - //Visible=false - }; - deviceItemFL.AddChidren(openBtn); - var collectionBtn = new Button() - { - X = deviceItemFL.Right - Application.GetRealWidth(150), - Y = Application.GetRealHeight(20), - Width = Application.GetMinRealAverage(80), - Height = Application.GetMinRealAverage(80), - UnSelectedImagePath = "Item/Collection.png", - SelectedImagePath = "Item/CollectionSelected.png", - Tag = device - }; - //*****鍏堥殣钘�***** - //deviceItemFL.AddChidren(collectionBtn); - var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton - { - Tag = device, - IsMoreLines = true - }; - - if (Room.CurrentRoom.IsLove) - { - deleteBtn.TextID = R.MyInternationalizationString.CancelCollect; - deleteBtn.BackgroundColor = ZigbeeColor.Current.GXCCancelCollectionBGColor; - deleteBtn.MouseUpEventHandler += collectionEvent; - deviceRowLayout.AddRightView(deleteBtn); - } - else if (Room.CurrentRoom.IsSharedRoom) - { - //涓嶅鐞� - } - else - { - deleteBtn.MouseUpEventHandler += delEvent; - deviceRowLayout.AddRightView(deleteBtn); - } - - if (rollerShade.WcdType == -1) - { - CommonPage.Loading.Start(); - new System.Threading.Thread(() => - { - ZigBee.Device.Rollershade.ReadWcdTypeAction(rollerShade, () => + int t = i % 2; + int tt = i / 2; + int xx = 43 + i % 2 * (20 + 487); + int yy = 14; + if (i % 2 == 0) { - Application.RunOnMainThread(() => + itemView = new FrameLayout() { - if (rollerShade.WcdType == 0) + Height = Application.GetRealHeight(14 + 348), + }; + deviceVerticalScrolViewLayout.AddChidren(itemView); + } + //鏀惰棌 + EventHandler<MouseEventArgs> collectionEvent = (sender, e) => + { + if ((sender as Button).IsSelected) + { + Common.Room.CurrentRoom.GetLoveRoom().DeleteDevice(device.FileName); + (sender as Button).IsSelected = false; + } + else + { + Common.Room.CurrentRoom.GetLoveRoom().AddDevice(device.FileName); + (sender as Button).IsSelected = true; + } + if (Room.CurrentRoom.IsLove) + { + RefreshBodyView(); + } + }; + + if (device.CommonDevice.Type == DeviceType.WindowCoveringDevice) + { + //绐楀笜 鍗峰笜 + var rollerShade = (ZigBee.Device.Rollershade)device.CommonDevice; + if (rollerShade.Gateway != null) + { + new System.Threading.Thread(() => { - closeBtn.UnSelectedImagePath = "WindowCovering/RollerShadeDown.png"; - closeBtn.SelectedImagePath = "WindowCovering/RollerShadeDownSelected.png"; - openBtn.UnSelectedImagePath = "WindowCovering/RollerShadeUp.png"; - openBtn.SelectedImagePath = "WindowCovering/RollerShadeUpSelected.png"; + System.Threading.Thread.Sleep(100 * i); + if (rollerShade.Gateway.IsVirtual) + { + ReadStatus(rollerShade, () => + { + ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(device.CommonDevice); + }); + } + else + { + if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - rollerShade.LastDateTime).TotalSeconds) + { + ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(device.CommonDevice); + } + } + }) + { IsBackground = true }.Start(); + + var functionView = new FunctionMainView(xx, yy); + functionView.Tag = device; + itemView.AddChidren(functionView); + functionView.Init(); + functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath); + functionView.SetStatuText(device.GetDeviceStatu()); + functionView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(rollerShade)); + functionView.IsSelected = rollerShade.WcdCurrentPositionLiftPercentage == 100; + functionView.SetCollect(true); + + functionView.SwitchButton.MouseUpEventHandler += (sender, e) => + { + (sender as Button).IsSelected = !(sender as Button).IsSelected; + if ((sender as Button).IsSelected) + { + zbGateway = device.CommonDevice.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); + + (device.CommonDevice as Rollershade).CurtainUpDownStopControl(0); + + ((sender as Button).Parent as FunctionMainView).SetStatuText(Language.StringByID(R.MyInternationalizationString.Open)); + ((sender as Button).Parent as FunctionMainView).IsSelected = true; + + //鎺у埗寤舵椂鍥炶皟 + DeviceUI.SendCommandDelayAction(device.CommonDevice, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + } + else + { + zbGateway = device.CommonDevice.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); + + (device.CommonDevice as Rollershade).CurtainUpDownStopControl(1); + + ((sender as Button).Parent as FunctionMainView).SetStatuText(Language.StringByID(R.MyInternationalizationString.Close)); + ((sender as Button).Parent as FunctionMainView).IsSelected = false; + + //鎺у埗寤舵椂鍥炶皟 + DeviceUI.SendCommandDelayAction(device.CommonDevice, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + } + }; + + functionView.CardBG.MouseUpEventHandler += (sender, e) => + { + CommonPage.Instance.IsDrawerLockMode = true; + var rollerShadeControl = new Phone.Device.Curtain.RollerShadeControl(); + UserView.HomePage.Instance.AddChidren(rollerShadeControl); + UserView.HomePage.Instance.PageIndex += 1; + UserView.HomePage.Instance.ScrollEnabled = false; + rollerShadeControl.IsDrawerLockMode = true; + rollerShadeControl.Show(device, Room.CurrentRoom); + rollerShadeControl.action += (curDev, curRoom) => + { + ReFreshEditDeviceAction(device, curRoom, functionView); + }; + }; + + functionView.CollectButton.MouseUpEventHandler += collectionEvent; + } + } + else if (device.CommonDevice.Type == DeviceType.OnOffOutput) + { + //寮�鍏崇伅 + var light = device.CommonDevice as ToggleLight; + if (light.Gateway != null) + { + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (light.Gateway.IsVirtual) + { + ReadStatus(light, () => + { + ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice); + }); + } + else + { + if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds) + { + ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice); + } + } + }) + { IsBackground = true }.Start(); + + var functionView = new FunctionMainView(xx, yy); + itemView.AddChidren(functionView); + functionView.Init(); + functionView.Tag = device; + functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath); + functionView.SetStatuText(device.GetDeviceStatu()); + functionView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice)); + functionView.IsSelected = light.OnOffStatus == 1; + functionView.SetCollect(Room.CurrentRoom.IsCollectInRoom(device.FileName)); + + if (Common.Room.CurrentRoom.IsCollectInRoom(device.FileName) == false) + { + functionView.CollectButton.IsSelected = false; } else { - closeBtn.UnSelectedImagePath = "WindowCovering/RollerShadeClose.png"; - closeBtn.SelectedImagePath = "WindowCovering/RollerShadeCloseSelected.png"; - openBtn.UnSelectedImagePath = "WindowCovering/RollerShadeOpen.png"; - openBtn.SelectedImagePath = "WindowCovering/RollerShadeOpenSelected.png"; + functionView.CollectButton.IsSelected = true; } - CommonPage.Loading.Hide(); - }); - }); - }) - { IsBackground = true }.Start(); - } - else if (rollerShade.WcdType == 0) - { - closeBtn.UnSelectedImagePath = "WindowCovering/RollerShadeDown.png"; - closeBtn.SelectedImagePath = "WindowCovering/RollerShadeDownSelected.png"; - openBtn.UnSelectedImagePath = "WindowCovering/RollerShadeUp.png"; - openBtn.SelectedImagePath = "WindowCovering/RollerShadeUpSelected.png"; - } - else - { - closeBtn.UnSelectedImagePath = "WindowCovering/RollerShadeClose.png"; - closeBtn.SelectedImagePath = "WindowCovering/RollerShadeCloseSelected.png"; - openBtn.UnSelectedImagePath = "WindowCovering/RollerShadeOpen.png"; - openBtn.SelectedImagePath = "WindowCovering/RollerShadeOpenSelected.png"; - } + functionView.SwitchButton.MouseUpEventHandler += (sender, e) => + { + (sender as Button).IsSelected = !(sender as Button).IsSelected; + if ((sender as Button).IsSelected) + { + zbGateway = device.CommonDevice.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); - EventHandler<MouseEventArgs> curtainHandler = (sender, e) => - { - var curtain = new Phone.Device.Curtain.RollerShadeControl(); - UserView.HomePage.Instance.ScrollEnabled = false; - UserView.HomePage.Instance.AddChidren(curtain); - UserView.HomePage.Instance.PageIndex += 1; - curtain.action = RefreshBodyView; - curtain.Show(device, Room.CurrentRoom); - }; - deviceItemFL.MouseUpEventHandler += curtainHandler; - //deviceItemFL.MouseLongEventHandler += curtainHandler; - deviceIMG.MouseUpEventHandler += curtainHandler; - deviceName.MouseUpEventHandler += curtainHandler; + light.SwitchControl(1); - //绐楀笜鍏� - closeBtn.MouseUpEventHandler += (sender, e) => - { - zbGateway = device.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); + ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu()); + ((sender as Button).Parent as FunctionMainView).IsSelected = true; - rollerShade.CurtainUpDownStopControl(1); + //鎺у埗寤舵椂鍥炶皟 + DeviceUI.SendCommandDelayAction(device.CommonDevice, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + } + else + { + zbGateway = device.CommonDevice.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(device.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - //绐楀笜鍋� - stopBtn.MouseUpEventHandler += (sender, e) => - { - zbGateway = device.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); + light.SwitchControl(0); - rollerShade.CurtainUpDownStopControl(2); + ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu()); + ((sender as Button).Parent as FunctionMainView).IsSelected = false; - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(device.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - //绐楀笜寮� - openBtn.MouseUpEventHandler += (sender, e) => - { - zbGateway = device.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); + //鎺у埗寤舵椂鍥炶皟 + DeviceUI.SendCommandDelayAction(device.CommonDevice, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + } + }; - rollerShade.CurtainUpDownStopControl(0); + functionView.CardBG.MouseUpEventHandler += (sender, e) => + { + CommonPage.Instance.IsDrawerLockMode = true; - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(device.CommonDevice, () => - { - if (Parent == null) - { - return; - } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) - { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - } - }); - }; - //collectionBtn.MouseUpEventHandler += (sender, e) => - //{ - // if (collectionBtn.IsSelected) - // { - // Room.Lists[0].DeleteDevice(device.FilePath); - // collectionBtn.IsSelected = false; - // } - // else - // { - // Room.Lists[0].AddDevice(device.FilePath); - // collectionBtn.IsSelected = true; - // } - // //RefreshBodyView(); - //}; - collectionBtn.MouseUpEventHandler += collectionEvent; - //var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj==device.FilePath); - //if(dev==null) - //{ - // collectionBtn.IsSelected = false; - //} - //else - //{ - // collectionBtn.IsSelected = true; - //} + var lightControl = new Phone.Device.Light.OnOffControl(); + UserView.HomePage.Instance.AddChidren(lightControl); + UserView.HomePage.Instance.PageIndex += 1; + lightControl.IsDrawerLockMode = true; + lightControl.Show(device, Room.CurrentRoom); + lightControl.action += (curDev, curRoom) => + { + ReFreshEditDeviceAction(device, curRoom, functionView); + }; + }; - ////寮�鍏冲仠鎸夐挳鏄惁鏄剧ず - //foreach(var command in commandList) - //{ - // if (command == null) - // { - // continue; - // } - // if (command.commandId==0) - // { - // openBtn.Visible = true; - // } - // else if(command.commandId==1) - // { - // openBtn.Visible = true; - // } - // else if(command.commandId==2) - // { - // stopBtn.Visible = true; - // } - //} - } - else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.OnOffOutput) - { - //寮�鍏崇伅 - var light = device.CommonDevice as ToggleLight; - //琛ヤ笂闈炶繙绋� - if (light.Gateway == null) - { - continue; - } - if (light.Gateway.IsVirtual) - { - //鍙戦�佽鍙栫姸鎬佸懡浠� - 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 deviceFL = new FrameLayout - { - Height = Application.GetRealHeight(deviceFL_Height), - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag = device - }; - deviceVerticalScrolViewLayout.AddChidren(deviceFL); - var deviceRowLayout = new RowLayout - { - Y = Application.GetRealHeight(25), - Height = Application.GetRealHeight(deviceFL_Height - 25) - 1, - LineColor = ZigbeeColor.Current.GXCBackgroundColor, - BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor, - Radius = CommonPage.BigFormRadius, - Tag = device - }; - deviceFL.AddChidren(deviceRowLayout); - - var deviceItemFL = new FrameLayout() - { - BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor, - Radius = CommonPage.BigFormRadius - }; - deviceRowLayout.AddChidren(deviceItemFL); - var deviceIMG = new Button() - { - X = Application.GetRealWidth(50), - Y = Application.GetRealHeight(30), - Width = Application.GetMinRealAverage(110), - Height = Application.GetMinRealAverage(110), - UnSelectedImagePath = device.IconPath, - SelectedImagePath = device.OnlineIconPath, - IsSelected = light.IsOnline == 1, - Tag = deviceStatus_Online - }; - deviceItemFL.AddChidren(deviceIMG); - var deviceName = new Button() - { - X = Application.GetRealWidth(10), - Y = deviceIMG.Bottom, - Width = Application.GetRealWidth(180), - Height = Application.GetRealHeight(80), - TextColor = ZigbeeColor.Current.GXCTextBlackColor, - TextAlignment = TextAlignment.Center, - Text = device.CommonDevice.DeviceEpointName, - TextSize = 10, - IsMoreLines = true - }; - deviceItemFL.AddChidren(deviceName); - - var collectionBtn = new Button() - { - X = deviceItemFL.Right - Application.GetRealWidth(150), - Y = Application.GetRealHeight(20), - Width = Application.GetMinRealAverage(80), - Height = Application.GetMinRealAverage(80), - UnSelectedImagePath = "Item/Collection.png", - SelectedImagePath = "Item/CollectionSelected.png", - Tag = device - }; - //***鍏堥殣钘�****** - //deviceItemFL.AddChidren(collectionBtn); - var switchBtnBG = new Button - { - X = deviceItemFL.Right - Application.GetRealWidth(250), - Width = Application.GetMinRealAverage(250), - Height = Application.GetMinRealAverage(250), - Gravity = Gravity.CenterVertical - }; - deviceItemFL.AddChidren(switchBtnBG); - - var switchBtn = new Button - { - X = deviceItemFL.Right - Application.GetRealWidth(200), - //Y = deviceItemFL.Bottom - Application.GetRealHeight(120), - Width = Application.GetMinRealAverage(183), - Height = Application.GetMinRealAverage(123), - UnSelectedImagePath = "Item/Switch.png", - SelectedImagePath = "Item/SwitchSelected.png", - IsSelected = light.OnOffStatus == 1, - Tag = deviceStatus_OnOffStatus, - //Visible=false - Gravity = Gravity.CenterVertical - }; - deviceItemFL.AddChidren(switchBtn); - switchBtn.MouseUpEventHandler += (send2, e2) => - { - switchBtn.IsSelected = !switchBtn.IsSelected; - if (switchBtn.IsSelected == true) - { - zbGateway = device.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); - - light.SwitchControl(1); - - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(device.CommonDevice, () => - { - if (Parent == null) - { - return; + functionView.CollectButton.MouseUpEventHandler += collectionEvent; } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) + } + else if (device.CommonDevice.Type == DeviceType.AirSwitch) + { + //绌烘皵寮�鍏� + var airSwitch = device.CommonDevice as AirSwitch; + if (airSwitch.Gateway != null) { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (airSwitch.Gateway.IsVirtual) + { + ReadStatus(airSwitch, () => + { + ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice); + }); + } + else + { + if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + ReadDeviceAttributeLogic.Instance.SendLightStatuComand(device.CommonDevice); + } + } + }) + { IsBackground = true }.Start(); + + var functionView = new FunctionMainView(xx, yy); + itemView.AddChidren(functionView); + functionView.Init(); + functionView.Tag = device; + functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath); + functionView.SetStatuText(device.GetDeviceStatu()); + functionView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(airSwitch)); + functionView.IsSelected = airSwitch.OnOffStatus == 1; + functionView.SetCollect(Room.CurrentRoom.IsCollectInRoom( device.FileName)); + + functionView.SwitchButton.MouseUpEventHandler += (sender, e) => + { + (sender as Button).IsSelected = !(sender as Button).IsSelected; + if ((sender as Button).IsSelected) + { + zbGateway = device.CommonDevice.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); + + airSwitch.SwitchControl(1); + + ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu()); + ((sender as Button).Parent as FunctionMainView).IsSelected = true; + + //鎺у埗寤舵椂鍥炶皟 + DeviceUI.SendCommandDelayAction(device.CommonDevice, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + } + else + { + zbGateway = device.CommonDevice.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); + + airSwitch.SwitchControl(0); + + ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu()); + ((sender as Button).Parent as FunctionMainView).IsSelected = false; + + //鎺у埗寤舵椂鍥炶皟 + DeviceUI.SendCommandDelayAction(device.CommonDevice, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + } + }; + + functionView.CardBG.MouseUpEventHandler += (sender, e) => + { + CommonPage.Instance.IsDrawerLockMode = true; + var lightControl = new Phone.Device.Light.AirSwitchControl(); + UserView.HomePage.Instance.AddChidren(lightControl); + UserView.HomePage.Instance.PageIndex += 1; + lightControl.IsDrawerLockMode = true; + lightControl.Show(device, Room.CurrentRoom); + lightControl.action += (curDev, curRoom) => + { + ReFreshEditDeviceAction(device, curRoom, functionView); + }; + + }; + + functionView.CollectButton.MouseUpEventHandler += collectionEvent; } - }); - } - else - { - zbGateway = device.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); - - light.SwitchControl(0); - - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(device.CommonDevice, () => + } + else if (device.CommonDevice.Type == DeviceType.Thermostat) { - if (Parent == null) + //鎭掓俯鍣�-AC-绌鸿皟 + var ac = device.CommonDevice as AC; + if (ac.Gateway != null) { - return; + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (ac.Gateway.IsVirtual) + { + ReadStatus(ac, () => + { + ReadDeviceAttributeLogic.Instance.SendACStatuComand(device.CommonDevice); + }); + } + else + { + if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + ReadDeviceAttributeLogic.Instance.SendACStatuComand(device.CommonDevice); + } + } + }) + { IsBackground = true }.Start(); + + var functionView = new FunctionMainView(xx, yy); + itemView.AddChidren(functionView); + functionView.Init(); + functionView.Tag = device; + functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath); + functionView.SetStatuText(device.GetDeviceStatu()); + functionView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice)); + functionView.IsSelected = ac.currentSystemMode != 0; + functionView.SetCollect(Room.CurrentRoom.IsCollectInRoom(device.FileName)); + + functionView.SwitchButton.MouseUpEventHandler += (sender, e) => + { + (sender as Button).IsSelected = !(sender as Button).IsSelected; + if ((sender as Button).IsSelected) + { + zbGateway = device.CommonDevice.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); + + ac.Open(); + + ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu()); + ((sender as Button).Parent as FunctionMainView).IsSelected = true; + + //鎺у埗寤舵椂鍥炶皟 + DeviceUI.SendCommandDelayAction(device.CommonDevice, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + } + else + { + zbGateway = device.CommonDevice.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); + + ac.Close(); + + ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu()); + ((sender as Button).Parent as FunctionMainView).IsSelected = false; + + //鎺у埗寤舵椂鍥炶皟 + DeviceUI.SendCommandDelayAction(device.CommonDevice, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + } + }; + + functionView.CardBG.MouseUpEventHandler += (sender, e) => + { + CommonPage.Instance.IsDrawerLockMode = true; + var lightControl = new Phone.Device.AC.ACControl(); + UserView.HomePage.Instance.AddChidren(lightControl); + UserView.HomePage.Instance.PageIndex += 1; + lightControl.IsDrawerLockMode = true; + lightControl.Show(device, Room.CurrentRoom); + lightControl.action += (curDev, curRoom) => + { + ReFreshEditDeviceAction(device, curRoom, functionView); + }; + }; + + functionView.CollectButton.MouseUpEventHandler += collectionEvent; } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) + } + else if (device.CommonDevice.Type == DeviceType.DimmableLight) + { + //璋冨厜鐏� + var dimmableLight = device.CommonDevice as DimmableLight; + if (dimmableLight.Gateway != null) { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (dimmableLight.Gateway.IsVirtual) + { + //鍙戦�佽鍙栫姸鎬佸懡浠� + ReadStatus(dimmableLight, () => + { + ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(device.CommonDevice); + }); + } + else + { + //闃叉鐭椂闂村唴澶氭璇诲彇璁惧鐘舵�� + if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) + { + ReadDeviceAttributeLogic.Instance.SendDimmableLightStatuComand(device.CommonDevice); + } + } + }) + { IsBackground = true }.Start(); + + var functionView = new FunctionMainView(xx, yy); + itemView.AddChidren(functionView); + functionView.Init(); + functionView.Tag = device; + functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath); + functionView.SetStatuText(device.GetDeviceStatu()); + functionView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice)); + functionView.IsSelected = dimmableLight.OnOffStatus == 1; + functionView.SetCollect(Room.CurrentRoom.IsCollectInRoom(device.FileName)); + + if (Common.Room.CurrentRoom.IsCollectInRoom(device.FileName) == false) + { + functionView.CollectButton.IsSelected = false; + } + else + { + functionView.CollectButton.IsSelected = true; + } + + functionView.SwitchButton.MouseUpEventHandler += (sender, e) => + { + (sender as Button).IsSelected = !(sender as Button).IsSelected; + if ((sender as Button).IsSelected) + { + zbGateway = device.CommonDevice.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); + + dimmableLight.SwitchControl(1); + + ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu()); + ((sender as Button).Parent as FunctionMainView).IsSelected = true; + + //鎺у埗寤舵椂鍥炶皟 + DeviceUI.SendCommandDelayAction(device.CommonDevice, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + } + else + { + zbGateway = device.CommonDevice.Gateway; + sendedControlCommand = false; + zbGateway.ReportAction += UpdateDeviceControllStatu; + AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); + + dimmableLight.SwitchControl(0); + + ((sender as Button).Parent as FunctionMainView).SetStatuText(device.GetDeviceStatu()); + ((sender as Button).Parent as FunctionMainView).IsSelected = false; + + //鎺у埗寤舵椂鍥炶皟 + DeviceUI.SendCommandDelayAction(device.CommonDevice, () => + { + if (Parent == null) + { + return; + } + RemoveUpdateControlDeviceStatuAction(zbGateway); + if (sendedControlCommand == false) + { + DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + } + }); + } + }; + + functionView.CardBG.MouseUpEventHandler += (sender, e) => + { + CommonPage.Instance.IsDrawerLockMode = true; + var dimmableLightControl = new Phone.Device.Light.DimmableLightControl(); + UserView.HomePage.Instance.AddChidren(dimmableLightControl); + UserView.HomePage.Instance.PageIndex += 1; + dimmableLightControl.IsDrawerLockMode = true; + dimmableLightControl.Show(device, Room.CurrentRoom); + dimmableLightControl.action += (curDev, curRoom) => + { + ReFreshEditDeviceAction(device, curRoom, functionView); + }; + }; + functionView.CollectButton.MouseUpEventHandler += collectionEvent; } - }); - } - }; - - - var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton - { - Tag = device, - IsMoreLines = true - }; - if (Room.CurrentRoom.IsLove) - { - deleteBtn.TextID = R.MyInternationalizationString.CancelCollect; - deleteBtn.BackgroundColor = ZigbeeColor.Current.GXCCancelCollectionBGColor; - deleteBtn.MouseUpEventHandler += collectionEvent; - deviceRowLayout.AddRightView(deleteBtn); - } - else if (Room.CurrentRoom.IsSharedRoom) - { - //涓嶅鐞� - } - else - { - deleteBtn.MouseUpEventHandler += delEvent; - deviceRowLayout.AddRightView(deleteBtn); - } - - - EventHandler<MouseEventArgs> lightHandler = (sender, e) => - { - var lightControl = new Phone.Device.Light.LightControl(); - UserView.HomePage.Instance.AddChidren(lightControl); - UserView.HomePage.Instance.PageIndex += 1; - lightControl.action = RefreshBodyView; - lightControl.Show(device, Room.CurrentRoom); - }; - //deviceItemFL.MouseLongEventHandler += lightHandler; - deviceItemFL.MouseUpEventHandler += lightHandler; - deviceName.MouseUpEventHandler += lightHandler; - deviceIMG.MouseUpEventHandler += lightHandler; - - //collectionBtn.MouseUpEventHandler += (sender, e) => - //{ - // if (collectionBtn.IsSelected) - // { - // Room.Lists[0].DeleteDevice(device.FilePath); - // collectionBtn.IsSelected = false; - // if(Room.CurrentRoom==Room.Lists[0]) - // { - // RefreshBodyView(); - // } - // } - // else - // { - // Room.Lists[0].AddDevice(device.FilePath); - // collectionBtn.IsSelected = true; - // } - // //RefreshBodyView(); - //}; - collectionBtn.MouseUpEventHandler += collectionEvent; - - //var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FilePath); - //if (dev == null) - //{ - // collectionBtn.IsSelected = false; - //} - //else - //{ - // collectionBtn.IsSelected = true; - //} - - } - else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.AirSwitch) - { - //绌烘皵寮�鍏� - var airSwitch = device.CommonDevice as AirSwitch; - - //琛ヤ笂闈炶繙绋� - if (airSwitch.Gateway == null) - { - continue; - } - if (airSwitch.Gateway.IsVirtual) - { - //鍙戦�佽鍙栫姸鎬佸懡浠� - 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 deviceFL = new FrameLayout - { - Height = Application.GetRealHeight(deviceFL_Height), - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag = device - }; - deviceVerticalScrolViewLayout.AddChidren(deviceFL); - var deviceRowLayout = new RowLayout - { - Y = Application.GetRealHeight(25), - Height = Application.GetRealHeight(deviceFL_Height - 25) - 1, - LineColor = ZigbeeColor.Current.GXCBackgroundColor, - BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor, - Radius = CommonPage.BigFormRadius, - Tag = device - }; - deviceFL.AddChidren(deviceRowLayout); - - var deviceItemFL = new FrameLayout() - { - BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor, - Radius = CommonPage.BigFormRadius - }; - deviceRowLayout.AddChidren(deviceItemFL); - var deviceIMG = new Button() - { - X = Application.GetRealWidth(50), - Y = Application.GetRealHeight(30), - Width = Application.GetMinRealAverage(110), - Height = Application.GetMinRealAverage(110), - UnSelectedImagePath = device.IconPath, - SelectedImagePath = device.OnlineIconPath, - IsSelected = airSwitch.IsOnline == 1, - Tag = deviceStatus_Online - }; - deviceItemFL.AddChidren(deviceIMG); - var deviceName = new Button() - { - X = Application.GetRealWidth(10), - Y = deviceIMG.Bottom, - Width = Application.GetRealWidth(180), - Height = Application.GetRealHeight(80), - TextColor = ZigbeeColor.Current.GXCTextBlackColor, - TextAlignment = TextAlignment.Center, - Text = device.CommonDevice.DeviceEpointName, - TextSize = 10, - IsMoreLines = true - }; - deviceItemFL.AddChidren(deviceName); - - var collectionBtn = new Button() - { - X = deviceItemFL.Right - Application.GetRealWidth(150), - Y = Application.GetRealHeight(20), - Width = Application.GetMinRealAverage(80), - Height = Application.GetMinRealAverage(80), - UnSelectedImagePath = "Item/Collection.png", - SelectedImagePath = "Item/CollectionSelected.png", - Tag = device - }; - //***鍏堥殣钘�****** - //deviceItemFL.AddChidren(collectionBtn); - var switchBtnBG = new Button - { - X = deviceItemFL.Right - Application.GetRealWidth(250), - Width = Application.GetMinRealAverage(250), - Height = Application.GetMinRealAverage(250), - Gravity = Gravity.CenterVertical - }; - deviceItemFL.AddChidren(switchBtnBG); - var switchBtn = new Button - { - X = deviceItemFL.Right - Application.GetRealWidth(200), - //Y = deviceItemFL.Bottom - Application.GetRealHeight(120), - Width = Application.GetMinRealAverage(183), - Height = Application.GetMinRealAverage(123), - UnSelectedImagePath = "Item/Switch.png", - SelectedImagePath = "Item/SwitchSelected.png", - IsSelected = airSwitch.OnOffStatus == 1, - Tag = deviceStatus_OnOffStatus, - //Visible=false - Gravity = Gravity.CenterVertical - }; - deviceItemFL.AddChidren(switchBtn); - switchBtn.MouseUpEventHandler += (send2, e2) => - { - switchBtn.IsSelected = !switchBtn.IsSelected; - if (switchBtn.IsSelected == true) - { - zbGateway = device.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); - - airSwitch.SwitchControl(1); - - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(device.CommonDevice, () => + } + else if (device.CommonDevice.Type == DeviceType.IASZone) { - if (Parent == null) + //鍚勭被浼犳劅鍣� + var ias = device.CommonDevice as IASZone; + + var lightView = new FunctionMainView(xx, yy); + itemView.AddChidren(lightView); + lightView.Init(); + lightView.Tag = device; + lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); + lightView.SetStatuText(device.GetDeviceStatu()); + lightView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice)); + lightView.IsSelected = ias.iASInfo?.Alarm1 == 1; + lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(device.FileName)); + lightView.CanControl(false); + if (Common.Room.CurrentRoom.IsCollectInRoom(device.FileName) == false) { - return; + lightView.CollectButton.IsSelected = false; } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) + else { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + lightView.CollectButton.IsSelected = true; } - }); - } - else - { - zbGateway = device.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); - - airSwitch.SwitchControl(0); - - //鎺у埗寤舵椂鍥炶皟 - DeviceUI.SendCommandDelayAction(device.CommonDevice, () => + lightView.CollectButton.MouseUpEventHandler += collectionEvent; + } + else if (device.CommonDevice.Type == DeviceType.TemperatureSensor) { - if (Parent == null) + var tempera = device.CommonDevice as TemperatureSensor; + + if (tempera.Gateway != null) { - return; + new System.Threading.Thread(() => + { + System.Threading.Thread.Sleep(100 * i); + if (tempera.Gateway.IsVirtual) + { + ReadStatus(tempera, () => + { + if (tempera.SensorDiv == 1) + { + ReadDeviceAttributeLogic.Instance.SendTemperatureStatuComand(device.CommonDevice); + } + else if (tempera.SensorDiv == 2) + { + ReadDeviceAttributeLogic.Instance.SendHumidityStatuComand(device.CommonDevice); + } + }); + } + else + { + if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - tempera.LastDateTime).TotalSeconds) + { + if (tempera.SensorDiv == 1) + { + ReadDeviceAttributeLogic.Instance.SendTemperatureStatuComand(device.CommonDevice); + } + else if (tempera.SensorDiv == 2) + { + ReadDeviceAttributeLogic.Instance.SendHumidityStatuComand(device.CommonDevice); + } + } + } + }) + { IsBackground = true }.Start(); + + var lightView = new FunctionMainView(xx, yy); + itemView.AddChidren(lightView); + lightView.Init(); + lightView.Tag = device; + lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); + lightView.SetStatuText(device.GetDeviceStatu()); + lightView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice)); + lightView.IsSelected = false; + lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(device.FileName)); + lightView.CanControl(false); + if (Common.Room.CurrentRoom.IsCollectInRoom(device.FileName) == false) + { + lightView.CollectButton.IsSelected = false; + } + else + { + lightView.CollectButton.IsSelected = true; + } + lightView.CollectButton.MouseUpEventHandler += collectionEvent; } - RemoveUpdateControlDeviceStatuAction(zbGateway); - if (sendedControlCommand == false) + } + else if (device.CommonDevice.Type == DeviceType.DoorLock) + { + //闂ㄩ攣 + var dimmableLight = device.CommonDevice as DoorLock; + + var lightView = new FunctionMainView(xx, yy); + itemView.AddChidren(lightView); + lightView.Init(); + lightView.Tag = device; + lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); + lightView.SetStatuText(device.GetDeviceStatu()); + lightView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice)); + lightView.IsSelected = false; + lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(device.FileName)); + lightView.CanControl(false); + if (Common.Room.CurrentRoom.IsCollectInRoom(device.FileName) == false) { - DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); + lightView.CollectButton.IsSelected = false; } - }); - } - }; + else + { + lightView.CollectButton.IsSelected = true; + } - var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton - { - Tag = device, - IsMoreLines = true - }; - if (Room.CurrentRoom.IsLove) - { - deleteBtn.TextID = R.MyInternationalizationString.CancelCollect; - deleteBtn.BackgroundColor = ZigbeeColor.Current.GXCCancelCollectionBGColor; - deleteBtn.MouseUpEventHandler += collectionEvent; - deviceRowLayout.AddRightView(deleteBtn); - } - else if (Room.CurrentRoom.IsSharedRoom) - { - //涓嶅鐞� - } - else - { - deleteBtn.MouseUpEventHandler += delEvent; - deviceRowLayout.AddRightView(deleteBtn); - } - - - EventHandler<MouseEventArgs> airSwitchHandler = (sender, e) => - { - var airSwitchControl = new Phone.Device.AirSwitch.AirSwitchControl(); - UserView.HomePage.Instance.AddChidren(airSwitchControl); - UserView.HomePage.Instance.PageIndex += 1; - airSwitchControl.action = RefreshBodyView; - airSwitchControl.Show(device, Room.CurrentRoom); - }; - //deviceItemFL.MouseLongEventHandler += airSwitchHandler; - deviceItemFL.MouseUpEventHandler += airSwitchHandler; - deviceName.MouseUpEventHandler += airSwitchHandler; - deviceIMG.MouseUpEventHandler += airSwitchHandler; - - //collectionBtn.MouseUpEventHandler += (sender, e) => - //{ - // if (collectionBtn.IsSelected) - // { - // Room.Lists[0].DeleteDevice(device.FilePath); - // collectionBtn.IsSelected = false; - // if(Room.CurrentRoom==Room.Lists[0]) - // { - // RefreshBodyView(); - // } - // } - // else - // { - // Room.Lists[0].AddDevice(device.FilePath); - // collectionBtn.IsSelected = true; - // } - // //RefreshBodyView(); - //}; - collectionBtn.MouseUpEventHandler += collectionEvent; - - //var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FilePath); - //if (dev == null) - //{ - // collectionBtn.IsSelected = false; - //} - //else - //{ - // collectionBtn.IsSelected = true; - //} - } - else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.Thermostat) - { - //鎭掓俯鍣�-AC-绌鸿皟 - var ac = device.CommonDevice as AC; - - //琛ヤ笂闈炶繙绋� - if (ac.Gateway == null) - { - continue; - } - if (ac.Gateway.IsVirtual) - { - //鍙戦�佽鍙栫姸鎬佸懡浠� - ReadStatus(ac, () => - { - ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - ac.ReadLocalTemperature(); - ac.ReadCoolingSetpoint(); - ac.ReadHeatingSetpoint(); - ac.ReadAutoSetpoint(); - ac.ReadFanMode(); - ac.ReadSystemMode(); - }); - } - else - { - //闃叉鐭椂闂村唴澶氭璇诲彇璁惧鐘舵�� - if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan) - { - ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch); - ac.ReadLocalTemperature(); - ac.ReadCoolingSetpoint(); - ac.ReadHeatingSetpoint(); - ac.ReadAutoSetpoint(); - ac.ReadFanMode(); - ac.ReadSystemMode(); - } - } - - var deviceFL = new FrameLayout - { - Height = Application.GetRealHeight(deviceFL_Height), - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag = device - }; - deviceVerticalScrolViewLayout.AddChidren(deviceFL); - var deviceRowLayout = new RowLayout - { - Y = Application.GetRealHeight(25), - Height = Application.GetRealHeight(deviceFL_Height - 25) - 1, - LineColor = ZigbeeColor.Current.GXCBackgroundColor, - BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor, - Radius = CommonPage.BigFormRadius, - Tag = device - }; - deviceFL.AddChidren(deviceRowLayout); - - var deviceItemFL = new FrameLayout() - { - BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor, - Radius = CommonPage.BigFormRadius - }; - deviceRowLayout.AddChidren(deviceItemFL); - var deviceIMG = new Button() - { - X = Application.GetRealWidth(50), - Y = Application.GetRealHeight(30), - Width = Application.GetMinRealAverage(110), - Height = Application.GetMinRealAverage(110), - UnSelectedImagePath = device.IconPath, - SelectedImagePath = device.OnlineIconPath, - IsSelected = ac.IsOnline == 1, - Tag = deviceStatus_Online - }; - deviceItemFL.AddChidren(deviceIMG); - var deviceName = new Button() - { - X = Application.GetRealWidth(10), - Y = deviceIMG.Bottom, - Width = Application.GetRealWidth(180), - Height = Application.GetRealHeight(80), - TextColor = ZigbeeColor.Current.GXCTextBlackColor, - TextAlignment = TextAlignment.Center, - Text = device.CommonDevice.DeviceEpointName, - TextSize = 10, - IsMoreLines = true - }; - deviceItemFL.AddChidren(deviceName); - - var collectionBtn = new Button() - { - X = deviceItemFL.Right - Application.GetRealWidth(150), - Y = Application.GetRealHeight(20), - Width = Application.GetMinRealAverage(80), - Height = Application.GetMinRealAverage(80), - UnSelectedImagePath = "Item/Collection.png", - SelectedImagePath = "Item/CollectionSelected.png", - Tag = device - }; - //***鍏堥殣钘�****** - //deviceItemFL.AddChidren(collectionBtn); - - //鍑� - var reduceBtnBG = new Device.CommonForm.SelectedStatuButton() - { - X = deviceName.Right, - Width = Application.GetMinRealAverage(250), - Height = Application.GetMinRealAverage(250), - Gravity = Gravity.CenterVertical, - }; - deviceItemFL.AddChidren(reduceBtnBG); - - var reduceBtn = new Device.CommonForm.SelectedStatuButton() - { - X = Application.GetRealWidth(30) + deviceName.Right, - Width = Application.GetMinRealAverage(110), - Height = Application.GetMinRealAverage(110), - Gravity = Gravity.CenterVertical, - UnSelectedImagePath = "Item/Reduce.png", - SelectedImagePath = "Item/ReduceSelected.png", - }; - deviceItemFL.AddChidren(reduceBtn); - //褰撳墠娓╁害 - var currentTemperatureBtn = new Button() - { - X = Application.GetRealWidth(50) + reduceBtn.Right, - Width = Application.GetRealWidth(200), - Height = Application.GetRealHeight(110), - Gravity = Gravity.CenterVertical, - TextColor = ZigbeeColor.Current.TextBlack, - TextSize = 16, - Text = $"{Device.AC.ACControlBase.GetCurrentModeTemperature(ac)} 掳C", - Tag = "Temparetrue" - }; - deviceItemFL.AddChidren(currentTemperatureBtn); - reduceBtn.MouseUpEventHandler += (send2, e2) => - { - if (Device.AC.ACControlBase.IsOpen(ac) == false) - { - Device.AC.ACControlBase.ShowACIsCloseTip(); - return; - } - //cool - if (ac.currentSystemMode == 3 || ac.currentSystemMode == 8) - { - if (ac.currentCoolingSetpoint <= ACControlBase.Temperature_Low) + lightView.CardBG.MouseUpEventHandler += (sender, e) => + { + CommonPage.Instance.IsDrawerLockMode = true; + var userDoorLockPage = new UserDoorLockPage(Room.CurrentRoom, device); + HomePage.Instance.AddChidren(userDoorLockPage); + HomePage.Instance.PageIndex += 1; + userDoorLockPage.Show(); + }; + lightView.CollectButton.MouseUpEventHandler += collectionEvent; + } + else { - return; + var lightView = new FunctionMainView(xx, yy); + itemView.AddChidren(lightView); + lightView.Init(); + lightView.Tag = device; + lightView.SetDeviceImage(device.IconPath, device.OnlineIconPath); + lightView.SetStatuText(device.GetDeviceStatu()); + lightView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice)); + lightView.CanControl(false); + lightView.SetCollect(Room.CurrentRoom.IsCollectInRoom(device.FileName)); + + if (Common.Room.CurrentRoom.IsCollectInRoom(device.FileName) == false) + { + lightView.CollectButton.IsSelected = false; + } + else + { + lightView.CollectButton.IsSelected = true; + } + lightView.CollectButton.MouseUpEventHandler += collectionEvent; } - ac.currentCoolingSetpoint -= 1; - ac.SetCoolingTemperatureAsync(ac.currentCoolingSetpoint * 100); - currentTemperatureBtn.Text = $"{ac.currentCoolingSetpoint} 掳C"; } - //heat - else if (ac.currentSystemMode == 4) + catch(Exception ex) { - if (ac.currentHeatingSetpoint <= ACControlBase.Temperature_Low) - { - return; - } - ac.currentHeatingSetpoint -= 1; - ac.SetHeatingTemperatureAsync(ac.currentHeatingSetpoint * 100); - currentTemperatureBtn.Text = $"{ac.currentHeatingSetpoint} 掳C"; + } - else if (ac.currentSystemMode == 1) - { - if (ac.currentAutoSetpoint <= ACControlBase.Temperature_Low) - { - return; - } - ac.currentAutoSetpoint -= 1; - ac.SetAutoTemperatureAsync(ac.currentAutoSetpoint * 100); - currentTemperatureBtn.Text = $"{ac.currentAutoSetpoint} 掳C"; - } - //auto - //dry - //currentTemperatureBtn.Text = $"{Device.AC.ACControlBase.GetCurrentModeTemperature(ac)} 掳C"; - }; - - var addBtnBG = new Device.CommonForm.SelectedStatuButton() - { - X = currentTemperatureBtn.Right, - Width = Application.GetMinRealAverage(250), - Height = Application.GetMinRealAverage(250), - Gravity = Gravity.CenterVertical - }; - deviceItemFL.AddChidren(addBtnBG); - - var addBtn = new Device.CommonForm.SelectedStatuButton() - { - X = Application.GetRealWidth(30) + currentTemperatureBtn.Right, - Width = Application.GetMinRealAverage(110), - Height = Application.GetMinRealAverage(110), - Gravity = Gravity.CenterVertical, - UnSelectedImagePath = "Item/Add.png", - SelectedImagePath = "Item/AddSelected.png", - }; - deviceItemFL.AddChidren(addBtn); - - addBtn.MouseUpEventHandler += (send2, e2) => - { - if (Device.AC.ACControlBase.IsOpen(ac) == false) - { - Device.AC.ACControlBase.ShowACIsCloseTip(); - return; - } - //cool - if (ac.currentSystemMode == 3 || ac.currentSystemMode == 8) - { - if (ac.currentCoolingSetpoint >= ACControlBase.Temperature_High) - { - return; - } - ac.currentCoolingSetpoint += 1; - ac.SetCoolingTemperatureAsync(ac.currentCoolingSetpoint * 100); - - currentTemperatureBtn.Text = $"{ac.currentCoolingSetpoint} 掳C"; - } - //heat - else if (ac.currentSystemMode == 4) - { - if (ac.currentHeatingSetpoint >= ACControlBase.Temperature_High) - { - return; - } - ac.currentHeatingSetpoint += 1; - ac.SetHeatingTemperatureAsync(ac.currentHeatingSetpoint * 100); - - currentTemperatureBtn.Text = $"{ac.currentHeatingSetpoint} 掳C"; - } - else if (ac.currentSystemMode == 1) - { - if (ac.currentAutoSetpoint >= ACControlBase.Temperature_High) - { - return; - } - ac.currentAutoSetpoint += 1; - ac.SetAutoTemperatureAsync(ac.currentAutoSetpoint * 100); - currentTemperatureBtn.Text = $"{ac.currentAutoSetpoint} 掳C"; - } - - }; - - var switchBtnBG = new Button - { - X = deviceItemFL.Right - Application.GetRealWidth(250), - Width = Application.GetMinRealAverage(250), - Height = Application.GetMinRealAverage(250), - Gravity = Gravity.CenterVertical - }; - deviceItemFL.AddChidren(switchBtnBG); - var switchBtn = new Button - { - X = deviceItemFL.Right - Application.GetRealWidth(200), - //Y = deviceItemFL.Bottom - Application.GetRealHeight(120), - Width = Application.GetMinRealAverage(183), - Height = Application.GetMinRealAverage(123), - UnSelectedImagePath = "Item/Switch.png", - SelectedImagePath = "Item/SwitchSelected.png", - IsSelected = ac.currentSystemMode != 0, - Tag = deviceStatus_OnOffStatus, - //Visible=false - Gravity = Gravity.CenterVertical - }; - deviceItemFL.AddChidren(switchBtn); - switchBtn.MouseUpEventHandler += (send2, e2) => - { - switchBtn.IsSelected = !switchBtn.IsSelected; - if (switchBtn.IsSelected == true) - { - zbGateway = device.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); - - ac.Open(); - - //鎺у埗寤舵椂鍥炶皟 - //DeviceUI.SendCommandDelayAction(device.CommonDevice, () => - //{ - // if (Parent == null) - // { - // return; - // } - // RemoveUpdateControlDeviceStatuAction(zbGateway); - // if (sendedControlCommand == false) - // { - // DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - // } - //}); - } - else - { - zbGateway = device.CommonDevice.Gateway; - sendedControlCommand = false; - zbGateway.ReportAction += UpdateDeviceControllStatu; - AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); - - ac.Close(); - - //鎺у埗寤舵椂鍥炶皟 - //DeviceUI.SendCommandDelayAction(device.CommonDevice, () => - //{ - // if (Parent == null) - // { - // return; - // } - // RemoveUpdateControlDeviceStatuAction(zbGateway); - // if (sendedControlCommand == false) - // { - // DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - // } - //}); - } - }; - - var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton - { - Tag = device, - IsMoreLines = true - }; - if (Room.CurrentRoom.IsLove) - { - deleteBtn.TextID = R.MyInternationalizationString.CancelCollect; - deleteBtn.BackgroundColor = ZigbeeColor.Current.GXCCancelCollectionBGColor; - deleteBtn.MouseUpEventHandler += collectionEvent; - deviceRowLayout.AddRightView(deleteBtn); - } - else if (Room.CurrentRoom.IsSharedRoom) - { - //涓嶅鐞� - } - else - { - deleteBtn.MouseUpEventHandler += delEvent; - deviceRowLayout.AddRightView(deleteBtn); - } - - - EventHandler<MouseEventArgs> acHandler = (sender, e) => - { - var acControl = new Phone.Device.AC.ACControl { }; - UserView.HomePage.Instance.AddChidren(acControl); - UserView.HomePage.Instance.PageIndex += 1; - acControl.action = RefreshBodyView; - acControl.Show(device, Room.CurrentRoom); - }; - //deviceItemFL.MouseLongEventHandler += acHandler; - deviceItemFL.MouseUpEventHandler += acHandler; - deviceName.MouseUpEventHandler += acHandler; - deviceIMG.MouseUpEventHandler += acHandler; - } - else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.DimmableLight) - { - //璋冨厜鐏� - var dimmableLight = device.CommonDevice as DimmableLight; - - //琛ヤ笂闈炶繙绋� - if (dimmableLight.Gateway == null) - { - continue; - } - if (dimmableLight.Gateway.IsVirtual) - { - //鍙戦�佽鍙栫姸鎬佸懡浠� - 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 deviceFL = new FrameLayout - { - Height = Application.GetRealHeight(deviceFL_Height), - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag = device - }; - deviceVerticalScrolViewLayout.AddChidren(deviceFL); - var deviceRowLayout = new RowLayout - { - Y = Application.GetRealHeight(25), - Height = Application.GetRealHeight(deviceFL_Height - 25) - 1, - LineColor = ZigbeeColor.Current.GXCBackgroundColor, - BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor, - Radius = CommonPage.BigFormRadius, - Tag = device - }; - deviceFL.AddChidren(deviceRowLayout); - - var deviceItemFL = new FrameLayout() - { - BackgroundColor = ZigbeeColor.Current.GXCTopViewBackgroundColor, - Radius = CommonPage.BigFormRadius - }; - deviceRowLayout.AddChidren(deviceItemFL); - var deviceIMG = new Button() - { - X = Application.GetRealWidth(50), - Y = Application.GetRealHeight(30), - Width = Application.GetMinRealAverage(110), - Height = Application.GetMinRealAverage(110), - UnSelectedImagePath = device.IconPath, - SelectedImagePath = device.OnlineIconPath, - IsSelected = dimmableLight.IsOnline == 1, - Tag = deviceStatus_Online - }; - deviceItemFL.AddChidren(deviceIMG); - var deviceName = new Button() - { - X = Application.GetRealWidth(10), - Y = deviceIMG.Bottom, - Width = Application.GetRealWidth(180), - Height = Application.GetRealHeight(80), - TextColor = ZigbeeColor.Current.GXCTextBlackColor, - TextAlignment = TextAlignment.Center, - Text = device.CommonDevice.DeviceEpointName, - TextSize = 10, - IsMoreLines = true - }; - deviceItemFL.AddChidren(deviceName); - - var levelSeekBar = new HorizontalSeekBar() - { - X = deviceIMG.Right + Application.GetRealWidth(50), - Width = Application.GetRealWidth(500), - Height = Application.GetRealHeight(80), - Gravity = Gravity.CenterVertical, - BackgroundColor = ZigbeeColor.Current.GXCSliderUnSelectedColor, - ThumbColor = ZigbeeColor.Current.GXCButtonBlueColor, - BorderColor = ZigbeeColor.Current.GXCButtonBlueColor, - ProgressColor = ZigbeeColor.Current.GXCButtonBlueColor, - Max = 254, - Tag = "LevelSeekBar", - Progress = dimmableLight.Level, - SleepTime = sleepSpan - }; - deviceItemFL.AddChidren(levelSeekBar); - levelSeekBar.ProgressChanged += (send2, e2) => - { - dimmableLight.SetLevel(levelSeekBar.Progress); - }; - - var collectionBtn = new Button() - { - X = deviceItemFL.Right - Application.GetRealWidth(150), - Y = Application.GetRealHeight(20), - Width = Application.GetMinRealAverage(80), - Height = Application.GetMinRealAverage(80), - UnSelectedImagePath = "Item/Collection.png", - SelectedImagePath = "Item/CollectionSelected.png", - Tag = device - }; - //***鍏堥殣钘�****** - //deviceItemFL.AddChidren(collectionBtn); - var switchBtnBG = new Button - { - X = deviceItemFL.Right - Application.GetRealWidth(250), - Width = Application.GetMinRealAverage(250), - Height = Application.GetMinRealAverage(250), - Gravity = Gravity.CenterVertical - }; - deviceItemFL.AddChidren(switchBtnBG); - var switchBtn = new Button - { - X = deviceItemFL.Right - Application.GetRealWidth(200), - //Y = deviceItemFL.Bottom - Application.GetRealHeight(120), - Width = Application.GetMinRealAverage(183), - Height = Application.GetMinRealAverage(123), - UnSelectedImagePath = "Item/Switch.png", - SelectedImagePath = "Item/SwitchSelected.png", - IsSelected = dimmableLight.OnOffStatus == 1, - Tag = deviceStatus_OnOffStatus, - //Visible=false - Gravity = Gravity.CenterVertical - }; - deviceItemFL.AddChidren(switchBtn); - switchBtn.MouseUpEventHandler += (send2, e2) => - { - switchBtn.IsSelected = !switchBtn.IsSelected; - if (switchBtn.IsSelected == true) - { - //zbGateway = device.CommonDevice.Gateway; - //sendedControlCommand = false; - //zbGateway.ReportAction += UpdateDeviceControllStatu; - //AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); - - dimmableLight.SwitchControl(1); - - //鎺у埗寤舵椂鍥炶皟 - //DeviceUI.SendCommandDelayAction(device.CommonDevice, () => - //{ - //if (Parent == null) - //{ - // return; - //} - //RemoveUpdateControlDeviceStatuAction(zbGateway); - //if (sendedControlCommand == false) - //{ - // DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - //} - //}); - } - else - { - //zbGateway = device.CommonDevice.Gateway; - //sendedControlCommand = false; - //zbGateway.ReportAction += UpdateDeviceControllStatu; - //AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, device.CommonDevice); - - dimmableLight.SwitchControl(0); - - //鎺у埗寤舵椂鍥炶皟 - //DeviceUI.SendCommandDelayAction(device.CommonDevice, () => - //{ - // if (Parent == null) - // { - // return; - // } - // RemoveUpdateControlDeviceStatuAction(zbGateway); - // if (sendedControlCommand == false) - // { - // DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL); - // } - //}); - } - }; - - var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton - { - Tag = device, - IsMoreLines = true - }; - if (Room.CurrentRoom.IsLove) - { - deleteBtn.TextID = R.MyInternationalizationString.CancelCollect; - deleteBtn.BackgroundColor = ZigbeeColor.Current.GXCCancelCollectionBGColor; - deleteBtn.MouseUpEventHandler += collectionEvent; - deviceRowLayout.AddRightView(deleteBtn); - } - else if (Room.CurrentRoom.IsSharedRoom) - { - //涓嶅鐞� - } - else - { - deleteBtn.MouseUpEventHandler += delEvent; - deviceRowLayout.AddRightView(deleteBtn); - } - - EventHandler<MouseEventArgs> dimmableLightHandler = (sender, e) => - { - 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(device, Room.CurrentRoom); - }; - //deviceItemFL.MouseLongEventHandler += dimmableLightHandler; - deviceItemFL.MouseUpEventHandler += dimmableLightHandler; - deviceName.MouseUpEventHandler += dimmableLightHandler; - deviceIMG.MouseUpEventHandler += dimmableLightHandler; - - //collectionBtn.MouseUpEventHandler += (sender, e) => - //{ - // if (collectionBtn.IsSelected) - // { - // Room.Lists[0].DeleteDevice(device.FilePath); - // collectionBtn.IsSelected = false; - // if(Room.CurrentRoom==Room.Lists[0]) - // { - // RefreshBodyView(); - // } - // } - // else - // { - // Room.Lists[0].AddDevice(device.FilePath); - // collectionBtn.IsSelected = true; - // } - // //RefreshBodyView(); - //}; - collectionBtn.MouseUpEventHandler += collectionEvent; - - //var dev = Room.LoveRoomDeviceUIFilePathList.Find((obj) => obj == device.FilePath); - //if (dev == null) - //{ - // collectionBtn.IsSelected = false; - //} - //else - //{ - // collectionBtn.IsSelected = true; - //} - } - else if (device.CommonDevice.Type == DeviceType.OnOffSwitch) - { - //鎸夐敭 - var panel = (Panel)device.CommonDevice; - - } + }); + //}) + //{ IsBackground = true }.Start(); } } + } + /// <summary> + /// ReFreshEditDeviceAction + /// </summary> + /// <param name="device"></param> + /// <param name="curRoom"></param> + /// <param name="functionView"></param> + private void ReFreshEditDeviceAction(DeviceUI device, Common.Room curRoom, FunctionMainView functionView) + { + if (Common.Room.CurrentRoom.IsLove) + { + functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath); + functionView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice)); + if (Room.CurrentRoom.IsCollectInRoom(device.FileName) == false) + { + ShowFunction(); + } + } + else + { + if (curRoom.Id != Common.Room.CurrentRoom.Id) + { + + Common.Room.CurrentRoom.DeleteDevice(device.FileName); + ShowFunction(); + } + else + { + functionView.SetDeviceImage(device.IconPath, device.OnlineIconPath); + functionView.SetDeviceName(Common.LocalDevice.Current.GetDeviceEpointName(device.CommonDevice)); + functionView.SetCollect(Room.CurrentRoom.IsCollectInRoom(device.FileName)); + } + } } #endregion @@ -2686,13 +1747,23 @@ /// </summary> private void ShowNoSceneTip() { + var noScene = new Button + { + Y = Application.GetRealHeight(69), + Width = Application.GetMinRealAverage(683), + Height = Application.GetMinRealAverage(392), + Gravity = Gravity.CenterHorizontal, + UnSelectedImagePath = "Item/NoFunction.png" + }; + functionSceneBodyView.AddChidren(noScene); var noScenceTip = new Button() { + Y = noScene.Bottom, Height = Application.GetRealHeight(200), - TextID = R.MyInternationalizationString.NoScene, + Text = Language.StringByID(R.MyInternationalizationString.NoScene_Tip).Replace("{\\r\\n}", "\r\n"), TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor, - TextAlignment = TextAlignment.Center, - Gravity = Gravity.Center, + TextAlignment=TextAlignment.Center, + IsMoreLines = true }; functionSceneBodyView.AddChidren(noScenceTip); } @@ -2702,6 +1773,7 @@ /// </summary> private void ShowScene() { + functionSceneBodyView.RemoveAll(); //閫夋嫨鍦烘櫙 var sceneList = Room.CurrentRoom.SceneUIList; if (sceneList == null) @@ -2714,156 +1786,94 @@ } else { - var sceneScrolView = new VerticalScrolViewLayout { }; + sceneScrolView = new VerticalScrolViewLayout { }; functionSceneBodyView.AddChidren(sceneScrolView); - foreach (var scene in sceneList) + for (int i = 0; i < sceneList.Count; i++) { + var scene = sceneList[i]; + int xx = 33 + i % 2 * (40 + 487); + int yy = 14; if (scene == null) { continue; } - var sceneFL = new FrameLayout() + + if (i % 2 == 0) { - Height = Application.GetRealHeight(400), - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, - Tag = scene - }; - sceneScrolView.AddChidren(sceneFL); - var sceneRowLayout = new RowLayout() - { - Y = Application.GetRealHeight(30), - Height = Application.GetRealHeight(400 - 10 - 30), - LineColor = ZigbeeColor.Current.GXCBackgroundColor, - Radius = CommonPage.BigFormRadius - }; - sceneFL.AddChidren(sceneRowLayout); - var sceneItemFL = new FrameLayout() - { - BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, - Radius = CommonPage.BigFormRadius - }; - sceneRowLayout.AddChidren(sceneItemFL); - var sceneImg = new Button() - { - UnSelectedImagePath = scene.IconPath, - Radius = CommonPage.BigFormRadius - }; - sceneItemFL.AddChidren(sceneImg); - var hardBlackBG = new Button() - { - BackgroundColor = ZigbeeColor.Current.GXCBlack70Color, - SelectedBackgroundColor = ZigbeeColor.Current.GXCBlack80Color, - Radius = CommonPage.BigFormRadius - }; - sceneItemFL.AddChidren(hardBlackBG); - var sceneNameBtn = new Button() - { - Text = scene.Name, - TextColor = ZigbeeColor.Current.GXCTextWhiteColor, - TextSize = 20 - }; - sceneItemFL.AddChidren(sceneNameBtn); - //缂栬緫 - var editBtn = new Device.CommonForm.RowLayoutEditButton - { - TextID = R.MyInternationalizationString.Edit, - Tag = scene - }; - //鍒犻櫎 - var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton - { - Tag = scene - }; - if (!Room.CurrentRoom.IsSharedRoom) - { - sceneRowLayout.AddRightView(editBtn); - sceneRowLayout.AddRightView(deleteBtn); + itemView = new FrameLayout() + { + Height = Application.GetRealHeight(14 + 348), + Tag = scene + }; + sceneScrolView.AddChidren(itemView); } - EventHandler<MouseEventArgs> sceneDownHandler = (sender, e) => - { - hardBlackBG.IsSelected = true; - }; - sceneNameBtn.MouseDownEventHandler += sceneDownHandler; - hardBlackBG.MouseDownEventHandler += sceneDownHandler; + var sceneView = new SceneMainView(xx, yy); + sceneView.Init(scene); + itemView.AddChidren(sceneView); + sceneView.CollectionAction += ShowScene; + } + GetDelayScene(sceneScrolView); + } + } - //璋冪敤鍦烘櫙 - EventHandler<MouseEventArgs> sceneUpHandler = async (sender, e) => + /// <summary> + /// GetDelayScene + /// </summary> + /// <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 iView = scrolViewLayout.GetChildren(i) as FrameLayout; + for (int j = 0; iView != null && j < iView.ChildrenCount; j++) + { + var sceneView = iView.GetChildren(j) as SceneMainView; + foreach (var delayScenesListResponseInfo in delayList) { - hardBlackBG.IsSelected = false; - //1鎴愬姛 0澶辫触 - //鍚庨潰琛ヤ笂鐩稿叧鎻愮ず - // Error鍙傛暟鍚箟 - //<para>1锛氱綉鍏虫棤娉曡В鏋愬懡浠ゆ暟鎹��</para> - //<para>2锛氬崗璋冨櫒姝e湪鍗囩骇鎴栧浠�/鎭㈠鏁版嵁 - //<para>3锛氭搷浣滆澶�/缁�/鍦烘櫙涓嶅瓨鍦�</para> - //<para>4锛氬叾浠栭敊璇�</para> - //<para>5锛氭暟鎹紶杈撻敊璇紙鍦ㄦ煇娆″鎴风鍚戠綉鍏冲彂閫佹暟鎹殑杩囩▼涓紝缃戝叧鍦ㄥ悎鐞嗘椂闂磋寖鍥村唴鎺ユ敹瀹㈡埛绔暟鎹笉瀹屾暣瀵艰嚧璇ラ敊璇彂鐢熴�傚瀹㈡埛绔悜缃戝叧涓�娆″彂閫�100涓瓧鑺傜殑鏁版嵁锛屼絾缃戝叧绛夊緟鎺ユ敹浜嗕竴绉掑彧鎺ユ敹浜�80涓瓧鑺傘�傚彂鐢熻閿欒锛岀綉鍏冲皢涓诲姩鍏抽棴瀹㈡埛绔繛鎺ワ級</para> - var sceneOpenAllData = await ZigBee.Device.Scene.ControlSceneAsync(scene.Id, 0); - if (sceneOpenAllData == null || sceneOpenAllData.sceneOpenData == null) + if (delayScenesListResponseInfo.ScenesId == sceneView.scene.Id) { - return; - } - if (sceneOpenAllData.sceneOpenData.Result == 0) - { - if (sceneOpenAllData.errorResponData == null) + var remainTime = delayScenesListResponseInfo.RemainTime; + sceneView.scene.RemainTime = remainTime; + + if (remainTime > 0) { - return; + new System.Threading.Thread(() => + { + while (remainTime-- > 0) + { + System.Threading.Thread.Sleep(1000); + Application.RunOnMainThread(() => + { + sceneView.SetTimeText(CommonFormResouce.GetTimeString(remainTime)); + }); + } + Application.RunOnMainThread(() => + { + sceneView.scene.RemainTime = 0; + sceneView.SetTimeImage(); + }); + }) + { IsBackground = true }.Start(); } - CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.ControlSceneFail); + break; } - }; - sceneNameBtn.MouseUpEventHandler += sceneUpHandler; - hardBlackBG.MouseUpEventHandler += sceneUpHandler; - - //缂栬緫鍦烘櫙 - EventHandler<MouseEventArgs> editEvent = (sender, e) => - { - SceneRoomUI.EditScene(scene, Room.CurrentRoom); - }; - editBtn.MouseUpEventHandler += editEvent; - - //鍒犻櫎鍦烘櫙 - EventHandler<MouseEventArgs> delEvent = (sender, e) => - { - 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(); - alert.ResultEventHandler += async (send1, e1) => - { - if (e1) - { - //0 绉婚櫎澶辫触 1 绉婚櫎鎴愬姛 2 娌℃湁璇ュ満鏅� - var removeSceneAllData = await ZigBee.Device.Scene.DeleteSceneAsync(scene.Id); - if (removeSceneAllData == null || removeSceneAllData.removeSceneData == null) - { - return; - } - if (removeSceneAllData.removeSceneData.Result == 1) - { - //1鎴愬姛 - Room.CurrentRoom.RemoveScene(scene); - //RefreshBodyView(); - sceneScrolView.RemoveViewByTag((sender as Button).Tag); - } - else if (removeSceneAllData.removeSceneData.Result == 0) - { - //0 绉婚櫎澶辫触 - CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.DeleteSceneFail); - } - else if (removeSceneAllData.removeSceneData.Result == 2) - { - //2 娌℃湁璇ュ満鏅� - Room.CurrentRoom.RemoveScene(scene); - //RefreshBodyView(); - sceneScrolView.RemoveViewByTag((sender as Button).Tag); - } - } - }; - }; - deleteBtn.MouseUpEventHandler += delEvent; + } } } - } #endregion -- Gitblit v1.8.0