黄学彪
2020-08-11 26d1cdf2f5246c1ad7890e6740444c4a6a80e6fb
ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/MutilfunctionPanelMethod.cs
@@ -48,11 +48,34 @@
            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)
                    {
@@ -60,12 +83,6 @@
                    }
                    switch (curBindType)
                    {
                        case 0:
                            if (bDev.KeyEpoint >= 32 && bDev.KeyEpoint <= 51)
                            {
                                tempList.Add(bDev);
                            }
                            break;
                        case 1:
                            if (bDev.KeyEpoint >= 52 && bDev.KeyEpoint <= 61)
                            {
@@ -156,6 +173,66 @@
        }
        /// <summary>
        /// 调光灯和继电器特殊处理方法
        /// <param name="curBindType">当前类型 0:场景  1:开关  2:插座  3:灯光  4:遮阳 5:空调 6:新风</param>
        /// </summary>
        /// <returns></returns>
        public static void UpdateLightCount(int curBindType)
        {
            if (curBindType == 1 || curBindType == 2 || curBindType == 3)
            {
                curSwitchCount = 0;
                curSocketCount = 0;
                curLightFromRelayCount = 0;
                curLightCount = 0;
                foreach (var key in bindTargetsFromMutilfunctionPanelList.Keys)
                {
                    var bList = bindTargetsFromMutilfunctionPanelList[key];
                    foreach (var bDev in bList)
                    {
                        var device = LocalDevice.Current.GetDevice(bDev.BindMacAddr, bDev.BindEpoint);
                        if (device == null)
                        {
                            continue;
                        }
                        if (bDev.KeyEpoint >= 52 && bDev.KeyEpoint <= 61)
                        {
                            if (device != null)
                            {
                                if (device.DfunctionType == DeviceFunctionType.A开关)
                                {
                                    curSwitchCount++;
                                }
                                else if (device.DfunctionType == DeviceFunctionType.A插座)
                                {
                                    curSocketCount++;
                                }
                                else if (device.DfunctionType == DeviceFunctionType.A灯光)
                                {
                                    curLightFromRelayCount++;
                                }
                            }
                        }
                        if (bDev.KeyEpoint >= 22 && bDev.KeyEpoint <= 28)
                        {
                            if (device != null)
                            {
                                if (device.Type == DeviceType.DimmableLight && bDev.BindCluster == 8)
                                {
                                    curLightCount++;
                                }
                            }
                        }
                    }
                }
            }
        }
        /// <summary>
        /// 支持匹配的端点个数
        /// <param name="curBindType">当前类型 0:场景  1:开关  2:插座  3:灯光  4:遮阳 5:空调 6:新风</param>
        /// </summary>
@@ -225,6 +302,14 @@
                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)
                    {
@@ -232,12 +317,6 @@
                    }
                    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)