From 3aa397ab145382935492b11c1f18c9634e69910b Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期四, 10 十二月 2020 16:45:00 +0800
Subject: [PATCH] 请合并,门锁和晾衣架第一版代码
---
ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/Base/DeviceCardCommon.cs | 228 ++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 186 insertions(+), 42 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/Base/DeviceCardCommon.cs b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/Base/DeviceCardCommon.cs
index e40e221..53864ae 100755
--- a/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/Base/DeviceCardCommon.cs
+++ b/ZigbeeApp/Shared/Phone/MainPage/Controls/DeviceCard/Base/DeviceCardCommon.cs
@@ -9,7 +9,7 @@
/// <summary>
/// 涓婚〉鐨勮澶囧崱鐗囨帶浠跺簳灞傚叡閫�(瀹藉害:458 + 14 * 2 楂樺害:305 + 43)
/// </summary>
- public class DeviceCardCommon : FrameLayoutControl
+ public class DeviceCardCommon : FrameLayoutStatuControl
{
#region 鈻� 鍙橀噺澹版槑___________________________
@@ -50,6 +50,10 @@
/// </summary>
private IconViewControl btnCollect = null;
/// <summary>
+ /// 鐢垫睜鎺т欢
+ /// </summary>
+ private IconViewControl btnBattery = null;
+ /// <summary>
/// 鏄惁鑾峰彇缃戝叧鍙嶉鐨勭粨鏋� 0:娌℃湁鑾峰彇寰楀埌 1:宸茬粡鑾峰彇寰楀埌
/// </summary>
private int ResponeResult = 0;
@@ -57,6 +61,10 @@
/// 鍒ゆ柇鏄惁鏈夊紑鍏冲姛鑳�
/// </summary>
private bool isHadOpenSwitch = true;
+ /// <summary>
+ /// 褰撳墠閫夋嫨鐨勬埧闂�
+ /// </summary>
+ public Common.Room nowSelectRoom = null;
#endregion
@@ -79,25 +87,27 @@
/// 鍒濆鍖栨帶浠�
/// </summary>
/// <param name="i_device">鎸囧畾璁惧</param>
- public virtual void InitControl(CommonDevice i_device)
+ /// <param name="i_nowSelectRoom">褰撳墠閫夋嫨鐨勬埧闂�(鏈夌偣鐢ㄥ)</param>
+ public virtual void InitControl(CommonDevice i_device, Common.Room i_nowSelectRoom)
{
this.device = i_device;
+ this.nowSelectRoom = i_nowSelectRoom;
//鑳屾櫙鍥剧墖
this.btnBackGroud = new PicViewControl(this.Width, this.Height, false);
btnBackGroud.UnSelectedImagePath = "Item/FunctionCardView.png";
btnBackGroud.SelectedImagePath = "Item/FunctionCardViewSelected.png";
btnBackGroud.Gravity = Gravity.CenterHorizontal;
- this.AddChidren(btnBackGroud, ChidrenBindMode.BindEventOnly);
+ this.AddChidren(btnBackGroud, ChidrenBindMode.BindEvent);
//璁惧鍚嶇О鎺т欢
- this.btnDeviceName = new NormalViewControl(320, 63, true);
+ this.btnDeviceName = new NormalViewControl(360, 63, true);
btnDeviceName.X = HdlControlLogic.Current.GetPictrueRealSize(40);
btnDeviceName.Y = HdlControlLogic.Current.GetPictrueRealSize(17);
btnDeviceName.TextSize = 16;
btnDeviceName.TextColor = UserCenterColor.Current.TextGrayColor1;
btnDeviceName.SelectedTextColor = UserCenterColor.Current.White;
btnDeviceName.Text = Common.LocalDevice.Current.GetDeviceEpointName(i_device);
- this.AddChidren(btnDeviceName, ChidrenBindMode.BindEventOnly);
+ this.AddChidren(btnDeviceName, ChidrenBindMode.BindEvent);
//鏀堕泦鎺т欢
this.btnCollect = new IconViewControl(107);
@@ -115,7 +125,7 @@
{
//鍙栨秷鏀惰棌
HdlRoomLogic.Current.DeleteLoveDevice(i_device);
- if (HdlRoomLogic.Current.CurrentRoom.IsLove == true)
+ if (this.nowSelectRoom.IsLove == true)
{
//濡傛灉褰撳墠鎴块棿鏄垜鐨勫枩鐖辩殑璇�,鍥炶皟鍗$墖琚垹闄ょ殑浜嬩欢
this.CardNeedRemoveEvent?.Invoke();
@@ -136,22 +146,22 @@
fraDeviceRound.X = HdlControlLogic.Current.GetPictrueRealSize(44);
fraDeviceRound.Y = HdlControlLogic.Current.GetPictrueRealSize(101);
fraDeviceRound.BackgroundColor = Common.ZigbeeColor.Current.GXCForFunctionUnSelectedBackgroundColor;
- this.AddChidren(fraDeviceRound, ChidrenBindMode.BindEventOnly);
+ this.AddChidren(fraDeviceRound, ChidrenBindMode.BindEvent);
//璁惧鍥炬爣鎺т欢
this.btnDeviceIcon = new IconViewControl(86);
btnDeviceIcon.Gravity = Gravity.Center;
fraDeviceRound.AddChidren(btnDeviceIcon);
- this.ChangedChidrenBindMode(fraDeviceRound, ChidrenBindMode.BindEventOnly);
+ this.ChangedChidrenBindMode(fraDeviceRound, ChidrenBindMode.BindEvent);
//鐘舵�佹枃鏈帶浠�
- this.btnStatu = new NormalViewControl(HdlControlLogic.Current.GetPictrueRealSize(280), HdlControlLogic.Current.GetPictrueRealSize(63), false);
+ this.btnStatu = new NormalViewControl(HdlControlLogic.Current.GetPictrueRealSize(400), HdlControlLogic.Current.GetPictrueRealSize(63), false);
btnStatu.X = HdlControlLogic.Current.GetPictrueRealSize(46);
btnStatu.Y = HdlControlLogic.Current.GetPictrueRealSize(236);
btnStatu.TextColor = UserCenterColor.Current.TextColor1;
btnStatu.SelectedTextColor = Common.ZigbeeColor.Current.GXCTextSelectedColor;
btnStatu.IsBold = true;
- this.AddChidren(btnStatu, ChidrenBindMode.BindEventOnly);
+ this.AddChidren(btnStatu, ChidrenBindMode.BindEvent);
//寮�鍏虫帶浠�(涓嶅姞鍏ョ埗鎺т欢涓�)
this.btnSwitch = new PicViewControl(109, 104);
@@ -159,6 +169,21 @@
btnSwitch.Y = HdlControlLogic.Current.GetPictrueRealSize(202);
btnSwitch.UnSelectedImagePath = "Item/Switch1.png";
btnSwitch.SelectedImagePath = "Item/SwitchSelected1.png";
+
+ //鐢垫睜鎺т欢
+ if (this.device.Type == DeviceType.IASZone)
+ {
+ this.btnBattery = new IconViewControl(69);
+ btnBattery.X = HdlControlLogic.Current.GetPictrueRealSize(348);
+ btnBattery.Y = HdlControlLogic.Current.GetPictrueRealSize(236);
+ btnBattery.UnSelectedImagePath = "Item/Battery.png";
+ btnBattery.SelectedImagePath = "Item/BatterySelected.png";
+ this.AddChidren(btnBattery, ChidrenBindMode.BindEvent);
+ if (this.device.IsBatteryDown == false)
+ {
+ btnBattery.Visible = false;
+ }
+ }
//鍒锋柊淇℃伅
this.RefreshControlInfo(i_device);
@@ -195,6 +220,8 @@
}
//璁惧鍥炬爣涔熷埛鏂�
Common.LocalDevice.Current.SetDeviceIconToControl2(btnDeviceIcon, i_device);
+ //鍚嶅瓧鍒锋柊
+ this.btnDeviceName.Text = Common.LocalDevice.Current.GetDeviceEpointName(i_device);
//妫�娴嬭澶囨槸鍚︽槸鎵撳紑鐘舵��
bool isOpen = this.CheckIsOpenStatu(i_device);
if (this.isHadOpenSwitch == true && i_device.HadReadDeviceStatu == false)
@@ -203,6 +230,13 @@
//绛夊緟缃戝叧鍥炲鍚庝細閲嶆柊鍒锋柊,涓嶇劧涓�鐩存槸鍏抽棴鐘舵��
isOpen = false;
}
+ //濡傛灉鏄紶鎰熷櫒绫�,鍒欓粯璁ゆ槸鍏崇殑鏁堟灉
+ if (this.device.Type == DeviceType.PMSensor || this.device.Type == DeviceType.IASZone
+ || this.device.Type == DeviceType.TemperatureSensor)
+ {
+ isOpen = false;
+ }
+
this.SetCardOpenStatu(isOpen);
}
@@ -214,35 +248,14 @@
{
//璁惧鐘舵�佸繀椤诲埛鏂�
this.btnStatu.Text = HdlDeviceOtherLogic.Current.GetDeviceStatu(this.device);
-
- if (this.btnBackGroud.IsSelected == isOpen)
- {
- //鐘舵�佷竴鏍�,鍒欎笉闇�瑕佸鐞�
- return;
- }
- //鑳屾櫙鍥剧墖
- this.btnBackGroud.IsSelected = isOpen;
- //璁惧鍚嶇О鎺т欢
- this.btnDeviceName.IsSelected = isOpen;
- this.btnDeviceName.IsBold = isOpen;
- //璁惧鐨勮儗鏅渾鍦堝浘
- if (isOpen == true)
- {
- fraDeviceRound.BackgroundColor = Common.ZigbeeColor.Current.GXCForFunctionBackgroundColor;
- }
- else
- {
- fraDeviceRound.BackgroundColor = Common.ZigbeeColor.Current.GXCForFunctionUnSelectedBackgroundColor;
- }
- //璁惧鍥炬爣鎺т欢
- this.btnDeviceIcon.IsSelected = isOpen;
- //鐘舵�佹枃鏈帶浠�
- this.btnStatu.IsSelected = isOpen;
//寮�鍏虫帶浠�
- if (btnSwitch != null)
+ if (btnSwitch != null && this.btnSwitch.IsSelected != isOpen)
{
this.btnSwitch.IsSelected = isOpen;
}
+
+ //鍒囨崲鍗$墖鐘舵�佺壒鏁�
+ this.SwitchCardStatuAppeal(isOpen);
}
/// <summary>
@@ -294,7 +307,7 @@
//濡傛灉杩欎釜鍑芥暟琚噸鍐欑殑璇�,鍒欎唬琛ㄨ繖涓澶囨湁寮�鍏冲姛鑳�
this.isHadOpenSwitch = false;
//榛樿鐢ㄥ湪绾跨姸鎬佹潵鍒ゆ柇
- return i_device.IsOnline == 1;
+ return Common.LocalDevice.Current.CheckDeviceIsOnline(i_device);
}
@@ -306,10 +319,9 @@
/// 娣卞害鍗$墖淇℃伅鐨勮繑鍥炰簨浠�(搴曞眰涓撶敤)
/// </summary>
/// <param name="device">璁惧</param>
- /// <param name="room">鎴块棿</param>
- public void CardDetailInfoBackEvent(CommonDevice device, Common.Room room)
+ public void CardDetailInfoBackEvent(CommonDevice device)
{
- if (HdlRoomLogic.Current.CurrentRoom.IsLove == true)
+ if (this.nowSelectRoom.IsLove == true)
{
//濡傛灉鏄富椤靛彇娑堟悳钘忕殑璇�,鍥炶皟鍗$墖琚垹闄ょ殑鍑芥暟
if (HdlRoomLogic.Current.IsCollectInRoom(device) == false)
@@ -322,7 +334,7 @@
{
//濡傛灉杩欎釜璁惧鏀瑰彉浜嗘埧闂寸殑璇�,鍥炶皟鍗$墖琚垹闄ょ殑鍑芥暟
var nowRoom = HdlRoomLogic.Current.GetRoomByDevice(device);
- if (nowRoom == null || nowRoom.Id != HdlRoomLogic.Current.CurrentRoom.Id)
+ if (nowRoom == null || nowRoom.Id != this.nowSelectRoom.Id)
{
this.CardNeedRemoveEvent?.Invoke();
return;
@@ -343,13 +355,18 @@
/// <param name="oldOpenStatu">璁惧鐩墠鐨勫紑鍏崇姸鎬�</param>
public void StartCheckResponeResult(bool oldOpenStatu)
{
+ if (Common.Config.Instance.Home.IsVirtually == true)
+ {
+ //濡傛灉浣忓畢涓鸿櫄鎷熶綇瀹�,鍒欐鍔熻兘鏃犳晥
+ return;
+ }
this.ResponeResult = 0;
//寮�鍏虫寜閽笉鑳藉啀鐐瑰嚮
if (btnSwitch != null) { this.btnSwitch.CanClick = false; }
HdlThreadLogic.Current.RunThread(() =>
{
- int waitime = 30;
+ int waitime = 40;
while (waitime > 0)
{
System.Threading.Thread.Sleep(100);
@@ -359,8 +376,15 @@
break;
}
waitime--;
+ //2绉掔殑鏃跺��,杩樻槸鎺ュ彈涓嶅埌鐨勮瘽,寮哄埗鍐嶆鍒锋柊璁惧鐘舵��
+ if (waitime == 20)
+ {
+ //浠庢柊鍙戦�佽幏鍙栬澶囩殑鐘舵��(寮哄埗)
+ this.device.HadReadDeviceStatu = false;
+ this.SendStatuComand();
+ }
}
- if (waitime <= 0)
+ if (waitime <= 0 && this.Parent != null)
{
//娌℃湁鑾峰彇寰楀埌缁撴灉
HdlThreadLogic.Current.RunMain(() =>
@@ -384,6 +408,43 @@
this.ResponeResult = 1;
}
+ /// <summary>
+ /// 鎺ユ敹缃戝叧鍥炲鐨勭姸鎬�(true:宸茬粡鎺ユ敹鍒扮綉鍏崇殑鍥炲 false:杩樻病鏈夋帴鏀跺埌缃戝叧鍥炲)
+ /// </summary>
+ /// <returns></returns>
+ public bool ReceiveResponeResultStatu()
+ {
+ return this.ResponeResult == 1;
+ }
+
+ #endregion
+
+ #region 鈻� 鏄剧ず浣庣數閲廮________________________
+
+ /// <summary>
+ /// 鍒锋柊鐢垫睜鐢甸噺鐘舵��
+ /// </summary>
+ public void RefreshBatteryStatu()
+ {
+ if (this.btnBattery == null) { return; }
+ if (this.device.IsBatteryDown == true)
+ {
+ //鐢甸噺浣�,鏄剧ず鍥炬爣
+ if (this.btnBattery.Visible == false)
+ {
+ this.btnBattery.Visible = true;
+ }
+ }
+ else
+ {
+ //鐢甸噺瓒冲,闅愯棌鍥炬爣
+ if (this.btnBattery.Visible == true)
+ {
+ this.btnBattery.Visible = false;
+ }
+ }
+ }
+
#endregion
#region 鈻� 涓�鑸柟娉昣__________________________
@@ -409,6 +470,89 @@
#endregion
+ #region 鈻� 鍗$墖闂儊鐗规晥_______________________
+
+ /// <summary>
+ /// 鏄惁澶勪簬鐗规晥涓�
+ /// </summary>
+ private bool isAppeal = false;
+ /// <summary>
+ /// 寮�鍚崱鐗囬棯鐑佺壒鏁�
+ /// </summary>
+ public void StartCardLightAppeal()
+ {
+ //璁惧鐘舵�佸繀椤诲埛鏂�
+ this.btnStatu.Text = HdlDeviceOtherLogic.Current.GetDeviceStatu(this.device);
+
+ if (this.isAppeal == true) { return; }
+ this.isAppeal = true;
+
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ //闂儊5绉�,闂撮殧400姣
+ int count = 5000 / 400;
+ bool isOpen = false;
+ while (this.Parent != null && count >= 0)
+ {
+ //闂儊鐗规晥
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ isOpen = !isOpen;
+ this.SwitchCardStatuAppeal(isOpen);
+ });
+ System.Threading.Thread.Sleep(400);
+ count--;
+ }
+ if (this.Parent != null && isOpen == false)
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //缁撴潫鏃�,榛樿涓烘墦寮�鐗规晥
+ this.SwitchCardStatuAppeal(true);
+ }, ShowErrorMode.NO);
+ }
+ this.isAppeal = false;
+
+ }, ShowErrorMode.NO);
+ }
+
+ /// <summary>
+ /// 鍒囨崲鍗$墖鐘舵�佺壒鏁�
+ /// </summary>
+ public void SwitchCardStatuAppeal(bool isOpen)
+ {
+ if (this.btnBackGroud.IsSelected == isOpen)
+ {
+ //鐘舵�佷竴鏍�,鍒欎笉闇�瑕佸鐞�
+ return;
+ }
+ //鑳屾櫙鍥剧墖
+ this.btnBackGroud.IsSelected = isOpen;
+ //璁惧鍚嶇О鎺т欢
+ this.btnDeviceName.IsSelected = isOpen;
+ this.btnDeviceName.IsBold = isOpen;
+ //璁惧鐨勮儗鏅渾鍦堝浘
+ if (isOpen == true)
+ {
+ fraDeviceRound.BackgroundColor = Common.ZigbeeColor.Current.GXCForFunctionBackgroundColor;
+ }
+ else
+ {
+ fraDeviceRound.BackgroundColor = Common.ZigbeeColor.Current.GXCForFunctionUnSelectedBackgroundColor;
+ }
+ //璁惧鍥炬爣鎺т欢
+ this.btnDeviceIcon.IsSelected = isOpen;
+ //鐘舵�佹枃鏈帶浠�
+ this.btnStatu.IsSelected = isOpen;
+ //鐢垫睜鎺т欢
+ if (this.btnBattery != null && this.btnBattery.Visible == true)
+ {
+ this.btnBattery.IsSelected = isOpen;
+ }
+ }
+
+ #endregion
+
#region 鈻� 鎺т欢鎽ф瘉___________________________
/// <summary>
--
Gitblit v1.8.0