From 627093aca723d4bfb971b97c828e8b3a22dbda78 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期五, 17 七月 2020 17:26:19 +0800
Subject: [PATCH] 2020-07-17-1
---
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs | 123 ++++++++++++++++++++++++++--------------
1 files changed, 80 insertions(+), 43 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
index f64c0b6..4b198e9 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
@@ -406,10 +406,36 @@
else if (report.DeviceStatusReport.CluterID == 8)
{
locadevice.DeviceStatusReport = report.DeviceStatusReport;
- if (locadevice.Type == DeviceType.DimmableLight && report.DeviceStatusReport.AttriBute[0].AttributeId == 0)
+ if (report.DeviceStatusReport.AttriBute[0].AttributeId == 0)
{
- //姝ゅ睘鎬ц〃鏄庡綋鍓嶄寒搴︾▼搴�
- ((DimmableLight)locadevice).Level = report.DeviceStatusReport.AttriBute[0].AttriButeData;
+ if (locadevice.Type == DeviceType.DimmableLight)
+ {
+ //姝ゅ睘鎬ц〃鏄庡綋鍓嶄寒搴︾▼搴�
+ ((DimmableLight)locadevice).Level = report.DeviceStatusReport.AttriBute[0].AttriButeData;
+ }
+ else if (locadevice.Type == DeviceType.ColorTemperatureLight)
+ {
+ //姝ゅ睘鎬ц〃鏄庡綋鍓嶄寒搴︾▼搴�
+ ((ColorTemperatureLight)locadevice).Level = report.DeviceStatusReport.AttriBute[0].AttriButeData;
+ }
+ //宸茬粡鎺ユ敹鍒扮姸鎬�
+ locadevice.HadReadDeviceStatu = true;
+ }
+ }
+ #endregion
+
+ #region 鈻� 鑹叉俯鏁版嵁
+ //鑹叉俯鏁版嵁
+ else if (report.DeviceStatusReport.CluterID == 768)
+ {
+ locadevice.DeviceStatusReport = report.DeviceStatusReport;
+ if (report.DeviceStatusReport.AttriBute[0].AttributeId == 0)
+ {
+ if (locadevice.Type == DeviceType.ColorTemperatureLight)
+ {
+ //姝ゅ睘鎬ц〃鏄庡綋鍓嶈壊娓�
+ ((ColorTemperatureLight)locadevice).ColorTemperature = report.DeviceStatusReport.AttriBute[0].AttriButeData;
+ }
//宸茬粡鎺ユ敹鍒扮姸鎬�
locadevice.HadReadDeviceStatu = true;
}
@@ -510,10 +536,15 @@
strValue = strValue.Substring(0, strValue.Length - 1);
humidity = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
}
- //娓╁害浼犳劅鍣�
+ //婀垮害浼犳劅鍣�
if (locadevice is TemperatureSensor)
{
((TemperatureSensor)locadevice).Humidity = humidity;
+ }
+ //鏂伴鐨勬箍搴︿紶鎰熷櫒
+ else if (locadevice is HumiditySensor)
+ {
+ ((HumiditySensor)locadevice).Humidity = humidity;
}
//PM2.5浼犳劅鍣�
else if (locadevice is PMSensor)
@@ -600,8 +631,7 @@
/// <param name="receiveData"></param>
private void DoorLockDeviceReportPush(JObject receiveData)
{
- //鍙湁寰愭鐨勯棬閿佺晫闈㈡病鏈夋墦寮�鐨勬儏鍐典笅,鎵嶄細澶勭悊杩欎釜涓滆タ
- if (ControlCommonResourse.IsDoorLockPageOpen == false && UserCenterResourse.UserInfo.AuthorityNo == 1)
+ if (UserCenterResourse.UserInfo.AuthorityNo == 1)
{
var device = Common.LocalDevice.Current.GetDevice(receiveData.Value<string>("DeviceAddr"), receiveData.Value<int>("Epoint"));
if (device.Type != DeviceType.DoorLock)
@@ -609,31 +639,27 @@
//瀹冧笉鏄棬閿�
return;
}
+
var info = Newtonsoft.Json.JsonConvert.DeserializeObject<DoorLockAlarmsResult>(receiveData["Data"].ToString());
if (info.Clusterid == 257)
{
- //甯稿紑妯″紡鍏抽棴
- if (info.AlarmCode == 217 || info.AlarmCode == 219)
+ //216锛氶攣涓婅缃殑甯稿紑
+ if (info.AlarmCode == 216)
{
- HdlThreadLogic.Current.RunThread(async () =>
+ HdlThreadLogic.Current.RunMain(() =>
{
- //娓╁眳鍩庣殑瑕佺綉鍏充腑鏄惁鏈夐�昏緫瀛樺湪
- //鍙傛暟:2-甯稿紑鑷姩鍖�;3-澶辨晥鏃堕棿鑷姩鍖�
- var result = await Shared.Phone.Device.Logic.SkipView.Exist(3, (ZigBee.Device.DoorLock)device);
- HdlThreadLogic.Current.RunMain(() =>
+ //鏇存柊闂ㄩ攣娑夊強鐨勫父寮�/甯稿叧鐨勭晫闈�
+ if (UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction != null)
{
- //寮瑰嚭寰愭鐨勯偅涓獥鍙�
- DoorLock.DoorLockCommonInfo.NomallyOpenModeInvalidDialog((ZigBee.Device.DoorLock)device, DoorLock.DoorLockCommonInfo.DoorLockMessType.ServicePush,
- result != 0 ? true : false, null);
- });
+ UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction(device.DeviceAddr, true);
+ }
});
}
}
+ //鏄剧ず鏈夋柊娑堟伅鐨勭壒鏁�
+ this.ShowHadNewMessageAppeal();
}
- //鏄剧ず鏈夋柊娑堟伅鐨勭壒鏁�
- this.ShowHadNewMessageAppeal();
}
-
#endregion
#region 鈻� 璁惧鍦ㄧ嚎鐘舵�佹洿鏂板弽棣坃______________
@@ -642,7 +668,7 @@
/// 璁惧鍦ㄧ嚎鐘舵�佹洿鏂板弽棣�
/// </summary>
/// <param name="receiveData"></param>
- private void DeviceOnlineChangePush (JObject receiveData)
+ private void DeviceOnlineChangePush(JObject receiveData)
{
if (this.dicDeviceEvent.Count == 0)
{
@@ -827,29 +853,40 @@
//鏄剧ず鏈夋柊娑堟伅鐨勭壒鏁�
this.ShowHadNewMessageAppeal();
- //杩欎釜涓滆タ鏆傛椂涓嶅鐞�
- ////鍙湁寰愭鐨勯棬閿佺晫闈㈡病鏈夋墦寮�鐨勬儏鍐典笅,鎵嶄細澶勭悊杩欎釜涓滆タ
- //if (ControlCommonResourse.IsDoorLockPageOpen == false && UserCenterResourse.UserInfo.AuthorityNo == 1)
- //{
- // var device = Common.LocalDevice.Current.GetDevice(receiveData.Value<string>("DeviceAddr"), receiveData.Value<int>("Epoint"));
- // if (device.Type != DeviceType.DoorLock)
- // {
- // return;
- // }
- // //鑷姩鍖栨墽琛� 甯稿紑鍏抽棴
- // var data = Newtonsoft.Json.JsonConvert.DeserializeObject<LogicPushResult>(receiveData["Data"].ToString());
- // if (data.ActionData != null && data.ActionData.Actiontype == 8
- // && data.ActionData.PassDataString == "055704010113")
- // {
- // HdlThreadLogic.Current.RunMain(() =>
- // {
- // //寮瑰嚭寰愭鐨勯偅涓獥鍙�
- // DoorLock.DoorLockCommonInfo.NomallyOpenModeInvalidDialog((ZigBee.Device.DoorLock)device, DoorLock.DoorLockCommonInfo.DoorLockMessType.ServicePush, null);
- // });
- // }
- //}
- }
+ // 閫昏緫鎵ц甯稿紑妯″紡澶辨晥鐨勬儏鍐�
+ if (UserCenterResourse.UserInfo.AuthorityNo == 1)
+ {
+ //鑷姩鍖栨墽琛� 甯稿紑鍏抽棴
+ var data = Newtonsoft.Json.JsonConvert.DeserializeObject<LogicPushResult>(receiveData["Data"].ToString());
+ if (data != null && data.ActionData != null)
+ {
+ if (data.ActionData.Actiontype == 8 && data.ActionData.PassDataString == "055704010113")
+ {
+ var deviceAddr = data.ActionData.MacStr;
+ var device = Common.LocalDevice.Current.GetDevicesByMac(deviceAddr, false);
+ if (device.Count > 0 && device[0].Type != DeviceType.DoorLock)
+ {
+ return;
+ }
+ HdlThreadLogic.Current.RunThread(async () =>
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //鎻愮ず闂ㄩ攣宸茬粡澶辨晥
+ new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.NormallyClosed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
+
+ //鏇存柊闂ㄩ攣娑夊強鐨勫父寮�/甯稿叧鐨勭晫闈�
+ if (UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction != null)
+ {
+ UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction(deviceAddr, false);
+ }
+ });
+ });
+ }
+ }
+ }
+ }
#endregion
#region 鈻� 鍦烘櫙瑙﹀彂涓婃姤_______________________
--
Gitblit v1.8.0