From 4f0ab0ad21ce450b7856d50f98322a7899361386 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期二, 22 九月 2020 10:30:01 +0800
Subject: [PATCH] 不要下载这个备份
---
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs | 497 ++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 416 insertions(+), 81 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayReceiveLogic.cs
index 79f5634..b912a16 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)
@@ -274,7 +319,7 @@
}
#endregion
- #region 鈻� 绌鸿皟鏁版嵁
+ #region 鈻� 绌鸿皟鍜屾柊椋庢暟鎹�
//绌鸿皟鏁版嵁
else if (report.DeviceStatusReport.CluterID == 513)
{
@@ -343,29 +388,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 15:
+ ((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();
+ }
}
}
}
@@ -376,10 +451,43 @@
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;
+
+ //if (locadevice is LightBase)
+ //{
+ // //褰撴帴鏀跺埌浜害鍊兼椂,榛樿鎵撳紑
+ // ((LightBase)locadevice).OnOffStatus = 1;
+ //}
+ }
+ }
+ #endregion
+
+ #region 鈻� 鑹叉俯鏁版嵁
+ //鑹叉俯鏁版嵁
+ else if (report.DeviceStatusReport.CluterID == 768)
+ {
+ locadevice.DeviceStatusReport = report.DeviceStatusReport;
+ if (report.DeviceStatusReport.AttriBute[0].AttributeId == 0)
+ {
+ if (locadevice.Type == DeviceType.ColorTemperatureLight)
+ {
+ //姝ゅ睘鎬ц〃鏄庡綋鍓嶈壊娓�
+ int value = report.DeviceStatusReport.AttriBute[0].AttriButeData != 0 ? 1000000 / report.DeviceStatusReport.AttriBute[0].AttriButeData : 0;
+ ((ColorTemperatureLight)locadevice).ColorTemperature = value;
+ }
//宸茬粡鎺ユ敹鍒扮姸鎬�
locadevice.HadReadDeviceStatu = true;
}
@@ -395,27 +503,56 @@
//娓╁害
if (attData.AttributeId == (int)AttriButeId.MeasuredValue)
{
- if (attData.AttriButeData == 0)
+ decimal temperatrue = 0;
+ string receiptData = string.Empty;
+ //涓や釜涓や釜浣嶇疆鏇挎崲
+ for (int i = attData.AttriButeDataHex.Length - 1; i >= 0; i = i - 2)
{
- ((TemperatureSensor)locadevice).Temperatrue = 0;
+ receiptData += attData.AttriButeDataHex[i - 1].ToString() + attData.AttriButeDataHex[i].ToString();
}
- else if (attData.AttriButeData > 32767)
- {
- //璐熸暟(鐗规畩澶勭悊)
- string strValue = (attData.AttriButeData - 65536).ToString();
- //灏忔暟鐐归渶瑕佷竴浣�
- strValue = strValue.Substring(0, strValue.Length - 1);
- ((TemperatureSensor)locadevice).Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
- }
- else
+ //鏈夌鍙�(浼氬嚭鐜拌礋鏁�)
+ if (attData.AttriButeDataType == 40 || attData.AttriButeDataType == 41)
{
//灏忔暟鐐归渶瑕佷竴浣�
- string strValue = attData.AttriButeData.ToString();
+ string strValue = Convert.ToInt16(receiptData, 16).ToString();
strValue = strValue.Substring(0, strValue.Length - 1);
- ((TemperatureSensor)locadevice).Temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
+ temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
+ }
+ //鏃犵鍙�(涓嶄細鍑虹幇璐熸暟)
+ else if (attData.AttriButeDataType == 32 || attData.AttriButeDataType == 33)
+ {
+ ushort shortData = Convert.ToUInt16(receiptData, 16);
+ if (shortData > 32767)
+ {
+ //璐熸暟(鐗规畩澶勭悊)
+ string strValue = (shortData - 65536).ToString();
+ //灏忔暟鐐归渶瑕佷竴浣�
+ strValue = strValue.Substring(0, strValue.Length - 1);
+ temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
+ }
+ else
+ {
+ //灏忔暟鐐归渶瑕佷竴浣�
+ string strValue = shortData.ToString();
+ strValue = strValue.Substring(0, strValue.Length - 1);
+ temperatrue = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
+ }
+ }
+
+ //娓╁害浼犳劅鍣�
+ if (locadevice is TemperatureSensor)
+ {
+ ((TemperatureSensor)locadevice).currentTemperature = temperatrue;
+ }
+ //PM2.5浼犳劅鍣�
+ else if (locadevice is PMSensor)
+ {
+ ((PMSensor)locadevice).currentTemperature = (int)temperatrue;
}
//宸茬粡鎺ユ敹鍒扮姸鎬�
locadevice.HadReadDeviceStatu = true;
+ //娓╁害鍊奸渶瑕佷繚瀛�
+ locadevice.ReSave();
}
}
}
@@ -430,25 +567,203 @@
//婀垮害
if (attData.AttributeId == (int)AttriButeId.MeasuredValue)
{
- if (attData.AttriButeData == 0)
+ decimal humidity = 0;
+ string receiptData = string.Empty;
+ //涓や釜涓や釜浣嶇疆鏇挎崲
+ for (int i = attData.AttriButeDataHex.Length - 1; i >= 0; i = i - 2)
{
- ((TemperatureSensor)locadevice).Humidity = 0;
+ receiptData += attData.AttriButeDataHex[i - 1].ToString() + attData.AttriButeDataHex[i].ToString();
}
- else
+ //鏈夌鍙�(浼氬嚭鐜拌礋鏁�)
+ if (attData.AttriButeDataType == 40 || attData.AttriButeDataType == 41)
{
- //灏忔暟鐐归渶瑕佷竴浣�(婀垮害娌℃湁璐熸暟)
- string strValue = attData.AttriButeData.ToString();
+ //灏忔暟鐐归渶瑕佷竴浣�
+ string strValue = Convert.ToInt16(receiptData, 16).ToString();
strValue = strValue.Substring(0, strValue.Length - 1);
- ((TemperatureSensor)locadevice).Humidity = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
+ humidity = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
+ }
+ //鏃犵鍙�(涓嶄細鍑虹幇璐熸暟)
+ else if (attData.AttriButeDataType == 32 || attData.AttriButeDataType == 33)
+ {
+ //灏忔暟鐐归渶瑕佷竴浣� 婀垮害涓嶄細鍑虹幇璐熸暟
+ string strValue = Convert.ToUInt16(receiptData, 16).ToString();
+ strValue = strValue.Substring(0, strValue.Length - 1);
+ humidity = Convert.ToDecimal(strValue.Insert(strValue.Length - 1, "."));
+ }
+ //婀垮害浼犳劅鍣�
+ if (locadevice is TemperatureSensor)
+ {
+ ((TemperatureSensor)locadevice).currentHumidity = humidity;
+ }
+ //鏂伴鐨勬箍搴︿紶鎰熷櫒
+ else if (locadevice is HumiditySensor)
+ {
+ ((HumiditySensor)locadevice).currentHumidity = humidity;
+ }
+ //PM2.5浼犳劅鍣�
+ else if (locadevice is PMSensor)
+ {
+ ((PMSensor)locadevice).currentHumidity = (int)humidity;
+ }
+ //宸茬粡鎺ユ敹鍒扮姸鎬�
+ locadevice.HadReadDeviceStatu = true;
+ //婀垮害鍊奸渶瑕佷繚瀛�
+ locadevice.ReSave();
+ }
+ }
+ }
+ #endregion
+
+ #region 鈻� PM2.5鏁版嵁
+ //PM2.5鏁版嵁
+ else if (report.DeviceStatusReport.CluterID == 1066)
+ {
+ foreach (var attData in report.DeviceStatusReport.AttriBute)
+ {
+ //PM2.5
+ if (attData.AttributeId == (int)AttriButeId.MeasuredValue)
+ {
+
+ if (attData.AttriButeDataType == 57)
+ {
+ ((PMSensor)locadevice).currentPmData = attData.AttriButeData;
}
}
//宸茬粡鎺ユ敹鍒扮姸鎬�
locadevice.HadReadDeviceStatu = true;
}
}
+
+ #endregion
+
+ #region 鈻� 璁惧鍩虹淇℃伅
+
+ else if (report.DeviceStatusReport.CluterID == 0)
+ {
+ var listLocalDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceAddr, false);
+ //灞炴�ч兘鏄竴鏍风殑
+ foreach (var myDevice in listLocalDevice)
+ {
+ //灞炴�ф槸鍚︽敼鍙�
+ bool attriButeChanged = false;
+ foreach (var data in report.DeviceStatusReport.AttriBute)
+ {
+ //鐢熶骇鍟嗗悕瀛�
+ if (data.AttributeId == 4 && data.AttriButeDataHex.Length > 2)
+ {
+ if (data.AttriButeDataHex.Length > 2)
+ {
+ var value = UserCenterLogic.TranslateHexadecimalIntoText(data.AttriButeDataHex.Substring(2));
+ if (myDevice.ManufacturerName != value)
+ {
+ //灞炴�у彉鏇翠簡
+ attriButeChanged = true;
+ }
+ myDevice.ManufacturerName = value;
+ }
+ }
+ //鍨嬪彿鐮�(涔熷彨妯″潡ID)
+ if (data.AttributeId == 5)
+ {
+ if (data.AttriButeDataHex.Length > 2)
+ {
+ var value = UserCenterLogic.TranslateHexadecimalIntoText(data.AttriButeDataHex.Substring(2));
+ if (myDevice.ModelIdentifier != value)
+ {
+ //灞炴�у彉鏇翠簡
+ attriButeChanged = true;
+ }
+ myDevice.ModelIdentifier = value;
+ }
+ }
+ //鐢熶骇鏃ユ湡
+ if (data.AttributeId == 6)
+ {
+ if (data.AttriButeDataHex.Length > 2)
+ {
+ var value = UserCenterLogic.TranslateHexadecimalIntoText(data.AttriButeDataHex.Substring(2));
+ if (myDevice.ProductionDate != value)
+ {
+ //灞炴�у彉鏇翠簡
+ attriButeChanged = true;
+ }
+ myDevice.ProductionDate = value;
+ }
+ }
+ //鐢垫簮
+ if (data.AttributeId == 7)
+ {
+ myDevice.PowerSource = data.AttriButeData;
+ }
+ //搴忓垪鍙�
+ if (data.AttributeId == 13)
+ {
+ if (data.AttriButeDataHex.Length > 2)
+ {
+ string value;
+ if (Common.LocalDevice.Current.IsHdlDevice(myDevice) == false)
+ {
+ //绗笁鏂硅澶�
+ value = data.AttriButeDataHex.Substring(2);
+ }
+ else
+ {
+ //娌充笢璁惧
+ value = UserCenterLogic.TranslateHexadecimalIntoText(data.AttriButeDataHex.Substring(2));
+ }
+ if (myDevice.SerialNumber != value)
+ {
+ //灞炴�у彉鏇翠簡
+ attriButeChanged = true;
+ }
+ myDevice.SerialNumber = value;
+ }
+ }
+ }
+ //濡傛灉灞炴�у彉鏇翠簡
+ if (attriButeChanged == true && myDevice.IsCustomizeImage == false)
+ {
+ //UI閲嶆柊鐢熸垚
+ myDevice.IconPath = string.Empty;
+ myDevice.ReSave();
+ }
+ }
+ }
+
#endregion
}
-
+ else if (deviceEpoint == 200)
+ {
+ var localOta = Common.LocalDevice.Current.GetOTADevice(deviceAddr);
+ if (localOta != null)
+ {
+ #region 鈻� 鍥轰欢鐗堟湰
+ //鍥轰欢鐗堟湰
+ if (report.DeviceStatusReport.CluterID == (int)Cluster_ID.Ota)
+ {
+ foreach (var data in report.DeviceStatusReport.AttriBute)
+ {
+ //闀滃儚鐗堟湰
+ if (data.AttributeId == (int)AttriButeId.ImgVersion)
+ {
+ localOta.ImgVersion = data.AttriButeData;
+ }
+ //纭欢鐗堟湰
+ if (data.AttributeId == (int)AttriButeId.mgHWversion)
+ {
+ localOta.HwVersion = data.AttriButeData;
+ }
+ //闀滃儚ID
+ if (data.AttributeId == (int)AttriButeId.ImgTypeId)
+ {
+ localOta.ImgTypeId = data.AttriButeData;
+ }
+ }
+ localOta.ReSave();
+ }
+ #endregion
+ }
+ }
this.DeviceReportPush(report, ReceiveComandDiv.A璁惧灞炴�т笂鎶�);
}
@@ -477,6 +792,8 @@
if (locadevice != null)
{
((IASZone)locadevice).iASInfo = ias.iASInfo;
+ //濡傛灉鎺ユ敹鍒颁笂鎶�,鍗宠鏄庤繖涓紶鎰熷櫒鏄湪绾跨殑
+ locadevice.IsOnline = 1;
//璁板綍鍥炲鏃堕棿
locadevice.LastDateTime = DateTime.Now;
}
@@ -497,8 +814,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)
@@ -506,24 +822,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.RunMain(() =>
{
- //寮瑰嚭寰愭鐨勯偅涓獥鍙�
- DoorLock.DoorLockCommonInfo.NomallyOpenModeInvalidDialog((ZigBee.Device.DoorLock)device, DoorLock.DoorLockCommonInfo.DoorLockMessType.ServicePush, null);
+ //鏇存柊闂ㄩ攣娑夊強鐨勫父寮�/甯稿叧鐨勭晫闈�
+ if (UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction != null)
+ {
+ UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction(device.DeviceAddr, true);
+ }
});
}
}
+ //鏄剧ず鏈夋柊娑堟伅鐨勭壒鏁�
+ this.ShowHadNewMessageAppeal();
}
- //鏄剧ず鏈夋柊娑堟伅鐨勭壒鏁�
- this.ShowHadNewMessageAppeal();
}
-
#endregion
#region 鈻� 璁惧鍦ㄧ嚎鐘舵�佹洿鏂板弽棣坃______________
@@ -532,7 +851,7 @@
/// 璁惧鍦ㄧ嚎鐘舵�佹洿鏂板弽棣�
/// </summary>
/// <param name="receiveData"></param>
- private void DeviceOnlineChangePush (JObject receiveData)
+ private void DeviceOnlineChangePush(JObject receiveData)
{
if (this.dicDeviceEvent.Count == 0)
{
@@ -543,13 +862,18 @@
tempDevice.IsOnline = Convert.ToInt32(receiveData["Data"]["IsOnline"].ToString());
//澶勭悊缃戝叧涓婃姤鐨勬暟鎹�,鐒跺悗鍙樻洿鏈湴缂撳瓨
- var locadevice = Common.LocalDevice.Current.GetDevice(tempDevice.DeviceAddr, tempDevice.DeviceEpoint);
- if (locadevice != null)
+ var locadevice = Common.LocalDevice.Current.GetDevicesByMac(tempDevice.DeviceAddr);
+ for (int i = 0; i < locadevice.Count; i++)
{
- locadevice.IsOnline = tempDevice.IsOnline;
+ bool onlineChanged = locadevice[i].IsOnline != tempDevice.IsOnline;
+ locadevice[i].IsOnline = tempDevice.IsOnline;
//璁板綍鍥炲鏃堕棿
- locadevice.LastDateTime = DateTime.Now;
- locadevice.ReSave();
+ locadevice[i].LastDateTime = DateTime.Now;
+ if (onlineChanged == true)
+ {
+ //鍦ㄧ嚎鐘舵�佸彉鏇翠簡,鎵嶄繚瀛�
+ locadevice[i].ReSave();
+ }
}
this.DeviceReportPush(tempDevice, ReceiveComandDiv.A璁惧鍦ㄧ嚎涓婃姤);
@@ -712,29 +1036,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