From a5b3c4bae726ef6770d4bfcbf2f4b50a37ed4a15 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期五, 06 三月 2020 15:31:36 +0800
Subject: [PATCH] 删除了郭雪城的 DeviceUi 这个类

---
 ZigbeeApp/Shared/Common/Device.cs |  155 ++++++++++++++++++++++++++++-----------------------
 1 files changed, 84 insertions(+), 71 deletions(-)

diff --git a/ZigbeeApp/Shared/Common/Device.cs b/ZigbeeApp/Shared/Common/Device.cs
index 35989ca..e91f2c2 100755
--- a/ZigbeeApp/Shared/Common/Device.cs
+++ b/ZigbeeApp/Shared/Common/Device.cs
@@ -45,12 +45,14 @@
             {
                 lock (dicAllDevice)
                 {
-                    var list = new List<CommonDevice>();
-                    foreach (var device in dicAllDevice.Values)
+                    //鍏堣幏鍙栧叏閮ㄧ殑Mac
+                    var listMac = new List<string>();
+                    foreach (var strMac in this.dicDeviceEpoint.Keys)
                     {
-                        list.Add(device);
+                        listMac.Add(strMac);
                     }
-                    return list;
+                    //鏍规嵁MAC鍦板潃,鑾峰彇鍏ㄩ儴鍥炶矾鐨勮澶囧璞�(寮哄埗鎺掑簭)
+                    return this.GetDevicesByMac(listMac);
                 }
             }
         }
@@ -241,7 +243,16 @@
 
             //鑾峰彇杩欎釜缃戝叧鐨勬湰鍦版墍鏈夎澶�
             string gwID = HdlGatewayLogic.Current.GetGatewayId(zbGateway);
-            List<CommonDevice> listLocalDevices = this.GetDeviceByGatewayID(gwID, true);
+            List<CommonDevice> listLocalDevices = this.GetDeviceByGatewayID(gwID);
+            //鑾峰彇ota璁惧
+            foreach (var ota in this.dicOTADevice.Values)
+            {
+                if (ota.CurrentGateWayId == gwID)
+                {
+                    listLocalDevices.Add(ota);
+                }
+            }
+
             Dictionary<string, CommonDevice> dicExist = new Dictionary<string, CommonDevice>();
             foreach (var device in listLocalDevices)
             {
@@ -555,12 +566,12 @@
         /// <param name="deleteRoom">鏄惁浠庢埧闂村垹闄�</param>
         public void DeleteMemmoryDevice(CommonDevice device, bool deleteRoom = true)
         {
-            if (deleteRoom == true && Room.CurrentRoom != null)
+            if (deleteRoom == true && HdlRoomLogic.Current.CurrentRoom != null)
             {
                 //浠庢埧闂翠腑鍒犻櫎
-                Room.CurrentRoom.DeleteDevice(device);
+                HdlRoomLogic.Current.DeleteDevice(device);
                 //鍒犻櫎鎴戠殑鍠滅埍鐨勮澶�
-                Room.CurrentRoom.DeleteLoveDevice(device);
+                HdlRoomLogic.Current.DeleteLoveDevice(device);
             }
 
             //鍒犻櫎缂撳瓨
@@ -702,36 +713,23 @@
         /// <summary>
         /// 鏍规嵁缃戝叧ID鑾峰彇鎵�鏈夌殑璁惧
         /// </summary>
-        /// <param name="gwId">缃戝叧ID</param>
-        /// <param name="getOtaDevice">鏄惁鑾峰彇ota璁惧</param>
+        /// <param name="gwId">缃戝叧ID</param>>
         /// <returns></returns>
-        public List<CommonDevice> GetDeviceByGatewayID(string gwId, bool getOtaDevice = false)
+        public List<CommonDevice> GetDeviceByGatewayID(string gwId)
         {
-            List<CommonDevice> list = new List<CommonDevice>();
             lock (dicAllDevice)
             {
-                //鍚勭綉鍏崇殑鎵�鏈夎澶�
+                var listMac = new List<string>();
+                //鍚勭綉鍏崇殑鎵�鏈夎澶囩殑Mac
                 foreach (CommonDevice device in this.dicAllDevice.Values)
                 {
                     if (gwId == device.CurrentGateWayId)
                     {
-                        list.Add(device);
+                        listMac.Add(device.DeviceAddr);
                     }
                 }
-                if (getOtaDevice == true)
-                {
-                    //鑾峰彇ota璁惧
-                    foreach (var ota in this.dicOTADevice.Values)
-                    {
-                        if (ota.CurrentGateWayId == gwId)
-                        {
-                            list.Add(ota);
-                        }
-                    }
-                }
+                return this.GetDevicesByMac(listMac);
             }
-
-            return list;
         }
 
         /// <summary>
@@ -798,6 +796,39 @@
                 }
                 return -1;
             });
+            return list;
+        }
+
+        /// <summary>
+        /// 鏍规嵁MAC鍦板潃,鑾峰彇鍏ㄩ儴鍥炶矾鐨勮澶囧璞�(寮哄埗鎺掑簭)
+        /// </summary>
+        /// <param name="DeviceAddr">Mac鍦板潃</param>
+        /// <returns></returns>
+        public List<CommonDevice> GetDevicesByMac(List<string> listMacAddr)
+        {
+            //鍏堟帓搴�
+            listMacAddr.Sort();
+
+            var list = new List<CommonDevice>();
+            foreach (string strMac in listMacAddr)
+            {
+                var listEpoint = new List<int>();
+                //鑾峰彇鍏ㄩ儴鐨勭鐐�
+                foreach (int epoint in this.dicDeviceEpoint[strMac])
+                {
+                    listEpoint.Add(epoint);
+                }
+                //鐒跺悗鎺掑簭
+                listEpoint.Sort();
+                foreach (int epoint in listEpoint)
+                {
+                    var device = this.GetDevice(strMac, epoint);
+                    if (device != null)
+                    {
+                        list.Add(device);
+                    }
+                }
+            }
             return list;
         }
 
@@ -1266,43 +1297,6 @@
 
         #endregion
 
-        #region 鈻� 璁惧UI鐩稿叧_________________________
-
-        /// <summary>
-        /// 鑾峰彇璁惧鎵�鍖归厤鐨勮澶嘦I瀵硅薄
-        /// </summary>
-        /// <param name="device"></param>
-        /// <returns></returns>
-        public DeviceUI GetDeviceUI(CommonDevice device)
-        {
-            //鍒涘缓涓�涓柊鐨勪笢瑗跨粰杩囧幓
-            var deviceUi = new DeviceUI();
-            deviceUi.DeviceAddr = device.DeviceAddr;
-            deviceUi.DeviceEpoint = device.DeviceEpoint;
-            return deviceUi;
-        }
-
-        /// <summary>
-        /// 鑾峰彇璁惧鎵�鍖归厤鐨勮澶嘦I瀵硅薄
-        /// </summary>
-        /// <param name="filePath"></param>
-        /// <returns></returns>
-        public DeviceUI GetDeviceUI(string filePath)
-        {
-            string[] arry = filePath.Split(new string[] { "_" }, StringSplitOptions.RemoveEmptyEntries);
-            if (arry.Length != 4)
-            {
-                return null;
-            }
-            //鍒涘缓涓�涓柊鐨勪笢瑗跨粰杩囧幓
-            var deviceUi = new DeviceUI();
-            deviceUi.DeviceAddr = arry[2];
-            deviceUi.DeviceEpoint = Convert.ToInt32(arry[3]);
-            return deviceUi;
-        }
-
-        #endregion
-
         #region 鈻� 鑾峰彇鑷畾涔夌殑璁惧绫诲瀷_______________
 
         /// <summary>
@@ -1329,7 +1323,11 @@
                 return info;
             }
             //鑾峰彇绗笁鏂硅澶囩殑銆愯澶囩被鍨嬨��
-            return this.GetNotHdlMyDeviceEnumInfo(listdevice);
+            info = this.GetNotHdlMyDeviceEnumInfo(listdevice);
+            //杩欓噷鍐嶆鍒ゆ柇鏄惁鏄渤涓滆澶�,鏈夊彲鑳藉畠鐨勬ā鍧桰D鍐欓敊浜�
+            info.IsHdlDevice = this.IsHdlDevice(checkDevice);
+
+            return info;
         }
 
         /// <summary>
@@ -1774,7 +1772,7 @@
                     //鍗曠函鍙槸Ota璁惧鍒欎笉澶勭悊
                     return;
                 }
-                Common.Room.CurrentRoom.ChangedRoom(listDevice[0], roomId, false);
+                HdlRoomLogic.Current.ChangedRoom(listDevice[0], roomId, false);
             }
         }
 
@@ -1790,7 +1788,7 @@
                 //鏈垎閰嶅尯鍩�
                 return Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom);
             }
-            var room = Room.CurrentRoom.GetRoomById(this.dicDeviceRoomId[device.DeviceAddr]);
+            var room = HdlRoomLogic.Current.GetRoomById(this.dicDeviceRoomId[device.DeviceAddr]);
             if (room != null)
             {
                 return room.Name;
@@ -1810,7 +1808,7 @@
             {
                 return null;
             }
-            return Room.CurrentRoom.GetRoomById(this.dicDeviceRoomId[device.DeviceAddr]);
+            return HdlRoomLogic.Current.GetRoomById(this.dicDeviceRoomId[device.DeviceAddr]);
         }
 
         #endregion
@@ -1834,7 +1832,7 @@
         /// <returns></returns>
         public string GetDeviceMainKeys(CommonDevice device)
         {
-            return device.DeviceAddr + device.DeviceEpoint;
+            return this.GetDeviceMainKeys(device.DeviceAddr, device.DeviceEpoint);
         }
 
         /// <summary>
@@ -1845,7 +1843,7 @@
         /// <returns></returns>
         public string GetDeviceMainKeys(string DeviceAddr, int DeviceEpoint)
         {
-            return DeviceAddr + DeviceEpoint;
+            return DeviceAddr + "_" + DeviceEpoint;
         }
 
         /// <summary>
@@ -2064,6 +2062,8 @@
                     statu = 2;
                 }
             }
+
+            statu = 1;
             return listDevice;
         }
 
@@ -2254,9 +2254,10 @@
             //*********************************************************************
             //鏂拌澶囨坊鍔犳柟娉曪細
             //1銆佸湪杩欓噷濉啓涓婃ā鍧桰D锛岀劧鍚庢槸 DeviceConcreteType 锛岀劧鍚庢槸 DeviceBeloneType
-            //2銆佺劧鍚庡湪鏈�涓嬮潰娣诲姞銆愯澶囩殑鍏蜂綋绫诲瀷銆戯紝銆愯澶囩殑鎵�灞炵被鍨嬨��
+            //2銆佺劧鍚庡湪鏈�涓嬮潰鐨勩�愯嚜瀹氫箟璁惧绫诲瀷銆戞姌鍙犳爮閲屾坊鍔犮�愯澶囩殑鍏蜂綋绫诲瀷銆戯紝銆愯澶囩殑鎵�灞炵被鍨嬨��
             //3銆佷互璁惧鐨勫叿浣撶被鍨嬩负鍚嶅瓧(鍘绘帀銆�-銆�)娣诲姞璁惧鐨勩�愭墍灞炲浘鐗囥�戯紝銆愮湡瀹炵墿鐞嗗浘鐗囥�戙�傚洖璺浘鐗囬渶瑕佺壒娈婂鐞�
             //4銆佹坊鍔燫鏂囦欢,娣诲姞Language鏂囦欢
+            //5銆佸鏋滈渶瑕佸叡鏈夊浘鐗�,鍒欏湪杩欎釜鍑芥暟鐨勬渶搴曚笅娣诲姞
             //*********************************************************************
 
             //=========鈽呪槄寮�鍚堝笜绫�(100-199)鈽呪槄=========
@@ -2272,6 +2273,8 @@
             this.dicDeviceModelIdEnum["MPT4R4L/S-ZB.18"] = "220-200";//绠�绾�4鎸夐敭闈㈡澘
             this.dicDeviceModelIdEnum["MPT3R3L/S-ZB.18"] = "221-200";//绠�绾�3鎸夐敭闈㈡澘
             this.dicDeviceModelIdEnum["MPT2R2L/S-ZB.18"] = "222-200";//绠�绾�2鎸夐敭闈㈡澘
+            this.dicDeviceModelIdEnum["MPT4SC/S-ZB.18"] = "224-200";//绠�绾�4鎸夐敭鍦烘櫙闈㈡澘
+            this.dicDeviceModelIdEnum["MPT2W/S-ZB.18"] = "226-200";//绠�绾�2璺獥甯橀潰鏉�
             this.dicDeviceModelIdEnum["MP2B/TILE-ZB.18"] = "240-200";//鏂规偊2鎸夐敭杞昏Е寮忛潰鏉�
             this.dicDeviceModelIdEnum["MP4B/TILE-ZB.18"] = "241-200";//鏂规偊4鎸夐敭杞昏Е寮忛潰鏉�
             this.dicDeviceModelIdEnum["MP8B/TILE-ZB.18"] = "242-200";//鏂规偊8鎸夐敭杞昏Е寮忛潰鏉�
@@ -2326,6 +2329,8 @@
 
 
             //鉁┾湬鉁┾湬鉁╅渶瑕佸叡鏈夌殑鍥剧墖瀵硅薄鉁┾湬鉁┾湬鉁�
+            //涓よ�呴兘鏄疍eviceConcreteType
+            //Keys:鎸囧畾鐨勮澶�    value:娌跨敤鐨勫浘鐗囨槸鍝璁惧鐨�
             this.dicPictrueShard = new Dictionary<string, string>();
             this.dicPictrueShard["ButtonPanel_SimpleFour"] = "ButtonPanel_Four";//绠�绾�4鎸夐敭闈㈡澘 娌跨敤 4鎸夐敭鐨勫浘鏍�
             this.dicPictrueShard["ButtonPanel_SimpleThree"] = "ButtonPanel_Three";//绠�绾�3鎸夐敭闈㈡澘 娌跨敤 3鎸夐敭鐨勫浘鏍�
@@ -2402,6 +2407,14 @@
         /// </summary>
         ButtonPanel_SimpleTwo = 222,
         /// <summary>
+        /// 绠�绾�4鎸夐敭鍦烘櫙闈㈡澘 闀滃儚id锛�224
+        /// </summary>
+        ButtonPanel_FourButtonScene = 224,
+        /// <summary>
+        /// 绠�绾�2璺獥甯橀潰鏉� 闀滃儚id锛�226
+        /// </summary>
+        ButtonPanel_TwoButtonCurtain = 226,
+        /// <summary>
         /// 鏂规偊2鎸夐敭杞昏Е寮忛潰鏉� 闀滃儚id锛�240
         /// </summary>
         ButtonPanel_FangyueTwo = 240,

--
Gitblit v1.8.0