From 0f5d7d18f98d6d961b3d21dc2b1b59905e261fff Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期二, 23 二月 2021 17:09:17 +0800
Subject: [PATCH] 20210223-1

---
 HDL_ON/DAL/Mqtt/MqttClient.cs |  120 +++++++++++++++++++++--------------------------------------
 1 files changed, 43 insertions(+), 77 deletions(-)

diff --git a/HDL_ON/DAL/Mqtt/MqttClient.cs b/HDL_ON/DAL/Mqtt/MqttClient.cs
index 2a7d9d5..9524d02 100644
--- a/HDL_ON/DAL/Mqtt/MqttClient.cs
+++ b/HDL_ON/DAL/Mqtt/MqttClient.cs
@@ -71,11 +71,6 @@
                     Utlis.WriteLine($"Remote涓诲姩鏂紑_{s}");
                     //await RemoteMqttClient.DisconnectAsync(new MQTTnet.Client.Disconnecting.MqttClientDisconnectOptions { }, CancellationToken.None);
                     await RemoteMqttClient.DisconnectAsync();
-
-                    if (Control.Ins.IsRemote)
-                    {
-                        Control.Ins.GatewayOnline = false;
-                    }
                 }
             }
             catch (Exception e)
@@ -138,9 +133,12 @@
                     try
                     {
                         System.Threading.Thread.Sleep(500);
-                        //if (!Control.Ins.IsRemote) continue;
                         //杩涘叆鍚庡彴涓嶅鐞�
                         if (MainPage.IsEnterBackground) continue;
+                        if (MqttInfoConfig.Current.HomeGatewayInfo == null)
+                        {
+                            continue;
+                        }
 
                         await StartCloudMqtt();
                         await SubscribeTopics();
@@ -198,14 +196,8 @@
                     var result = await RemoteMqttClient.SubscribeAsync(new MqttTopicFilter[] {  topicFilterPush2, topicAlinkStatus });
                     if (result.Items[0].ResultCode == MQTTnet.Client.Subscribing.MqttClientSubscribeResultCode.GrantedQoS0)
                     {
-                        Control.Ins.GatewayOnline = true;
                         isSubscribeSuccess = true;
                         Utlis.WriteLine("璁㈤槄鎴愬姛锛�");
-                        if (MqttInfoConfig.Current.HomeGatewayInfo != null && MqttInfoConfig.Current.HomeGatewayInfo.mac == Entity.DB_ResidenceData.Instance.residenceGatewayMAC)
-                        {
-                            Control.Ins.IsRemote = true;
-                        }
-                        MqttRemoteSend(new byte[] { 0 }, 3);
                     }
                 }
                 catch (Exception ex)
@@ -275,7 +267,7 @@
                                     else if (topic == $"/BusGateWayToClient/{MqttInfoConfig.Current.HomeGatewayInfo.gatewayId}/Common/CheckGateway")
                                     {
                                         var ss = Encoding.UTF8.GetString(e.ApplicationMessage.Payload);
-                                        ReceiveCheckGateway(ss);
+                                        //ReceiveCheckGateway(ss);
                                         return;
                                     }
                                 }
@@ -296,7 +288,7 @@
                                 //涓�绔彛鏁版嵁瑙f瀽
                                 else
                                 {
-                                    SetGatewayOnlineResetCheck();
+                                    //SetGatewayOnlineResetCheck();
                                     var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, mqttEncryptKey);
                                     //bus鏁版嵁瑙f瀽
                                     var packet = new Packet();
@@ -411,11 +403,6 @@
         /// <returns></returns>
         static async Task StartMQTTGetInfo()
         {
-            //if (!Control.Ins.IsRemote)
-            //{
-            //    return;
-            //}
-
             await GetMqttInfoAndMQTTConnectAsync();
 
             ////--鍒ゆ柇鏄綋鍓嶆槸鍚﹀垎浜殑浣忓畢
@@ -434,12 +421,6 @@
         /// </summary>
         static async Task MQTTConnectAsync()
         {
-
-            //if (!Control.Ins.IsRemote)
-            //{
-            //    return;
-            //}
-
             //if (MqttInfoConfig.Current.HomeGatewayInfo != null && MqttInfoConfig.Current.mMqttInfo != null)
             //娌℃湁缃戝叧鎯呭喌涓嬶紝涔熼渶瑕佽繛鎺qtt锛屾秱楦︾涓夋柟璁惧涓嶉渶瑕佺綉鍏�
             if (MqttInfoConfig.Current.mMqttInfo != null)
@@ -461,10 +442,7 @@
                     MqttInfoConfig.Current.Save();
 
 
-                    if (MqttInfoConfig.Current.HomeGatewayInfo == null)
-                    {
-                        MqttInfoConfig.Current.HomeGatewayInfo = new Server.HomeGatewayInfo();
-                    }
+                  
                     mqttEncryptKey = MqttInfoConfig.Current.HomeGatewayInfo.aesKey;
                     //瑙e瘑瀵嗛挜瑙勫垯锛氬凡鐜版湁鐨勪綇瀹匢D涓哄熀鍑�,浠庡彸杈逛竴涓�鑾峰彇鍊�,鏈�鍚庡鏋滀笉澶�16浣�,鍒欏線鍙宠ˉ闆�
                     string aesKey = string.Empty;
@@ -530,12 +508,11 @@
         {
             try
             {
-                SetGatewayOnlineResetCheck();
-                if (Control.Ins.IsRemote)
+                //SetGatewayOnlineResetCheck();
+                if (Control.Ins.GatewayOnline_Cloud)
                 {
                     CheckIfNeedReadAllDeviceStatus();
                 }
-
             }
             catch { }
         }
@@ -545,22 +522,16 @@
         /// </summary>
         static void ReceiveNotifyGateWayOffline()
         {
-            if (Control.Ins.IsRemote)
-            {
-                Control.Ins.GatewayOnline = false;
-            }
+            Control.Ins.GatewayOnline_Cloud = false;
         }
-
 
         /// <summary>
         /// 鏀跺埌鎸や笅绾挎帹閫�
         /// </summary>
         static void ReceiveNotifySqueezeAsync(string mMes)
         {
-            if (mMes == PushSignStr) return;//鏄嚜宸辩殑鐧诲綍鎺ㄩ�佷笉澶勭悊
+            if (mMes == PushSignStr ) return;//鏄嚜宸辩殑鐧诲綍鎺ㄩ�佷笉澶勭悊//鎴栬�呭綋鍓嶄笉鏄繙绋嬮摼鎺ョ姸鎬�
 
-            //鏂紑杩滅▼杩炴帴
-            Control.Ins.IsRemote = false;
             if (!UserInfo.Current.IsLogin)
             {
                 return;
@@ -587,20 +558,20 @@
             //HDLRequest.Current.PushserivceSignOut ();
         }
 
-        /// <summary>
-        /// 鏀跺埌CheckGateway涓婚
-        /// </summary>
-        static void ReceiveCheckGateway(string mMes)
-        {
-            if (!Control.Ins.IsRemote) return;
+        ///// <summary>
+        ///// 鏀跺埌CheckGateway涓婚
+        ///// </summary>
+        //static void ReceiveCheckGateway(string mMes)
+        //{
+        //    if (!Control.Ins.IsRemote) return;
 
-            Utlis.WriteLine("ReceiveCheckGateway锛�");
+        //    Utlis.WriteLine("ReceiveCheckGateway锛�");
 
-            //CheckIfNeedReadAllDeviceStatus ();
+        //    //CheckIfNeedReadAllDeviceStatus ();
 
-            //var obj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack>(mMes);
-            Control.Ins.GatewayOnline = true;
-        }
+        //    //var obj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack>(mMes);
+        //    Control.Ins.GatewayOnline = true;
+        //}
 
         /// <summary>
         /// 鎺ㄩ�佹尋涓嬬嚎涓婚
@@ -632,11 +603,6 @@
                         }
                         await RemoteMqttClient.PublishAsync(new MqttApplicationMessage { Topic = topicName, Payload = message, Retain = false, QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce });
                         break;
-                    case 3:
-                        topicName = $"/ClientToBusGateWay/{MqttInfoConfig.Current.HomeGatewayInfo.gatewayId}/Common/CheckGateway";
-                        Utlis.WriteLine("CheckGateway");
-                        await RemoteMqttClient.PublishAsync(new MqttApplicationMessage { Topic = topicName, Retain = false, QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce });
-                        break;
                     case 4://鍙戝竷鏂版柟妗堢殑鎸や笅绾夸富棰�
                         topicName = $"/BusGateWayToClient/{UserInfo.Current.ID}" + PushNotifySqueeze;
                         //message = Encoding.UTF8.GetBytes (PushSignStr);
@@ -665,27 +631,27 @@
         /// </summary>
         static bool IfNeedReadAllDeviceStatus = true;
 
-        /// <summary>
-        /// 璁剧疆缃戝叧鍦ㄧ嚎鏍囧織锛屽苟閲嶇疆CheckGateway鍙傛暟
-        /// </summary>
-        static void SetGatewayOnlineResetCheck()
-        {
-            if (Control.Ins.IsRemote)
-            {
-                if (!Control.Ins.GatewayOnline)
-                {
-                    try
-                    {
-                        if (DB_ResidenceData.Instance.HomeGateway != null)
-                        {
-                            DB_ResidenceData.Instance.HomeGateway.gatewayStatus = true;
-                        }
-                        Control.Ins.GatewayOnline = true;
-                    }
-                    catch { }
-                }
-            }
-        }
+        ///// <summary>
+        ///// 璁剧疆缃戝叧鍦ㄧ嚎鏍囧織锛屽苟閲嶇疆CheckGateway鍙傛暟
+        ///// </summary>
+        //static void SetGatewayOnlineResetCheck()
+        //{
+        //    if (Control.Ins.IsRemote)
+        //    {
+        //        if (!Control.Ins.GatewayOnline)
+        //        {
+        //            try
+        //            {
+        //                if (DB_ResidenceData.Instance.HomeGateway != null)
+        //                {
+        //                    DB_ResidenceData.Instance.HomeGateway.gatewayStatus = true;
+        //                }
+        //                Control.Ins.GatewayOnline = true;
+        //            }
+        //            catch { }
+        //        }
+        //    }
+        //}
 
 
         /// <summary>

--
Gitblit v1.8.0