From 07466c19110693e3e439a7d7c8ad0bc21d9b3287 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期三, 29 四月 2020 09:14:01 +0800
Subject: [PATCH] 优化代码,更改门锁需求接口
---
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs | 181 ++++++++++++++++++++++++--------------------
1 files changed, 99 insertions(+), 82 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
old mode 100644
new mode 100755
index 5c00a59..31b6add
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
@@ -188,7 +188,7 @@
//閫昏緫瑙﹀彂涓婃姤
else if (topic == gatewayId + "/Logic/Execute_Respon")
{
- this.LogicExecutePush(null);
+ this.LogicExecutePush(JObject.Parse(msgData));
}
//鍦烘櫙瑙﹀彂涓婃姤
else if (topic == gatewayId + "/Scene/Exec_Respon")
@@ -339,70 +339,70 @@
}
//绌鸿皟鏁版嵁
else if (report.DeviceStatusReport.CluterID == 514)
- {
+ {
locadevice.DeviceStatusReport = report.DeviceStatusReport;
foreach (var attData in report.DeviceStatusReport.AttriBute)
- {
- //鍖哄垎鏄┖璋冭繕鏄柊椋�
- var device = Shared.Common.LocalDevice.Current.GetDevice(report.DeviceAddr, report.DeviceEpoint);
-
- if (device.Type == DeviceType.FreshAir)
- {
- if (attData.AttributeId == 0)
- {
- switch (attData.AttriButeData)
- {
- case 0:
- case 4:
- ((FreshAir)locadevice).currentFanStatus = attData.AttriButeData;
- break;
- case 1:
- case 2:
- case 3:
- ((FreshAir)locadevice).currentFanSpeed = attData.AttriButeData;
- break;
- case 5:
- case 7:
- ((FreshAir)locadevice).currentFanMode = attData.AttriButeData;
- break;
- }
- //宸茬粡鎺ユ敹鍒扮姸鎬�
- locadevice.HadReadDeviceStatu = true;
- }
- }
- else
- {
- if (attData.AttributeId == 0)
- {
- //椋庢墖妯″紡
- ((AC)locadevice).currentFanMode = attData.AttriButeData;
- //宸茬粡鎺ユ敹鍒扮姸鎬�
- locadevice.HadReadDeviceStatu = true;
- }
- else if (attData.AttributeId == 4096)
- {
- //椋庢墖鎵
- ((AC)locadevice).currentFanSwingMode = attData.AttriButeData;
- //宸茬粡鎺ユ敹鍒扮姸鎬�
- locadevice.HadReadDeviceStatu = true;
- }
- else if (attData.AttributeId == 4097)
- {
- //杞崲涓轰簩杩涘埗
- var value = Convert.ToString(attData.AttriButeData, 2).PadLeft(16, '0');
- //杩欎釜璁剧疆鏄斁鍦ㄥ悗闈㈢殑
- value = value.Substring(value.Length - 1, 1);
- //鍚敤鎽嗛鍔熻兘
- ((AC)locadevice).UseSwingFunction = value == "1";
- locadevice.ReSave();
- }
- }
+ {
+ //鍖哄垎鏄┖璋冭繕鏄柊椋�
+ var device = Shared.Common.LocalDevice.Current.GetDevice(report.DeviceAddr, report.DeviceEpoint);
+
+ if (device.Type == DeviceType.FreshAir)
+ {
+ if (attData.AttributeId == 0)
+ {
+ switch (attData.AttriButeData)
+ {
+ case 0:
+ case 4:
+ ((FreshAir)locadevice).currentFanStatus = attData.AttriButeData;
+ break;
+ case 1:
+ case 2:
+ case 3:
+ ((FreshAir)locadevice).currentFanSpeed = attData.AttriButeData;
+ break;
+ case 5:
+ case 7:
+ ((FreshAir)locadevice).currentFanMode = attData.AttriButeData;
+ break;
+ }
+ //宸茬粡鎺ユ敹鍒扮姸鎬�
+ locadevice.HadReadDeviceStatu = true;
+ }
+ }
+ else
+ {
+ if (attData.AttributeId == 0)
+ {
+ //椋庢墖妯″紡
+ ((AC)locadevice).currentFanMode = attData.AttriButeData;
+ //宸茬粡鎺ユ敹鍒扮姸鎬�
+ locadevice.HadReadDeviceStatu = true;
+ }
+ else if (attData.AttributeId == 4096)
+ {
+ //椋庢墖鎵
+ ((AC)locadevice).currentFanSwingMode = attData.AttriButeData;
+ //宸茬粡鎺ユ敹鍒扮姸鎬�
+ locadevice.HadReadDeviceStatu = true;
+ }
+ else if (attData.AttributeId == 4097)
+ {
+ //杞崲涓轰簩杩涘埗
+ var value = Convert.ToString(attData.AttriButeData, 2).PadLeft(16, '0');
+ //杩欎釜璁剧疆鏄斁鍦ㄥ悗闈㈢殑
+ value = value.Substring(value.Length - 1, 1);
+ //鍚敤鎽嗛鍔熻兘
+ ((AC)locadevice).UseSwingFunction = value == "1";
+ locadevice.ReSave();
+ }
+ }
}
- }
+ }
#endregion
-
+
#region 鈻� 浜害鏁版嵁
- //浜害鏁版嵁
+ //浜害鏁版嵁
else if (report.DeviceStatusReport.CluterID == 8)
{
locadevice.DeviceStatusReport = report.DeviceStatusReport;
@@ -528,10 +528,10 @@
private void DoorLockDeviceReportPush(JObject receiveData)
{
//鍙湁寰愭鐨勯棬閿佺晫闈㈡病鏈夋墦寮�鐨勬儏鍐典笅,鎵嶄細澶勭悊杩欎釜涓滆タ
- if (ControlCommonResourse.IsDoorLockPageOpen == false)
+ if (ControlCommonResourse.IsDoorLockPageOpen == false && UserCenterResourse.UserInfo.AuthorityNo == 1)
{
var device = Common.LocalDevice.Current.GetDevice(receiveData.Value<string>("DeviceAddr"), receiveData.Value<int>("Epoint"));
- if ((device is ZigBee.Device.DoorLock) == false)
+ if (device.Type != DeviceType.DoorLock)
{
//瀹冧笉鏄棬閿�
return;
@@ -539,24 +539,21 @@
var info = Newtonsoft.Json.JsonConvert.DeserializeObject<DoorLockAlarmsResult>(receiveData["Data"].ToString());
if (info.Clusterid == 257)
{
- //甯稿紑妯″紡寮�鍚�
- if (info.AlarmCode == 216)
+ //甯稿紑妯″紡鍏抽棴
+ if (info.AlarmCode == 217 || info.AlarmCode == 219)
{
- //娓╁眳鍩庣殑瑕佺綉鍏充腑鏄惁鏈夐�昏緫瀛樺湪
- Application.RunOnMainThread(async () =>
- {
- var resTemp = await Shared.Phone.Device.Logic.SkipView.Exist();
- if (resTemp == 1)
- {
- DoorLock.DoorLockCommonInfo.NomallyOpenModeInvalidDialog((ZigBee.Device.DoorLock)device, DoorLock.DoorLockCommonInfo.DoorLockMessType.ServicePush, true, null);
- }
- else if (resTemp == 0)
- {
- DoorLock.DoorLockCommonInfo.NomallyOpenModeInvalidDialog((ZigBee.Device.DoorLock)device, DoorLock.DoorLockCommonInfo.DoorLockMessType.ServicePush, false, null);
- }
-
-
- });
+ HdlThreadLogic.Current.RunThread(async () =>
+ {
+ //娓╁眳鍩庣殑瑕佺綉鍏充腑鏄惁鏈夐�昏緫瀛樺湪
+ //鍙傛暟:2-甯稿紑鑷姩鍖�;3-澶辨晥鏃堕棿鑷姩鍖�
+ var result = await Shared.Phone.Device.Logic.SkipView.Exist(2);
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //寮瑰嚭寰愭鐨勯偅涓獥鍙�
+ DoorLock.DoorLockCommonInfo.NomallyOpenModeInvalidDialog((ZigBee.Device.DoorLock)device, DoorLock.DoorLockCommonInfo.DoorLockMessType.ServicePush,
+ result != 0 ? true : false, null);
+ });
+ });
}
}
}
@@ -572,7 +569,7 @@
/// 璁惧鍦ㄧ嚎鐘舵�佹洿鏂板弽棣�
/// </summary>
/// <param name="receiveData"></param>
- private void DeviceOnlineChangePush(JObject receiveData)
+ private void DeviceOnlineChangePush (JObject receiveData)
{
if (this.dicDeviceEvent.Count == 0)
{
@@ -749,10 +746,30 @@
/// <param name="receiveData"></param>
private void LogicExecutePush(JObject receiveData)
{
- //鐩墠涓嶅鐞嗛�昏緫涓婃姤鍐呭
-
//鏄剧ず鏈夋柊娑堟伅鐨勭壒鏁�
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);
+ // });
+ // }
+ //}
}
#endregion
--
Gitblit v1.8.0