From 9f326f4000847e6167d8166fa2f6a66f53cb3734 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期四, 17 十二月 2020 09:07:13 +0800
Subject: [PATCH] 新云端Ver1.3

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs |   79 +++++++++++++++++++++++++++------------
 1 files changed, 54 insertions(+), 25 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs
index ee1cf2c..5e26485 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs
@@ -37,6 +37,10 @@
             /// 绌鸿皟鐩爣
             /// </summary>
             AC = 5,
+            /// <summary>
+            /// 鍦版殩鐩爣
+            /// </summary>
+            Fh = 6,
         }
 
         #endregion
@@ -126,7 +130,7 @@
                 case BindType.FreshAir:
                     foreach (var deviceKeys in curRoom.ListDevice)
                     {
-                        var device = LocalDevice.Current.GetDevice(deviceKeys);
+                        var device = HdlDeviceCommonLogic.Current.GetDevice(deviceKeys);
                         if (device != null)
                         {
                             if (BindInfo.checkRealFreshAirDevice(device) == false)
@@ -147,7 +151,7 @@
                     curRoomDeviceListTemp = GetMatchHumiditySensorDevice(curRoom);
                     foreach (var deviceKeys in curRoom.ListDevice)
                     {
-                        var device = LocalDevice.Current.GetDevice(deviceKeys);
+                        var device = HdlDeviceCommonLogic.Current.GetDevice(deviceKeys);
                         if (device != null)
                         {
                             if (device.Type == DeviceType.FreshAirHumiditySensor)
@@ -160,7 +164,7 @@
                 case BindType.PM:
                     foreach (var deviceKeys in curRoom.ListDevice)
                     {
-                        var device = LocalDevice.Current.GetDevice(deviceKeys);
+                        var device = HdlDeviceCommonLogic.Current.GetDevice(deviceKeys);
                         if (device != null)
                         {
                             if (device.Type == DeviceType.PMSensor)
@@ -173,7 +177,7 @@
                 case BindType.AC:
                     foreach (var deviceKeys in curRoom.ListDevice)
                     {
-                        var device = LocalDevice.Current.GetDevice(deviceKeys);
+                        var device = HdlDeviceCommonLogic.Current.GetDevice(deviceKeys);
                         if (device != null)
                         {
                             if (device.Type == DeviceType.Thermostat)
@@ -200,7 +204,7 @@
             List<CommonDevice> roomIncludeMatchTempDevice = new List<CommonDevice>();
             foreach (var de in room.ListDevice)
             {
-                var device = LocalDevice.Current.GetDevice(de);
+                var device = HdlDeviceCommonLogic.Current.GetDevice(de);
                 if (device != null)
                 {
                     //鐢垫睜璁惧涓嶆敮鎸佺粦瀹�
@@ -211,6 +215,10 @@
                     if (device.Type == DeviceType.TemperatureSensor)
                     {
                         var dev = device as TemperatureSensor;
+                        if (BindInfo.checkRealTemperatureDevice(device) == false)
+                        {
+                            continue;
+                        }
                         if (dev.SensorDiv == 1)
                         {
                             roomIncludeMatchTempDevice.Add(device);
@@ -241,7 +249,7 @@
             List<CommonDevice> roomIncludeMatchHumpDevice = new List<CommonDevice>();
             foreach (var de in room.ListDevice)
             {
-                var device = LocalDevice.Current.GetDevice(de);
+                var device = HdlDeviceCommonLogic.Current.GetDevice(de);
                 if (device != null)
                 {
                     //鐢垫睜璁惧涓嶆敮鎸佺粦瀹�
@@ -252,6 +260,10 @@
                     if (device.Type == DeviceType.TemperatureSensor)
                     {
                         var dev = device as TemperatureSensor;
+                        if (BindInfo.checkRealTemperatureDevice(device) == false)
+                        {
+                            continue;
+                        }
                         if (dev.SensorDiv == 2)
                         {
                             roomIncludeMatchHumpDevice.Add(device);
@@ -344,7 +356,7 @@
                         case BindInfo.BindType.FreshAir:
                             foreach (var de in room.ListDevice)
                             {
-                                var device = LocalDevice.Current.GetDevice(de);
+                                var device = HdlDeviceCommonLogic.Current.GetDevice(de);
                                 if (device != null)
                                 {
                                     if (BindInfo.checkRealFreshAirDevice(device) == false)
@@ -365,7 +377,7 @@
                             roomIncludeMatchDevice = GetMatchHumiditySensorDevice(room);
                             foreach (var de in room.ListDevice)
                             {
-                                var device = LocalDevice.Current.GetDevice(de);
+                                var device = HdlDeviceCommonLogic.Current.GetDevice(de);
                                 if (device != null)
                                 {
                                     if (device.Type == DeviceType.FreshAirHumiditySensor)
@@ -378,7 +390,7 @@
                         case BindInfo.BindType.PM:
                             foreach (var de in room.ListDevice)
                             {
-                                var device = LocalDevice.Current.GetDevice(de);
+                                var device = HdlDeviceCommonLogic.Current.GetDevice(de);
                                 if (device != null)
                                 {
                                     if (device.Type == DeviceType.PMSensor)
@@ -391,7 +403,7 @@
                         case BindInfo.BindType.AC:
                             foreach (var de in room.ListDevice)
                             {
-                                var device = LocalDevice.Current.GetDevice(de);
+                                var device = HdlDeviceCommonLogic.Current.GetDevice(de);
                                 if (device != null)
                                 {
                                     if (device.Type == DeviceType.Thermostat)
@@ -440,7 +452,7 @@
             List<CommonDevice> UndistributeCommonDeviceListTemp = new List<CommonDevice>();
 
             //鑾峰彇鏈湴璁惧鍒楄〃
-            foreach (var tempDev in Shared.Common.LocalDevice.Current.listAllDevice)
+            foreach (var tempDev in HdlDeviceCommonLogic.Current.listAllDevice)
             {
                 //鑾峰彇璁惧鎵�灞炴埧闂�
                 var tempDevRoom = HdlRoomLogic.Current.GetRoomByDevice(tempDev);
@@ -572,7 +584,7 @@
                         }
                         foreach (var deviceKeys in r.ListDevice)
                         {
-                            var device = LocalDevice.Current.GetDevice(deviceKeys);
+                            var device = HdlDeviceCommonLogic.Current.GetDevice(deviceKeys);
                             if (device != null)
                             {
                                 if (BindInfo.checkRealFreshAirDevice(device) == false)
@@ -615,7 +627,7 @@
                         }
                         foreach (var deviceKeys in r.ListDevice)
                         {
-                            var device = LocalDevice.Current.GetDevice(deviceKeys);
+                            var device = HdlDeviceCommonLogic.Current.GetDevice(deviceKeys);
                             if (device != null)
                             {
                                 if (device.Type == DeviceType.FreshAirHumiditySensor)
@@ -635,7 +647,7 @@
                         }
                         foreach (var deviceKeys in r.ListDevice)
                         {
-                            var device = LocalDevice.Current.GetDevice(deviceKeys);
+                            var device = HdlDeviceCommonLogic.Current.GetDevice(deviceKeys);
                             if (device != null)
                             {
                                 if (device.Type == DeviceType.PMSensor)
@@ -655,7 +667,7 @@
                         }
                         foreach (var deviceKeys in r.ListDevice)
                         {
-                            var device = LocalDevice.Current.GetDevice(deviceKeys);
+                            var device = HdlDeviceCommonLogic.Current.GetDevice(deviceKeys);
                             if (device != null)
                             {
                                 if (device.Type == DeviceType.Thermostat)
@@ -700,7 +712,7 @@
         }
 
         /// <summary>
-        /// 鏄惁鏄湡瀹炵殑绌鸿皟璁惧 銆愰儴鍒嗘槸鑳界粦瀹氱┖璋冪殑璁惧銆� 
+        /// 鏄惁鏄湡瀹炵殑绌鸿皟璁惧 銆愯繃婊erver绔�� 
         /// </summary>
         /// <param name="device"></param>
         /// <returns></returns>
@@ -717,7 +729,7 @@
         }
 
         /// <summary>
-        /// 鏄惁鏄湡瀹炵殑鏂伴璁惧 銆愰儴鍒嗘槸鑳界粦瀹氭柊椋庣殑璁惧銆� 
+        /// 鏄惁鏄湡瀹炵殑鏂伴璁惧 銆愯繃婊erver绔�� 
         /// </summary>
         /// <param name="device"></param>
         /// <returns></returns>
@@ -725,12 +737,8 @@
         {
             bool result = true;
             //鑾峰彇璁惧绫诲瀷鐨�
-            var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { device });
-            if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.ButtonPanel_FangyueFreshAir)
-            {
-                result = false;
-            }
-            if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.ButtonPanel_SimpleEnvironment)
+            var clu = device.OutClusterList.Find((obj) => obj.OutCluster == 514);
+            if (clu != null)
             {
                 result = false;
             }
@@ -738,7 +746,28 @@
         }
 
         /// <summary>
-        /// 妫�娴嬭璁惧鑳藉惁鏄剧ず
+        /// 鏄惁鏄湡瀹炵殑娓╁害璁惧 銆愯繃婊erver绔�� 
+        /// </summary>
+        /// <param name="device"></param>
+        /// <returns></returns>
+        public static bool checkRealTemperatureDevice(CommonDevice device)
+        {
+            bool result = true;
+            //鑾峰彇璁惧灞炰簬銆愮畝绾﹀鍔熻兘闈㈡澘銆�
+            var deviceEnumInfo = HdlDeviceCommonLogic.Current.GetMyDeviceEnumInfo(new List<CommonDevice> { device });
+            if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleMultifunction)
+            {
+                if (device.Type == DeviceType.TemperatureSensor && device.DeviceEpoint == 1)
+                {
+                    //绠�绾﹀鍔熻兘闈㈡澘绗�1鍥炶矾鏄竴涓粦瀹氭俯婀垮害浼犳劅鍣ㄧ绫诲瀷锛屼笉鏄湡鐨勬俯婀垮害鐨勪紶鎰熷櫒锛岄渶瑕佸睆钄芥帀
+                    result = false;
+                }
+            }
+            return result;
+        }
+
+        /// <summary>
+        /// 妫�娴嬭璁惧鑳藉惁鏄剧ず銆愯繃婊erver绔�� 
         /// </summary>
         /// <param name="device"></param>
         /// <returns></returns>
@@ -773,7 +802,7 @@
             }
             foreach (var deviceKeys in room.ListDevice)
             {
-                var device = Common.LocalDevice.Current.GetDevice(deviceKeys);
+                var device = HdlDeviceCommonLogic.Current.GetDevice(deviceKeys);
                 //妫�娴嬭璁惧鑳藉惁鏄剧ず
                 if (CheckCanShowDevice(device, curDeviceBindType) == false)
                 {

--
Gitblit v1.8.0