From dee21bf452a8979d0515d13e534fbb69ed9715dd Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期二, 01 九月 2020 15:33:13 +0800
Subject: [PATCH] 上传一个版本
---
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs | 78 +++++++++++++++++++++++++++++++++------
1 files changed, 66 insertions(+), 12 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs
index 601e1bd..75a9421 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs
@@ -74,11 +74,14 @@
|| this.device.Type == DeviceType.OnOffOutput)
{
//娌¤寮哄埗骞叉秹鐨勮瘽
- if (m_SetCanSelect == true)
+ if (m_SetCanSelect == true && Common.Config.Instance.Home.IsShowTemplate == false)
{
this.UseClickStatu = true;
//鍙崇澶�
this.AddRightArrow();
+
+ //璇诲彇璁惧鍔熻兘绫诲瀷
+ this.ReadDeviceFunctionType();
this.ButtonClickEvent += (sender, e) =>
{
@@ -108,7 +111,7 @@
var form = new BottomItemSelectForm();
form.CancelCallEvent = true;//鍏佽鍙栨秷
- form.AddForm(title, listText, nowSelectNo - 1);
+ form.AddForm(title, listText, null, nowSelectNo - 1);
form.FinishSelectEvent += (selectNo) =>
{
if (selectNo == nowSelectNo - 1)
@@ -120,14 +123,34 @@
this.Text = selectNo == -1 ? string.Empty : listText[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
@@ -171,25 +194,29 @@
|| this.device.Type == DeviceType.DimmableLight)
{
//鐏厜绫诲浐瀹氫负 鐏厜
- strType = Language.StringByID(R.MyInternationalizationString.uLight);
+ var infoContent = Common.LocalDevice.Current.GetDeviceModelIdNameInfo("A418");
+ strType = infoContent != null ? infoContent.A瀹樻柟鍚嶅瓧 : string.Empty;
nowSelectNo = 2;
}
else if (this.device.Type == DeviceType.WindowCoveringDevice)
{
//绐楀笜鍥哄畾涓� 閬槼
- strType = Language.StringByID(R.MyInternationalizationString.uDeviceBelongId100);
+ var infoContent = Common.LocalDevice.Current.GetDeviceModelIdNameInfo("A400");
+ strType = infoContent != null ? infoContent.A瀹樻柟鍚嶅瓧 : string.Empty;
nowSelectNo = -1;
}
else if (this.device.Type == DeviceType.Thermostat)
{
//绌鸿皟鍥哄畾涓� 绌鸿皟
- strType = Language.StringByID(R.MyInternationalizationString.uDeviceBelongId3600);
+ var infoContent = Common.LocalDevice.Current.GetDeviceModelIdNameInfo("A406");
+ strType = infoContent != null ? infoContent.A瀹樻柟鍚嶅瓧 : string.Empty;
nowSelectNo = -1;
}
else if (this.device.Type == DeviceType.DoorLock)
{
//闂ㄩ攣鍥哄畾涓� 闂ㄩ攣
- strType = Language.StringByID(R.MyInternationalizationString.uDeviceBelongId2800);
+ var infoContent = Common.LocalDevice.Current.GetDeviceModelIdNameInfo("A405");
+ strType = infoContent != null ? infoContent.A瀹樻柟鍚嶅瓧 : string.Empty;
nowSelectNo = -1;
}
else if (this.device.Type == DeviceType.FreshAir)
@@ -309,5 +336,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