From ec1d7cb35b99f01be0151c5b6f0c0fc2fa30ab95 Mon Sep 17 00:00:00 2001 From: wei <kaede@kaededeMacBook-Air.local> Date: 星期六, 21 八月 2021 17:44:09 +0800 Subject: [PATCH] 安防功能 --- HDL_ON/DAL/Mqtt/MqttClient.cs | 36 +++++++++++++++++++++++++++++++++++- 1 files changed, 35 insertions(+), 1 deletions(-) diff --git a/HDL_ON/DAL/Mqtt/MqttClient.cs b/HDL_ON/DAL/Mqtt/MqttClient.cs index ab7a620..1a46ca6 100644 --- a/HDL_ON/DAL/Mqtt/MqttClient.cs +++ b/HDL_ON/DAL/Mqtt/MqttClient.cs @@ -237,6 +237,14 @@ QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce }; + //瀹夐槻鐘舵�佸彉鍖� + var securityStatusChange = new MqttTopicFilter() + { + Topic = $"/user/{MqttInfoConfig.Current.HomeGatewayInfo.gatewayId}/custom/security/status/up", + QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce + }; + + #endregion @@ -244,7 +252,8 @@ var result = await RemoteMqttClient.SubscribeAsync(new MqttTopicFilter[] { pirStatus,pirStudy, appDeviceRefresh,appHomeRefresh,appRoomRefresh,residenceChange, - topicFilterPush2, topicAlinkStatus ,mqttkeyChange}); + topicFilterPush2, topicAlinkStatus ,mqttkeyChange, + securityStatusChange}); if (result.Items[0].ResultCode == MQTTnet.Client.Subscribing.MqttClientSubscribeResultCode.GrantedQoS0) { isSubscribeSuccess = true; @@ -434,7 +443,32 @@ pm.GetHomeGatewayList(); MainPage.Log($"缃戝叧瀵嗛挜鍙樻洿.鏂板瘑閽ワ細{DB_ResidenceData.Instance.HomeGateway.aesKey}"); } + //瀹夐槻鐘舵�佸彉鍖� + else if (topic == $"/user/{MqttInfoConfig.Current.HomeGatewayInfo.gatewayId}/custom/security/status/up") + { + MainPage.Log($"瀹夐槻鐘舵�佸彉鍖�"); + if (!string.IsNullOrEmpty(DB_ResidenceData.Instance.HomeGateway.aesKey)) + { + var securityBytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, DB_ResidenceData.Instance.HomeGateway.aesKey); + var securityString = Encoding.UTF8.GetString(securityBytes); + var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<SecurityStatusObj>(securityString); + if (temp != null) + { + Control_Udp.ReceiveRepeatManager(temp.id, null); + foreach (var updataSecurity in temp.objects) + { + var updataLocalSecurity = FunctionList.List.securities.Find((obj) => obj.sid == updataSecurity.sid); + if (updataLocalSecurity != null) + { + updataLocalSecurity.status = updataSecurity.status; + } + } + HomePage.LoadEvent_RefreshSecurityStatus(); + ArmCenterPage.LoadEvent_RefreshSecurityStatus(); + } + } + } #endregion //A缃戝叧璁惧鐘舵��-鍖呭惈娑傞甫璁惧 else if (topic == $"/user/{DB_ResidenceData.Instance.CurrentRegion.id}/app/thing/property/send") -- Gitblit v1.8.0