From 9a4b76398009cf76c508d61f7e48fb6f5cb7ac2d Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期二, 21 七月 2020 09:46:53 +0800
Subject: [PATCH] 请合并最新多功能面板代码

---
 ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/MutilfunctionPanelMethod.cs |  103 +++++++++++++++++++++++++++++++--------------------
 1 files changed, 62 insertions(+), 41 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/MutilfunctionPanelMethod.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/MutilfunctionPanelMethod.cs
old mode 100755
new mode 100644
index c1bac93..7e5db3d
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/MutilfunctionPanelMethod.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/MutilfunctionPanelMethod.cs
@@ -48,20 +48,41 @@
             var tempList = new List<BindListAllInfo>();
             int count1 = 0;
             int count2 = 0;
+
+            switch (curBindType)
+            {
+                case 1:
+                    curSwitchCount = 0;
+                    break;
+                case 2:
+                    curSocketCount = 0;
+                    break;
+                case 3:
+                    curLightFromRelayCount = 0;
+                    curLightCount = 0;
+                    break;
+            }
+
             foreach (var key in bindTargetsFromMutilfunctionPanelList.Keys)
             {
                 var bList = bindTargetsFromMutilfunctionPanelList[key];
                 foreach (var bDev in bList)
                 {
+                    if (curBindType == 0)
+                    {
+                        if (bDev.KeyEpoint >= 32 && bDev.KeyEpoint <= 51)
+                        {
+                            tempList.Add(bDev);
+                        }
+                    }
+
                     var device = LocalDevice.Current.GetDevice(bDev.BindMacAddr, bDev.BindEpoint);
+                    if (device == null)
+                    {
+                        continue;
+                    }
                     switch (curBindType)
                     {
-                        case 0:
-                            if (bDev.KeyEpoint >= 32 && bDev.KeyEpoint <= 51)
-                            {
-                                tempList.Add(bDev);
-                            }
-                            break;
                         case 1:
                             if (bDev.KeyEpoint >= 52 && bDev.KeyEpoint <= 61)
                             {
@@ -128,7 +149,6 @@
                                     //绌鸿皟缁戝畾绫诲瀷
                                     if (device.Type == DeviceType.Thermostat && bDev.BindCluster == 513)
                                     {
-                                        //Thermostat鏄┖璋�
                                         tempList.Add(bDev);
                                     }
                                 }
@@ -222,15 +242,21 @@
                 var bList = bindTargetsFromMutilfunctionPanelList[key];
                 foreach (var bDev in bList)
                 {
+                    if (curBindType == 0)
+                    {
+                        if (bDev.KeyEpoint >= 32 && bDev.KeyEpoint <= 51)
+                        {
+                            tempList.Remove(bDev.KeyEpoint);
+                        }
+                    }
+
                     var device = LocalDevice.Current.GetDevice(bDev.BindMacAddr, bDev.BindEpoint);
+                    if (device == null)
+                    {
+                        continue;
+                    }
                     switch (curBindType)
                     {
-                        case 0:
-                            if (bDev.KeyEpoint >= 32 && bDev.KeyEpoint <= 51)
-                            {
-                                tempList.Remove(bDev.KeyEpoint);
-                            }
-                            break;
                         case 1:
                         case 2:
                             if (bDev.KeyEpoint >= 52 && bDev.KeyEpoint <= 61)
@@ -296,7 +322,6 @@
                                     //绌鸿皟缁戝畾绫诲瀷
                                     if (device.Type == DeviceType.Thermostat && bDev.BindCluster == 513)
                                     {
-                                        //Thermostat鏄┖璋�
                                         tempList.Remove(bDev.KeyEpoint);
                                     }
                                 }
@@ -393,10 +418,10 @@
                                                 roomIncludeMatchDevice.Add(device);
                                             }
                                         }
-                                        if (device.Type == DeviceType.DimmableLight)
-                                        {
-                                            roomIncludeMatchDevice.Add(device);
-                                        }
+                                        //if (device.Type == DeviceType.DimmableLight)
+                                        //{
+                                        //    roomIncludeMatchDevice.Add(device);
+                                        //}
                                         break;
                                     case 4:
                                         if (device.Type == DeviceType.WindowCoveringDevice)
@@ -407,7 +432,10 @@
                                     case 5:
                                         if (device.Type == DeviceType.Thermostat)
                                         {
-                                            //Thermostat鏄┖璋�
+                                            if (BindInfo.checkRealAcDevice(device) == false)
+                                            {
+                                                continue;
+                                            }
                                             roomIncludeMatchDevice.Add(device);
                                         }
                                         break;
@@ -579,10 +607,10 @@
                                 {
                                     currentPanelBindSupportDeviceListTemp.Add(device);
                                 }
-                                if (device.Type == DeviceType.DimmableLight)
-                                {
-                                    currentPanelBindSupportDeviceListTemp.Add(device);
-                                }
+                                //if (device.Type == DeviceType.DimmableLight)
+                                //{
+                                //    currentPanelBindSupportDeviceListTemp.Add(device);
+                                //}
                                 break;
                             case 4:
                                 if (device.Type == DeviceType.WindowCoveringDevice)
@@ -593,7 +621,10 @@
                             case 5:
                                 if (device.Type == DeviceType.Thermostat)
                                 {
-                                    //Thermostat鏄┖璋�
+                                    if (BindInfo.checkRealAcDevice(device) == false)
+                                    {
+                                        continue;
+                                    }
                                     currentPanelBindSupportDeviceListTemp.Add(device);
                                 }
                                 break;
@@ -715,10 +746,6 @@
                                     undistruibuteDevList.Add(device);
                                 }
                             }
-                            if (device.Type == DeviceType.DimmableLight)
-                            {
-                                undistruibuteDevList.Add(device);
-                            }
                             break;
                         case 4:
                             if (device.Type == DeviceType.WindowCoveringDevice)
@@ -729,7 +756,10 @@
                         case 5:
                             if (device.Type == DeviceType.Thermostat)
                             {
-                                //Thermostat鏄┖璋�
+                                if (BindInfo.checkRealAcDevice(device) == false)
+                                {
+                                    continue;
+                                }
                                 undistruibuteDevList.Add(device);
                             }
                             break;
@@ -826,21 +856,12 @@
                                     curRoomDeviceListTemp.Add(device);
                                 }
                             }
-                            if (device.Type == DeviceType.DimmableLight)
-                            {
-                                if (deviceEnumInfo.ConcreteType != Common.DeviceConcreteType.ButtonPanel_SimpleMultifunction)
-                                {
-                                    //Thermostat鏄┖璋�
-                                    curRoomDeviceListTemp.Add(device);
-                                }
-                            }
                             break;
                         case 4:
                             if (device.Type == DeviceType.WindowCoveringDevice)
                             {
                                 if (deviceEnumInfo.ConcreteType != Common.DeviceConcreteType.ButtonPanel_SimpleMultifunction)
                                 {
-                                    //Thermostat鏄┖璋�
                                     curRoomDeviceListTemp.Add(device);
                                 }
                             }
@@ -848,11 +869,11 @@
                         case 5:
                             if (device.Type == DeviceType.Thermostat)
                             {
-                                if (deviceEnumInfo.ConcreteType != Common.DeviceConcreteType.ButtonPanel_SimpleMultifunction)
+                                if (BindInfo.checkRealAcDevice(device) == false)
                                 {
-                                    //Thermostat鏄┖璋�
-                                    curRoomDeviceListTemp.Add(device);
+                                    continue;
                                 }
+                                curRoomDeviceListTemp.Add(device);
                             }
                             break;
                         case 6:

--
Gitblit v1.8.0