黄学彪
2019-11-25 5727cf0b9b54da0a191dd1e23cb5abf21320fbff
ZigbeeApp/Shared/Phone/UserView/UserPage.cs
@@ -91,14 +91,12 @@
                                    return;
                                }
                                onOffOutputLight.OnOffStatus = onOffOutputLight.DeviceStatusReport.AttriBute[0].AttriButeData;
                                //记录回复时间
                                onOffOutputLight.LastDateTime = DateTime.Now;
                            }
                            //当CluterID=3,就证明该设备在线,直接标记
                            if (common.DeviceStatusReport.CluterID == 3)
                            {
                                myDevice.IsOnline = 1;
                                //记录回复时间
                                myDevice.LastDateTime = DateTime.Now;
                            }
                            break;
@@ -109,13 +107,11 @@
                            {
                                var airSwitch = (AirSwitch)myDevice;
                                airSwitch.DeviceStatusReport = common.DeviceStatusReport;
                                //记录、更新状态
                                if (airSwitch.DeviceStatusReport.AttriBute == null || airSwitch.DeviceStatusReport.AttriBute.Count == 0)
                                {
                                    return;
                                }
                                airSwitch.OnOffStatus = airSwitch.DeviceStatusReport.AttriBute[0].AttriButeData;
                                //记录回复时间
                                airSwitch.LastDateTime = DateTime.Now;
                            }
@@ -123,7 +119,6 @@
                            if (common.DeviceStatusReport.CluterID == 3)
                            {
                                myDevice.IsOnline = 1;
                                //记录回复时间
                                myDevice.LastDateTime = DateTime.Now;
                            }
                            break;
@@ -149,7 +144,6 @@
                            if (common.DeviceStatusReport.CluterID == 3)
                            {
                                myDevice.IsOnline = 1;
                                //记录回复时间
                                myDevice.LastDateTime = DateTime.Now;
                            }
                            break;
@@ -165,47 +159,63 @@
                                {
                                    return;
                                }
                                //此属性表明室内当前的温度 * 100,实际温度为“LocalTemperature / 100”,单位:℃
                                var curTemp = (attriButeList[0].AttriButeData / 100 < ACControlBase.Temperature_High || attriButeList[0].AttriButeData / 100 > ACControlBase.Temperature_Low) ? attriButeList[0].AttriButeData / 100 : ACControlBase.Temperature_Default;
                                switch (attriButeList[0].AttributeId)
                                {
                                    case 0:
                                        //此属性表明室内当前的温度 * 100,实际温度为“LocalTemperature / 100”,单位:℃
                                        ac.currentLocalTemperature = attriButeList[0].AttriButeData / 100;
                                        ac.currentLocalTemperature = curTemp;
                                        ac.LastDateTime = DateTime.Now;
                                        break;
                                    case 17:
                                        //此属性表明此设备当前的制冷温度,实际温度为“CoolingSetpoint / 100”,单位:℃。
                                        ac.currentCoolingSetpoint = attriButeList[0].AttriButeData / 100;
                                        ac.currentCoolingSetpoint = curTemp;
                                        ac.LastDateTime = DateTime.Now;
                                        break;
                                    case 18:
                                        //此属性表明此设备当前的制热温度,实际温度为“HeatingSetpoint / 100”,单位:℃。
                                        ac.currentHeatingSetpoint = attriButeList[0].AttriButeData / 100;
                                        ac.currentHeatingSetpoint = curTemp;
                                        ac.LastDateTime = DateTime.Now;
                                        break;
                                    case 4096:
                                        //此属性表明此设备当前的自动温度,实际温度为“AutoSetpoint / 100”,单位:℃。
                                        ac.currentAutoSetpoint = (attriButeList[0].AttriButeData / 100 > ACControlBase.Temperature_High || attriButeList[0].AttriButeData / 100 < ACControlBase.Temperature_Low) ? attriButeList[0].AttriButeData / 100 : ACControlBase.Temperature_Default;
                                        ac.currentAutoSetpoint = curTemp;
                                        ac.LastDateTime = DateTime.Now;
                                        break;
                                    case 28:
                                        //此属性描述恒温设备正处于哪种模式
                                        //Off = 0  Auto = 1 Cool = 3 Heat = 4 FanOnly = 7  Dry = 8
                                        ac.currentSystemMode = attriButeList[0].AttriButeData;
                                        ac.LastDateTime = DateTime.Now;
                                        break;
                                }
                            }
                            if (common.DeviceStatusReport.CluterID == 514)
                            {
                                var ac = (AC)myDevice;
                                var attriButeList = common.DeviceStatusReport.AttriBute;
                                if (attriButeList == null || attriButeList.Count == 0)
                                {
                                    return;
                                }
                                ac.DeviceStatusReport = common.DeviceStatusReport;
                                switch (attriButeList[0].AttributeId)
                                {
                                    case 0:
                                        ac.currentFanMode = attriButeList[0].AttriButeData;
                                        ac.LastDateTime = DateTime.Now;
                                        break;
                                    case 4096:
                                        ac.currentFanSwingMode = attriButeList[0].AttriButeData;
                                        ac.LastDateTime = DateTime.Now;
                                        break;
                                }
                            }
                            //当CluterID=3,就证明该设备在线,直接标记
                            if (common.DeviceStatusReport.CluterID == 3)
                            {
                                myDevice.IsOnline = 1;
                                //记录回复时间
                                myDevice.LastDateTime = DateTime.Now;
                            }
                            break;
@@ -223,7 +233,6 @@
                                    return;
                                }
                                dimmableLight.OnOffStatus = dimmableLight.DeviceStatusReport.AttriBute[0].AttriButeData;
                                //记录回复时间
                                dimmableLight.LastDateTime = DateTime.Now;
                            }
                            //亮度
@@ -239,7 +248,6 @@
                                switch (attriButeList[0].AttributeId)
                                {
                                    case 0:
                                        //此属性表明当前亮度程度
                                        dimmableLight.Level = attriButeList[0].AttriButeData;
                                        dimmableLight.LastDateTime = DateTime.Now;
                                        break;
@@ -249,7 +257,6 @@
                            if (common.DeviceStatusReport.CluterID == 3)
                            {
                                myDevice.IsOnline = 1;
                                //记录回复时间
                                myDevice.LastDateTime = DateTime.Now;
                            }
                            break;