From 25429f085093d89d543a0b90e30d0d62d1b7dac9 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期二, 30 八月 2022 09:37:38 +0800
Subject: [PATCH] 合并了IOS的代码
---
ZigbeeApp/Shared/Common/Device.cs | 80 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 80 insertions(+), 0 deletions(-)
diff --git a/ZigbeeApp/Shared/Common/Device.cs b/ZigbeeApp/Shared/Common/Device.cs
index 182d93c..5ff29c8 100644
--- a/ZigbeeApp/Shared/Common/Device.cs
+++ b/ZigbeeApp/Shared/Common/Device.cs
@@ -2852,6 +2852,58 @@
});
}
+ /// <summary>
+ /// 澶勭悊缃戝叧杩斿洖鐨勬箍搴﹀��
+ /// </summary>
+ /// <param name="value">缃戝叧杩斿洖鐨勫睘鎬у��</param>
+ public decimal AdjustHumidityValue(int value)
+ {
+ if (value == 0)
+ {
+ //0%
+ return 0;
+ }
+ //涓嶄細鍑虹幇璐熸暟
+ else
+ {
+ //灏忔暟鐐归渶瑕佷竴浣�
+ string strValue = value.ToString();
+ strValue = strValue.Substring(0, strValue.Length - 1);
+ //璁板綍娓╁害
+ return strValue == string.Empty ? 0m : Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
+ }
+ }
+
+ /// <summary>
+ /// 澶勭悊缃戝叧杩斿洖鐨勬俯搴﹀��
+ /// </summary>
+ /// <param name="value">缃戝叧杩斿洖鐨勫睘鎬у��</param>
+ public decimal AdjustTemperatrueValue(int value)
+ {
+ if (value == 0)
+ {
+ //0鈩�
+ return 0;
+ }
+ else if (value > 32767)
+ {
+ //璐熸暟(鐗规畩澶勭悊)
+ string strValue = (value - 65536).ToString();
+ //灏忔暟鐐归渶瑕佷竴浣�
+ strValue = strValue.Substring(0, strValue.Length - 1);
+ //璁板綍娓╁害
+ return strValue == string.Empty ? 0m : Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
+ }
+ else
+ {
+ //灏忔暟鐐归渶瑕佷竴浣�
+ string strValue = value.ToString();
+ strValue = strValue.Substring(0, strValue.Length - 1);
+ //璁板綍娓╁害
+ return strValue == string.Empty ? 0m : Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
+ }
+ }
+
#endregion
//----------------------------------鍒嗗壊绾�(鑷畾涔夋帴鍙�)---------------------------------------------
@@ -3249,6 +3301,34 @@
((TemperatureSensor)mainDevice).SensorDiv = 1;
}
}
+ if (((TemperatureSensor)mainDevice).SensorDiv == 1)
+ {
+ //鍙樻洿涓�涓嬫俯搴︾殑鍊�
+ foreach (var data in mainDevice.AttributeStatus)
+ {
+ if (data.ClusterId == 1026
+ && data.AttributeId == (int)AttriButeId.MeasuredValue)
+ {
+ //澶勭悊缃戝叧杩斿洖鐨勬俯搴﹀��
+ decimal temperatrue = this.AdjustTemperatrueValue(data.AttributeData);
+ ((TemperatureSensor)mainDevice).currentTemperature = temperatrue;
+ }
+ }
+ }
+ else if (((TemperatureSensor)mainDevice).SensorDiv == 2)
+ {
+ //鍙樻洿涓�涓嬫箍搴︾殑鍊�
+ foreach (var data in mainDevice.AttributeStatus)
+ {
+ if (data.ClusterId == 1029
+ && data.AttributeId == (int)AttriButeId.MeasuredValue)
+ {
+ //澶勭悊缃戝叧杩斿洖鐨勬俯搴﹀��
+ decimal humidity = this.AdjustHumidityValue(data.AttributeData);
+ ((TemperatureSensor)mainDevice).currentHumidity = humidity;
+ }
+ }
+ }
}
}
--
Gitblit v1.8.0