From 52005ed57f3f7bc796fdd1a878e4f298a126f1e8 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期二, 29 十月 2019 16:48:47 +0800
Subject: [PATCH] 2019.10.29-3
---
ZigbeeApp/Shared/Common/Room.cs | 40 ++++++++++++++++++++++++++++++----------
1 files changed, 30 insertions(+), 10 deletions(-)
diff --git a/ZigbeeApp/Shared/Common/Room.cs b/ZigbeeApp/Shared/Common/Room.cs
old mode 100755
new mode 100644
index 50956db..23c861c
--- a/ZigbeeApp/Shared/Common/Room.cs
+++ b/ZigbeeApp/Shared/Common/Room.cs
@@ -216,8 +216,9 @@
get
{
List<DeviceUI> deviceList = new List<DeviceUI>();
- foreach (var room in Lists)
- {
+ for (int i = 0; i < Lists.Count; i++)
+ {
+ var room = Lists[i];
if (room.IsSharedRoom)
{
continue;
@@ -226,8 +227,9 @@
{
continue;
}
- foreach (var device in room.DeviceUIList)
+ for (int j = 0; j < room.DeviceUIList.Count; j++)
{
+ var device = room.DeviceUIList[j];
if (device == null || device.CommonDevice == null)
{
continue;
@@ -427,8 +429,21 @@
//璁惧锛坉eviceUI锛�
beforeRoom.DeviceUIList.Clear();
foreach (var deviceFilePath in beforeRoom.DeviceUIFilePathList)
- {
- beforeRoom.DeviceUIList.Add(Common.LocalDevice.Current.GetDeviceUI(deviceFilePath));
+ {
+ var jsonInfo = Encoding.UTF8.GetString(Global.ReadFileByHomeId(deviceFilePath));
+ var tempDeviceUI = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceUI>(jsonInfo);
+ if (tempDeviceUI != null)
+ {
+ var delCommon = tempDeviceUIList.Find((obj) => obj.CommonDevice != null && tempDeviceUI.CommonDevice != null && obj.CommonDevice.Type == tempDeviceUI.CommonDevice.Type && obj.CommonDevice.CommonDeviceAddrEpoint == tempDeviceUI.CommonDevice.CommonDeviceAddrEpoint);
+ if (delCommon != null)
+ {
+ beforeRoom.DeviceUIList.Add(delCommon);
+ }
+ else
+ {
+ beforeRoom.AddDevice(deviceFilePath);
+ }
+ }
}
//鍦烘櫙(SceneUI)
beforeRoom.SceneUIList.Clear();
@@ -491,6 +506,10 @@
/// <param name="roomId">鎴块棿ID</param>
public Room GetRoomById(string roomId)
{
+ if (string.IsNullOrEmpty(roomId))
+ {
+ return null;
+ }
return Lists.Find((obj) => obj.Id == roomId);
}
@@ -536,7 +555,7 @@
deviceUI.DeviceAddr = device.DeviceAddr;
deviceUI.DeviceEpoint = device.DeviceEpoint;
- return Lists.Find((obj) => obj.IsLove == false && obj.DeviceUIFilePathList.Contains(deviceUI.FileName));
+ return Lists.Find((obj) => obj.DeviceUIFilePathList.Contains(deviceUI.FileName));
}
/// <summary>
@@ -742,8 +761,9 @@
public void AddDevice(string deviceUIFilePath)
{
if (string.IsNullOrEmpty(deviceUIFilePath))
- {
- return;
+
+ {
+ return;
}
var jsonInfo = Encoding.UTF8.GetString(Global.ReadFileByHomeId(deviceUIFilePath));
var deviceUI = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceUI>(jsonInfo);
@@ -980,7 +1000,7 @@
return -1;
}
}
-
+
var getSceneIdAllData = await ZigBee.Device.Scene.GetSceneNewIdAsync(sceneName);
if (getSceneIdAllData == null || getSceneIdAllData.getSceneIdData == null)
{
@@ -1466,6 +1486,6 @@
}
#endregion
-
+
}
}
--
Gitblit v1.8.0