From 627093aca723d4bfb971b97c828e8b3a22dbda78 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期五, 17 七月 2020 17:26:19 +0800
Subject: [PATCH] 2020-07-17-1
---
ZigbeeApp/Shared/Phone/UserCenter/Device/Curtain/AutoOpenDirectionAndLimitSettionForm.cs | 93 +++++++++++++++++++++++++---------------------
1 files changed, 51 insertions(+), 42 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Curtain/AutoOpenDirectionAndLimitSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Curtain/AutoOpenDirectionAndLimitSettionForm.cs
index cd6cbe0..2bc736f 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Curtain/AutoOpenDirectionAndLimitSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Curtain/AutoOpenDirectionAndLimitSettionForm.cs
@@ -177,10 +177,10 @@
var form = new BottomItemSelectForm();
form.AddForm(Language.StringByID(R.MyInternationalizationString.uDirectionSelect), listText, nowSelectNo);
- form.FinishSelectEvent += async (index) =>
+ 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;
@@ -252,6 +252,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;
@@ -334,7 +336,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();
@@ -354,27 +357,28 @@
//鏁版嵁鍙樻洿,鐧惧垎姣�
curtainData.OpenLimitPersent = value;
};
+ //铏氭嫙浣忓畢涓嶉渶瑕佺洃鍚�
+ 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;
}
});
}
@@ -386,15 +390,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;
@@ -422,6 +425,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;
@@ -504,7 +509,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();
@@ -524,27 +530,28 @@
//鏁版嵁鍙樻洿,鐧惧垎姣�
curtainData.CloseLimitPersent = value;
};
+ //铏氭嫙浣忓畢涓嶉渶瑕佺洃鍚�
+ 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;
}
});
}
@@ -556,15 +563,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)
{
@@ -590,6 +596,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");
@@ -647,15 +658,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 = ModelData.DeviceModelDataLogic.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) =>
{
@@ -679,23 +701,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++;
}
}
});
@@ -703,7 +727,7 @@
HdlDeviceCurtainLogic.Current.SetGetCurtainLimitSettionComand(curtainDevice);
int timeCount = 30;
- while (receiptData == false && timeCount >= 0)
+ while (receiptDataCount != 4 && timeCount >= 0)
{
System.Threading.Thread.Sleep(100);
timeCount--;
@@ -722,21 +746,6 @@
}
//绉婚櫎鐩戝惉
HdlGatewayReceiveLogic.Current.RemoveEvent("CurtainDeviceAttribute");
-
- //澶囦唤绐楀笜鏁版嵁
- if (this.backupCurtainData == true && curtainData.CurtainLength > 0)
- {
- 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;
}
--
Gitblit v1.8.0