From b186c02eb9e44268727b769be477d1956e97fbb0 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期四, 02 一月 2020 09:08:05 +0800
Subject: [PATCH] 2019.1.2
---
ZigbeeApp/Shared/Phone/Device/Curtain/RollerShadeControl.cs | 190 +++++++++++++++++++++++++++++++++++++----------
1 files changed, 149 insertions(+), 41 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/Device/Curtain/RollerShadeControl.cs b/ZigbeeApp/Shared/Phone/Device/Curtain/RollerShadeControl.cs
index e7933be..f489595 100644
--- a/ZigbeeApp/Shared/Phone/Device/Curtain/RollerShadeControl.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Curtain/RollerShadeControl.cs
@@ -1,6 +1,7 @@
锘縰sing System;
using Shared.Common;
using Shared.Phone.Device.CommonForm;
+using Shared.Phone.Device.DeviceLogic;
using Shared.Phone.UserView;
using ZigBee.Device;
@@ -65,6 +66,29 @@
/// StopBtn
/// </summary>
public Button StopBtn;
+ /// <summary>
+ /// 寮�鍚堝笜
+ /// </summary>
+ private CurtainSeekBar curtainSeekBar = new CurtainSeekBar { };
+ /// <summary>
+ /// 鍗峰笜
+ /// </summary>
+ private CurtainRollSeekBar curtainRollSeekBar = new CurtainRollSeekBar { };
+
+ /// <summary>
+ /// IsDrawerLockMode
+ /// </summary>
+ public bool IsDrawerLockMode;
+
+ /// <summary>
+ /// ProgressBtn
+ /// </summary>
+ Button ProgressBtn;
+ /// <summary>
+ /// ProgressBtnY
+ /// </summary>
+ int ProgressBtnY;
+
#endregion
#region 鈼� 鎺ュ彛___________________________
@@ -115,8 +139,14 @@
rollerShade.DeviceStatusReport = common.DeviceStatusReport;
rollerShade.WcdCurrentPositionLiftPercentage = common.DeviceStatusReport.AttriBute[0].AttriButeData;
StatuBtn.Text = $"{Language.StringByID(R.MyInternationalizationString.Current)} { deviceUI.GetDeviceStatu()}";
- //SeekBar.Progress = rollerShade.WcdCurrentPositionLiftPercentage;
- //seekBarTitle.Text = $"{SeekBar.Progress} %";
+ if(rollerShade.WcdType==0)
+ {
+ curtainRollSeekBar.Progress = rollerShade.WcdCurrentPositionLiftPercentage;
+ }
+ else if(rollerShade.WcdType==4)
+ {
+ curtainSeekBar.Progress = rollerShade.WcdCurrentPositionLiftPercentage;
+ }
rollerShade.LastDateTime = DateTime.Now;
}
else if (common.DeviceStatusReport.AttriBute[0].AttributeId == 0)
@@ -215,6 +245,10 @@
//action();
//action = null;
RemoveUpdateControlDeviceStatuAction();
+ if (IsDrawerLockMode)
+ {
+ CommonPage.Instance.IsDrawerLockMode = false;
+ }
base.RemoveFromParent();
}
@@ -248,8 +282,7 @@
{
UserHomeView.ReadStatus(rollerShade, () =>
{
- rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
- rollerShade.ReadWcdCurrentPositionLiftPercentage();
+ ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(device.CommonDevice);
});
}
else
@@ -257,8 +290,7 @@
//闃叉鐭椂闂村唴澶氭璇诲彇
if ((DateTime.Now - rollerShade.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
{
- rollerShade.ReadWcdCurrentPositionLiftPercentage();
- rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
+ ReadDeviceAttributeLogic.Instance.SendCurtainStatuComand(device.CommonDevice);
}
}
@@ -294,15 +326,6 @@
RemoveFromParent();
};
- var sharedBtn = new Button
- {
- X = Application.GetRealWidth(850),
- Width = Application.GetMinReal(69),
- Height = Application.GetMinReal(69),
- Gravity = Gravity.CenterVertical,
- UnSelectedImagePath = "Item/Shared.png"
- };
- top.topView.AddChidren(sharedBtn);
var moreBtn = new Button
{
@@ -386,7 +409,7 @@
itemView.AddChidren(OpenOrUpBtn);
OpenOrUpBtn.MouseUpEventHandler += (sender, e) =>
{
- (device.CommonDevice as ZigBee.Device.Rollershade).CurtainUpDownStopControl(0);
+ (device.CommonDevice as Rollershade).CurtainUpDownStopControl(0);
};
StopBtn = new Button
@@ -401,7 +424,7 @@
itemView.AddChidren(StopBtn);
StopBtn.MouseUpEventHandler += (sender, e) =>
{
- (device.CommonDevice as ZigBee.Device.Rollershade).CurtainUpDownStopControl(2);
+ (device.CommonDevice as Rollershade).CurtainUpDownStopControl(2);
};
CloseOrDownBtn = new Button
@@ -414,10 +437,9 @@
itemView.AddChidren(CloseOrDownBtn);
CloseOrDownBtn.MouseUpEventHandler += (sender, e) =>
{
- (device.CommonDevice as ZigBee.Device.Rollershade).CurtainUpDownStopControl(1);
+ (device.CommonDevice as Rollershade).CurtainUpDownStopControl(1);
};
- SetRollerShadeIcon((device.CommonDevice as Rollershade).WcdType);
if ((device.CommonDevice as Rollershade).WcdType == -1)
{
CommonPage.Loading.Start();
@@ -434,6 +456,9 @@
})
{ IsBackground = true }.Start();
}
+
+ SetCurtainType(itemView, (device.CommonDevice as Rollershade).WcdType);
+
var roomBG = new Button
{
Y = Application.GetRealHeight(1178 - 50),
@@ -486,28 +511,12 @@
//upBtn.MouseUpEventHandler += Up;
//stopBtn.MouseUpEventHandler += Stop;
//downBtn.MouseUpEventHandler += Down;
- //SeekBar.ProgressChanged += SeekBar_ProgressChange;
- //collectionBtn.MouseUpEventHandler += Collection;
- //moreBtn.MouseUpEventHandler += More;
- //roomBtn.MouseUpEventHandler += BackToRoomHandler;
- //roomName.MouseUpEventHandler += BackToRoomHandler;
+ collectionBtn.MouseUpEventHandler += Collection;
}
#endregion
- #region 鈼� 鎺у埗___________________________
-
- /// <summary>
- /// 婊戞潯绉诲姩鍙戦�佸懡浠�
- /// </summary>
- /// <param name="sender">Sender.</param>
- /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
- private void SeekBar_ProgressChange(object sender, int mouseEventArgs)
- {
- //seekBarTitle.Text = $"{SeekBar.Progress}%";
- //(device.CommonDevice as ZigBee.Device.Rollershade).WcdGoToTiltValue(SeekBar.Progress);
- }
-
+ #region 鈼� 鎺у埗__________________________
/// <summary>
/// 涓娿�佸紑
@@ -645,11 +654,22 @@
}
/// <summary>
+ /// SetCurtainType
+ /// </summary>
+ /// <param name="layout"></param>
+ /// <param name="type"></param>
+ private void SetCurtainType(FrameLayout layout, int type)
+ {
+ SetRollerShadeIcon(type);
+ SetRollerSeekBar(layout, type);
+ }
+
+ /// <summary>
/// WcdType=4锛氬紑鍚堝笜
/// WcdType=0锛氬嵎甯�
/// </summary>
/// <param name="type"></param>
- public void SetRollerShadeIcon(int type)
+ private void SetRollerShadeIcon(int type)
{
if (type == 0)
{
@@ -669,6 +689,95 @@
}
}
+ /// <summary>
+ /// SetRollerSeekBar
+ /// </summary>
+ /// <param name="layout"></param>
+ /// <param name="type"></param>
+ private void SetRollerSeekBar(FrameLayout layout,int type)
+ {
+ if(type == 0)
+ {
+ curtainRollSeekBar.Y = Application.GetRealHeight(300);
+ curtainRollSeekBar.Width = Application.GetRealWidth(438);
+ curtainRollSeekBar.Height = Application.GetRealHeight(576);
+ curtainRollSeekBar.Gravity = Gravity.CenterHorizontal;
+ curtainRollSeekBar.Progress = (device.CommonDevice as Rollershade).WcdCurrentPositionLiftPercentage;
+ layout.AddChidren(curtainRollSeekBar);
+ curtainRollSeekBar.IsProgressTextShow = false;
+ curtainRollSeekBar.CurtainPaddingTop = Application.GetRealHeight(110);
+ curtainRollSeekBar.OnStopTrackingTouchEvent += (sender, e) =>
+ {
+ (device.CommonDevice as Rollershade).WcdGoToTiltValue(curtainRollSeekBar.Progress);
+ };
+
+ curtainRollSeekBar.OnStartTrackingTouchEvent += (sender, e) =>
+ {
+ OnProgressButtonMove(curtainRollSeekBar.Progress);
+ ProgressBtn.Visible = true;
+ };
+
+ curtainRollSeekBar.OnStopTrackingTouchEvent += (sender, e) =>
+ {
+ ProgressBtn.Visible = false;
+ };
+
+ curtainRollSeekBar.OnProgressChangedEvent += (send2, e2) =>
+ {
+
+ OnProgressButtonMove(e2);
+
+ //鍒ゆ柇鏄惁300ms灞忚斀
+ //if (curtainRollSeekBar.IsProgressChangeDelay()) return;
+
+ //(device.CommonDevice as Rollershade).WcdGoToTiltValue(curtainRollSeekBar.Progress);
+ };
+
+ InitProgressBtn(layout);
+ }
+ else
+ {
+ curtainSeekBar.Y = Application.GetRealHeight(334);
+ curtainSeekBar.Width = Application.GetRealWidth(570);
+ curtainSeekBar.Height = Application.GetRealHeight(513);
+ curtainSeekBar.Gravity = Gravity.CenterHorizontal;
+ curtainSeekBar.Progress = (device.CommonDevice as Rollershade).WcdCurrentPositionLiftPercentage;
+ layout.AddChidren(curtainSeekBar);
+
+ curtainSeekBar.OnStopTrackingTouchEvent += (sender, e) =>
+ {
+ (device.CommonDevice as Rollershade).WcdGoToTiltValue(curtainSeekBar.Progress);
+ };
+ }
+ }
+
+ /// <summary>
+ /// 娣诲姞杩涘害鎸夐挳
+ /// </summary>
+ private void InitProgressBtn(FrameLayout layout)
+ {
+ ProgressBtnY = curtainRollSeekBar.Y - Application.GetMinReal(204);
+ ProgressBtn = new Button()
+ {
+ Y = ProgressBtnY,
+ Width = Application.GetMinReal(135),
+ Height = Application.GetMinReal(104),
+ UnSelectedImagePath = "Item/ProgressBubbles.png",
+ Visible = false,
+ Gravity = Gravity.CenterHorizontal
+ };
+ layout.AddChidren(ProgressBtn);
+ }
+
+ /// <summary>
+ /// OnProgressButtonMove
+ /// </summary>
+ private void OnProgressButtonMove(int mProgress)
+ {
+ ProgressBtn.Y = ProgressBtnY + curtainRollSeekBar.NowProgressY;
+ ProgressBtn.Text = mProgress + "%";
+ }
+
#endregion
#region 鈼� 鏀惰棌鍒颁富椤礯______________________
@@ -680,15 +789,14 @@
/// <param name="e">E.</param>
private void Collection(object sender, MouseEventArgs e)
{
- //collection
if (collectionBtn.IsSelected)
{
- Shared.Common.Room.Lists[0].DeleteDevice(device.FileName);
+ Common.Room.CurrentRoom.GetLoveRoom().DeleteDevice(device.FileName);
collectionBtn.IsSelected = false;
}
else
{
- Shared.Common.Room.Lists[0].AddDevice(device.FileName);
+ Common.Room.CurrentRoom.GetLoveRoom().AddDevice(device.FileName);
collectionBtn.IsSelected = true;
}
}
--
Gitblit v1.8.0