| | |
| | | { |
| | | 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; |
| | | } |
| | | |
| | |
| | | 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; |
| | |
| | | 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> |
| | |
| | | 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; |
| | |
| | | /// <summary> |
| | | /// 起始时 |
| | | /// </summary> |
| | | public int startHour; |
| | | public int startHour = -1; |
| | | /// <summary> |
| | | /// 起始分 |
| | | /// </summary> |
| | |
| | | /// <summary> |
| | | /// 结束时 |
| | | /// </summary> |
| | | public int endHour; |
| | | public int endHour = -1; |
| | | /// <summary> |
| | | /// 结束分 |
| | | /// </summary> |