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 | 97 ++++++++++++++++++++++++++++++++++++++----------
1 files changed, 77 insertions(+), 20 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs
index 1e53f96..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,26 +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)
+ 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();
- //璁惧鏀瑰彉鍔熻兘绫诲瀷鐨勮瘽,涓婚〉闇�瑕侀噸鏂板埛鏂�
- UserView.UserPage.Instance.RefreshForm = true;
+ //璁惧鏀瑰彉鍔熻兘绫诲瀷鐨勮瘽,涓婚〉闇�瑕侀噸鏂板埛鏂�
+ UserView.UserPage.Instance.RefreshAllForm = true;
- //璋冪敤鍥炶皟鍑芥暟
- this.FinishSelectEvent?.Invoke(nowSelectNo);
+ //璋冪敤鍥炶皟鍑芥暟
+ this.FinishSelectEvent?.Invoke(nowSelectNo);
+ }
+ else
+ {
+ //璁剧疆璁惧鍔熻兘绫诲瀷澶辫触
+ var alert = new ShowMsgControl(ShowMsgType.Tip, Language.StringByID(R.MyInternationalizationString.uSetDeviceFunctionTypeFail));
+ alert.Show();
+ }
+ this.CanClick = true;
+ });
+ });
};
}
#endregion
@@ -145,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)
{
@@ -223,6 +252,7 @@
|| 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;
@@ -253,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)
@@ -262,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)
@@ -271,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)
@@ -282,7 +312,7 @@
}
else
{
- this.device.DfunctionType = DeviceFunctionType.A鏈畾涔�;
+ this.device.DfunctionType = DeviceFunctionType.A涓嶆寚瀹�;
if (this.device.IsCustomizeImage == false)
{
//閲嶆柊璁剧疆鍥剧墖
@@ -302,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