From 7dd4be37cdedaf81ad40990d8cb8dce164d83f4d Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期二, 19 五月 2020 10:31:16 +0800
Subject: [PATCH] 34444444

---
 ZigbeeApp/Shared/Common/Device.cs |   31 ++++++++++++++++++++++++++++++-
 1 files changed, 30 insertions(+), 1 deletions(-)

diff --git a/ZigbeeApp/Shared/Common/Device.cs b/ZigbeeApp/Shared/Common/Device.cs
index 75fe150..00c334c 100755
--- a/ZigbeeApp/Shared/Common/Device.cs
+++ b/ZigbeeApp/Shared/Common/Device.cs
@@ -732,7 +732,7 @@
         /// <returns></returns>
         public bool DeviceIsCanFixedPosition(CommonDevice device)
         {
-            if (device.Type == DeviceType.DoorLock)
+            if (device.Type == DeviceType.DoorLock || device.Type == DeviceType.PMSensor)
             {
                 //闂ㄩ攣娌℃湁瀹氫綅鍔熻兘
                 return false;
@@ -1982,6 +1982,16 @@
                     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;
+                        save = true;
+                    }
+                }
             }
 
             if (save == true)
@@ -2063,6 +2073,25 @@
             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
 
         #region 鈻� 璁惧鎺掑簭___________________________

--
Gitblit v1.8.0