From 9c16d3614d9b88c637f967518a329f239fcd3aaf Mon Sep 17 00:00:00 2001
From: lss <316519258@qq.com>
Date: 星期五, 12 六月 2020 09:22:04 +0800
Subject: [PATCH] 2020.06.12
---
ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetsForm.cs | 384 ++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 324 insertions(+), 60 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetsForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetsForm.cs
index cc4040a..b996092 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetsForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Panel/PanelFangyueFreshAirTargetsForm.cs
@@ -38,7 +38,7 @@
/// <summary>
/// 鏄剧ず琚粦瀹氳澶囨垨鍦烘櫙鐨剉iew
/// </summary>
- VerticalFrameRefreshControl midVerticalScrolViewLayout;
+ VerticalRefreshLayout midVerticalScrolViewLayout;
/// <summary>
/// 鏄剧ず鎴块棿鐨剉iew
/// </summary>
@@ -103,10 +103,7 @@
/// PM缁戝畾鐩爣鍥炶皟
/// </summary>
public Action<string> actionPMTarget = null;
- /// <summary>
- /// 鏄惁鑳界偣鍑讳繚瀛樻寜閽�
- /// </summary>
- private bool canSave = true;
+
#endregion
#region UI璁捐
@@ -224,7 +221,7 @@
btnMidTopLayout.AddChidren(btnHorizontalScrolViewLayout);
//璁惧鏍�
- midVerticalScrolViewLayout = new VerticalFrameRefreshControl()
+ midVerticalScrolViewLayout = new VerticalRefreshLayout()
{
Y = btnMidTopLayout.Bottom,
Height = Application.GetRealHeight(1145),
@@ -335,6 +332,19 @@
curentOldRoom = btnRoom;
curentOldRoomFrameLayout = btnRoomFrameLayout;
}
+ }
+
+ if (index == roomTempList.Count - 1 && index > 3)
+ {
+ var btnRoomFrameLayoutEmpty = new FrameLayout
+ {
+ Height = Application.GetMinReal(159),
+ Width = Application.GetMinReal(50),
+ Y = Application.GetRealHeight(23),
+ X = Application.GetRealWidth(5),
+ BorderWidth = 1,
+ };
+ btnHorizontalScrolViewLayout.AddChidren(btnRoomFrameLayoutEmpty);
}
EventHandler<MouseEventArgs> eHandlerRoom = (sender, e) =>
@@ -475,12 +485,20 @@
break;
case 2:
devicePic.UnSelectedImagePath = "Device/SensorTemperature.png";
+ if (device.Type == DeviceType.PMSensor)
+ {
+ btnBindName.Text = Common.LocalDevice.Current.GetDeviceEpointName(device) + "-" + Language.StringByID(R.MyInternationalizationString.TemperatureSensor);
+ }
break;
case 3:
devicePic.UnSelectedImagePath = "Device/SensorHumidity.png";
+ if (device.Type == DeviceType.PMSensor)
+ {
+ btnBindName.Text = Common.LocalDevice.Current.GetDeviceEpointName(device) + "-" + Language.StringByID(R.MyInternationalizationString.HumiditySensor);
+ }
break;
case 4:
- devicePic.UnSelectedImagePath = "Device/FreshAirEpoint.png";
+ devicePic.UnSelectedImagePath = "Device/AirQualitySensorEpoint.png";
break;
}
#endregion
@@ -710,7 +728,7 @@
currentPanelSupportBindDeviceList = GetAllRoomSupportDeviceList();
//鑾峰彇闈㈡澘涓瓨鍦ㄧ殑缁戝畾鐩爣
- var panelBindListRes = await this.curControlDev.GetDeviceBindAsync();
+ var panelBindListRes = HdlDeviceBindLogic.Current.GetDeviceBindAsync(curControlDev);
if (panelBindListRes != null && panelBindListRes.getAllBindResponseData != null)
{
curControlDev.bindList.Clear();
@@ -728,17 +746,18 @@
new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
});
}
+
targetList.Clear();
//閫変腑鐩爣鍒楄〃 targetList
if (currentPanelSupportBindDeviceList.Count != 0 && curControlDev.bindList.Count != 0)
{
- foreach (var bindDev in currentPanelSupportBindDeviceList)
+ foreach (var bindDev in curControlDev.bindList)
{
- var mainKey = bindDev.DeviceAddr + bindDev.DeviceEpoint;
- var dev = curControlDev.bindList.Find(obj => (obj != null) && (obj.BindMacAddr + obj.BindEpoint == mainKey));
+ var mainKey = bindDev.BindMacAddr + bindDev.BindEpoint;
+ var dev = currentPanelSupportBindDeviceList.Find(obj => (obj != null) && (obj.DeviceAddr + obj.DeviceEpoint == mainKey));
if (dev != null)
{
- var device = LocalDevice.Current.GetDevice(bindDev.DeviceAddr, bindDev.DeviceEpoint);
+ var device = LocalDevice.Current.GetDevice(dev.DeviceAddr, dev.DeviceEpoint);
if (device != null)
{
switch (curDeviceBindType)
@@ -767,6 +786,14 @@
oldTargetList.Add(device);
}
}
+ if (device.Type == DeviceType.PMSensor)
+ {
+ if (bindDev.BindCluster == 1026)
+ {
+ targetList.Add(device);
+ oldTargetList.Add(device);
+ }
+ }
break;
case 3:
if (device.Type == DeviceType.TemperatureSensor)
@@ -783,9 +810,25 @@
targetList.Add(device);
oldTargetList.Add(device);
}
+ if (device.Type == DeviceType.PMSensor)
+ {
+ if (bindDev.BindCluster == 1029)
+ {
+ targetList.Add(device);
+ oldTargetList.Add(device);
+ }
+ }
break;
case 4:
//PM2.5
+ if (device.Type == DeviceType.PMSensor)
+ {
+ if (bindDev.BindCluster == 1066)
+ {
+ targetList.Add(device);
+ oldTargetList.Add(device);
+ }
+ }
break;
}
@@ -902,6 +945,7 @@
break;
case 4:
//PM2.5
+ removeDevice.BindCluster = 1066;
break;
}
removeDevice.BindMacAddr = bd.DeviceAddr;
@@ -909,56 +953,128 @@
delDevice.RemoveBindList.Add(removeDevice);
var delResult = new DelDeviceBindResponseAllData();
- delResult = await curControlDev.DelDeviceBindAsync(delDevice);
- if (delResult != null && delResult.removeBindResultResponseData != null)
+ delResult = HdlDeviceBindLogic.Current.DelDeviceBindAsync(delDevice);
+ if (delResult == null)
{
- if (delResult.removeBindResultResponseData.Result == 0)
+ Application.RunOnMainThread(() =>
{
- switch (curDeviceBindType)
+ 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;
+ }
+ else
+ {
+ if (delResult.removeBindResultResponseData == null)
+ {
+ if (delResult.delDeviceBindResponseData != null)
{
- case 1:
- if (actionFreshAirTarget != null)
+ foreach (var d in delResult.delDeviceBindResponseData.RemoveBindList)
+ {
+ if (d.Result == 1)
{
- actionFreshAirTarget("");
+ switch (curDeviceBindType)
+ {
+ case 1:
+ if (actionFreshAirTarget != null)
+ {
+ actionFreshAirTarget("");
+ }
+ break;
+ case 2:
+ if (actionTemperatureTarget != null)
+ {
+ actionTemperatureTarget("");
+ }
+ break;
+ case 3:
+ if (actionHumidityTarget != null)
+ {
+ actionHumidityTarget("");
+ }
+ break;
+ case 4:
+ if (actionPMTarget != null)
+ {
+ actionPMTarget("");
+ }
+ break;
+ }
+ Application.RunOnMainThread(() =>
+ {
+ CommonPage.Loading.Hide();
+ btnFinifh.Enable = true;
+ btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ this.RemoveFromParent();
+ });
}
- break;
- case 2:
- if (actionTemperatureTarget != null)
+ else
{
- actionTemperatureTarget("");
+ 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;
}
- break;
- case 3:
- if (actionHumidityTarget != null)
- {
- actionHumidityTarget("");
- }
- break;
- case 4:
- if (actionPMTarget != null)
- {
- actionPMTarget("");
- }
- break;
+ }
}
- Application.RunOnMainThread(() =>
- {
- CommonPage.Loading.Hide();
- btnFinifh.Enable = true;
- btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
- this.RemoveFromParent();
- });
}
else
{
- Application.RunOnMainThread(() =>
+ if (delResult.removeBindResultResponseData.Result == 0)
{
- 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;
+ switch (curDeviceBindType)
+ {
+ case 1:
+ if (actionFreshAirTarget != null)
+ {
+ actionFreshAirTarget("");
+ }
+ break;
+ case 2:
+ if (actionTemperatureTarget != null)
+ {
+ actionTemperatureTarget("");
+ }
+ break;
+ case 3:
+ if (actionHumidityTarget != null)
+ {
+ actionHumidityTarget("");
+ }
+ break;
+ case 4:
+ if (actionPMTarget != null)
+ {
+ actionPMTarget("");
+ }
+ break;
+ }
+ Application.RunOnMainThread(() =>
+ {
+ CommonPage.Loading.Hide();
+ btnFinifh.Enable = true;
+ btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
+ this.RemoveFromParent();
+ });
+
+ }
+ else
+ {
+ 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;
+ }
}
}
}
@@ -1023,7 +1139,42 @@
{
var delDevice = DelBindDevice(bd);
var delResult = new DelDeviceBindResponseAllData();
- delResult = await curControlDev.DelDeviceBindAsync(delDevice);
+ delResult = HdlDeviceBindLogic.Current.DelDeviceBindAsync(delDevice);
+
+ if (delResult == null)
+ {
+ 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;
+ }
+ else
+ {
+ if (delResult.removeBindResultResponseData == null)
+ {
+ if (delResult.delDeviceBindResponseData != null)
+ {
+ foreach (var d in delResult.delDeviceBindResponseData.RemoveBindList)
+ {
+ if (d.Result != 1)
+ {
+ 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;
+ }
+ }
+ }
+ }
+ }
if (delResult != null && delResult.removeBindResultResponseData != null)
{
if (delResult.removeBindResultResponseData.Result != 0)
@@ -1048,7 +1199,42 @@
{
var delDevice = DelBindDevice(curBindDevice);
var delResult = new DelDeviceBindResponseAllData();
- delResult = await curControlDev.DelDeviceBindAsync(delDevice);
+ delResult = HdlDeviceBindLogic.Current.DelDeviceBindAsync(delDevice);
+
+ if (delResult == null)
+ {
+ 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;
+ }
+ else
+ {
+ if (delResult.removeBindResultResponseData == null)
+ {
+ if (delResult.delDeviceBindResponseData != null)
+ {
+ foreach (var d in delResult.delDeviceBindResponseData.RemoveBindList)
+ {
+ if (d.Result != 1)
+ {
+ 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;
+ }
+ }
+ }
+ }
+ }
if (delResult != null && delResult.removeBindResultResponseData != null)
{
if (delResult.removeBindResultResponseData.Result != 0)
@@ -1087,17 +1273,33 @@
break;
case 4:
//PM2.5
+ addBindInfo.BindCluster = 1066;
break;
}
addBindInfo.BindType = 0;
addBindInfo.BindMacAddr = de.DeviceAddr;
addBindInfo.BindEpoint = de.DeviceEpoint;
+ addBindeDev.BindName = Common.LocalDevice.Current.GetDeviceEpointName(de);
+ switch (curDeviceBindType)
+ {
+ case 2:
+ if (de.Type == DeviceType.PMSensor)
+ {
+ addBindeDev.BindName = Common.LocalDevice.Current.GetDeviceEpointName(de) + "-" + Language.StringByID(R.MyInternationalizationString.TemperatureSensor);
+ }
+ break;
+ case 3:
+ if (de.Type == DeviceType.PMSensor)
+ {
+ addBindeDev.BindName = Common.LocalDevice.Current.GetDeviceEpointName(de) + "-" + Language.StringByID(R.MyInternationalizationString.HumiditySensor);
+ }
+ break;
+ }
addBindeDev.BindList.Add(addBindInfo);
- bindName = de.DeviceEpointName;
}
var dev = new AddedDeviceBindResponseAllData();
- dev = await curControlDev.AddDeviceBindAsync(addBindeDev);
+ dev = HdlDeviceBindLogic.Current.AddDeviceBindAsync(addBindeDev);
if (dev == null || dev.addedDeviceBindResponseData == null)
{
Application.RunOnMainThread(() =>
@@ -1113,33 +1315,31 @@
{
if (dev.addedDeviceBindResponseData.Result == 0)
{
- curControlDev.bindList = dev.addedDeviceBindResponseData.BindList;
targetList.Clear();
-
switch (curDeviceBindType)
{
case 1:
if (actionFreshAirTarget != null)
{
- actionFreshAirTarget(bindName);
+ actionFreshAirTarget(addBindeDev.BindName);
}
break;
case 2:
if (actionTemperatureTarget != null)
{
- actionTemperatureTarget(bindName);
+ actionTemperatureTarget(addBindeDev.BindName);
}
break;
case 3:
if (actionHumidityTarget != null)
{
- actionHumidityTarget(bindName);
+ actionHumidityTarget(addBindeDev.BindName);
}
break;
case 4:
if (actionPMTarget != null)
{
- actionPMTarget(bindName);
+ actionPMTarget(addBindeDev.BindName);
}
break;
}
@@ -1274,6 +1474,7 @@
break;
case 4:
//PM2.5
+ removeDevice.BindCluster = 1066;
break;
}
removeDevice.BindMacAddr = bd.DeviceAddr;
@@ -1313,6 +1514,7 @@
foreach (var de in room.ListDevice)
{
var device = LocalDevice.Current.GetDevice(de);
+
if (device != null)
{
//鑾峰彇璁惧绫诲瀷鐨�
@@ -1347,6 +1549,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;
}
@@ -1398,6 +1611,17 @@
roomIncludeMatchTempDevice.Add(device);
}
}
+ else if (device.Type == DeviceType.PMSensor)
+ {
+ var dev = device as PMSensor;
+ foreach (var clu in dev.InClusterList)
+ {
+ if (clu.InCluster == 1026)
+ {
+ roomIncludeMatchTempDevice.Add(device);
+ }
+ }
+ }
}
}
return roomIncludeMatchTempDevice;
@@ -1426,6 +1650,17 @@
if (dev.SensorDiv == 2)
{
roomIncludeMatchHumpDevice.Add(device);
+ }
+ }
+ else if (device.Type == DeviceType.PMSensor)
+ {
+ var dev = device as PMSensor;
+ foreach (var clu in dev.InClusterList)
+ {
+ if (clu.InCluster == 1029)
+ {
+ roomIncludeMatchHumpDevice.Add(device);
+ }
}
}
}
@@ -1549,6 +1784,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;
@@ -1602,6 +1855,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