From 60fea1a35f8bfd2eb1399cae05d853b93b3674f9 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期五, 03 一月 2020 13:47:35 +0800
Subject: [PATCH] 2020-01-03 1.增加信mqtt网关设备类型支持。 2.住宅ID改为string类型。

---
 Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs |   67 ++++++++++++++++++---------------
 1 files changed, 36 insertions(+), 31 deletions(-)

diff --git a/Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs b/Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs
index 41c2b3f..7f96fc6 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/MqttCommon.cs
@@ -105,7 +105,7 @@
 
                                         if (aesDecryptTopic == $"NotifyBusGateWayInfoChagne/{CurRemoteMACInfo.md5_mac_string}") {//缃戝叧涓婄嚎锛岄渶瑕佹洿鏂癮eskey
                                                                                                                                  //----绗簩姝ワ細璇诲彇璐﹀彿涓嬮潰鐨勭綉鍏冲垪琛�
-                                            var gatewayListUrl = @"https://developer.hdlcontrol.com/Center/Center/GetGatewayPagger"; //App銆丅uspro杞欢鐧诲綍鍚庤幏鍙栫綉鍏冲垪琛� http 璇锋眰
+                                            var gatewayListUrl = $"{MainPage.RequestHttpsHost}/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), false, false, gatewayListUrl);
                                             var gatewayListRequestResult_Obj = Newtonsoft.Json.JsonConvert.DeserializeObject<MqttRemoteInfo> (gatewayListRequestResult.ResponseData.ToString ());
@@ -116,6 +116,7 @@
                                         }
 
                                         if (aesDecryptTopic == $"/BusGateWayToClient/{CurRemoteMACInfo.macMark}/Common/CheckGateway") {
+                                            MainPage.WiFiStatus = "CrabtreeAdd/CloudUnlink.png";
                                             // = $"/ClientToBusGateWay/{CurRemoteMACInfo.macMark}/Common/OldON";
                                             var ss = CommonPage.MyEncodingUTF8.GetString (aesDecryptPayload);
                                             var obj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack> (ss);
@@ -127,34 +128,35 @@
                                             case "NoOnline":
                                             case "NetworkAnomaly"://涓嶅湪绾�
                                                 MainPage.AddTip ("Gateway offline");
-                                                Application.RunOnMainThread (() => {
-                                                    Shared.SimpleControl.Phone.UserMiddle.LinkStatusTip.BackgroundColor = SkinStyle.Current.DelColor;
-                                                });
+                                                //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;
-                                                });
+                                                //Application.RunOnMainThread (() => {
+                                                //    Shared.SimpleControl.Phone.UserMiddle.LinkStatusTip.BackgroundColor = SkinStyle.Current.DelColor;
+                                                //});
                                                 break;
                                             case "Success":
                                                 MainPage.AddTip (UserConfig.Instance.CurrentRegion.RegionName + ":" + 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;
-                                                });
+                                                //Application.RunOnMainThread (() => {
+                                                //    Shared.SimpleControl.Phone.UserMiddle.LinkStatusTip.BackgroundColor = SkinStyle.Current.DelColor;
+                                                //});
                                                 break;
                                             }
+                                            Application.RunOnMainThread (() => {
+                                                UserMiddle.btnLinkStatus.UnSelectedImagePath = MainPage.WiFiStatus;
+                                            });
                                         } else {
                                             if (!string.IsNullOrEmpty (mqttEncryptKey)) {
-                                                aesDecryptTopic = Shared.Securitys.EncryptionService.AesDecryptTopic (e.ApplicationMessage.Topic, mqttEncryptKey);
                                                 aesDecryptPayload = Shared.Securitys.EncryptionService.AesDecryptPayload (e.ApplicationMessage.Payload, mqttEncryptKey);
-                                            } else {
-                                                aesDecryptTopic = e.ApplicationMessage.Topic;
-                                                aesDecryptPayload = e.ApplicationMessage.Payload;
                                             }
+                                           
                                         }
                                         var packet = new Packet ();
                                         packet.Bytes = aesDecryptPayload;
@@ -172,7 +174,7 @@
                                         if (CommonPage.IsRemote) {
                                             Application.RunOnMainThread (() => {
                                                 MainPage.Loading.Hide ();
-                                                Shared.SimpleControl.Phone.UserMiddle.LinkStatusTip.BackgroundColor = SkinStyle.Current.DelColor;
+                                                //Shared.SimpleControl.Phone.UserMiddle.LinkStatusTip.BackgroundColor = SkinStyle.Current.DelColor;
                                             });
                                         }
                                     } else {
@@ -182,9 +184,9 @@
                             }
                             if (RemoteMqttClient.ConnectedHandler == null) {
                                 RemoteMqttClient.UseConnectedHandler (async (e) => {
-                                    Shared.Application.RunOnMainThread (() => {
-                                        Shared.SimpleControl.Phone.UserMiddle.LinkStatusTip.BackgroundColor = 0xAA69E64A;
-                                    });
+                                    //Shared.Application.RunOnMainThread (() => {
+                                    //    Shared.SimpleControl.Phone.UserMiddle.LinkStatusTip.BackgroundColor = 0xAA69E64A;
+                                    //});
                                     Shared.SimpleControl.Phone.UserMiddle.ReadAllDeviceStatus ();
                                     System.Console.WriteLine ($"杩滅▼杩炴帴鎴愬姛");
                                     MainPage.WiFiStatus = "CrabtreeAdd/CloudLink.png";
@@ -194,7 +196,7 @@
                                             MainPage.AddTip ("Remote failed,gateway offline");
                                             Application.RunOnMainThread (() => {
                                                 MainPage.Loading.Hide ();
-                                                Shared.SimpleControl.Phone.UserMiddle.LinkStatusTip.BackgroundColor = SkinStyle.Current.DelColor;
+                                                //Shared.SimpleControl.Phone.UserMiddle.LinkStatusTip.BackgroundColor = SkinStyle.Current.DelColor;
                                             });
                                         } else {
                                             MqttRemoteSend (new byte [] { 0 }, 3);
@@ -221,7 +223,7 @@
                                 if (tempResult == null) {
                                     Application.RunOnMainThread (() => {
                                         MainPage.Loading.Hide ();
-                                        Shared.SimpleControl.Phone.UserMiddle.LinkStatusTip.BackgroundColor = SkinStyle.Current.DelColor;
+                                        //Shared.SimpleControl.Phone.UserMiddle.LinkStatusTip.BackgroundColor = SkinStyle.Current.DelColor;
                                     });
                                     return;
                                 }
@@ -256,17 +258,16 @@
                                 if (tempResult == null) {
                                     Application.RunOnMainThread (() => {
                                         MainPage.Loading.Hide ();
-                                        Shared.SimpleControl.Phone.UserMiddle.LinkStatusTip.BackgroundColor = SkinStyle.Current.DelColor;
+                                        //Shared.SimpleControl.Phone.UserMiddle.LinkStatusTip.BackgroundColor = SkinStyle.Current.DelColor;
                                     });
                                     return;
                                 }
-                                //--绗竴姝ワ細鑾峰彇mqtt閾炬帴鍙傛暟
-                                var mqttInfoUrl = @"https://developer.hdlcontrol.com/Center/Center/GetConnMqttInfo";//鑾峰彇杩炴帴杩滅▼浜戠Emq Mqtt 鏈嶅姟鍣ㄨ繛鎺ヤ俊鎭�
-                                var mqttInfoRequestPar = new RemoteRequestParameters () { LoginAccessToken = mqttRequestParToken, RequestVersion = MainPage.CodeIDString, RequestProtocolType = 0, RequestSource = 1 };
-                                var mqttInfoRequestResult = MainPage.RequestHttps ("", Newtonsoft.Json.JsonConvert.SerializeObject (mqttInfoRequestPar), false, false, mqttInfoUrl);
-
-                                if (mqttInfoRequestResult != null && mqttInfoRequestResult.ResponseData != null) {
-                                    try {
+                                try {
+                                    //--绗竴姝ワ細鑾峰彇mqtt閾炬帴鍙傛暟
+                                    var mqttInfoUrl = $"{MainPage.RequestHttpsHost}/Center/Center/GetConnMqttInfo";//鑾峰彇杩炴帴杩滅▼浜戠Emq Mqtt 鏈嶅姟鍣ㄨ繛鎺ヤ俊鎭�
+                                    var mqttInfoRequestPar = new RemoteRequestParameters () { LoginAccessToken = mqttRequestParToken, RequestVersion = MainPage.CodeIDString, RequestProtocolType = 0, RequestSource = 1 };
+                                    var mqttInfoRequestResult = MainPage.RequestHttps ("", Newtonsoft.Json.JsonConvert.SerializeObject (mqttInfoRequestPar), false, false, mqttInfoUrl);
+                                    if (mqttInfoRequestResult != null && mqttInfoRequestResult.ResponseData != null) {
                                         var mqttInfoRequestResult_Obj = Newtonsoft.Json.JsonConvert.DeserializeObject<MqttInfo> (mqttInfoRequestResult.ResponseData.ToString ());
                                         if (mqttInfoRequestResult_Obj != null) {
                                             url = mqttInfoRequestResult_Obj.connEmqDomainPort;
@@ -274,12 +275,13 @@
                                             username = mqttInfoRequestResult_Obj.connEmqUserName;
                                             passwordRemote = mqttInfoRequestResult_Obj.connEmqPwd;
                                             //----绗簩姝ワ細璇诲彇璐﹀彿涓嬮潰鐨勭綉鍏冲垪琛�
-                                            var gatewayListUrl = @"https://developer.hdlcontrol.com/Center/Center/GetGatewayPagger"; //App銆丅uspro杞欢鐧诲綍鍚庤幏鍙栫綉鍏冲垪琛� http 璇锋眰
+                                            var gatewayListUrl = $"{MainPage.RequestHttpsHost}/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), false, false, gatewayListUrl);
                                             var gatewayListRequestResult_Obj = Newtonsoft.Json.JsonConvert.DeserializeObject<MqttRemoteInfo> (gatewayListRequestResult.ResponseData.ToString ());
                                             //--鎵惧嚭鏄惁瀛樺湪鍖归厤褰撳墠浣忓畢鐨刴ac锛屽瓨鍦ㄥ啀杩涜杩滅▼銆�
                                             CurRemoteMACInfo = gatewayListRequestResult_Obj.pageData.Find ((obj) => obj.mac == UserConfig.Instance.CurrentRegion.MAC);
+                                            CurRemoteMACInfo = gatewayListRequestResult_Obj.pageData [0];
                                             if (CurRemoteMACInfo != null) {
                                                 CurRemoteMACInfo.LoginAccessToken = mqttRequestPar.Token;
                                                 mqttEncryptKey = CurRemoteMACInfo.aesKey;
@@ -298,7 +300,10 @@
                                                 await MqttRemoteSend (new byte [] { 0 }, 2);
                                             }
                                         }
-                                    } catch { }
+
+                                    }
+                                } catch (Exception ex) {
+                                    Console.WriteLine (ex.Message);
                                 }
                             } catch (Exception ex) {
                                 System.Console.WriteLine ("============>" + ex.Message);
@@ -306,7 +311,7 @@
                                     //MainPage.Loading.Hide ();
                                     //isConnecting = false.ToString ();
 
-                                    Shared.SimpleControl.Phone.UserMiddle.LinkStatusTip.BackgroundColor = SkinStyle.Current.DelColor;
+                                    //Shared.SimpleControl.Phone.UserMiddle.LinkStatusTip.BackgroundColor = SkinStyle.Current.DelColor;
 #if DEBUG
                                 Alert a = new Alert (remoteMqttIsConnecting.ToString (), ex.Message, "Close");
                                 a.Show ();

--
Gitblit v1.8.0