From b02e8275a21dc06bf54b66273485d44e007a2616 Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期一, 20 七月 2020 14:50:17 +0800 Subject: [PATCH] 新代码 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs | 106 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 89 insertions(+), 17 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs index 4a8087c..ee4a454 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs @@ -40,7 +40,7 @@ /// </summary> private CommonDevice device = null; /// <summary> - /// 褰撳墠閫夋嫨鐨勫姛鑳界被鍨嬬储寮� + /// 褰撳墠閫夋嫨鐨勫姛鑳界被鍨嬬储寮� -1:杩樻病鏈夎缃繃 0:涓嶆寚瀹� 1:寮�鍏� 2:鐏厜 3:鎻掑骇 /// </summary> private int nowSelectNo = -1; @@ -80,6 +80,9 @@ //鍙崇澶� this.AddRightArrow(); + //璇诲彇璁惧鍔熻兘绫诲瀷 + this.ReadDeviceFunctionType(); + this.ButtonClickEvent += (sender, e) => { //鏄剧ず閫夋嫨璁惧鍔熻兘绫诲瀷鐨勭晫闈� @@ -108,18 +111,46 @@ var form = new BottomItemSelectForm(); form.CancelCallEvent = true;//鍏佽鍙栨秷 - form.AddForm(title, listText, nowSelectNo); + form.AddForm(title, listText, null, nowSelectNo - 1); form.FinishSelectEvent += (selectNo) => { + if (selectNo == nowSelectNo - 1) + { + //閫夋嫨鐨勬槸鐩稿悓鐨� + return; + } //-1:閫夋嫨鍙栨秷 this.Text = selectNo == -1 ? string.Empty : listText[selectNo]; - nowSelectNo = selectNo; + nowSelectNo = selectNo + 1; - //璁板綍璧峰綋鍓嶉�夋嫨鐨勫姛鑳界被鍨� - this.RefreshDfunctionType(); + this.CanClick = false; + HdlThreadLogic.Current.RunThread(() => + { + //璁剧疆鍔熻兘绫诲瀷鍒扮綉鍏� + var result = Common.LocalDevice.Current.SendDeviceFunctionTypeToGateway(this.device, (DeviceFunctionType)nowSelectNo); + + HdlThreadLogic.Current.RunMain(() => + { + if (result == true) + { + //璁板綍璧峰綋鍓嶉�夋嫨鐨勫姛鑳界被鍨� + this.RefreshDfunctionType(); - //璋冪敤鍥炶皟鍑芥暟 - this.FinishSelectEvent?.Invoke(nowSelectNo); + //璁惧鏀瑰彉鍔熻兘绫诲瀷鐨勮瘽,涓婚〉闇�瑕侀噸鏂板埛鏂� + UserView.UserPage.Instance.RefreshAllForm = true; + + //璋冪敤鍥炶皟鍑芥暟 + this.FinishSelectEvent?.Invoke(nowSelectNo); + } + else + { + //璁剧疆璁惧鍔熻兘绫诲瀷澶辫触 + var alert = new ShowMsgControl(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.uSetDeviceFunctionTypeFail)); + alert.Show(); + } + this.CanClick = true; + }); + }); }; } #endregion @@ -137,28 +168,34 @@ var myFunType = this.device.DfunctionType; //鍔熻兘绫诲瀷鐨勭炕璇戝悕瀛� string strType = string.Empty; - if (myFunType == DeviceFunctionType.A鐏厜) + + if (this.device.DfunctionType == DeviceFunctionType.A涓嶆寚瀹�) { - strType = Language.StringByID(R.MyInternationalizationString.uLight); - nowSelectNo = 1; + nowSelectNo = 0; } else if (this.device.DfunctionType == DeviceFunctionType.A寮�鍏�) { strType = Language.StringByID(R.MyInternationalizationString.uSwitch); - nowSelectNo = 0; + nowSelectNo = 1; + } + else if (myFunType == DeviceFunctionType.A鐏厜) + { + strType = Language.StringByID(R.MyInternationalizationString.uLight); + nowSelectNo = 2; } else if (this.device.DfunctionType == DeviceFunctionType.A鎻掑骇) { strType = Language.StringByID(R.MyInternationalizationString.uSocket1); - nowSelectNo = 2; + nowSelectNo = 3; } if (this.device.Type == DeviceType.ColorDimmableLight + || this.device.Type == DeviceType.ColorTemperatureLight || this.device.Type == DeviceType.DimmableLight) { //鐏厜绫诲浐瀹氫负 鐏厜 strType = Language.StringByID(R.MyInternationalizationString.uLight); - nowSelectNo = 1; + nowSelectNo = 2; } else if (this.device.Type == DeviceType.WindowCoveringDevice) { @@ -182,6 +219,12 @@ { //鏂伴鍥哄畾涓� 鏂伴 strType = Language.StringByID(R.MyInternationalizationString.FreshAir); + nowSelectNo = -1; + } + else if (this.device.Type == DeviceType.PMSensor) + { + //PM2.5浼犳劅鍣ㄥ浐瀹氫负 绌烘皵璐ㄩ噺 + strType = Language.StringByID(R.MyInternationalizationString.AirQuality); nowSelectNo = -1; } @@ -208,6 +251,8 @@ || this.device.Type == DeviceType.OnOffOutput//缁х數鍣� || this.device.Type == DeviceType.Thermostat//绌鸿皟 || this.device.Type == DeviceType.FreshAir//鏂伴 + || this.device.Type == DeviceType.PMSensor //PM2.5 + || this.device.Type == DeviceType.ColorTemperatureLight //鑹叉俯鐏� || this.device.Type == DeviceType.WindowCoveringDevice)//绐楀笜 { return true; @@ -238,7 +283,7 @@ /// </summary> private void RefreshDfunctionType() { - if (this.nowSelectNo == 0) + if (this.nowSelectNo == 1) { this.device.DfunctionType = DeviceFunctionType.A寮�鍏�; if (this.device.IsCustomizeImage == false) @@ -247,7 +292,7 @@ this.device.IconPath = "Device/Switch.png"; } } - else if (this.nowSelectNo == 1) + else if (this.nowSelectNo == 2) { this.device.DfunctionType = DeviceFunctionType.A鐏厜; if (this.device.IsCustomizeImage == false) @@ -256,7 +301,7 @@ this.device.IconPath = "Device/Light.png"; } } - else if (this.nowSelectNo == 2) + else if (this.nowSelectNo == 3) { this.device.DfunctionType = DeviceFunctionType.A鎻掑骇; if (this.device.IsCustomizeImage == false) @@ -267,7 +312,7 @@ } else { - this.device.DfunctionType = DeviceFunctionType.A鏈畾涔�; + this.device.DfunctionType = DeviceFunctionType.A涓嶆寚瀹�; if (this.device.IsCustomizeImage == false) { //閲嶆柊璁剧疆鍥剧墖 @@ -287,5 +332,32 @@ } #endregion + + #region 鈻� 璇诲彇璁惧鍔熻兘绫诲瀷___________________ + + /// <summary> + /// 璇诲彇璁惧鍔熻兘绫诲瀷 + /// </summary> + private void ReadDeviceFunctionType() + { + HdlThreadLogic.Current.RunThread(() => + { + //璇诲彇璁惧鍔熻兘绫诲瀷 + var info = Common.LocalDevice.Current.ReadDeviceEpointDeviceInfo(this.device); + if (info != null && ((int)this.device.DfunctionType) != info.FunctionType) + { + this.device.DfunctionType = (DeviceFunctionType)info.FunctionType; + HdlThreadLogic.Current.RunMain(() => + { + //鍒锋柊鎺т欢 + this.InitDefultData(); + //鍒锋柊璁惧鍔熻兘绫诲瀷 + this.RefreshDfunctionType(); + }); + } + }); + } + + #endregion } } -- Gitblit v1.8.0