From ff3cfcf62632bf43e51a6b6098c203bf0f5cddbc Mon Sep 17 00:00:00 2001 From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local> Date: 星期二, 24 十二月 2019 19:53:29 +0800 Subject: [PATCH] 2019.12.24 --- ZigbeeApp/Shared/Phone/UserView/UserPage.cs | 166 ++++++++++++++++++++++++++++++------------------------ 1 files changed, 92 insertions(+), 74 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserView/UserPage.cs b/ZigbeeApp/Shared/Phone/UserView/UserPage.cs index 8d00507..432e4b5 100644 --- a/ZigbeeApp/Shared/Phone/UserView/UserPage.cs +++ b/ZigbeeApp/Shared/Phone/UserView/UserPage.cs @@ -3,6 +3,8 @@ using Shared.Common; using ZigBee.Device; using Shared.Phone.Device.AC; +using System.Text; +using Shared.Phone.Device.Account; namespace Shared.Phone.UserView { @@ -39,7 +41,7 @@ /// <summary> /// 搴曢儴鎸夐挳鏂囧瓧鐨刌鍊� /// </summary> - private static readonly int tabBarEnumName_Y = 104; + private static readonly int tabBarEnumName_Y = 98; #endregion #region 鈼� 鎺ュ彛____________________________ @@ -77,6 +79,10 @@ { try { + if (common.DeviceStatusReport.AttriBute == null || common.DeviceStatusReport.AttriBute.Count == 0) + { + return; + } switch (myDevice.Type) { case DeviceType.OnOffOutput: @@ -85,20 +91,13 @@ { var onOffOutputLight = (ToggleLight)myDevice; onOffOutputLight.DeviceStatusReport = common.DeviceStatusReport; - //璁板綍銆佹洿鏂扮姸鎬� - if (onOffOutputLight.DeviceStatusReport.AttriBute == null || onOffOutputLight.DeviceStatusReport.AttriBute.Count == 0) - { - return; - } onOffOutputLight.OnOffStatus = onOffOutputLight.DeviceStatusReport.AttriBute[0].AttriButeData; - //璁板綍鍥炲鏃堕棿 onOffOutputLight.LastDateTime = DateTime.Now; } //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁� if (common.DeviceStatusReport.CluterID == 3) { myDevice.IsOnline = 1; - //璁板綍鍥炲鏃堕棿 myDevice.LastDateTime = DateTime.Now; } break; @@ -109,21 +108,13 @@ { var airSwitch = (AirSwitch)myDevice; airSwitch.DeviceStatusReport = common.DeviceStatusReport; - //璁板綍銆佹洿鏂扮姸鎬� - if (airSwitch.DeviceStatusReport.AttriBute == null || airSwitch.DeviceStatusReport.AttriBute.Count == 0) - { - return; - } airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData; - //璁板綍鍥炲鏃堕棿 airSwitch.LastDateTime = DateTime.Now; - } //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁� if (common.DeviceStatusReport.CluterID == 3) { myDevice.IsOnline = 1; - //璁板綍鍥炲鏃堕棿 myDevice.LastDateTime = DateTime.Now; } break; @@ -134,10 +125,6 @@ var rollershade = (Rollershade)myDevice; rollershade.DeviceStatusReport = common.DeviceStatusReport; var attriButeList = rollershade.DeviceStatusReport.AttriBute; - if (attriButeList == null || attriButeList.Count == 0) - { - return; - } switch (attriButeList[0].AttributeId) { case 0: @@ -149,7 +136,6 @@ if (common.DeviceStatusReport.CluterID == 3) { myDevice.IsOnline = 1; - //璁板綍鍥炲鏃堕棿 myDevice.LastDateTime = DateTime.Now; } break; @@ -161,51 +147,72 @@ var ac = (AC)myDevice; ac.DeviceStatusReport = common.DeviceStatusReport; var attriButeList = ac.DeviceStatusReport.AttriBute; - if (attriButeList == null || attriButeList.Count == 0) - { - return; - } - switch (attriButeList[0].AttributeId) - { - case 0: - //姝ゅ睘鎬ц〃鏄庡鍐呭綋鍓嶇殑娓╁害 * 100锛屽疄闄呮俯搴︿负鈥淟ocalTemperature / 100鈥濓紝鍗曚綅锛氣剝 - ac.currentLocalTemperature = attriButeList[0].AttriButeData / 100; - ac.LastDateTime = DateTime.Now; - break; - - case 17: - //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勫埗鍐锋俯搴︼紝瀹為檯娓╁害涓衡�淐oolingSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆� - ac.currentCoolingSetpoint = attriButeList[0].AttriButeData / 100; - ac.LastDateTime = DateTime.Now; - break; - - case 18: - //姝ゅ睘鎬ц〃鏄庢璁惧褰撳墠鐨勫埗鐑俯搴︼紝瀹為檯娓╁害涓衡�淗eatingSetpoint / 100鈥濓紝鍗曚綅锛氣剝銆� - ac.currentHeatingSetpoint = attriButeList[0].AttriButeData / 100; - ac.LastDateTime = DateTime.Now; - break; - - case 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; - break; - - } - + foreach (var attList in attriButeList) + { + //姝ゅ睘鎬ц〃鏄庡鍐呭綋鍓嶇殑娓╁害 * 100锛屽疄闄呮俯搴︿负鈥淟ocalTemperature / 100鈥濓紝鍗曚綅锛氣剝 + var curTemp = (attList.AttriButeData / 100 < ACControlBase.Temperature_High && attList.AttriButeData / 100 > ACControlBase.Temperature_Low) ? attList.AttriButeData / 100 : ACControlBase.Temperature_Default; + switch (attList.AttributeId) + { + case 0: + ac.currentLocalTemperature = curTemp; + ac.LastDateTime = DateTime.Now; + break; + case 17: + ac.currentCoolingSetpoint = curTemp; + ac.LastDateTime = DateTime.Now; + break; + case 18: + ac.currentHeatingSetpoint = curTemp; + ac.LastDateTime = DateTime.Now; + break; + case 4096: + ac.currentAutoSetpoint = curTemp; + ac.LastDateTime = DateTime.Now; + break; + case 28: + ac.currentSystemMode = attList.AttriButeData; + ac.LastDateTime = DateTime.Now; + break; + case 4099: + var value = Convert.ToString(attList.AttriButeData, 2).PadLeft(16, '0'); + var modeStr = value.Substring(value.Length - 5, 5); + for (int j = 0; j < modeStr.Length; j++) + { + ac.listSupportMode[j] = Convert.ToInt32(modeStr[j]) == 49 ? 1 : 0; + } + break; + case 4097: + ac.CleanStatu = attList.AttriButeData == 42; + break; + } + } } + + if (common.DeviceStatusReport.CluterID == 514) + { + var ac = (AC)myDevice; + var attriButeList = common.DeviceStatusReport.AttriBute; + ac.DeviceStatusReport = common.DeviceStatusReport; + foreach (var attList in attriButeList) + { + switch (attList.AttributeId) + { + case 0: + ac.currentFanMode = attList.AttriButeData; + ac.LastDateTime = DateTime.Now; + break; + case 4096: + ac.currentFanSwingMode = attList.AttriButeData; + ac.LastDateTime = DateTime.Now; + break; + } + } + } + //褰揅luterID=3,灏辫瘉鏄庤璁惧鍦ㄧ嚎锛岀洿鎺ユ爣璁� if (common.DeviceStatusReport.CluterID == 3) { myDevice.IsOnline = 1; - //璁板綍鍥炲鏃堕棿 myDevice.LastDateTime = DateTime.Now; } break; @@ -217,13 +224,7 @@ { var dimmableLight = (DimmableLight)myDevice; dimmableLight.DeviceStatusReport = common.DeviceStatusReport; - //璁板綍銆佹洿鏂扮姸鎬� - if (dimmableLight.DeviceStatusReport.AttriBute == null || dimmableLight.DeviceStatusReport.AttriBute.Count == 0) - { - return; - } dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData; - //璁板綍鍥炲鏃堕棿 dimmableLight.LastDateTime = DateTime.Now; } //浜害 @@ -232,14 +233,9 @@ var dimmableLight = (DimmableLight)myDevice; dimmableLight.DeviceStatusReport = common.DeviceStatusReport; var attriButeList = dimmableLight.DeviceStatusReport.AttriBute; - if (attriButeList == null || attriButeList.Count == 0) - { - return; - } switch (attriButeList[0].AttributeId) { case 0: - //姝ゅ睘鎬ц〃鏄庡綋鍓嶄寒搴︾▼搴� dimmableLight.Level = attriButeList[0].AttriButeData; dimmableLight.LastDateTime = DateTime.Now; break; @@ -249,7 +245,6 @@ if (common.DeviceStatusReport.CluterID == 3) { myDevice.IsOnline = 1; - //璁板綍鍥炲鏃堕棿 myDevice.LastDateTime = DateTime.Now; } break; @@ -266,6 +261,21 @@ myDevice.IsOnline = common.IsOnline; //璁板綍鍥炲鏃堕棿 myDevice.LastDateTime = DateTime.Now; + } + else if (typeTag == "IASInfoReport") + { + try + { + switch (myDevice.Type) + { + case DeviceType.IASZone: + var iAS = (IASZone)myDevice; + iAS.iASInfo = (common as IASZone).iASInfo; + iAS.LastDateTime = DateTime.Now; + break; + } + } + catch { } } } /// <summary> @@ -309,6 +319,10 @@ { BackgroundColor = Shared.Common.ZigbeeColor.Current.MainColor; ZbGateway.StatusList.Add(this); + Shared.Application.LocationAction += (lon, lat) => + { + AccountLogic.Instance.ReceiveAppLatAndLon(lon.ToString(), lat.ToString()); + }; } /// <summary> @@ -470,15 +484,18 @@ if (sender == Instance.homePageIMG || sender == Instance.homePageName) { //涓婚〉 + CommonPage.Instance.IsDrawerLockMode = false; Instance.homePageName.IsSelected = true; Instance.homePageIMG.IsSelected = true; var home = new UserHomeView { }; Instance.BodyView.AddChidren(home); home.Show(); + } else if (sender == Instance.categoryIMG || sender==Instance.categoryName) { //鍒嗙被 + CommonPage.Instance.IsDrawerLockMode = true; Instance.categoryName.IsSelected = true; Instance.categoryIMG.IsSelected = true; var category = new Phone.Device.Category.Category { }; @@ -487,7 +504,8 @@ } else if (sender == Instance.settingIMG || sender==Instance.settingName) { - //涓汉涓績 + //涓汉涓績 + CommonPage.Instance.IsDrawerLockMode = true; Instance.settingName.IsSelected = true; Instance.settingIMG.IsSelected = true; var form = new UserCenter.UserMain.UserMainForm(); -- Gitblit v1.8.0