HDL Home App 第二版本 旧平台金堂用 正在使用
黄学彪
2021-01-14 d78515ac4ac8cf4a1785d9df18058d6724f12b79
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>