From edf7c324bea0556a3df9096dd41d668a9d41bf51 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期三, 13 五月 2020 15:58:29 +0800
Subject: [PATCH] 改版是门锁新功能需要给测试部的版本
---
ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetsForm.cs | 154 +++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 130 insertions(+), 24 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetsForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetsForm.cs
index e52c72f..b05bee2 100644
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetsForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetsForm.cs
@@ -103,6 +103,10 @@
/// PM缁戝畾鐩爣鍥炶皟
/// </summary>
public Action<string> actionPMTarget = null;
+ /// <summary>
+ /// 鏄惁鑳界偣鍑讳繚瀛樻寜閽�
+ /// </summary>
+ private bool canSave = true;
#endregion
#region UI璁捐
@@ -358,7 +362,6 @@
curentOldRoomFrameLayout.BackgroundImagePath = "Item/RoomIconBackgroundSelected.png";
}
curRoom = room;
- curControlDev.RoomId = room.Id;
//鏂伴闈㈡澘淇濆瓨浣胯兘
btnFinifh.Enable = true;
@@ -783,6 +786,11 @@
break;
case 4:
//PM2.5
+ if (device.Type == DeviceType.PMSensor)
+ {
+ targetList.Add(device);
+ oldTargetList.Add(device);
+ }
break;
}
@@ -865,6 +873,7 @@
/// <param name="curControlDev"></param>
void SaveTarget()
{
+ btnFinifh.Enable = false;
if (targetList.Count == 0)
{
//绌虹洰鏍�
@@ -898,6 +907,7 @@
break;
case 4:
//PM2.5
+ removeDevice.BindCluster = 1066;
break;
}
removeDevice.BindMacAddr = bd.DeviceAddr;
@@ -979,6 +989,11 @@
catch (Exception ex)
{
var mess = ex.Message;
+ Application.RunOnMainThread(() =>
+ {
+ CommonPage.Loading.Hide();
+ });
+ btnFinifh.Enable = true;
}
});
}
@@ -1012,31 +1027,32 @@
{
foreach (var bd in oldTargetList)
{
- var delDevice = new DelDeviceBindData();
- delDevice.DeviceAddr = curControlDev.DeviceAddr;
- delDevice.Epoint = curControlDev.DeviceEpoint;
-
- var removeDevice = new RemoveBindListObj();
- removeDevice.BindType = 0;
- switch (curDeviceBindType)
+ var delDevice = DelBindDevice(bd);
+ var delResult = new DelDeviceBindResponseAllData();
+ delResult = await curControlDev.DelDeviceBindAsync(delDevice);
+ if (delResult != null && delResult.removeBindResultResponseData != null)
{
- case 1:
- removeDevice.BindCluster = 514;
- break;
- case 2:
- removeDevice.BindCluster = 1026;
- break;
- case 3:
- removeDevice.BindCluster = 1029;
- break;
- case 4:
- //PM2.5
- break;
+ if (delResult.removeBindResultResponseData.Result != 0)
+ {
+ Application.RunOnMainThread(() =>
+ {
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance);
+ btnFinifh.Enable = true;
+ btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ CommonPage.Loading.Hide();
+ });
+ return;
+ }
}
- removeDevice.BindMacAddr = bd.DeviceAddr;
- removeDevice.BindEpoint = bd.DeviceEpoint;
- delDevice.RemoveBindList.Add(removeDevice);
-
+ }
+ }
+ else
+ {
+ //妫�娴嬪凡缁忕粦瀹氱殑鐩爣鏄惁涓嶅湪鏈湴鎴栬�呮病鏈夊垎閰嶅埌浠讳綍鎴块棿涓�
+ //姝ゆ椂闇�瑕佸垹闄ゅ凡缁忚缁戝畾鍒扮洰鏍囷紝鎵嶈兘缁х画缁戝畾鏂扮洰鏍�
+ if (curBindDevice != null)
+ {
+ var delDevice = DelBindDevice(curBindDevice);
var delResult = new DelDeviceBindResponseAllData();
delResult = await curControlDev.DelDeviceBindAsync(delDevice);
if (delResult != null && delResult.removeBindResultResponseData != null)
@@ -1077,6 +1093,7 @@
break;
case 4:
//PM2.5
+ addBindInfo.BindCluster = 1066;
break;
}
addBindInfo.BindType = 0;
@@ -1180,6 +1197,11 @@
}
catch (Exception ex)
{
+ Application.RunOnMainThread(() =>
+ {
+ CommonPage.Loading.Hide();
+ });
+ btnFinifh.Enable = true;
var mess = ex.Message;
}
});
@@ -1235,6 +1257,39 @@
}
/// <summary>
+ /// 妫�娴嬪凡缁忕粦瀹氱殑鐩爣鏄惁涓嶅湪鏈湴鎴栬�呮病鏈夊垎閰嶅埌浠讳綍鎴块棿涓�
+ /// </summary>
+ /// <returns></returns>
+ private DelDeviceBindData DelBindDevice(CommonDevice bd)
+ {
+ var delDevice = new DelDeviceBindData();
+ delDevice.DeviceAddr = curControlDev.DeviceAddr;
+ delDevice.Epoint = curControlDev.DeviceEpoint;
+
+ var removeDevice = new RemoveBindListObj();
+ removeDevice.BindType = 0;
+ switch (curDeviceBindType)
+ {
+ case 1:
+ removeDevice.BindCluster = 514;
+ break;
+ case 2:
+ removeDevice.BindCluster = 1026;
+ break;
+ case 3:
+ removeDevice.BindCluster = 1029;
+ break;
+ case 4:
+ //PM2.5
+ break;
+ }
+ removeDevice.BindMacAddr = bd.DeviceAddr;
+ removeDevice.BindEpoint = bd.DeviceEpoint;
+ delDevice.RemoveBindList.Add(removeDevice);
+ return delDevice;
+ }
+
+ /// <summary>
/// 鑳芥樉绀虹殑鎴块棿鍒楄〃
/// </summary>
private List<Room> GetSupportRoomList()
@@ -1265,6 +1320,7 @@
foreach (var de in room.ListDevice)
{
var device = LocalDevice.Current.GetDevice(de);
+
if (device != null)
{
//鑾峰彇璁惧绫诲瀷鐨�
@@ -1299,6 +1355,17 @@
}
break;
case 4:
+ foreach (var de in room.ListDevice)
+ {
+ var device = LocalDevice.Current.GetDevice(de);
+ if (device != null)
+ {
+ if (device.Type == DeviceType.PMSensor)
+ {
+ roomIncludeMatchDevice.Add(device);
+ }
+ }
+ }
break;
}
@@ -1335,6 +1402,11 @@
foreach (var de in room.ListDevice)
{
var device = LocalDevice.Current.GetDevice(de);
+ //鐢垫睜璁惧涓嶆敮鎸佺粦瀹�
+ if (device.ZigbeeType != 1)
+ {
+ continue;
+ }
if (device != null)
{
if (device.Type == DeviceType.TemperatureSensor)
@@ -1360,6 +1432,11 @@
foreach (var de in room.ListDevice)
{
var device = LocalDevice.Current.GetDevice(de);
+ //鐢垫睜璁惧涓嶆敮鎸佺粦瀹�
+ if (device.ZigbeeType != 1)
+ {
+ continue;
+ }
if (device != null)
{
if (device.Type == DeviceType.TemperatureSensor)
@@ -1491,6 +1568,24 @@
}
break;
case 4:
+ foreach (var r in supportRoomList)
+ {
+ if (r.ListDevice.Count == 0)
+ {
+ continue;
+ }
+ foreach (var deviceKeys in r.ListDevice)
+ {
+ var device = LocalDevice.Current.GetDevice(deviceKeys);
+ if (device != null)
+ {
+ if (device.Type == DeviceType.PMSensor)
+ {
+ currentPanelBindSupportDeviceListTemp.Add(device);
+ }
+ }
+ }
+ }
break;
}
return currentPanelBindSupportDeviceListTemp;
@@ -1544,6 +1639,17 @@
}
break;
case 4:
+ foreach (var deviceKeys in curRoom.ListDevice)
+ {
+ var device = LocalDevice.Current.GetDevice(deviceKeys);
+ if (device != null)
+ {
+ if (device.Type == DeviceType.PMSensor)
+ {
+ curRoomDeviceListTemp.Add(device);
+ }
+ }
+ }
break;
}
return curRoomDeviceListTemp;
--
Gitblit v1.8.0