From d4811b7d34b45ff6b21b97f11da128b5572ec526 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期三, 03 三月 2021 16:03:03 +0800
Subject: [PATCH] 20210303-1

---
 HDL_ON/DAL/Mqtt/MqttClient.cs |  138 +++++++++++++++++++++-------------------------
 1 files changed, 63 insertions(+), 75 deletions(-)

diff --git a/HDL_ON/DAL/Mqtt/MqttClient.cs b/HDL_ON/DAL/Mqtt/MqttClient.cs
index 8c97e15..d6b5871 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,11 +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("璁㈤槄鎴愬姛锛�");
-
-                        MqttRemoteSend(new byte[] { 0 }, 3);
                     }
                 }
                 catch (Exception ex)
@@ -251,6 +246,7 @@
                             try
                             {
                                 var topic = e.ApplicationMessage.Topic;
+                                MainPage.Log($"鏀跺埌mqtt涓婚:{topic}");
                                 //涓�绔彛涓婚澶勭悊
                                 if (DB_ResidenceData.Instance.GatewayType == 0 && !DB_ResidenceData.Instance.CheckWhetherGatewayIdIsNull())
                                 {
@@ -271,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;
                                     }
                                 }
@@ -287,12 +283,12 @@
                                 {
                                     var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, tuyaEncryptKey);
                                     var revString = Encoding.UTF8.GetString(bytes);
-                                    Control.Ins.UpdataFunctionStatus(revString, null);
+                                    Control.Ins.UpdataFunctionStatus(revString, null,true);
                                 }
                                 //涓�绔彛鏁版嵁瑙f瀽
                                 else
                                 {
-                                    SetGatewayOnlineResetCheck();
+                                    //SetGatewayOnlineResetCheck();
                                     var bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, mqttEncryptKey);
                                     //bus鏁版嵁瑙f瀽
                                     var packet = new Packet();
@@ -327,6 +323,7 @@
                         RemoteMqttClient.UseConnectedHandler(async (e) =>
                         {
                             IfNeedReadAllDeviceStatus = true;
+                            Control.Ins.GatewayOnline_Cloud = true;
                             Utlis.WriteLine($"============>Mqtt杩滅▼杩炴帴鎴愬姛");
                             SendPushSignOut();
                         });
@@ -407,11 +404,6 @@
         /// <returns></returns>
         static async Task StartMQTTGetInfo()
         {
-            //if (!Control.Ins.IsRemote)
-            //{
-            //    return;
-            //}
-
             await GetMqttInfoAndMQTTConnectAsync();
 
             ////--鍒ゆ柇鏄綋鍓嶆槸鍚﹀垎浜殑浣忓畢
@@ -430,12 +422,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)
@@ -457,10 +443,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;
@@ -526,12 +509,11 @@
         {
             try
             {
-                SetGatewayOnlineResetCheck();
-                if (Control.Ins.IsRemote)
+                //SetGatewayOnlineResetCheck();
+                if (Control.Ins.GatewayOnline_Cloud)
                 {
                     CheckIfNeedReadAllDeviceStatus();
                 }
-
             }
             catch { }
         }
@@ -541,22 +523,33 @@
         /// </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;//鏄嚜宸辩殑鐧诲綍鎺ㄩ�佷笉澶勭悊//鎴栬�呭綋鍓嶄笉鏄繙绋嬮摼鎺ョ姸鎬�
+            //娴嬭瘯璐﹀彿锛屼笉鎸や笅绾�
+            switch (UserInfo.Current.AccountString)
+            {
+                case "13415629083":
+                case "18316120654":
+                case "15622703419":
+                case "18824864143":
+                case "464027401@qq.com":
+                case "2791308028@qq.com":
+                case "13697499568":
+                case "18666455392":
+                case "13375012446":
+                case "13602944661":
+                case "18778381374":
+                case "18316672920":
+                    return;
+            }
 
-            //鏂紑杩滅▼杩炴帴
-            Control.Ins.IsRemote = false;
             if (!UserInfo.Current.IsLogin)
             {
                 return;
@@ -583,20 +576,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>
         /// 鎺ㄩ�佹尋涓嬬嚎涓婚
@@ -628,11 +621,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);
@@ -661,27 +649,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