HDL Home App 第二版本 旧平台金堂用 正在使用
chenqiyang
2022-06-22 dc0309e64f02227d8e1468b7326c07955f804612
ZigbeeApp/Shared/Phone/UserCenter/Device/Bind/BindInfo.cs
@@ -41,6 +41,10 @@
            /// 地暖目标
            /// </summary>
            Fh = 6,
            /// <summary>
            /// 地CO2暖目标
            /// </summary>
            CO2 = 7,
        }
        #endregion
@@ -130,7 +134,7 @@
                case BindType.FreshAir:
                    foreach (var deviceKeys in curRoom.ListDevice)
                    {
                        var device = HdlDeviceCommonLogic.Current.GetDevice(deviceKeys);
                        var device = LocalDevice.Current.GetDevice(deviceKeys);
                        if (device != null)
                        {
                            if (BindInfo.checkRealFreshAirDevice(device) == false)
@@ -151,7 +155,7 @@
                    curRoomDeviceListTemp = GetMatchHumiditySensorDevice(curRoom);
                    foreach (var deviceKeys in curRoom.ListDevice)
                    {
                        var device = HdlDeviceCommonLogic.Current.GetDevice(deviceKeys);
                        var device = LocalDevice.Current.GetDevice(deviceKeys);
                        if (device != null)
                        {
                            if (device.Type == DeviceType.FreshAirHumiditySensor)
@@ -164,12 +168,23 @@
                case BindType.PM:
                    foreach (var deviceKeys in curRoom.ListDevice)
                    {
                        var device = HdlDeviceCommonLogic.Current.GetDevice(deviceKeys);
                        var device = LocalDevice.Current.GetDevice(deviceKeys);
                        if (device != null)
                        {
                            if (device.Type == DeviceType.PMSensor)
                            {
                                curRoomDeviceListTemp.Add(device);
                            }
                            if (device.Type == ZigBee.Device.DeviceType.TemperatureSensor)
                            {
                                //获取设备类型
                                var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<ZigBee.Device.CommonDevice>() { device });
                                //空气质量传感器
                                if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
                                {
                                    curRoomDeviceListTemp.Add(device);
                                }
                            }
                        }
                    }
@@ -177,7 +192,7 @@
                case BindType.AC:
                    foreach (var deviceKeys in curRoom.ListDevice)
                    {
                        var device = HdlDeviceCommonLogic.Current.GetDevice(deviceKeys);
                        var device = LocalDevice.Current.GetDevice(deviceKeys);
                        if (device != null)
                        {
                            if (device.Type == DeviceType.Thermostat)
@@ -187,6 +202,25 @@
                                    continue;
                                }
                                curRoomDeviceListTemp.Add(device);
                            }
                        }
                    }
                    break;
                case BindType.CO2:
                    foreach (var deviceKeys in curRoom.ListDevice)
                    {
                        var device = LocalDevice.Current.GetDevice(deviceKeys);
                        if (device != null)
                        {
                            if (device.Type == ZigBee.Device.DeviceType.TemperatureSensor)
                            {
                                //获取设备类型
                                var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<ZigBee.Device.CommonDevice>() { device });
                                //空气质量传感器
                                if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
                                {
                                    curRoomDeviceListTemp.Add(device);
                                }
                            }
                        }
                    }
@@ -204,7 +238,7 @@
            List<CommonDevice> roomIncludeMatchTempDevice = new List<CommonDevice>();
            foreach (var de in room.ListDevice)
            {
                var device = HdlDeviceCommonLogic.Current.GetDevice(de);
                var device = LocalDevice.Current.GetDevice(de);
                if (device != null)
                {
                    //电池设备不支持绑定
@@ -249,7 +283,7 @@
            List<CommonDevice> roomIncludeMatchHumpDevice = new List<CommonDevice>();
            foreach (var de in room.ListDevice)
            {
                var device = HdlDeviceCommonLogic.Current.GetDevice(de);
                var device = LocalDevice.Current.GetDevice(de);
                if (device != null)
                {
                    //电池设备不支持绑定
@@ -265,6 +299,14 @@
                            continue;
                        }
                        if (dev.SensorDiv == 2)
                        {
                            roomIncludeMatchHumpDevice.Add(device);
                        }
                        //获取设备类型
                        var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<ZigBee.Device.CommonDevice>() { device });
                        //空气质量传感器
                        if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
                        {
                            roomIncludeMatchHumpDevice.Add(device);
                        }
@@ -356,7 +398,7 @@
                        case BindInfo.BindType.FreshAir:
                            foreach (var de in room.ListDevice)
                            {
                                var device = HdlDeviceCommonLogic.Current.GetDevice(de);
                                var device = LocalDevice.Current.GetDevice(de);
                                if (device != null)
                                {
                                    if (BindInfo.checkRealFreshAirDevice(device) == false)
@@ -377,7 +419,7 @@
                            roomIncludeMatchDevice = GetMatchHumiditySensorDevice(room);
                            foreach (var de in room.ListDevice)
                            {
                                var device = HdlDeviceCommonLogic.Current.GetDevice(de);
                                var device = LocalDevice.Current.GetDevice(de);
                                if (device != null)
                                {
                                    if (device.Type == DeviceType.FreshAirHumiditySensor)
@@ -390,12 +432,22 @@
                        case BindInfo.BindType.PM:
                            foreach (var de in room.ListDevice)
                            {
                                var device = HdlDeviceCommonLogic.Current.GetDevice(de);
                                var device = LocalDevice.Current.GetDevice(de);
                                if (device != null)
                                {
                                    if (device.Type == DeviceType.PMSensor)
                                    {
                                        roomIncludeMatchDevice.Add(device);
                                    }
                                    else if (device.Type == ZigBee.Device.DeviceType.TemperatureSensor)
                                    {
                                        //获取设备类型
                                        var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<ZigBee.Device.CommonDevice>() { device });
                                        //空气质量传感器
                                        if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
                                        {
                                            roomIncludeMatchDevice.Add(device);
                                        }
                                    }
                                }
                            }
@@ -403,7 +455,7 @@
                        case BindInfo.BindType.AC:
                            foreach (var de in room.ListDevice)
                            {
                                var device = HdlDeviceCommonLogic.Current.GetDevice(de);
                                var device = LocalDevice.Current.GetDevice(de);
                                if (device != null)
                                {
                                    if (device.Type == DeviceType.Thermostat)
@@ -417,6 +469,25 @@
                                }
                            }
                            break;
                        case BindType.CO2:
                            foreach (var de in room.ListDevice)
                            {
                                var device = LocalDevice.Current.GetDevice(de);
                                if (device != null)
                                {
                                    if (device.Type == ZigBee.Device.DeviceType.TemperatureSensor)
                                    {
                                        //获取设备类型
                                        var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<ZigBee.Device.CommonDevice>() { device });
                                        //空气质量传感器
                                        if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
                                        {
                                            roomIncludeMatchDevice.Add(device);
                                        }
                                    }
                                }
                            }
                            break;
                    }
                    if (roomIncludeMatchDevice.Count == 0)
@@ -426,7 +497,7 @@
                    if (!string.IsNullOrEmpty(room.FloorId))
                    {
                        //有楼层
                        //有楼层[控制面板如果不在房间,默认不绑定]
                        if (room.FloorId == curControlDev.currentSelectFloorId)
                        {
                            roomTempList.Add(room);
@@ -452,7 +523,7 @@
            List<CommonDevice> UndistributeCommonDeviceListTemp = new List<CommonDevice>();
            //获取本地设备列表
            foreach (var tempDev in HdlDeviceCommonLogic.Current.listAllDevice)
            foreach (var tempDev in Shared.Common.LocalDevice.Current.listAllDevice)
            {
                //获取设备所属房间
                var tempDevRoom = HdlRoomLogic.Current.GetRoomByDevice(tempDev);
@@ -520,6 +591,14 @@
                            {
                                undistruibuteDevList.Add(device);
                            }
                            //获取设备类型
                            var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<ZigBee.Device.CommonDevice>() { device });
                            //空气质量传感器
                            if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
                            {
                                undistruibuteDevList.Add(device);
                            }
                        }
                        else if (device.Type == DeviceType.PMSensor)
                        {
@@ -545,6 +624,16 @@
                        {
                            undistruibuteDevList.Add(device);
                        }
                        else if (device.Type == ZigBee.Device.DeviceType.TemperatureSensor)
                        {
                            //获取设备类型
                            var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<ZigBee.Device.CommonDevice>() { device });
                            //空气质量传感器
                            if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
                            {
                                undistruibuteDevList.Add(device);
                            }
                        }
                    }
                    break;
                case BindType.AC:
@@ -557,6 +646,21 @@
                                continue;
                            }
                            undistruibuteDevList.Add(device);
                        }
                    }
                    break;
                case BindType.CO2:
                    foreach (var device in UndistributeCommonDeviceListTemp)
                    {
                        if (device.Type == ZigBee.Device.DeviceType.TemperatureSensor)
                        {
                            //获取设备类型
                            var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<ZigBee.Device.CommonDevice>() { device });
                            //空气质量传感器
                            if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
                            {
                                undistruibuteDevList.Add(device);
                            }
                        }
                    }
                    break;
@@ -584,7 +688,7 @@
                        }
                        foreach (var deviceKeys in r.ListDevice)
                        {
                            var device = HdlDeviceCommonLogic.Current.GetDevice(deviceKeys);
                            var device = LocalDevice.Current.GetDevice(deviceKeys);
                            if (device != null)
                            {
                                if (BindInfo.checkRealFreshAirDevice(device) == false)
@@ -627,7 +731,7 @@
                        }
                        foreach (var deviceKeys in r.ListDevice)
                        {
                            var device = HdlDeviceCommonLogic.Current.GetDevice(deviceKeys);
                            var device = LocalDevice.Current.GetDevice(deviceKeys);
                            if (device != null)
                            {
                                if (device.Type == DeviceType.FreshAirHumiditySensor)
@@ -647,12 +751,23 @@
                        }
                        foreach (var deviceKeys in r.ListDevice)
                        {
                            var device = HdlDeviceCommonLogic.Current.GetDevice(deviceKeys);
                            var device = LocalDevice.Current.GetDevice(deviceKeys);
                            if (device != null)
                            {
                                if (device.Type == DeviceType.PMSensor)
                                {
                                    currentPanelBindSupportDeviceListTemp.Add(device);
                                }
                                if (device.Type == ZigBee.Device.DeviceType.TemperatureSensor)
                                {
                                    //获取设备类型
                                    var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<ZigBee.Device.CommonDevice>() { device });
                                    //空气质量传感器
                                    if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
                                    {
                                        currentPanelBindSupportDeviceListTemp.Add(device);
                                    }
                                }
                            }
                        }
@@ -667,7 +782,7 @@
                        }
                        foreach (var deviceKeys in r.ListDevice)
                        {
                            var device = HdlDeviceCommonLogic.Current.GetDevice(deviceKeys);
                            var device = LocalDevice.Current.GetDevice(deviceKeys);
                            if (device != null)
                            {
                                if (device.Type == DeviceType.Thermostat)
@@ -677,6 +792,32 @@
                                        continue;
                                    }
                                    currentPanelBindSupportDeviceListTemp.Add(device);
                                }
                            }
                        }
                    }
                    break;
                case BindType.CO2:
                    foreach (var r in supportRoomList)
                    {
                        if (r.ListDevice.Count == 0)
                        {
                            continue;
                        }
                        foreach (var deviceKeys in r.ListDevice)
                        {
                            var device = LocalDevice.Current.GetDevice(deviceKeys);
                            if (device != null)
                            {
                                if (device.Type == ZigBee.Device.DeviceType.TemperatureSensor)
                                {
                                    //获取设备类型
                                    var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<ZigBee.Device.CommonDevice>() { device });
                                    //空气质量传感器
                                    if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
                                    {
                                        currentPanelBindSupportDeviceListTemp.Add(device);
                                    }
                                }
                            }
                        }
@@ -754,8 +895,8 @@
        {
            bool result = true;
            //获取设备属于【简约多功能面板】
            var deviceEnumInfo = HdlDeviceCommonLogic.Current.GetMyDeviceEnumInfo(new List<CommonDevice> { device });
            if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleMultifunction)
            var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice> { device });
            if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.ButtonPanel_SimpleMultifunction)
            {
                if (device.Type == DeviceType.TemperatureSensor && device.DeviceEpoint == 1)
                {
@@ -802,7 +943,7 @@
            }
            foreach (var deviceKeys in room.ListDevice)
            {
                var device = HdlDeviceCommonLogic.Current.GetDevice(deviceKeys);
                var device = Common.LocalDevice.Current.GetDevice(deviceKeys);
                //检测该设备能否显示
                if (CheckCanShowDevice(device, curDeviceBindType) == false)
                {
@@ -1077,6 +1218,6 @@
                btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack;
            }
        }
        #endregion
        #endregion
    }
}