From 3291885285dfd5d4f665c20676307878dc3163bc Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期五, 20 十二月 2019 16:28:53 +0800
Subject: [PATCH] 请合并最新代码(优化设备不支持的功能)
---
ZigbeeApp/Shared/Common/Room.cs | 81 +++++++++++++++++++++++++++++++---------
1 files changed, 62 insertions(+), 19 deletions(-)
diff --git a/ZigbeeApp/Shared/Common/Room.cs b/ZigbeeApp/Shared/Common/Room.cs
index 36341a6..65f8a03 100755
--- a/ZigbeeApp/Shared/Common/Room.cs
+++ b/ZigbeeApp/Shared/Common/Room.cs
@@ -280,12 +280,12 @@
if (Config.Instance.Home.RoomFilePathList.Contains("Room_Favorite.json") == false)
{
//榛樿娣诲姞鍠滅埍鐨勬埧闂�--绂佹淇敼鎴块棿鍚�
- var love = new Room { Name = Language.StringByID(R.MyInternationalizationString.Favorite), BackgroundImage = "Room/r0.png", Id = LoveRoomId };
- love.Save(true);
+ var love = new Room { Name = Language.StringByID(R.MyInternationalizationString.Favorite), BackgroundImage = "RoomIcon/0.JPG", Id = LoveRoomId };
+ love.Save(false);
//娣诲姞鍒癶ouse 鎴块棿璺緞鍒楄〃
var currentHome = Config.Instance.Home;
currentHome.RoomFilePathList.Insert(0, love.FileName);
- currentHome.Save();
+ currentHome.Save(false);
}
foreach (var roomFilePath in Config.Instance.Home.RoomFilePathList)
{
@@ -298,8 +298,10 @@
room.Name = $"{room.Name}";
}
Lists.Add(room);
+
}
}
+ Config.Instance.Home.InitFloor();
}
/// <summary>
@@ -321,15 +323,45 @@
homeTemp.AddRoomListFilePath(fRoom);
}
+ var listRoomFile = new List<string>();
foreach (string fileName in listFile)
{
if (fileName.StartsWith("Room_"))
{
homeTemp.AddRoomListFilePath(fileName);
+ listRoomFile.Add(fileName);
}
}
+ //妫�娴嬫ゼ灞傛暟鎹殑鍚堟硶鎬�
+ CheckFloorData(listRoomFile);
+
homeTemp.Save(false);
InitAllRoom();
+ }
+
+ /// <summary>
+ /// 妫�娴嬫ゼ灞傛暟鎹殑鍚堟硶鎬�
+ /// </summary>
+ /// <param name="listRoomFile"></param>
+ private static void CheckFloorData(List<string> listRoomFile)
+ {
+ for (int i = 0; i < listRoomFile.Count; i++)
+ {
+ try
+ {
+ var byteData = Global.ReadFileByHomeId(listRoomFile[i]);
+ string valueData = System.Text.Encoding.UTF8.GetString(byteData);
+ var roomTemp = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.Room>(valueData);
+
+ //妫�娴嬪涓墜鏈烘潵鍥炲垱寤�,鐒跺悗鍙堝垹闄や箣鍚�,妤煎眰鏁版嵁涓嶈兘淇濊瘉100%鍚屾鐨勯棶棰�
+ if (roomTemp.FloorId != string.Empty && Config.Instance.Home.FloorDics.ContainsKey(roomTemp.FloorId) == false)
+ {
+ //鏈煡妤煎眰
+ Config.Instance.Home.FloorDics[roomTemp.FloorId] = Language.StringByID(R.MyInternationalizationString.uUnKnownFloor);
+ }
+ }
+ catch (Exception ex) { HdlLogLogic.Current.WriteLog(ex); }
+ }
}
#endregion
@@ -587,21 +619,25 @@
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
- public List<Room> GetRoomsByFloorId(string id)
+ public List<Room> GetRoomsByFloorId(string id)
{
- return Lists.FindAll((obj) => obj.FloorId==id);
+ if (Config.Instance.Home.FloorDics.Count == 0)
+ {
+ return Lists;
+ }
+ return Lists.FindAll((obj) => obj.FloorId == id);
}
/// <summary>
/// 鑾峰彇褰撳墠妤煎眰鐨勬埧闂村悕绉�
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
- public List<string> GetRoomNamesByFloorId(string id)
+ public List<string> GetRoomNamesByFloorId(string id)
{
List<string> names = new List<string> { };
- foreach(var r in Lists)
+ foreach (var r in Lists)
{
- if(r.FloorId==id)
+ if (r.FloorId == id)
{
names.Add(r.Name);
}
@@ -616,6 +652,10 @@
/// <returns></returns>
public List<Room> GetRoomsByFloorIdAppendLoveRoom(string id)
{
+ if (Config.Instance.Home.FloorDics.Count == 0)
+ {
+ return Lists;
+ }
var r= Lists.FindAll((obj) => obj.FloorId == id);
r.Insert(0, GetLoveRoom());
return r;
@@ -645,7 +685,8 @@
/// </summary>
/// <param name="device">璁惧瀵硅薄</param>
/// <param name="roomId">鏂版埧闂碔d</param>
- public void ChangedRoom(CommonDevice device, string roomId)
+ /// <param name="saveRealRoom">鏄惁淇敼鐪熷疄鐗╃悊璁惧鐨勬埧闂�,涓嶅嚭鎰忓,杩欎釜鍊奸粯璁や负true鍗冲彲</param>
+ public void ChangedRoom(CommonDevice device, string roomId, bool saveRealRoom = true)
{
//鎴块棿鏄惁淇敼
if (this.IsRoomChanged(device, roomId) == false)
@@ -659,7 +700,7 @@
var room = this.GetRoomById(roomId);
if (room != null)
{
- room.AddDevice(device);
+ room.AddDevice(device, saveRealRoom);
}
}
@@ -748,7 +789,7 @@
#region 鈼� 娣诲姞璁惧________________________
/// <summary>
- /// 娣诲姞璁惧
+ /// 娣诲姞璁惧(姝ゆ柟娉曠洰鍓嶅彧缁欍�愭垜鐨勫枩鐖便�戜娇鐢�)
/// </summary>
/// <param name="deviceUIFilePath">Device UIF ile path.</param>
public void AddDevice(string deviceUIFilePath)
@@ -773,10 +814,11 @@
}
/// <summary>
- /// 娣诲姞璁惧
+ /// 娣诲姞璁惧(姝ゆ柟娉曠洰鍓嶅彧缁橰oom閲岄潰浣跨敤)
/// </summary>
/// <param name="device">瑕佹坊鍔犵殑璁惧瀵硅薄</param>
- public void AddDevice(CommonDevice device)
+ /// <param name="saveRealRoom">鏄惁淇敼鐪熷疄鐗╃悊璁惧鐨勬埧闂�,涓嶅嚭鎰忓,杩欎釜鍊奸粯璁や负true鍗冲彲</param>
+ public void AddDevice(CommonDevice device, bool saveRealRoom)
{
if (device == null)
{
@@ -784,9 +826,6 @@
}
//璁惧淇℃伅淇濆瓨鍒版湰鍦�
device.Save();
-
- //娣诲姞鑷姩澶囦唤
- HdlAutoBackupLogic.AddOrEditorFile(device.FilePath);
var deviceUI = Common.LocalDevice.Current.GetDeviceUI(device);
if (DeviceUIFilePathList.Contains(deviceUI.FileName) == false)
@@ -798,6 +837,11 @@
//娣诲姞鑷姩澶囦唤
HdlAutoBackupLogic.AddOrEditorFile(FileName);
+ if (saveRealRoom == true && LocalDevice.Current.GetDevicesCountByMac(device.DeviceAddr) == 1)
+ {
+ //濡傛灉鍙湁涓�涓洖璺�,鍒欎慨鏀圭湡瀹炵墿鐞嗚澶囩殑鎴块棿
+ LocalDevice.Current.SaveRealDeviceRoomId(new List<CommonDevice>() { device }, this.Id, false);
+ }
}
}
@@ -983,7 +1027,7 @@
return -1;
}
}
-
+
var getSceneIdAllData = await ZigBee.Device.Scene.GetSceneNewIdAsync(sceneName);
if (getSceneIdAllData == null || getSceneIdAllData.getSceneIdData == null)
{
@@ -1194,7 +1238,6 @@
Save();
Global.DeleteFilebyHomeId(sceneUI.FileName);
HdlAutoBackupLogic.DeleteFile(sceneUI.FileName);
- HdlAutoBackupLogic.AddOrEditorFile(FileName);
}
#endregion
@@ -1469,6 +1512,6 @@
}
#endregion
-
+
}
}
--
Gitblit v1.8.0