From e22fdb94322e6cec38e5e4a9aec13d431a133fde Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期二, 28 四月 2020 16:32:35 +0800
Subject: [PATCH] 上传合并后的代码
---
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs | 190 +++++++++++++++++++++++++++++++++++------------
1 files changed, 142 insertions(+), 48 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
index fd81325..31b6add 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
@@ -93,6 +93,32 @@
});
return;
}
+ else if (topic == "ZigbeeGateWayToClient/" + Common.Config.Instance.Home.Id + "_" + Common.Config.Instance.Guid + "/PrimaryUserDelYou")
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //鍒嗕韩浣忓畢宸叉洿鏀癸紝璇疯仈绯荤鐞嗗憳锛�
+ string msg = Language.StringByID(R.MyInternationalizationString.uShardResidenceHadDeletePleaseTakeToAdmin);
+ var contr = new ShowMsgControl(ShowMsgType.Tip, msg);
+ contr.Show();
+
+ UserCenterLogic.ReLoginAgain(UserCenterResourse.UserInfo.Account, false);
+ });
+ return;
+ }
+ else if (topic == "ZigbeeGateWayToClient/" + Common.Config.Instance.Guid + "/Push/Update")
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //鎮ㄧ殑鏉冮檺宸茬粡鍙樻洿,璇烽噸鏂扮櫥闄�
+ string msg = Language.StringByID(R.MyInternationalizationString.uYouAccessHadChangedPleaseTakeToAdmin);
+ var contr = new ShowMsgControl(ShowMsgType.Tip, msg);
+ contr.Show();
+
+ UserCenterLogic.ReLoginAgain(UserCenterResourse.UserInfo.Account, false);
+ });
+ return;
+ }
else if (UserCenterResourse.UserInfo.AuthorityNo == 3)
{
if (topic == "ZigbeeGateWayToClient/" + Common.Config.Instance.Guid + "/Push/Deleted"
@@ -102,19 +128,6 @@
{
//鍒嗕韩鏁版嵁宸茬粡鍙樻洿,璇烽噸鏂扮櫥闄�
string msg = Language.StringByID(R.MyInternationalizationString.uShardDataIsChangedPleaseLoginAgain);
- var contr = new ShowMsgControl(ShowMsgType.Tip, msg);
- contr.Show();
-
- UserCenterLogic.ReLoginAgain(UserCenterResourse.UserInfo.Account, false);
- });
- return;
- }
- else if (topic == "ZigbeeGateWayToClient/" + Common.Config.Instance.Home.Id + "_" + Common.Config.Instance.Guid + "/PrimaryUserDelYou")
- {
- HdlThreadLogic.Current.RunMain(() =>
- {
- //鍒嗕韩浣忓畢宸叉洿鏀癸紝璇疯仈绯荤鐞嗗憳锛�
- string msg = Language.StringByID(R.MyInternationalizationString.uShardResidenceHadDeletePleaseTakeToAdmin);
var contr = new ShowMsgControl(ShowMsgType.Tip, msg);
contr.Show();
@@ -145,7 +158,7 @@
//闂ㄩ攣涓婃姤
else if (topic == gatewayId + "/Alarms/SendAlarmInform")
{
- this.DoorLockDeviceReportPush(null);
+ this.DoorLockDeviceReportPush(JObject.Parse(msgData));
}
//閫氳繃澶栭儴鏂瑰紡甯冮槻鎾ら槻鎴愬姛鏃舵姤鍛�
else if (topic == gatewayId + "/Security/EnOrWithdrawSucceedReport")
@@ -175,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")
@@ -261,7 +274,7 @@
}
#endregion
- #region 鈻� 绌鸿皟鏁版嵁
+ #region 鈻� 绌鸿皟鍜屾柊椋庢暟鎹�
//绌鸿皟鏁版嵁
else if (report.DeviceStatusReport.CluterID == 513)
{
@@ -330,29 +343,59 @@
locadevice.DeviceStatusReport = report.DeviceStatusReport;
foreach (var attData in report.DeviceStatusReport.AttriBute)
{
- if (attData.AttributeId == 0)
+ //鍖哄垎鏄┖璋冭繕鏄柊椋�
+ var device = Shared.Common.LocalDevice.Current.GetDevice(report.DeviceAddr, report.DeviceEpoint);
+
+ if (device.Type == DeviceType.FreshAir)
{
- //椋庢墖妯″紡
- ((AC)locadevice).currentFanMode = attData.AttriButeData;
- //宸茬粡鎺ユ敹鍒扮姸鎬�
- locadevice.HadReadDeviceStatu = true;
+ 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 == 4096)
+ else
{
- //椋庢墖鎵
- ((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();
+ 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();
+ }
}
}
}
@@ -484,9 +527,36 @@
/// <param name="receiveData"></param>
private void DoorLockDeviceReportPush(JObject receiveData)
{
- //淇濆瓨闂ㄩ攣淇℃伅鍒版湰鍦�
- //HdlAlarmsLogic.Current.SaveDoorLockAlarmInfo(receiveData);
-
+ //鍙湁寰愭鐨勯棬閿佺晫闈㈡病鏈夋墦寮�鐨勬儏鍐典笅,鎵嶄細澶勭悊杩欎釜涓滆タ
+ 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 info = Newtonsoft.Json.JsonConvert.DeserializeObject<DoorLockAlarmsResult>(receiveData["Data"].ToString());
+ if (info.Clusterid == 257)
+ {
+ //甯稿紑妯″紡鍏抽棴
+ if (info.AlarmCode == 217 || info.AlarmCode == 219)
+ {
+ 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);
+ });
+ });
+ }
+ }
+ }
//鏄剧ず鏈夋柊娑堟伅鐨勭壒鏁�
this.ShowHadNewMessageAppeal();
}
@@ -676,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
@@ -786,19 +876,23 @@
//娌℃湁娣诲姞鐩戝惉
return;
}
- lock (this.dicDeviceEvent)
+ //lock (this.dicDeviceEvent)
{
var list = new List<Action<CommonDevice>>();
- foreach (string keys in this.dicDeviceEvent.Keys)
+ try
{
- if (this.dicCommandDiv[keys] != comand)
+ foreach (string keys in this.dicDeviceEvent.Keys)
{
- //鍛戒护鍖哄垎涓嶄竴鑷达紝鍒欎笉璋冪敤鍥炶皟鍑芥暟
- continue;
+ if (this.dicCommandDiv[keys] != comand)
+ {
+ //鍛戒护鍖哄垎涓嶄竴鑷达紝鍒欎笉璋冪敤鍥炶皟鍑芥暟
+ continue;
+ }
+ //鍛戒护鍖哄垎涓�鑷存椂锛屽垯璋冪敤鍥炶皟鍑芥暟
+ list.Add(this.dicDeviceEvent[keys]);
}
- //鍛戒护鍖哄垎涓�鑷存椂锛屽垯璋冪敤鍥炶皟鍑芥暟
- list.Add(this.dicDeviceEvent[keys]);
}
+ catch { return; }
//鏈夊彲鑳藉湪鍥炶皟鍑芥暟涓Щ闄や簡浜嬩欢锛屽鑷存姤閿欙紝鎵�浠ュ厛鏀堕泦锛屽啀璋冪敤
foreach (var action in list)
{
--
Gitblit v1.8.0