From 0f61f7a60bf532e91d08aa2e0716e986bf571413 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期三, 02 九月 2020 17:03:54 +0800
Subject: [PATCH] 2020-09-01-2
---
ZigbeeApp/Shared/Phone/UserCenter/Device/Curtain/AutoOpenDirectionAndLimitSettionForm.cs | 148 +++++++++++++++++++++++++++++++++----------------
1 files changed, 100 insertions(+), 48 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Curtain/AutoOpenDirectionAndLimitSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Curtain/AutoOpenDirectionAndLimitSettionForm.cs
index 38eaf8a..9b337e2 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Curtain/AutoOpenDirectionAndLimitSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Curtain/AutoOpenDirectionAndLimitSettionForm.cs
@@ -61,7 +61,7 @@
/// <param name="i_listdevice">绐楀笜鐨勫洖璺�</param>
public void ShowForm(Rollershade i_CurtainDevice)
{
- UserView.HomePage.Instance.ScrollEnabled = false;
+ this.ScrollEnabled = false;
this.curtainDevice = i_CurtainDevice;
@@ -99,6 +99,24 @@
listView.Height = bodyFrameLayout.Height;
bodyFrameLayout.AddChidren(listView);
+ //瀵艰建闀垮害涓�0鏃�
+ if (curtainData.CurtainLength <= 0)
+ {
+ //鐢垫満鏁版嵁寮傚父,纭宸茬粡瀹夎瀵艰建鍚�,璇烽噸缃數鏈�
+ this.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uCurtainDataIsErrorPleaseResetCurtain));
+ try
+ {
+ //璁惧寮傚父琛ユ晳 -> 娣诲姞閲嶇疆鐢垫満琛�
+ this.AddElectricalMachineryRow();
+ return;
+ }
+ catch (Exception ex2)
+ {
+ HdlLogLogic.Current.WriteLog(ex2, "寮�鍚堝笜琛ユ晳寮傚父1");
+ return;
+ }
+ }
+
try
{
//娣诲姞鏂瑰悜琛�
@@ -116,7 +134,7 @@
//Log鍑哄姏
string msg = "褰撳墠婵�娲荤殑鐣岄潰[" + UserCenterResourse.NowActionFormID + "]";
HdlLogLogic.Current.WriteLog(ex, msg);
- //鐢垫満鏁版嵁寮傚父,璇烽噸缃數鏈�
+ //鐢垫満鏁版嵁寮傚父,纭宸茬粡瀹夎瀵艰建鍚�,璇烽噸缃數鏈�
this.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uCurtainDataIsErrorPleaseResetCurtain));
try
{
@@ -124,7 +142,7 @@
//璁惧寮傚父琛ユ晳 -> 娣诲姞閲嶇疆鐢垫満琛�
this.AddElectricalMachineryRow();
}
- catch (Exception ex2) { HdlLogLogic.Current.WriteLog(ex2, "寮�鍚堝笜琛ユ晳寮傚父"); }
+ catch (Exception ex2) { HdlLogLogic.Current.WriteLog(ex2, "寮�鍚堝笜琛ユ晳寮傚父2"); }
}
});
}
@@ -158,11 +176,11 @@
listText.Add(Language.StringByID(R.MyInternationalizationString.uReverseDirection));//鍙嶅悜
var form = new BottomItemSelectForm();
- form.AddForm(Language.StringByID(R.MyInternationalizationString.uDirectionSelect), listText, nowSelectNo);
- form.FinishSelectEvent += async (index) =>
+ form.AddForm(Language.StringByID(R.MyInternationalizationString.uDirectionSelect), listText, null, nowSelectNo);
+ form.FinishSelectEvent += (index) =>
{
//鍙樻洿鏂瑰悜
- var result = await HdlDeviceCurtainLogic.Current.SetCurtainDirection(curtainDevice, index == 0 ? false : true);
+ var result = HdlDeviceCurtainLogic.Current.SetCurtainDirection(curtainDevice, index == 0 ? false : true);
if (result == false)
{
return;
@@ -172,6 +190,11 @@
curtainData.Direction = index == 0 ? false : true;
};
};
+ //濡傛灉褰撳墠鏄睍绀烘ā鏉�,鍒欎笉鑳界紪杈�
+ if (Common.Config.Instance.Home.IsShowTemplate == true)
+ {
+ rowDirection.CanClick = false;
+ }
}
#endregion
@@ -234,6 +257,8 @@
frameBack.AddChidren(btnProgressView);
int progressValue = (int)(curtainData.OpenLimitValue / (curtainData.CurtainLength * 1.0) * 100);
+ //璁剧疆鐧惧垎姣旂殑鍒濆鍊�
+ curtainData.OpenLimitPersent = progressValue;
var btnProgress1 = new NormalViewControl(200, 50, true);
btnProgress1.X = Application.GetRealWidth(200);
btnProgress1.Y = btnProgressView.Y;
@@ -316,7 +341,8 @@
frameBack.AddChidren(btnSave);
btnSave.ButtonClickEvent += (sender, e) =>
{
- if (this.receiveOpenlimit == true)
+ //2020.05.17:杩藉姞铏氭嫙浣忓畢鍙互鐩存帴鐐瑰嚮
+ if (this.receiveOpenlimit == true || Common.Config.Instance.Home.IsVirtually == true)
{
//纭寮�闄愪綅鐐�
this.SaveOpenLimit();
@@ -336,27 +362,37 @@
//鏁版嵁鍙樻洿,鐧惧垎姣�
curtainData.OpenLimitPersent = value;
};
+ //濡傛灉褰撳墠鏄睍绀烘ā鏉�,鍒欎笉鑳界紪杈�
+ if (Common.Config.Instance.Home.IsShowTemplate == true)
+ {
+ openSeekBar.Enable = false;
+ btnMinus.CanClick = false;
+ btnPlus.CanClick = false;
+ btnSave.CanClick = false;
+ }
+
+ //铏氭嫙浣忓畢涓嶉渶瑕佺洃鍚�
+ if (Common.Config.Instance.Home.IsVirtually == true)
+ {
+ return;
+ }
HdlThreadLogic.Current.RunThread(async () =>
{
- //澶勭悊涓�
- bool checking = false;
while (openSeekBar.Parent != null)
{
int nowValue = curtainData.OpenLimitPersent;
- if (oldProValue == nowValue || checking == true)
+ if (oldProValue == nowValue)
{
//鍊间笉绛夋墠澶勭悊
await Task.Delay(500);
continue;
}
oldProValue = nowValue;
- checking = true;
//灏嗙獥甯樿皟鏁村埌鎸囧畾鐧惧垎姣�
this.sendDiv = 1;
curtainDevice.WcdGoToTiltValue(nowValue);
- checking = false;
}
});
}
@@ -368,15 +404,14 @@
{
//纭褰撳墠浣嶇疆涓哄紑闄愪綅?
string msg = Language.StringByID(R.MyInternationalizationString.uCommitCurtainOpenLimitMsg);
- this.ShowMassage(ShowMsgType.Confirm, msg, async () =>
+ this.ShowMassage(ShowMsgType.Confirm, msg, () =>
{
decimal openValue = ((decimal)curtainData.OpenLimitPersent / 100) * curtainData.CurtainLength;
decimal closeValue = ((decimal)curtainData.CloseLimitPersent / 100) * curtainData.CurtainLength;
if (openValue < 0) { openValue = 0; }
if (closeValue < 0) { closeValue = curtainData.CurtainLength; }
//鎵ц纭鍙婅鐩栦笂闄愪綅鐐�
- var result = await HdlDeviceCurtainLogic.Current.CommitCurtainLimitPoint(curtainDevice, Rollershade.CurtainPrivateInstalledLimi.UpLimit,
- (int)openValue, (int)closeValue);
+ var result = HdlDeviceCurtainLogic.Current.SetAutoOpenCurtainLimitPoint(curtainDevice, (int)openValue, (int)closeValue, curtainData.CurtainLength);
if (result == true)
{
this.receiveOpenlimit = false;
@@ -404,6 +439,8 @@
frameBack.AddChidren(btnProgressView);
int progressValue = (int)(curtainData.CloseLimitValue / (curtainData.CurtainLength * 1.0) * 100);
+ //璁剧疆鐧惧垎姣旂殑鍒濆鍊�
+ curtainData.CloseLimitPersent = progressValue;
var btnProgress1 = new NormalViewControl(200, 50, true);
btnProgress1.X = Application.GetRealWidth(200);
btnProgress1.Y = btnProgressView.Y;
@@ -486,7 +523,8 @@
frameBack.AddChidren(btnSave);
btnSave.ButtonClickEvent += (sender, e) =>
{
- if (this.receiveCloseLimit == true)
+ //2020.05.17:杩藉姞铏氭嫙浣忓畢鍙互鐩存帴鐐瑰嚮
+ if (this.receiveCloseLimit == true || Common.Config.Instance.Home.IsVirtually == true)
{
//淇濆瓨鍚堥檺浣嶇偣
this.SaveCloseLimit();
@@ -506,27 +544,36 @@
//鏁版嵁鍙樻洿,鐧惧垎姣�
curtainData.CloseLimitPersent = value;
};
+ //濡傛灉褰撳墠鏄睍绀烘ā鏉�,鍒欎笉鑳界紪杈�
+ if (Common.Config.Instance.Home.IsShowTemplate == true)
+ {
+ closeSeekBar.Enable = false;
+ btnMinus.CanClick = false;
+ btnPlus.CanClick = false;
+ btnSave.CanClick = false;
+ }
+ //铏氭嫙浣忓畢涓嶉渶瑕佺洃鍚�
+ if (Common.Config.Instance.Home.IsVirtually == true)
+ {
+ return;
+ }
HdlThreadLogic.Current.RunThread(async () =>
{
- //澶勭悊涓�
- bool checking = false;
while (closeSeekBar.Parent != null)
{
int nowValue = curtainData.CloseLimitPersent;
- if (oldProValue == nowValue || checking == true)
+ if (oldProValue == nowValue)
{
//鍊间笉绛夋墠澶勭悊
await Task.Delay(500);
continue;
}
- checking = true;
oldProValue = nowValue;
//灏嗙獥甯樿皟鏁村埌鎸囧畾鐧惧垎姣�
this.sendDiv = 2;
curtainDevice.WcdGoToTiltValue(nowValue);
- checking = false;
}
});
}
@@ -538,15 +585,14 @@
{
//纭褰撳墠浣嶇疆涓哄悎闄愪綅?
string msg = Language.StringByID(R.MyInternationalizationString.uCommitCurtainCloseLimitMsg);
- this.ShowMassage(ShowMsgType.Confirm, msg, async () =>
+ this.ShowMassage(ShowMsgType.Confirm, msg, () =>
{
decimal openValue = ((decimal)curtainData.OpenLimitPersent / 100) * curtainData.CurtainLength;
decimal closeValue = ((decimal)curtainData.CloseLimitPersent / 100) * curtainData.CurtainLength;
if (openValue < 0) { openValue = 0; }
if (closeValue < 0) { closeValue = curtainData.CurtainLength; }
//鎵ц纭鍙婅鐩栦笂闄愪綅鐐�
- var result = await HdlDeviceCurtainLogic.Current.CommitCurtainLimitPoint(curtainDevice, Rollershade.CurtainPrivateInstalledLimi.DownLimit,
- (int)openValue, (int)closeValue);
+ var result = HdlDeviceCurtainLogic.Current.SetAutoOpenCurtainLimitPoint(curtainDevice, (int)openValue, (int)closeValue, curtainData.CurtainLength);
if (result == true)
{
@@ -572,6 +618,11 @@
rowReset.AddBottomLine();
rowReset.ButtonClickEvent += (sender, e) =>
{
+ //濡傛灉褰撳墠鏄櫄鎷熶綇瀹�
+ if (Common.Config.Instance.Home.IsVirtually == true)
+ {
+ return;
+ }
//閲嶇疆鐢垫満灏嗗垵濮嬪寲{0}鏂瑰悜涓庨檺浣嶈缃紝纭缁х画锛�
string msg = Language.StringByID(R.MyInternationalizationString.uResetElectricalMachineryMsg);
msg = msg.Replace("{0}", "\r\n");
@@ -629,15 +680,26 @@
/// <returns></returns>
private bool InitCurtainDefultData()
{
- //寮�鍚繘搴︽潯
- this.ShowProgressBar();
-
this.curtainData = new CurtainData();
this.receiveOpenlimit = false;
this.receiveCloseLimit = false;
this.sendDiv = 0;
- bool receiptData = false;
+ //濡傛灉褰撳墠鏄櫄鎷熶綇瀹�
+ if (Common.Config.Instance.Home.IsVirtually == true)
+ {
+ var data = TemplateData.TemplateDeviceDataLogic.Current.GetCurtainLimitPoint(curtainDevice);
+ curtainData.Direction = data.Direction;
+ curtainData.CurtainLength = data.curtainLength;
+ curtainData.OpenLimitValue = data.upLimit;
+ curtainData.CloseLimitValue = data.downLimit;
+ return true;
+ }
+
+ //寮�鍚繘搴︽潯
+ this.ShowProgressBar();
+
+ int receiptDataCount = 0;
string mainkeys = LocalDevice.Current.GetDeviceMainKeys(curtainDevice);
HdlGatewayReceiveLogic.Current.AddAttributeEvent("CurtainDeviceAttribute", ReceiveComandDiv.A璁惧灞炴�т笂鎶�, (device) =>
{
@@ -661,23 +723,25 @@
//姝e悜
curtainData.Direction = false;
}
+ receiptDataCount++;
}
else if (attriBute.AttributeId == 1)
{
//绐楀笜鎬婚暱
curtainData.CurtainLength = attriBute.AttriButeData;
+ receiptDataCount++;
}
else if (attriBute.AttributeId == 16)
{
//寮�闄愪綅
curtainData.OpenLimitValue = attriBute.AttriButeData;
+ receiptDataCount++;
}
else if (attriBute.AttributeId == 17)
{
//鍚堥檺浣�
curtainData.CloseLimitValue = attriBute.AttriButeData;
- //鏁版嵁鎺ユ敹缁撴潫
- receiptData = true;
+ receiptDataCount++;
}
}
});
@@ -685,7 +749,7 @@
HdlDeviceCurtainLogic.Current.SetGetCurtainLimitSettionComand(curtainDevice);
int timeCount = 30;
- while (receiptData == false && timeCount >= 0)
+ while (receiptDataCount != 4 && timeCount >= 0)
{
System.Threading.Thread.Sleep(100);
timeCount--;
@@ -705,21 +769,6 @@
//绉婚櫎鐩戝惉
HdlGatewayReceiveLogic.Current.RemoveEvent("CurtainDeviceAttribute");
- //澶囦唤绐楀笜鏁版嵁
- if (this.backupCurtainData == true)
- {
- this.backupCurtainData = false;
- HdlThreadLogic.Current.RunThread(async () =>
- {
- //鏂瑰悜澶囦唤
- await HdlDeviceCurtainLogic.Current.BackupCurtainDirection(curtainDevice, curtainData.Direction);
- //闄愪綅澶囦唤
- int uplimit = (int)(curtainData.OpenLimitValue / (curtainData.CurtainLength * 1.0) * 100);
- int downlimit = (int)(curtainData.CloseLimitValue / (curtainData.CurtainLength * 1.0) * 100);
- await HdlDeviceCurtainLogic.Current.BackupCurtainLimitPoint(curtainDevice, uplimit, downlimit);
- });
- }
-
return true;
}
@@ -732,6 +781,11 @@
/// </summary>
private void ReceiveLimitData()
{
+ //濡傛灉褰撳墠鏄睍绀烘ā鏉�,鍒欓渶瑕佸鐞�
+ if (Common.Config.Instance.Home.IsShowTemplate == true)
+ {
+ return;
+ }
if (HdlGatewayReceiveLogic.Current.IsEsixt("ReceiveLimitData") == true)
{
HdlGatewayReceiveLogic.Current.RemoveEvent("ReceiveLimitData");
@@ -775,8 +829,6 @@
{
HdlGatewayReceiveLogic.Current.RemoveEvent("CurtainDeviceAttribute");
HdlGatewayReceiveLogic.Current.RemoveEvent("ReceiveLimitData");
-
- UserView.HomePage.Instance.ScrollEnabled = true;
base.CloseFormBefore();
}
--
Gitblit v1.8.0