From c7df85937f73fb347ee0b19e9c052d2d00a6df6c Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期五, 18 九月 2020 13:58:19 +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