From fef8136ca77f03dc4fb8988da94dcaf9dcabc9e0 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期三, 22 四月 2020 19:09:54 +0800 Subject: [PATCH] 2020-04-22 1.增加远程连接过程提示,请求参数合并到一个接口。 --- Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs | 462 ++++++++++++++++++++++++--------------------------------- 1 files changed, 192 insertions(+), 270 deletions(-) diff --git a/Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs b/Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs index f580d57..0774a26 100644 --- a/Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs +++ b/Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs @@ -108,18 +108,17 @@ }; - var topicFilters = new TopicFilter [] { topicFilterCommon, topicFilterGateWayInfoChange, topicFilterNotifySqueeze, topicFilterNotifyGateWayOffline }; var result = await RemoteMqttClient.SubscribeAsync (topicFilters); if (result.Items [0].ResultCode == MQTTnet.Client.Subscribing.MqttClientSubscribeResultCode.GrantedQoS2) { isSubscribeTopicSuccess = true; } } - } catch (Exception e) { - + } catch (Exception ex) { + + } } - /// <summary> @@ -149,9 +148,6 @@ /// 鎺ㄩ�佹爣璇� /// </summary> static string PushSignStr = System.DateTime.Now.Ticks.ToString (); - - - /// <summary> @@ -224,16 +220,6 @@ 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) { @@ -258,9 +244,7 @@ MainPage.AddTip ("Remote failed,gateway offline"); } else { //Remote Connection Succeeded - //缃戝叧鍦ㄧ嚎 - //閲嶆柊涓�娆℃墍鏈夎澶囩姸鎬� IfNeedReadAllDeviceStatus = false; Shared.SimpleControl.Phone.UserMiddle.ReadAllDeviceStatus (); @@ -271,81 +255,21 @@ MainPage.AddTip (Language.StringByID (Shared.SimpleControl.R.MyInternationalizationString.LinkSuccess)); } } - - //if (CurRemoteMACInfo.isValid == "InValid") { - // MainPage.AddTip ("Remote failed,gateway offline"); - //} else { - // MqttRemoteSend (new byte [] { 0 }, 3); - //} } - - }); } #endregion //} - //姝e湪鑾峰彇杩炴帴鍙傛暟..." + //鎻愮ず姝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 (); - - } else { - Utlis.WriteLine ("============>Mqtt 鍙栨秷杩炴帴锛屽綋鍓嶄綇瀹呮病缁戝畾缃戝叧"); - } - - } else { - Utlis.WriteLine ("============>Mqtt GetGatewayPagger 澶辫触"); - } - - } else { - Utlis.WriteLine ("============>Mqtt GetInfo 澶辫触"); - } + //涓昏处鍙疯幏鍙朚QTT 杩滅▼閾炬帴淇℃伅锛屽苟杩炴帴 + await GetMqttInfoAndMQTTConnectAsync (); } 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 (); - - } - - } + await GetShareMqttInfoAndMQTTConnectAsync (); } } catch (Exception ex) { @@ -358,45 +282,159 @@ } /// <summary> + /// 涓昏处鍙疯幏鍙朚QTT 杩滅▼閾炬帴淇℃伅锛屽苟杩炴帴 + /// </summary> + /// <returns></returns> + static async Task GetMqttInfoAndMQTTConnectAsync () + { + var mqttInfoRequestPar = new GetConnMqttInfoObj () { + LoginAccessToken = MainPage.LoginUser.LoginTokenString, + PlatformStr = "L1", + PublishPayloadJsonStr = PushSignStr, + Mac = UserConfig.Instance.GatewayMAC, + }; + //----绗竴姝ワ細鑾峰彇mqtt閾炬帴鍙傛暟 + var mqttInfoRequestResult = MainPage.RequestHttps (API.GetConnMqttInfo, Newtonsoft.Json.JsonConvert.SerializeObject (mqttInfoRequestPar)); + + if (mqttInfoRequestResult != null && mqttInfoRequestResult.ResponseData != null) { + try { + var mqttInfoRequestResult_Obj = Newtonsoft.Json.JsonConvert.DeserializeObject<MqttInfo> (mqttInfoRequestResult.ResponseData.ToString ()); + + if (mqttInfoRequestResult_Obj != null) { + mMqttInfo = mqttInfoRequestResult_Obj; + string url = mqttInfoRequestResult_Obj.connEmqDomainPort; + string clientId = mqttInfoRequestResult_Obj.connEmqClientId; + string username = mqttInfoRequestResult_Obj.connEmqUserName; + string passwordRemote = mqttInfoRequestResult_Obj.connEmqPwd; + if (mqttInfoRequestResult_Obj.AccountAllGateways != null && mqttInfoRequestResult_Obj.AccountAllGateways.Count > 0) { + //----绗簩姝ユ壘鍑烘槸鍚﹀瓨鍦ㄥ尮閰嶅綋鍓嶄綇瀹呯殑mac锛屽瓨鍦ㄥ啀杩涜杩滅▼銆� + CurRemoteMACInfo = mqttInfoRequestResult_Obj.AccountAllGateways.Find ((obj) => obj.mac == UserConfig.Instance.GatewayMAC); + if (CurRemoteMACInfo != null) { + CurRemoteMACInfo.LoginAccessToken = MainPage.LoginUser.LoginTokenString; + CurRemoteMACInfo.clientId = clientId; + //----绗笁姝� 寮�濮嬭繛鎺� + await MQTTConnectAsync (); + } else { + Utlis.WriteLine ("============>Mqtt CurRemoteMACInfo null"); + } + } + + } else { + Utlis.WriteLine ("============>Mqtt mqttInfoRequestResult_Obj null"); + } + } catch { } + } else { + Utlis.WriteLine ("============>Mqtt GetInfo 澶辫触"); + } + + } + + /// <summary> + /// 瀛愯处鍙疯幏鍙朚QTT 杩滅▼閾炬帴淇℃伅锛屽苟杩炴帴 + /// </summary> + /// <returns></returns> + static async Task GetShareMqttInfoAndMQTTConnectAsync () + { + var mqttInfoRequestPar = new ShareMemberConnMqttInfoObj () { + LoginAccessToken = mqttRequestParToken, + PlatformStr = "L1", + PublishPayloadJsonStr = PushSignStr, + MainUserDistributedMark = UserConfig.Instance.CurrentRegion.MainUserDistributedMark, + HomeId = UserConfig.Instance.CurrentRegion.Id + }; + var 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 (); + } + } + } + + /// <summary> /// 杩炴帴MQTT /// </summary> static async Task MQTTConnectAsync () { - if (CurRemoteMACInfo != null && mMqttInfo != null) { + + + //鑾峰彇鍙傛暟鎴愬姛锛屽紑濮嬭繛鎺�... MainPage.AddTip ("Successfully obtained parameters, starting to connect..."); + //try { + // var url = mMqttInfo.connEmqDomainPort; + // var clientId = mMqttInfo.connEmqClientId; + // var username = mMqttInfo.connEmqUserName; + // var passwordRemote = mMqttInfo.connEmqPwd; + // CurRemoteMACInfo.clientId = clientId; + // CurRemoteMACInfo.LoginAccessToken = MainPage.LoginUser.LoginTokenString; + // mqttEncryptKey = CurRemoteMACInfo.isNewBusproGateway ? CurRemoteMACInfo.aesKey : ""; + // //mqttEncryptKey = CurRemoteMACInfo.aesKey; + // var options1 = new MQTTnet.Client.Options.MqttClientOptionsBuilder () + // .WithClientId (clientId) + // .WithTcpServer (url.Split (':') [1].Substring ("//".Length), int.Parse (url.Split (':') [2])) + // .WithCredentials (username, passwordRemote) + // .WithCleanSession () + // // .WithCommunicationTimeout (new TimeSpan (0, 0, 20)) + // .Build (); + // await DisConnectRemoteMqttClient ("StartRemoteMqtt"); + // await RemoteMqttClient.ConnectAsync (options1); + // remoteIsConnected = true; + // IsDisConnectingWithSendCatch = false; + //} catch (Exception ex) { + // Console.WriteLine ("Connect error: " + ex.Message); + //} - var url = mMqttInfo.connEmqDomainPort; - var clientId = mMqttInfo.connEmqClientId; - var username = mMqttInfo.connEmqUserName; - var passwordRemote = mMqttInfo.connEmqPwd; + string mes = ""; + try { - CurRemoteMACInfo.LoginAccessToken = MainPage.LoginUser.LoginTokenString; - mqttEncryptKey = CurRemoteMACInfo.aesKey; - var options1 = new MQTTnet.Client.Options.MqttClientOptionsBuilder () - .WithClientId (clientId) - .WithTcpServer (url.Split (':') [1].Substring ("//".Length), int.Parse (url.Split (':') [2])) - .WithCredentials (username, passwordRemote) - .WithCleanSession () - // .WithCommunicationTimeout (new TimeSpan (0, 0, 20)) - .Build (); + var url = mMqttInfo.connEmqDomainPort; + var clientId = mMqttInfo.connEmqClientId; + var username = mMqttInfo.connEmqUserName; + var passwordRemote = mMqttInfo.connEmqPwd; - await DisConnectRemoteMqttClient ("StartRemoteMqtt"); - await RemoteMqttClient.ConnectAsync (options1); - remoteIsConnected = true; - IsDisConnectingWithSendCatch = false; - //await MqttRemoteSend (new byte [] { 0 }, 1); - //await MqttRemoteSend (new byte [] { 0 }, 2); - //await MqttRemoteSend (new byte [] { 0 }, 4); + mes = "step1.Set Data"; + CurRemoteMACInfo.LoginAccessToken = MainPage.LoginUser.LoginTokenString; + mqttEncryptKey = CurRemoteMACInfo.aesKey; + var options1 = new MQTTnet.Client.Options.MqttClientOptionsBuilder () + .WithClientId (clientId) + .WithTcpServer (url.Split (':') [1].Substring ("//".Length), int.Parse (url.Split (':') [2])) + .WithCredentials (username, passwordRemote) + .WithCleanSession () + // .WithCommunicationTimeout (new TimeSpan (0, 0, 20)) + .Build (); + + mes = "step2.DisConnect"; + await DisConnectRemoteMqttClient ("StartRemoteMqtt"); + //MainPage.AddTip ("Start to connect..."); + mes = "step3.Start to connect"; + await RemoteMqttClient.ConnectAsync (options1); + mes = "step4.Connected Success"; + remoteIsConnected = true; + IsDisConnectingWithSendCatch = false; + + //MainPage.AddTip ("Connection succeeded!"); + //await MqttRemoteSend (new byte [] { 0 }, 1); + //await MqttRemoteSend (new byte [] { 0 }, 2); + //await MqttRemoteSend (new byte [] { 0 }, 4); + + } catch (Exception ex) { + mes = ex.Message; + //options1 寮傚父鎻愮ず + //Console.WriteLine("Connect error: " + ex.Message); + //MainPage.ShowAlertOnMainThread ("Connect error: " + ex.Message); + } finally { + MainPage.ShowAlertOnMainThread ("finally: " + mes); + //MainPage.AddTip ("finally: " + mes); + } } } - -// 571=Starting remote connection mode... -//572=Getting remote connection parameters... -//573=Successfully obtained parameters, starting to connect... /// <summary> /// 浠庡紑濮嬪埌杩炴帴鎴愬姛锛屽彧鎻愮ず1娆� /// </summary> @@ -412,68 +450,7 @@ MainPage.AddTip ("Getting remote connection parameters..."); } } - } - - ///// <summary> - ///// - ///// </summary> - ///// <param name="message">闄勫姞鏁版嵁鍖�</param> - ///// <param name="optionType">鎿嶄綔绫诲瀷锛�0=缃戝叧鎺у埗锛�1=璁㈤槄缃戝叧鏁版嵁;2=璁㈤槄缃戝叧涓婄嚎鏁版嵁;3=璁㈤槄缃戝叧鏄惁鍦ㄧ嚎涓婚 4=璁㈤槄鎸や笅绾夸富棰� </param> - ///// <returns></returns> - //public static async Task MqttRemoteSend (byte [] message, int optionType = 0) - //{ - // try { - // if (!remoteIsConnected) { - // Utlis.WriteLine ($"============>Mqtt 鏈繛鎺� 鍙栨秷鍙戦��"); - // return; - // } - - // var topicName = @"/" + MainPage.LoginUser.AccountString.ToLower () + @"/" + UserConfig.Instance.GatewayMAC.Replace (".", "") + @"/" + currentGuid; - // switch (optionType) { - // case 0: - // var messageSend = message; - // if (string.IsNullOrEmpty (mqttEncryptKey)) { - // topicName = $"/ClientToBusGateWay/{CurRemoteMACInfo.macMark}/Common/OldON"; - // } else { - // topicName = $"/ClientToBusGateWay/{CurRemoteMACInfo.macMark}/Common/NewON"; - // messageSend = Shared.Securitys.EncryptionService.AesEncryptPayload (message, mqttEncryptKey); - // } - // //base64鍔犲瘑 - // var m = new MqttApplicationMessage { Topic = topicName, Payload = messageSend, Retain = false, QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.ExactlyOnce }; - // //if (remoteIsConnected) { - // try { - // RemoteMqttClient.PublishAsync (m); - // } catch (Exception e) { - // //await DisConnectRemoteMqttClient (e.Message); - // //await StartCloudMqtt (); - // //if (remoteIsConnected) { - // // RemoteMqttClient.PublishAsync (m); - // //} - // } - // //} - // break; - // case 3: - // topicName = $"/ClientToBusGateWay/{CurRemoteMACInfo.macMark}/Common/CheckGateway"; - - // var m1 = new MqttApplicationMessage { Topic = topicName, Retain = false, QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.ExactlyOnce }; - - // try { - // Utlis.WriteLine ("CheckGateway"); - // RemoteMqttClient.PublishAsync (m1); - // } catch (Exception e) { - // Utlis.WriteLine ($"CheckGateway Fail:{e.Message}"); - // //await DisConnectRemoteMqttClient (e.Message); - // //await StartCloudMqtt (); - // } - // break; - // } - - - // } catch (Exception e) { - - // } - //} /// <summary> /// @@ -518,8 +495,6 @@ /// SendCatch 鍚庢墽琛屼竴娆℃柇寮�鎿嶄綔 /// </summary> static bool IsDisConnectingWithSendCatch = false; - - /// <summary> /// 鍒嗕韩浣忓畢 鑾峰彇褰撳墠浣忓畢缃戝叧淇℃伅骞朵笖杩炴帴MQTT 鎴栬�呭埛鏂� @@ -600,25 +575,8 @@ Shared.SimpleControl.Phone.UserMiddle.ReadAllDeviceStatus (); } } - - //褰撳墠浣忓畢涓嶆槸鍒嗕韩鏉� - if (!UserConfig.Instance.CurrentRegion.IsOthreShare) { - - var gatewayListUrl = $"{MainPage.RequestHttpsHostMqtt}/Center/Center/GetGatewayPagger"; //App銆丅uspro杞欢鐧诲綍鍚庤幏鍙栫綉鍏冲垪琛� http 璇锋眰 - var gatewayListRequestPar = new RemoteRequestParameters () { Mac = CurRemoteMACInfo.mac, 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 ()); - if (gatewayListRequestResult_Obj != null && gatewayListRequestResult_Obj.pageData.Count > 0) { - var mData = gatewayListRequestResult_Obj.pageData.Find ((obj) => obj.mac == UserConfig.Instance.CurrentRegion.HomeGateways [0].GatewayUniqueId); - if (mData != null) { - CurRemoteMACInfo.aesKey = mData.aesKey; - mqttEncryptKey = CurRemoteMACInfo.aesKey; - } - } - } else { - GetSingleHomeGatewayPaggerAndMQTTConnectAsync (false); - } - + //璇锋眰鍒锋柊涓�娆� 缃戝叧鍔犲瘑Key + await GetSingleHomeGatewayPaggerAndMQTTConnectAsync (false); } /// <summary> /// 鏀跺埌缃戝叧鎺夌嚎淇℃伅 @@ -660,48 +618,48 @@ //} - /// <summary> - /// 瀹氭椂妫�娴嬬綉鍏虫槸鍚﹀湪绾� - /// 1.绾跨▼浼戠湢闂撮殧5s - /// 2.鍙戦�丆heckGateway闂撮殧涓�9S锛屾敹鍒颁富棰樺埛鏂拌鏃堕棿锛岄噸缃彂閫佹鏁� - /// 3.鍙戦�佹鏁板埌杈�3娆′互涓婏紝鍒欏垽瀹氱綉鍏充负绂荤嚎鐘舵�� - /// </summary> - /// <returns></returns> - static void InitCheckGateway () - { - new System.Threading.Thread (async () => { - while (true) { - try { +// /// <summary> +// /// 瀹氭椂妫�娴嬬綉鍏虫槸鍚﹀湪绾� +// /// 1.绾跨▼浼戠湢闂撮殧5s +// /// 2.鍙戦�丆heckGateway闂撮殧涓�9S锛屾敹鍒颁富棰樺埛鏂拌鏃堕棿锛岄噸缃彂閫佹鏁� +// /// 3.鍙戦�佹鏁板埌杈�3娆′互涓婏紝鍒欏垽瀹氱綉鍏充负绂荤嚎鐘舵�� +// /// </summary> +// /// <returns></returns> +// static void InitCheckGateway () +// { +// new System.Threading.Thread (async () => { +// while (true) { +// try { - if (CommonPage.IsRemote && remoteIsConnected) { - if (CheckGatewayCount >= 3) { - //杩炵画3娆℃病鍥炲锛屽垽瀹氱綉鍏宠秴鏃� - if (MainPage.WiFiStatus == "CrabtreeAdd/CloudLink.png") { - //IsGatewayOnline = false; - Utlis.ShowAppLinkStatus (AppLinkStatus.CloudOffline); - MainPage.AddTip ("Gateway offline!"); - } - } +// if (CommonPage.IsRemote && remoteIsConnected) { +// if (CheckGatewayCount >= 3) { +// //杩炵画3娆℃病鍥炲锛屽垽瀹氱綉鍏宠秴鏃� +// if (MainPage.WiFiStatus == "CrabtreeAdd/CloudLink.png") { +// //IsGatewayOnline = false; +// Utlis.ShowAppLinkStatus (AppLinkStatus.CloudOffline); +// MainPage.AddTip ("Gateway offline!"); +// } +// } - if (mCheckGatewayTime.AddSeconds (10).Ticks <= System.DateTime.Now.Ticks) { - mCheckGatewayTime = DateTime.Now; - //CheckGateway - MqttRemoteSend (new byte [] { }, 3); - CheckGatewayCount++; -#if DEBUG - Utlis.WriteLine ("CheckGateway"); -#endif +// if (mCheckGatewayTime.AddSeconds (10).Ticks <= System.DateTime.Now.Ticks) { +// mCheckGatewayTime = DateTime.Now; +// //CheckGateway +// MqttRemoteSend (new byte [] { }, 3); +// CheckGatewayCount++; +//#if DEBUG +// Utlis.WriteLine ("CheckGateway"); +//#endif - } - } +// } +// } - System.Threading.Thread.Sleep (5500); - } catch { } +// System.Threading.Thread.Sleep (5500); +// } catch { } - } - }) { IsBackground = true }.Start (); - } +// } +// }) { IsBackground = true }.Start (); +// } /// <summary> @@ -710,49 +668,8 @@ static void ReceiveCheckGatewayTopic () { //Utlis.WriteLine ("============>Mqtt CheckGateway缃戝叧鍥炲"); SetGatewayOnlineResetCheck (); - - - //鏃х綉鍏虫柟娉� - //MainPage.WiFiStatus = "CrabtreeAdd/CloudUnlink.png"; - //// = $"/ClientToBusGateWay/{CurRemoteMACInfo.macMark}/Common/OldON"; - //var ss = CommonPage.MyEncodingUTF8.GetString (aesDecryptPayload); - //var obj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack> (ss); - //if (obj == null) { - // return; - //} - //switch (obj.StateCode) { - //case "HDLUdpDataForwardServerMqttClientNoOnLine": - //case "NoOnline": - //case "NetworkAnomaly"://涓嶅湪绾� - // MainPage.AddTip ("Gateway offline"); - // //Application.RunOnMainThread (() => { - // // Shared.SimpleControl.Phone.UserMiddle.LinkStatusTip.BackgroundColor = SkinStyle.Current.DelColor; - // //}); - // break; - //case "NoRecord"://MAC涓嶆纭� - // MainPage.AddTip (Language.StringByID (Shared.SimpleControl.R.MyInternationalizationString.MACError)); - // //Application.RunOnMainThread (() => { - // // Shared.SimpleControl.Phone.UserMiddle.LinkStatusTip.BackgroundColor = SkinStyle.Current.DelColor; - // //}); - // break; - //case "Success": - // MainPage.AddTip (UserConfig.Instance.CurrentRegion.Name + ":" + Language.StringByID (Shared.SimpleControl.R.MyInternationalizationString.LinkSuccess)); - // MainPage.WiFiStatus = "CrabtreeAdd/CloudLink.png"; - // break; - //default: - // MainPage.AddTip (Language.StringByID (Shared.SimpleControl.R.MyInternationalizationString.LinkLoser)); - // //Application.RunOnMainThread (() => { - // // Shared.SimpleControl.Phone.UserMiddle.LinkStatusTip.BackgroundColor = SkinStyle.Current.DelColor; - // //}); - // break; - //} - //Application.RunOnMainThread (() => { - // UserMiddle.btnLinkStatus.UnSelectedImagePath = MainPage.WiFiStatus; - //}); } - - /// <summary> /// 鏀跺埌鎸や笅绾挎帹閫� /// </summary> @@ -761,7 +678,6 @@ Utlis.WriteLine ($"============>MqttNotifySqueeze: {ErrorCode.LoginInAnotherDevice}"); var mMes = CommonPage.MyEncodingUTF8.GetString (mes); if (mMes == PushSignStr) return;//鏄嚜宸辩殑鐧诲綍鎺ㄩ�佷笉澶勭悊 - CommonPage.IsRemote = false; @@ -779,7 +695,6 @@ MainPage.ShowAlertOnMainThread (ErrorCode.LoginInAnotherDevice); Application.RunOnMainThread (() => { - MainPage.WiFiStatus = "CrabtreeAdd/WiFi.png"; UserMiddle.btnLinkStatus.UnSelectedImagePath = MainPage.WiFiStatus; new AccountLogin ().Show (); @@ -792,7 +707,6 @@ public class ShareMemberConnMqttInfoObj : GetConnMqttInfoObj { - /// <summary> /// 涓讳汉鐢ㄦ埛Id /// </summary> @@ -819,6 +733,10 @@ /// /// </summary> public string PublishPayloadJsonStr = ""; + /// <summary> + /// Mac + /// </summary> + public string Mac = ""; } public class RemoteRequestParameters @@ -852,6 +770,8 @@ public string connEmqClientId; public string connEmqUserName; public string connEmqPwd; + + public List<RemoteMACInfo> AccountAllGateways; } public class RemoteMACInfo @@ -865,6 +785,8 @@ public string projectName; public string userName; + public string clientId; + //app鑷畾涔夋暟鎹� public string md5_mac_string; public string LoginAccessToken; -- Gitblit v1.8.0