From d78515ac4ac8cf4a1785d9df18058d6724f12b79 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期四, 14 一月 2021 19:34:59 +0800 Subject: [PATCH] 合并xm2021-01-13 wjc2021-02-06 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs | 51 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 49 insertions(+), 2 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs index f263cf4..2396186 100644 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs @@ -359,6 +359,20 @@ //宸茬粡鎺ユ敹鍒扮姸鎬� locadevice.HadReadDeviceStatu = true; } + + if (locadevice is TemperatureSensor) + { + //鑾峰彇璁惧绫诲瀷 + var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { locadevice }); + //绌烘皵璐ㄩ噺浼犳劅鍣� + if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor) + { + locadevice.DeviceStatusReport = report.DeviceStatusReport; + ((TemperatureSensor)locadevice).OnOffStatus = report.DeviceStatusReport.AttriBute[0].AttriButeData; + //宸茬粡鎺ユ敹鍒扮姸鎬� + locadevice.HadReadDeviceStatu = true; + } + } } } #endregion @@ -735,10 +749,19 @@ //PM2.5 if (attData.AttributeId == (int)AttriButeId.MeasuredValue) { - if (attData.AttriButeDataType == 57) { - ((PMSensor)locadevice).currentPmData = attData.AttriButeData; + //鑾峰彇璁惧绫诲瀷 + var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { locadevice }); + //绌烘皵璐ㄩ噺浼犳劅鍣� + if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor) + { + ((TemperatureSensor)locadevice).currentPmData = attData.AttriButeData; + } + else + { + ((PMSensor)locadevice).currentPmData = attData.AttriButeData; + } } } //宸茬粡鎺ユ敹鍒扮姸鎬� @@ -748,6 +771,30 @@ #endregion + #region 鈻� CO2鏁版嵁 + else if (report.DeviceStatusReport.CluterID == 1037) + { + foreach (var attData in report.DeviceStatusReport.AttriBute) + { + if (attData.AttributeId == (int)AttriButeId.MeasuredValue) + { + if (attData.AttriButeDataType == 57) + { + //鑾峰彇璁惧绫诲瀷 + var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { locadevice }); + //绌烘皵璐ㄩ噺浼犳劅鍣� + if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor) + { + ((TemperatureSensor)locadevice).currentCO2 = attData.AttriButeData; + } + } + } + //宸茬粡鎺ユ敹鍒扮姸鎬� + locadevice.HadReadDeviceStatu = true; + } + } + #endregion + #region 鈻� 璁惧鍩虹淇℃伅 else if (report.DeviceStatusReport.CluterID == 0) -- Gitblit v1.8.0