From 8ce0f9b1e568dd9125e74421cd02fbc29381c1f1 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期三, 29 七月 2020 12:53:33 +0800
Subject: [PATCH] 新版本
---
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs | 48 +++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 47 insertions(+), 1 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
index 4b198e9..ea1c159 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
@@ -251,6 +251,51 @@
}
#endregion
+ #region 鈻� 鐢甸噺鎺ㄩ��
+ //鐢甸噺鎺ㄩ��
+ if (report.DeviceStatusReport.CluterID == 1)
+ {
+ foreach (var attData in report.DeviceStatusReport.AttriBute)
+ {
+ //鐢甸噺
+ if (attData.AttributeId == 33)
+ {
+ string receiptData = string.Empty;
+ //涓や釜涓や釜浣嶇疆鏇挎崲
+ for (int i = attData.AttriButeDataHex.Length - 1; i >= 0; i = i - 2)
+ {
+ receiptData += attData.AttriButeDataHex[i - 1].ToString() + attData.AttriButeDataHex[i].ToString();
+ }
+ int batteryValue = Convert.ToInt32(receiptData, 16);
+ //浣庝簬20%,鍒欎唬琛ㄧ數閲忎綆
+ locadevice.IsBatteryDown = batteryValue < 20;
+ }
+ //宸茬粡鎺ユ敹鍒扮姸鎬�
+ locadevice.HadReadDeviceStatu = true;
+ }
+ }
+
+ #endregion
+
+ #region 鈻� 铚傞福鍣ㄦ帹閫�
+ //铚傞福鍣ㄦ暟鎹�
+ else if (report.DeviceStatusReport.CluterID == 1282)
+ {
+ //mini澶滅伅
+ if (Common.LocalDevice.Current.IsMiniLight(locadevice) == true)
+ {
+ foreach (var attData in report.DeviceStatusReport.AttriBute)
+ {
+ if (attData.AttributeId == 0)
+ {
+ //杩欎釜鏄姤璀︽寔缁椂闂�(澶т簬2绉掓椂,鏍囪涓鸿繕鍦ㄥ搷鐫�)
+ ((ColorTemperatureLight)locadevice).IsBuzzerRing = attData.AttriButeData > 2 ? true : false;
+ }
+ }
+ }
+ }
+ #endregion
+
#region 鈻� 绐楀笜鏁版嵁
//绐楀笜鏁版嵁
else if (report.DeviceStatusReport.CluterID == 258)
@@ -434,7 +479,8 @@
if (locadevice.Type == DeviceType.ColorTemperatureLight)
{
//姝ゅ睘鎬ц〃鏄庡綋鍓嶈壊娓�
- ((ColorTemperatureLight)locadevice).ColorTemperature = report.DeviceStatusReport.AttriBute[0].AttriButeData;
+ int value = report.DeviceStatusReport.AttriBute[0].AttriButeData != 0 ? 1000000 / report.DeviceStatusReport.AttriBute[0].AttriButeData : 0;
+ ((ColorTemperatureLight)locadevice).ColorTemperature = value;
}
//宸茬粡鎺ユ敹鍒扮姸鎬�
locadevice.HadReadDeviceStatu = true;
--
Gitblit v1.8.0