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