From 9ca2281d589fbd4b35177d1846974f17d12095ae Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期四, 16 四月 2020 15:12:02 +0800
Subject: [PATCH] 2020-04-16 1.更新

---
 Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs |  310 +++++++++++++++++++++++++++++----------------------
 1 files changed, 174 insertions(+), 136 deletions(-)

diff --git a/Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs b/Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs
index 0d6fb64..f580d57 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs
@@ -45,7 +45,7 @@
         static MqttCommon ()
         {
             InitMqtt ();
-            InitCheckGateway ();
+            //InitCheckGateway ();
         }
 
         /// <summary>
@@ -177,161 +177,176 @@
             await System.Threading.Tasks.Task.Factory.StartNew (async () => {
                 try {
                     //lock (RemoteMqttClient) {
-                        //琛ㄧず鍚庨潰灏嗚繘琛岃繛鎺�
+                    //琛ㄧず鍚庨潰灏嗚繘琛岃繛鎺�
 
-                        #region 鍒濆鍖栬繙绋婱qtt
-                        //(3)褰揫杩炴帴浜戠鐨凪qtt鎴愬姛鍚嶿鎴栬�匸浠ュ強鍚庨潰App閫氳繃浜戠Mqtt杞彂鏁版嵁缁欑綉鍏虫垚鍔熷悗],澶勭悊鎺ユ敹鍒颁簯绔暟鎹寘鍝嶅簲鏃跺湪mqttServerClient_ApplicationMessageReceived杩欎釜鏂规硶澶勭悊
-                        if (RemoteMqttClient.ApplicationMessageReceivedHandler == null) {
-                            RemoteMqttClient.UseApplicationMessageReceivedHandler (async (e) => {
-                                try {
-                                    if (!RemoteMqttClient.IsConnected || !CommonPage.IsRemote) {
-                                        return;
+                    #region 鍒濆鍖栬繙绋婱qtt
+                    //(3)褰揫杩炴帴浜戠鐨凪qtt鎴愬姛鍚嶿鎴栬�匸浠ュ強鍚庨潰App閫氳繃浜戠Mqtt杞彂鏁版嵁缁欑綉鍏虫垚鍔熷悗],澶勭悊鎺ユ敹鍒颁簯绔暟鎹寘鍝嶅簲鏃跺湪mqttServerClient_ApplicationMessageReceived杩欎釜鏂规硶澶勭悊
+                    if (RemoteMqttClient.ApplicationMessageReceivedHandler == null) {
+                        RemoteMqttClient.UseApplicationMessageReceivedHandler (async (e) => {
+                            try {
+                                if (!RemoteMqttClient.IsConnected || !CommonPage.IsRemote) {
+                                    return;
+                                }
+                                var aesDecryptTopic = e.ApplicationMessage.Topic;
+                                var aesDecryptPayload = e.ApplicationMessage.Payload;
+                                //Utlis.WriteLine ("Topic={0}", aesDecryptTopic);
+
+                                //if (aesDecryptTopic == $"NotifyBusGateWayInfoChagne/{CurRemoteMACInfo.md5_mac_string}") {//缃戝叧涓婄嚎锛岄渶瑕佹洿鏂癮eskey
+                                //2020-01-11 淇敼璁㈤槄涓婚鍦板潃
+                                if (aesDecryptTopic == $"/BusGateWayToClient/{CurRemoteMACInfo.macMark}/NotifyBusGateWayInfoChange") {//缃戝叧涓婄嚎锛岄渶瑕佹洿鏂癮eskey                                                                                                                     //----绗簩姝ワ細璇诲彇璐﹀彿涓嬮潰鐨勭綉鍏冲垪琛�
+                                    await ReceiveNotifyBusGateWayInfoChange ();
+                                } else if (aesDecryptTopic == $"/BusGateWayToClient/{CurRemoteMACInfo.macMark}/NotifyGateWayOffline") {//缃戝叧鎺夌嚎                                                                                                                    //----绗簩姝ワ細璇诲彇璐﹀彿涓嬮潰鐨勭綉鍏冲垪琛�
+                                    ReceiveNotifyGateWayOffline ();
+                                } else if (aesDecryptTopic == $"/BusGateWayToClient/{mMqttInfo.connEmqClientId}/Push/NotifySqueeze") {//璁㈤槄鎸や笅绾块棶棰�
+                                    await ReceiveNotifySqueezeAsync (aesDecryptPayload);
+                                } else if (aesDecryptTopic == $"/BusGateWayToClient/{CurRemoteMACInfo.macMark}/Common/CheckGateway") {
+                                    ReceiveCheckGatewayTopic ();
+                                } else {
+                                    SetGatewayOnlineResetCheck ();
+
+                                    if (!string.IsNullOrEmpty (mqttEncryptKey)) {
+                                        aesDecryptPayload = Shared.Securitys.EncryptionService.AesDecryptPayload (e.ApplicationMessage.Payload, mqttEncryptKey);
                                     }
-                                    var aesDecryptTopic = e.ApplicationMessage.Topic;
-                                    var aesDecryptPayload = e.ApplicationMessage.Payload;
-                                    //Utlis.WriteLine ("Topic={0}", aesDecryptTopic);
 
-                                    //if (aesDecryptTopic == $"NotifyBusGateWayInfoChagne/{CurRemoteMACInfo.md5_mac_string}") {//缃戝叧涓婄嚎锛岄渶瑕佹洿鏂癮eskey
-                                    //2020-01-11 淇敼璁㈤槄涓婚鍦板潃
-                                    if (aesDecryptTopic == $"/BusGateWayToClient/{CurRemoteMACInfo.macMark}/NotifyBusGateWayInfoChange") {//缃戝叧涓婄嚎锛岄渶瑕佹洿鏂癮eskey                                                                                                                     //----绗簩姝ワ細璇诲彇璐﹀彿涓嬮潰鐨勭綉鍏冲垪琛�
-                                        await ReceiveNotifyBusGateWayInfoChange ();
-                                    } else if (aesDecryptTopic == $"/BusGateWayToClient/{CurRemoteMACInfo.macMark}/NotifyGateWayOffline") {//缃戝叧鎺夌嚎                                                                                                                    //----绗簩姝ワ細璇诲彇璐﹀彿涓嬮潰鐨勭綉鍏冲垪琛�
-                                        ReceiveNotifyGateWayOffline ();
-                                    } else if (aesDecryptTopic == $"/BusGateWayToClient/{mMqttInfo.connEmqClientId}/Push/NotifySqueeze") {//璁㈤槄鎸や笅绾块棶棰�
-                                        await ReceiveNotifySqueezeAsync (aesDecryptPayload);
-                                    }else if (aesDecryptTopic == $"/BusGateWayToClient/{CurRemoteMACInfo.macMark}/Common/CheckGateway") {
-                                        ReceiveCheckGatewayTopic ();
-                                    } else {
-                                        SetGatewayOnlineResetCheck ();
+                                    var packet = new Packet ();
+                                    packet.IsLocal = false;
+                                    packet.Bytes = aesDecryptPayload;
+                                    packet.Manager ();
 
-                                        if (!string.IsNullOrEmpty (mqttEncryptKey)) {
-                                            aesDecryptPayload = Shared.Securitys.EncryptionService.AesDecryptPayload (e.ApplicationMessage.Payload, mqttEncryptKey);
-                                        }
+                                }
 
-                                        var packet = new Packet ();
-                                        packet.IsLocal = false;
-                                        packet.Bytes = aesDecryptPayload;
-                                        packet.Manager ();
+                            } catch { }
+                        });
+                    }
 
+                    if (RemoteMqttClient.DisconnectedHandler == null) {
+                        RemoteMqttClient.UseDisconnectedHandler (async (e) => {
+                            Utlis.WriteLine ($"============>Mqtt杩滅▼杩炴帴鏂紑");
+                            isSubscribeTopicSuccess = false;
+                            await DisConnectRemoteMqttClient ("StartRemoteMqtt.DisconnectedHandler");
+                            //await StartRemoteMqtt();
+                            //if (thisShowTip) {
+                            //    if (CommonPage.IsRemote) {
+                            //        Application.RunOnMainThread (() => {
+                            //            MainPage.Loading.Hide ();
+                            //        });
+                            //    }
+                            //} else {
+                            //    thisShowTip = true;
+                            //}
+                        });
+                    }
+                    if (RemoteMqttClient.ConnectedHandler == null) {
+                        RemoteMqttClient.UseConnectedHandler (async (e) => {
+                            IfNeedReadAllDeviceStatus = true;
+                            mCheckGatewayTime = DateTime.Now;
+                            CheckGatewayCount = 0;
+                            bNeedStartTip = true;
+
+                            Utlis.WriteLine ($"============>Mqtt杩滅▼杩炴帴鎴愬姛");
+                            if (CommonPage.IsRemote) {
+                                Utlis.ShowAppLinkStatus (AppLinkStatus.CloudLink);
+                            }
+
+                            if (CurRemoteMACInfo != null) {
+                                IsGatewayOnline = CurRemoteMACInfo.isValid != "InValid";
+                                if (!IsGatewayOnline) {
+                                    //缃戝叧涓嶅湪绾�
+                                    if (CommonPage.IsRemote) {
+                                        Utlis.ShowAppLinkStatus (AppLinkStatus.CloudOffline);
                                     }
-                                   
-                                } catch { }
-                            });
-                        }
+                                    MainPage.AddTip ("Remote failed,gateway offline");
+                                } else {
+                                    //Remote Connection Succeeded
 
-                        if (RemoteMqttClient.DisconnectedHandler == null) {
-                            RemoteMqttClient.UseDisconnectedHandler (async (e) => {
-                                Utlis.WriteLine ($"============>Mqtt杩滅▼杩炴帴鏂紑");
-                                isSubscribeTopicSuccess = false;
-                                await DisConnectRemoteMqttClient ("StartRemoteMqtt.DisconnectedHandler");
-                                //await StartRemoteMqtt();
-                                //if (thisShowTip) {
-                                //    if (CommonPage.IsRemote) {
-                                //        Application.RunOnMainThread (() => {
-                                //            MainPage.Loading.Hide ();
-                                //        });
-                                //    }
+                                    //缃戝叧鍦ㄧ嚎
+
+                                    //閲嶆柊涓�娆℃墍鏈夎澶囩姸鎬�
+                                    IfNeedReadAllDeviceStatus = false;
+                                    Shared.SimpleControl.Phone.UserMiddle.ReadAllDeviceStatus ();
+                                    //
+                                    MqttRemoteSend (new byte [] { 0 }, 3);
+
+                                    if (CommonPage.IsRemote) {
+                                        MainPage.AddTip (Language.StringByID (Shared.SimpleControl.R.MyInternationalizationString.LinkSuccess));
+                                    }
+                                }
+
+                                //if (CurRemoteMACInfo.isValid == "InValid") {
+                                //    MainPage.AddTip ("Remote failed,gateway offline");
                                 //} else {
-                                //    thisShowTip = true;
+                                //    MqttRemoteSend (new byte [] { 0 }, 3);
                                 //}
-                            });
-                        }
-                        if (RemoteMqttClient.ConnectedHandler == null) {
-                            RemoteMqttClient.UseConnectedHandler (async (e) => {
-                                IfNeedReadAllDeviceStatus = true;
-
-                                Utlis.WriteLine ($"============>Mqtt杩滅▼杩炴帴鎴愬姛");
-                                if (CommonPage.IsRemote) {
-                                    Utlis.ShowAppLinkStatus (AppLinkStatus.CloudLink);
-                                }
-
-                                if (CurRemoteMACInfo != null) {
-                                    IsGatewayOnline = CurRemoteMACInfo.isValid != "InValid";
-                                    if (!IsGatewayOnline) {
-                                        //缃戝叧涓嶅湪绾�
-                                        if (CommonPage.IsRemote) {
-                                            Utlis.ShowAppLinkStatus (AppLinkStatus.CloudOffline);
-                                        }
-                                        MainPage.AddTip ("Remote failed,gateway offline");
-                                    } else {
-                                        //缃戝叧鍦ㄧ嚎
-
-                                        //閲嶆柊涓�娆℃墍鏈夎澶囩姸鎬�
-                                        IfNeedReadAllDeviceStatus = false;
-                                        Shared.SimpleControl.Phone.UserMiddle.ReadAllDeviceStatus ();
-                                        //
-                                        MqttRemoteSend (new byte [] { 0 }, 3);
-                                    }
-
-                                    //if (CurRemoteMACInfo.isValid == "InValid") {
-                                    //    MainPage.AddTip ("Remote failed,gateway offline");
-                                    //} else {
-                                    //    MqttRemoteSend (new byte [] { 0 }, 3);
-                                    //}
-                                }
+                            }
 
 
-                            });
-                        }
-                        #endregion
+                        });
+                    }
+                    #endregion
                     //}
+                    //姝e湪鑾峰彇杩炴帴鍙傛暟..."
+                    ShowStartTip ();
 
-                        mqttRequestParToken = MainPage.LoginUser.LoginTokenString;
-                        //--绗竴姝ワ細鑾峰彇mqtt閾炬帴鍙傛暟
-                        var mqttInfoRequestResult = new ResponsePack () { StateCode = "" };
-                        //--鍒ゆ柇鏄綋鍓嶆槸鍚﹀垎浜殑浣忓畢
-                        if (!UserConfig.Instance.CurrentRegion.IsOthreShare) {
-                            var mqttInfoUrl = $"{MainPage.RequestHttpsHost}/EmqMqtt/GetConnMqttInfo";//鑾峰彇杩炴帴杩滅▼浜戠Emq Mqtt 鏈嶅姟鍣ㄨ繛鎺ヤ俊鎭�
-                            var mqttInfoRequestPar = new GetConnMqttInfoObj () {
-                                LoginAccessToken = mqttRequestParToken,
-                                PlatformStr = "L1",
-                                PublishPayloadJsonStr = PushSignStr,
-                            };
-                            mqttInfoRequestResult = MainPage.RequestHttps ("", Newtonsoft.Json.JsonConvert.SerializeObject (mqttInfoRequestPar), mqttInfoUrl);
-                            if (mqttInfoRequestResult != null && mqttInfoRequestResult.ResponseData != null) {
-                                var mqttInfoRequestResult_info = Newtonsoft.Json.JsonConvert.DeserializeObject<MqttInfo> (mqttInfoRequestResult.ResponseData.ToString ());
-                                if (mqttInfoRequestResult_info != null) {
-                                    mMqttInfo = mqttInfoRequestResult_info;
-                                    //----绗簩姝ワ細璇诲彇璐﹀彿涓嬮潰鐨勭綉鍏冲垪琛�
-                                    var gatewayListUrl = $"{MainPage.RequestHttpsHostMqtt}/Center/Center/GetGatewayPagger"; //App銆丅uspro杞欢鐧诲綍鍚庤幏鍙栫綉鍏冲垪琛� http 璇锋眰
-                                    var gatewayListRequestPar = new RemoteRequestParameters () { LoginAccessToken = mqttRequestParToken, RequestVersion = "RequestVersion1", RequestProtocolType = 0, RequestSource = 1 };
-                                    var gatewayListRequestResult = MainPage.RequestHttps ("", Newtonsoft.Json.JsonConvert.SerializeObject (gatewayListRequestPar), gatewayListUrl);
-                                    var gatewayListRequestResult_Obj = Newtonsoft.Json.JsonConvert.DeserializeObject<MqttRemoteInfo> (gatewayListRequestResult.ResponseData.ToString ());
-                                    //--鎵惧嚭鏄惁瀛樺湪鍖归厤褰撳墠浣忓畢鐨刴ac锛屽瓨鍦ㄥ啀杩涜杩滅▼銆�
-                                    if (UserConfig.Instance.CheckHomeGatewaysNotEmpty ()) {
-                                        CurRemoteMACInfo = gatewayListRequestResult_Obj.pageData.Find ((obj) => obj.mac == UserConfig.Instance.CurrentRegion.HomeGateways [0].GatewayUniqueId);
-                                        //CurRemoteMACInfo = gatewayListRequestResult_Obj.pageData [0];
-                                        await MQTTConnectAsync ();
+                    mqttRequestParToken = MainPage.LoginUser.LoginTokenString;
+                    //--绗竴姝ワ細鑾峰彇mqtt閾炬帴鍙傛暟
+                    var mqttInfoRequestResult = new ResponsePack () { StateCode = "" };
+                    //--鍒ゆ柇鏄綋鍓嶆槸鍚﹀垎浜殑浣忓畢
+                    if (!UserConfig.Instance.CurrentRegion.IsOthreShare) {
+                        var mqttInfoUrl = $"{MainPage.RequestHttpsHost}/EmqMqtt/GetConnMqttInfo";//鑾峰彇杩炴帴杩滅▼浜戠Emq Mqtt 鏈嶅姟鍣ㄨ繛鎺ヤ俊鎭�
+                        var mqttInfoRequestPar = new GetConnMqttInfoObj () {
+                            LoginAccessToken = mqttRequestParToken,
+                            PlatformStr = "L1",
+                            PublishPayloadJsonStr = PushSignStr,
+                        };
+                        mqttInfoRequestResult = MainPage.RequestHttps ("", Newtonsoft.Json.JsonConvert.SerializeObject (mqttInfoRequestPar), mqttInfoUrl);
+                        if (mqttInfoRequestResult != null && mqttInfoRequestResult.ResponseData != null) {
+                            var mqttInfoRequestResult_info = Newtonsoft.Json.JsonConvert.DeserializeObject<MqttInfo> (mqttInfoRequestResult.ResponseData.ToString ());
+                            if (mqttInfoRequestResult_info != null) {
+                                mMqttInfo = mqttInfoRequestResult_info;
+                                //----绗簩姝ワ細璇诲彇璐﹀彿涓嬮潰鐨勭綉鍏冲垪琛�
+                                var gatewayListUrl = $"{MainPage.RequestHttpsHostMqtt}/Center/Center/GetGatewayPagger"; //App銆丅uspro杞欢鐧诲綍鍚庤幏鍙栫綉鍏冲垪琛� http 璇锋眰
+                                var gatewayListRequestPar = new RemoteRequestParameters () { LoginAccessToken = mqttRequestParToken, RequestVersion = "RequestVersion1", RequestProtocolType = 0, RequestSource = 1 };
+                                var gatewayListRequestResult = MainPage.RequestHttps ("", Newtonsoft.Json.JsonConvert.SerializeObject (gatewayListRequestPar), gatewayListUrl);
+                                var gatewayListRequestResult_Obj = Newtonsoft.Json.JsonConvert.DeserializeObject<MqttRemoteInfo> (gatewayListRequestResult.ResponseData.ToString ());
+                                //--鎵惧嚭鏄惁瀛樺湪鍖归厤褰撳墠浣忓畢鐨刴ac锛屽瓨鍦ㄥ啀杩涜杩滅▼銆�
+                                if (UserConfig.Instance.CheckHomeGatewaysNotEmpty ()) {
+                                    CurRemoteMACInfo = gatewayListRequestResult_Obj.pageData.Find ((obj) => obj.mac == UserConfig.Instance.CurrentRegion.HomeGateways [0].GatewayUniqueId);
+                                    //CurRemoteMACInfo = gatewayListRequestResult_Obj.pageData [0];
+                                    await MQTTConnectAsync ();
 
-                                    } else {
-                                        Utlis.WriteLine ("============>Mqtt 鍙栨秷杩炴帴锛屽綋鍓嶄綇瀹呮病缁戝畾缃戝叧");
-                                    }
-
+                                } else {
+                                    Utlis.WriteLine ("============>Mqtt 鍙栨秷杩炴帴锛屽綋鍓嶄綇瀹呮病缁戝畾缃戝叧");
                                 }
 
+                            } else {
+                                Utlis.WriteLine ("============>Mqtt GetGatewayPagger 澶辫触");
                             }
+
                         } else {
-                            //濡傛灉鏄垎浜繃鏉ョ殑浣忓畢 璧颁笅闈㈡祦绋�
-                            var mqttInfoRequestPar = new ShareMemberConnMqttInfoObj () {
-                                LoginAccessToken = mqttRequestParToken,
-                                PlatformStr = "L1",
-                                PublishPayloadJsonStr = PushSignStr,
-                                MainUserDistributedMark = UserConfig.Instance.CurrentRegion.MainUserDistributedMark,
-                                HomeId = UserConfig.Instance.CurrentRegion.Id
-                            };
-                            mqttInfoRequestResult = MainPage.RequestHttps (API.ShareMemberConnMqttInfo, Newtonsoft.Json.JsonConvert.SerializeObject (mqttInfoRequestPar));
-                            //--绗竴姝ワ細鑾峰彇mqtt閾炬帴鍙傛暟
-                            if (mqttInfoRequestResult != null && mqttInfoRequestResult.ResponseData != null) {
-                                var mqttInfoRequestResult_info = Newtonsoft.Json.JsonConvert.DeserializeObject<MqttInfo> (mqttInfoRequestResult.ResponseData.ToString ());
-                                if (mqttInfoRequestResult_info != null) {
-                                    mMqttInfo = mqttInfoRequestResult_info;
-                                    //--绗簩姝ワ細鑾峰彇褰撳墠浣忓垎浜畢缃戝叧淇℃伅骞惰繛鎺QTT
-                                    await GetSingleHomeGatewayPaggerAndMQTTConnectAsync ();
-
-                                }
+                            Utlis.WriteLine ("============>Mqtt GetInfo 澶辫触");
+                        }
+                    } else {
+                        //濡傛灉鏄垎浜繃鏉ョ殑浣忓畢 璧颁笅闈㈡祦绋�
+                        var mqttInfoRequestPar = new ShareMemberConnMqttInfoObj () {
+                            LoginAccessToken = mqttRequestParToken,
+                            PlatformStr = "L1",
+                            PublishPayloadJsonStr = PushSignStr,
+                            MainUserDistributedMark = UserConfig.Instance.CurrentRegion.MainUserDistributedMark,
+                            HomeId = UserConfig.Instance.CurrentRegion.Id
+                        };
+                        mqttInfoRequestResult = MainPage.RequestHttps (API.ShareMemberConnMqttInfo, Newtonsoft.Json.JsonConvert.SerializeObject (mqttInfoRequestPar));
+                        //--绗竴姝ワ細鑾峰彇mqtt閾炬帴鍙傛暟
+                        if (mqttInfoRequestResult != null && mqttInfoRequestResult.ResponseData != null) {
+                            var mqttInfoRequestResult_info = Newtonsoft.Json.JsonConvert.DeserializeObject<MqttInfo> (mqttInfoRequestResult.ResponseData.ToString ());
+                            if (mqttInfoRequestResult_info != null) {
+                                mMqttInfo = mqttInfoRequestResult_info;
+                                //--绗簩姝ワ細鑾峰彇褰撳墠浣忓垎浜畢缃戝叧淇℃伅骞惰繛鎺QTT
+                                await GetSingleHomeGatewayPaggerAndMQTTConnectAsync ();
 
                             }
+
                         }
+                    }
 
                 } catch (Exception ex) {
                     Utlis.WriteLine ($"============>Mqtt 杩滅▼杩炴帴閫氳杩炴帴鍑哄紓甯�:{ex.Message}");
@@ -349,6 +364,9 @@
         {
 
             if (CurRemoteMACInfo != null && mMqttInfo != null) {
+                MainPage.AddTip ("Successfully obtained parameters, starting to connect...");
+
+
                 var url = mMqttInfo.connEmqDomainPort;
                 var clientId = mMqttInfo.connEmqClientId;
                 var username = mMqttInfo.connEmqUserName;
@@ -375,6 +393,27 @@
             }
         }
 
+
+//        571=Starting remote connection mode...
+//572=Getting remote connection parameters...
+//573=Successfully obtained parameters, starting to connect...
+        /// <summary>
+        /// 浠庡紑濮嬪埌杩炴帴鎴愬姛锛屽彧鎻愮ず1娆�
+        /// </summary>
+        static bool bNeedStartTip = true;
+        /// <summary>
+        /// 姝e湪鑾峰彇杩炴帴鍙傛暟...
+        /// </summary>
+        static void ShowStartTip ()
+        {
+            if (bNeedStartTip) {
+                bNeedStartTip = false;
+                if (CommonPage.IsRemote) {
+                    MainPage.AddTip ("Getting remote connection parameters...");
+                }
+            }
+
+        }
 
         ///// <summary>
         ///// 
@@ -638,7 +677,7 @@
                             if (CheckGatewayCount >= 3) {
                                 //杩炵画3娆℃病鍥炲锛屽垽瀹氱綉鍏宠秴鏃�
                                 if (MainPage.WiFiStatus == "CrabtreeAdd/CloudLink.png") {
-                                    IsGatewayOnline = false;
+                                    //IsGatewayOnline = false;
                                     Utlis.ShowAppLinkStatus (AppLinkStatus.CloudOffline);
                                     MainPage.AddTip ("Gateway offline!");
                                 }
@@ -672,7 +711,6 @@
             //Utlis.WriteLine ("============>Mqtt CheckGateway缃戝叧鍥炲");
             SetGatewayOnlineResetCheck ();
           
-
 
             //鏃х綉鍏虫柟娉�
             //MainPage.WiFiStatus = "CrabtreeAdd/CloudUnlink.png";

--
Gitblit v1.8.0