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/ZigBee/Device/TemperatureSensor.cs |  246 +++++++++++++++++++++++++-----------------------
 1 files changed, 128 insertions(+), 118 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/ZigBee/Device/TemperatureSensor.cs b/ZigbeeApp/Shared/Phone/ZigBee/Device/TemperatureSensor.cs
index a7c3225..7e236ae 100755
--- a/ZigbeeApp/Shared/Phone/ZigBee/Device/TemperatureSensor.cs
+++ b/ZigbeeApp/Shared/Phone/ZigBee/Device/TemperatureSensor.cs
@@ -169,20 +169,73 @@
             {
                 co2Quality = 0;
             }
-
-            if (co2Quality == 1 && pmQuality == 1)
+            //浜у搧閮ㄨ姹傦紝鏆傛椂鍘绘帀Co2
+            /*if (tempera.currentPmData == 0 && tempera.currentCO2 == 0)
             {
-                curQuality = 1;
-            }
-            else if (co2Quality == 2 || pmQuality == 2)
-            {
-                curQuality = 2;
+                curQuality = 0;
             }
             else
             {
-                curQuality = 3;
+                if (co2Quality == 1 && pmQuality == 1)
+                {
+                    curQuality = 1;
+                }
+                else
+                {
+                    if (co2Quality > 2 || pmQuality > 2)
+                    {
+                        curQuality = 3;
+                    }
+                    else
+                    {
+                        curQuality = 2;
+                    }
+                }
+            }if (tempera.currentPmData == 0 && tempera.currentCO2 == 0)
+            {
+                curQuality = 0;
             }
+            else
+            {
+                if (co2Quality == 1 && pmQuality == 1)
+                {
+                    curQuality = 1;
+                }
+                else
+                {
+                    if (co2Quality > 2 || pmQuality > 2)
+                    {
+                        curQuality = 3;
+                    }
+                    else
+                    {
+                        curQuality = 2;
+                    }
+                }
+            }*/
 
+            if (tempera.currentPmData == 0)
+            {
+                curQuality = 0;
+            }
+            else
+            {
+                if (co2Quality == 1)
+                {
+                    curQuality = 1;
+                }
+                else
+                {
+                    if (co2Quality > 2)
+                    {
+                        curQuality = 3;
+                    }
+                    else
+                    {
+                        curQuality = 2;
+                    }
+                }
+            }
             return curQuality;
         }
 
@@ -201,38 +254,37 @@
             return await System.Threading.Tasks.Task.Run(async () =>
             {
                 Action<string, string> action = (topic, message) =>
-          {
-              var gatewayID = topic.Split('/')[0];
-              var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
-
-              if (topic == gatewayID + "/" + "ZbDataPassthrough")
-              {
-                  var clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
-
-                  if (clientDataPassthroughResponseData != null)
-                  {
-                      if (clientDataPassthroughResponseData?.PassData != null)
-                      {
-                          var data = clientDataPassthroughResponseData.PassData;
-                          if (data.Length == 16)
-                          {
-                              var command = data[4].ToString() + data[5].ToString() + data[2].ToString() + data[3].ToString();
-                              if (command == "0002")
-                              {
-                                  var tempD = new ResponseData();
-                                  tempD.command = data[12].ToString() + data[13].ToString() + data[10].ToString() + data[11].ToString();
-                                  tempD.status = Convert.ToInt32(data[14].ToString() + data[15].ToString(), 16);
-                                  if (tempD.command == "0412")
-                                  {
-                                      result = new ResponseAllData { responseData = tempD };
-                                      System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0400_{ topic}");
-                                  }
-
-                              }
-                          }
-                      }
-                  }
-              }
+          {
+              var gatewayID = topic.Split('/')[0];
+              var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
+
+              if (topic == gatewayID + "/" + "ZbDataPassthrough")
+              {
+                  var clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
+
+                  if (clientDataPassthroughResponseData != null)
+                  {
+                      if (clientDataPassthroughResponseData?.PassData != null)
+                      {
+                          var data = clientDataPassthroughResponseData.PassData;
+                          if (data.Length == 16)
+                          {
+                              var command = data[4].ToString() + data[5].ToString() + data[2].ToString() + data[3].ToString();
+                              if (command == "0002")
+                              {
+                                  var tempD = new ResponseData();
+                                  tempD.command = data[12].ToString() + data[13].ToString() + data[10].ToString() + data[11].ToString();
+                                  tempD.status = Convert.ToInt32(data[14].ToString() + data[15].ToString(), 16);
+                                  if (tempD.command == "0412")
+                                  {
+                                      result = new ResponseAllData { responseData = tempD };
+                                      System.Console.WriteLine($"UI鏀跺埌閫氱煡鍚庣殑涓婚_command:0400_{ topic}");
+                                  }
+                              }
+                          }
+                      }
+                  }
+              }
           };
 
                 Gateway.Actions += action;
@@ -380,48 +432,6 @@
             return result;
         }
 
-        private string HexStringToString(string hs)
-        {
-            //浠�%鍒嗗壊瀛楃涓诧紝骞跺幓鎺夌┖瀛楃
-            string[] chars = hs.Split(new char[] { '%' }, StringSplitOptions.RemoveEmptyEntries);
-            byte[] b = new byte[chars.Length];
-            //閫愪釜瀛楃鍙樹负16杩涘埗瀛楄妭鏁版嵁
-            for (int i = 0; i < chars.Length; i++)
-            {
-                b[i] = Convert.ToByte(chars[i], 16);
-            }
-            //鎸夌収鎸囧畾缂栫爜灏嗗瓧鑺傛暟缁勫彉涓哄瓧绗︿覆
-            return System.Text.Encoding.UTF8.GetString(b);
-        }
-
-        private string StringToHexString1(string s)
-        {
-            var bytes = new byte[36];
-            var reamarkGwBytes = System.Text.Encoding.UTF8.GetBytes(s);
-            System.Array.Copy(reamarkGwBytes, 0, bytes, 0, 36 < reamarkGwBytes.Length ? 36 : reamarkGwBytes.Length);
-            string result = string.Empty;
-            for (int i = 0; i < bytes.Length; i++)//閫愬瓧鑺傚彉涓�16杩涘埗瀛楃锛屼互%闅斿紑
-            {
-                result += "%" + Convert.ToString(bytes[i], 16);
-            }
-            return result;
-
-        }
-
-        private string HexStringToString1(string hs)
-        {
-            //浠�%鍒嗗壊瀛楃涓诧紝骞跺幓鎺夌┖瀛楃
-            string[] chars = hs.Split(new char[] { '%' }, StringSplitOptions.RemoveEmptyEntries);
-            byte[] b = new byte[chars.Length];
-            //閫愪釜瀛楃鍙樹负16杩涘埗瀛楄妭鏁版嵁
-            for (int i = 0; i < chars.Length; i++)
-            {
-                b[i] = Convert.ToByte(chars[i], 16);
-            }
-            //鎸夌収鎸囧畾缂栫爜灏嗗瓧鑺傛暟缁勫彉涓哄瓧绗︿覆
-            return System.Text.Encoding.UTF8.GetString(b);
-        }
-
         ///<summary >
         /// 鑾峰彇led澶辫兘鏃堕棿
         /// <para>number:搴忓彿</para> 
@@ -436,40 +446,40 @@
             return await System.Threading.Tasks.Task.Run(async () =>
             {
                 Action<string, string> action = (topic, message) =>
-          {
-              var gatewayID = topic.Split('/')[0];
-              var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
-
-              if (topic == gatewayID + "/" + "ZbDataPassthrough")
-              {
-                  var clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
-
-                  if (clientDataPassthroughResponseData != null)
-                  {
-                      if (clientDataPassthroughResponseData?.PassData != null)
-                      {
-                          var data = clientDataPassthroughResponseData.PassData;
-                          var command = data[4].ToString() + data[5].ToString() + data[2].ToString() + data[3].ToString();
-                          if (command == "0413")
-                          {
-                              result = new LedTimeData();
-                              result.serialNum = Convert.ToInt32(data[10].ToString() + data[11].ToString(), 16);
-                              result.enable = Convert.ToInt32(data[12].ToString() + data[13].ToString(), 16);
-                              result.startHour = Convert.ToInt32(data[14].ToString() + data[15].ToString(), 16);
-                              result.startMin = Convert.ToInt32(data[16].ToString() + data[17].ToString(), 16);
-                              result.endHour = Convert.ToInt32(data[18].ToString() + data[19].ToString(), 16);
-                              result.endMin = Convert.ToInt32(data[20].ToString() + data[21].ToString(), 16);
-                              string remark = data.Substring(22, data.Length - 22);
-                              var bytes = new byte[remark.Length / 2];
-                              for (int i = 0; i < bytes.Length; i++)
-                              {
-                                  bytes[i] = (byte)Convert.ToInt32(remark.Substring(i * 2, 2), 16);
-                              }
-                              result.remark = System.Text.Encoding.UTF8.GetString(bytes);
-                          }
-                      }
-                  }
-              }
+          {
+              var gatewayID = topic.Split('/')[0];
+              var jobject = Newtonsoft.Json.Linq.JObject.Parse(message);
+
+              if (topic == gatewayID + "/" + "ZbDataPassthrough")
+              {
+                  var clientDataPassthroughResponseData = Newtonsoft.Json.JsonConvert.DeserializeObject<ClientDataPassthroughResponseData>(jobject["Data"].ToString());
+
+                  if (clientDataPassthroughResponseData != null)
+                  {
+                      if (clientDataPassthroughResponseData?.PassData != null)
+                      {
+                          var data = clientDataPassthroughResponseData.PassData;
+                          var command = data[4].ToString() + data[5].ToString() + data[2].ToString() + data[3].ToString();
+                          if (command == "0413")
+                          {
+                              result = new LedTimeData();
+                              result.serialNum = Convert.ToInt32(data[10].ToString() + data[11].ToString(), 16);
+                              result.enable = Convert.ToInt32(data[12].ToString() + data[13].ToString(), 16);
+                              result.startHour = Convert.ToInt32(data[14].ToString() + data[15].ToString(), 16);
+                              result.startMin = Convert.ToInt32(data[16].ToString() + data[17].ToString(), 16);
+                              result.endHour = Convert.ToInt32(data[18].ToString() + data[19].ToString(), 16);
+                              result.endMin = Convert.ToInt32(data[20].ToString() + data[21].ToString(), 16);
+                              string remark = data.Substring(22, data.Length - 22);
+                              var bytes = new byte[remark.Length / 2];
+                              for (int i = 0; i < bytes.Length; i++)
+                              {
+                                  bytes[i] = (byte)Convert.ToInt32(remark.Substring(i * 2, 2), 16);
+                              }
+                              result.remark = System.Text.Encoding.UTF8.GetString(bytes);
+                          }
+                      }
+                  }
+              }
           };
 
                 Gateway.Actions += action;
@@ -554,7 +564,7 @@
             /// <summary>
             /// 璧峰鏃�
             /// </summary>
-            public int startHour;
+            public int startHour = -1;
             /// <summary>
             /// 璧峰鍒�
             /// </summary>
@@ -562,7 +572,7 @@
             /// <summary>
             /// 缁撴潫鏃�
             /// </summary>
-            public int endHour;
+            public int endHour = -1;
             /// <summary>
             /// 缁撴潫鍒�
             /// </summary>

--
Gitblit v1.8.0