From 9ef48d7b2da7c408b53f73be0f6eef3cbac1c84a Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期四, 19 十一月 2020 10:23:45 +0800
Subject: [PATCH] Evoyo.Home1.1.0120111601_Release
---
ZigbeeApp/Shared/Common/Device.cs | 186 +---------------------------------------------
1 files changed, 4 insertions(+), 182 deletions(-)
diff --git a/ZigbeeApp/Shared/Common/Device.cs b/ZigbeeApp/Shared/Common/Device.cs
index 4d1050a..ff806cc 100755
--- a/ZigbeeApp/Shared/Common/Device.cs
+++ b/ZigbeeApp/Shared/Common/Device.cs
@@ -81,10 +81,6 @@
/// 璁惧鐨勬�诲洖璺�(keys:Mac鍦板潃 value:鍏ㄩ儴绔彛鍙�)
/// </summary>
private Dictionary<string, HashSet<int>> dicDeviceEpoint = new Dictionary<string, HashSet<int>>();
- /// <summary>
- /// 鐗╃悊璁惧灞炰簬鍝釜鎴块棿鐨勮褰�
- /// </summary>
- private Dictionary<string, string> dicDeviceRoomId = null;
#endregion
@@ -188,7 +184,7 @@
//鎴愬憳韬唤鐨勬椂鍊�,鍒犻櫎鎺夐潪娉曠殑缃戝叧鏂囦欢
this.DeleteGatewayFileByMemberModel();
//鍒濆鍖栫墿鐞嗚澶囨墍灞炴埧闂寸殑璁板綍
- this.InitRealDeviceRoomId();
+ HdlRoomLogic.Current.InitRealDeviceRoomId();
#if DEBUG
if (UserCenterResourse.HideOption.CenterHideMenu == 1)
@@ -363,7 +359,7 @@
if (listDeleteMac.Count > 0)
{
//灏嗙湡瀹炵墿鐞嗚澶囦粠鎴块棿涓Щ闄�
- this.DeleteRealDeviceFromRoom(listDeleteMac);
+ HdlRoomLogic.Current.DeleteRealDeviceFromRoom(listDeleteMac);
}
return statu;
@@ -792,13 +788,9 @@
{
this.DeleteMemmoryDevice(device);
}
+ //绉婚櫎鐪熷疄璁惧鐨勬埧闂寸储寮�
+ HdlRoomLogic.Current.DeleteRealDeviceFromRoom(listdevice[0]);
- if (this.dicDeviceRoomId.ContainsKey(listdevice[0].DeviceAddr) == true)
- {
- //绉婚櫎鐪熷疄璁惧鐨勬埧闂寸储寮�
- this.dicDeviceRoomId.Remove(listdevice[0].DeviceAddr);
- this.SaveRealDeviceRoomId(null, null);
- }
return true;
}
@@ -2449,176 +2441,6 @@
info.ConcreteType = DeviceConcreteType.Sensor_DoorWindow;
info.ConcreteText = Language.StringByID(R.MyInternationalizationString.uSensorDoorWindow);
}
- }
-
- #endregion
-
- #region 鈻� 鐗╃悊璁惧鎵�灞炴埧闂確__________________
-
- /// <summary>
- /// 鍒濆鍖栫墿鐞嗚澶囨墍灞炴埧闂寸殑璁板綍
- /// </summary>
- private void InitRealDeviceRoomId()
- {
- this.dicDeviceRoomId = new Dictionary<string, string>();
- string fullName = DirNameResourse.DeviceRoomIdFile;
- var strData = HdlFileLogic.Current.ReadFileTextContent(fullName);
- if (strData != null)
- {
- this.dicDeviceRoomId = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(strData);
- }
- }
-
- /// <summary>
- /// 鑾峰彇鍏ㄩ儴鐗╃悊璁惧鎵�灞炴埧闂寸殑璁板綍
- /// </summary>
- /// <returns></returns>
- public Dictionary<string, string> GetAllRealDeviceRoomData()
- {
- return this.dicDeviceRoomId;
- }
-
- /// <summary>
- /// 淇濆瓨鐗╃悊璁惧鎵�灞炴埧闂寸殑璁板綍
- /// </summary>
- /// <param name="listDevice">闇�瑕佷繚瀛樼殑璁惧瀵硅薄</param>
- /// <param name="roomId">闇�瑕佷繚瀛樼殑鍝釜璁惧鐨勬埧闂碔D</param>
- /// <param name="saveRoadDevice">濡傛灉鍙湁涓�涓洖璺�,鏄惁鎶婂洖璺殑鎴块棿涓�璧蜂慨鏀�</param>
- public void SaveRealDeviceRoomId(List<CommonDevice> listDevice, string roomId, bool saveRoadDevice = true)
- {
- if (listDevice == null || listDevice.Count == 0)
- {
- return;
- }
- //濡傛灉璁惧鍙湁涓�涓洖璺紝濡傛灉鏀瑰彉浜嗙湡瀹炶澶囧尯鍩燂紝鍒欏畠鐨勫洖璺殑鍖哄煙涔熶竴璧锋敼浜�
- if (saveRoadDevice == true && listDevice.Count == 1)
- {
- if ((listDevice[0] is OTADevice) == false)
- {
- //ota璁惧涓嶉渶瑕佸鐞�
- HdlRoomLogic.Current.ChangedRoom(listDevice[0], roomId, false);
- }
- }
- bool save = false;
- if (roomId == string.Empty)
- {
- //閫夋嫨鐨勬槸鏈垎閰�
- this.dicDeviceRoomId.Remove(listDevice[0].DeviceAddr);
- save = true;
- }
- else
- {
- if (this.dicDeviceRoomId.ContainsKey(listDevice[0].DeviceAddr) == false)
- {
- this.dicDeviceRoomId[listDevice[0].DeviceAddr] = roomId;
- save = true;
- }
- else
- {
- //2020.05.18杩藉姞:濡傛灉璁板綍鐨勬埧闂碔D鏄笉瀛樺湪鐨勮瘽,鍒欓噸鏂拌鐩�
- var room = HdlRoomLogic.Current.GetRoomById(this.dicDeviceRoomId[listDevice[0].DeviceAddr]);
- if (room == null || this.dicDeviceRoomId[listDevice[0].DeviceAddr] != roomId)
- {
- this.dicDeviceRoomId[listDevice[0].DeviceAddr] = roomId;
- save = true;
- }
- }
- }
-
- if (save == true)
- {
- //淇濆瓨璁板綍
- HdlFileLogic.Current.SaveFileContent(DirNameResourse.DeviceRoomIdFile, this.dicDeviceRoomId);
-
- //娣诲姞鑷姩澶囦唤
- HdlAutoBackupLogic.AddOrEditorFile(DirNameResourse.DeviceRoomIdFile);
- }
- }
-
- /// <summary>
- /// 鑾峰彇鐪熷疄鐗╃悊璁惧鐨勬埧闂村悕瀛�
- /// </summary>
- /// <param name="device">璁惧鐨勬煇涓�涓洖璺�</param>
- /// <returns></returns>
- public string GeteRealDeviceRoomName(CommonDevice device)
- {
- if (this.dicDeviceRoomId.ContainsKey(device.DeviceAddr) == false)
- {
- //鏈垎閰嶅尯鍩�
- return Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom);
- }
- var room = HdlRoomLogic.Current.GetRoomById(this.dicDeviceRoomId[device.DeviceAddr]);
- return HdlRoomLogic.Current.GetRoomName(room);
- }
-
- /// <summary>
- /// 鑾峰彇鐪熷疄鐗╃悊璁惧灞炰簬鍝釜鎴块棿
- /// </summary>
- /// <param name="device">璁惧鐨勬煇涓�涓洖璺�</param>
- /// <returns></returns>
- public Room GeteRealDeviceRoom(CommonDevice device)
- {
- if (this.dicDeviceRoomId.ContainsKey(device.DeviceAddr) == false)
- {
- return null;
- }
- return HdlRoomLogic.Current.GetRoomById(this.dicDeviceRoomId[device.DeviceAddr]);
- }
-
- /// <summary>
- /// 灏嗙湡瀹炵墿鐞嗚澶囦粠鎴块棿涓Щ闄�
- /// </summary>
- /// <param name="device">闅忎究涓�涓洖璺�</param>
- public void DeleteRealDeviceFromRoom(CommonDevice device)
- {
- //灏嗙湡瀹炵墿鐞嗚澶囦粠鎴块棿涓Щ闄�
- this.DeleteRealDeviceFromRoom(new List<string>() { device.DeviceAddr });
- }
-
- /// <summary>
- /// 灏嗙湡瀹炵墿鐞嗚澶囦粠鎴块棿涓Щ闄�
- /// </summary>
- /// <param name="listMac">璁惧Mac鍦板潃</param>
- public void DeleteRealDeviceFromRoom(List<string> listMac)
- {
- bool save = false;
- foreach (var deviceMacAddr in listMac)
- {
- if (this.dicDeviceRoomId.ContainsKey(deviceMacAddr) == true)
- {
- this.dicDeviceRoomId.Remove(deviceMacAddr);
- save = true;
- }
- }
- if (save == false)
- {
- //娌℃湁鏀瑰彉,涓嶉渶瑕佷繚瀛�
- return;
- }
- //淇濆瓨璁板綍
- HdlFileLogic.Current.SaveFileContent(DirNameResourse.DeviceRoomIdFile, this.dicDeviceRoomId);
-
- //娣诲姞鑷姩澶囦唤
- HdlAutoBackupLogic.AddOrEditorFile(DirNameResourse.DeviceRoomIdFile);
- }
-
- /// <summary>
- /// 鏍规嵁鎴块棿ID,绉婚櫎鎸囧畾鐨勭湡瀹炵墿鐞嗚澶囩殑鎵�灞炴埧闂磋褰�
- /// </summary>
- /// <param name="i_RoomId"></param>
- public void DeleteRealDeviceByRoomId(string i_RoomId)
- {
- var listDeleteKey = new List<string>();
- foreach (var deviceAddr in this.dicDeviceRoomId.Keys)
- {
- if (this.dicDeviceRoomId[deviceAddr] == i_RoomId
- && listDeleteKey.Contains(deviceAddr) == false)
- {
- listDeleteKey.Add(deviceAddr);
- }
- }
- //灏嗙湡瀹炵墿鐞嗚澶囦粠鎴块棿涓Щ闄�
- this.DeleteRealDeviceFromRoom(listDeleteKey);
}
#endregion
--
Gitblit v1.8.0