From f23ad1b3f9f6193f35f72104d690b21dc67d5c1f Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期一, 06 七月 2020 12:35:25 +0800 Subject: [PATCH] 去掉了访问外网的异步 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs | 154 ++++++++++++++++++++++----------------------------- 1 files changed, 67 insertions(+), 87 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs index 26ed638..e9a6550 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayLogic.cs @@ -241,6 +241,9 @@ { return false; } + //娣诲姞缃戝叧鐨勮瘽,寮哄埗涓婚〉鍒锋柊 + UserView.UserPage.Instance.RefreshForm = true; + return true; } @@ -324,7 +327,7 @@ } //鏇存柊浜戠鏁版嵁搴� - int flage1 = await this.SetGatewayIdToDataBase(zbGateway); + int flage1 = this.SetGatewayIdToDataBase(zbGateway); //寮傚父涔熶笉楦熷畠,0鏄壒娈婂惈涔� if (flage1 == 0) { @@ -396,7 +399,7 @@ /// </summary> /// <param name="zbGateway">缃戝叧瀵硅薄</param> /// <returns></returns> - private async Task<int> SetGatewayIdToDataBase(ZbGateway zbGateway) + private int SetGatewayIdToDataBase(ZbGateway zbGateway) { //璋冪敤鎺ュ彛锛岀粦瀹氱綉鍏�(鍗充娇澶辫触锛屼篃杩斿洖true寰�涓嬭蛋) var bindGateway = new BindGatewayPra(); @@ -404,10 +407,8 @@ //鑾峰彇鎺у埗涓讳汉璐﹀彿鐨凾oken bindGateway.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); - //涓嶆樉绀哄凡缁忚缁戝畾杩囩殑淇℃伅,NotSetAgain:鍋囧鏂綉鏃�,涓嶄簩娆″彂閫� - List<string> listNotShow = new List<string>() { "NotSetAgain" }; - var result = await UserCenterLogic.GetResultCodeByRequestHttps("App/BindGatewayToHome", true, bindGateway, listNotShow); - if (result == "Error" || result == "ErrorEx") + var result = UserCenterLogic.GetResultCodeByRequestHttps("App/BindGatewayToHome", true, bindGateway); + if (result == "Error") { return -1; } @@ -479,7 +480,7 @@ } //鏇存柊浜戠鏁版嵁搴� - int flage1 = await this.SetGatewayIdToDataBase(zbGateway); + int flage1 = this.SetGatewayIdToDataBase(zbGateway); //寮傚父涔熶笉楦熷畠,0鏄壒娈婂惈涔� if (flage1 == 0) { @@ -507,7 +508,19 @@ await Task.Delay(8000); //鑾峰彇缃戝叧鐨勪俊鎭� - var result = await zbGateway.GetZbGwInfoAsync(); + ZbGatewayData.GetGwAllData result = null; + int count = 5; + while (count >= 0) + { + result = await zbGateway.GetZbGwInfoAsync(); + if (result != null && result.getGwData != null) + { + break; + } + count--; + //鏈�澶氬啀绛�20绉� + await Task.Delay(4000); + } //妫�娴嬬綉鍏宠繑鍥炵殑鍏遍�氶敊璇姸鎬佺爜 string error = HdlCheckLogic.Current.CheckCommonErrorCode(result); if (error != null) @@ -547,6 +560,10 @@ //娣诲姞澶囦唤 HdlAutoBackupLogic.AddOrEditorFile(this.dicGateway[gwID].FilePath); } + + //娣诲姞缃戝叧鐨勮瘽,寮哄埗涓婚〉鍒锋柊 + UserView.UserPage.Instance.RefreshForm = true; + return 1; } @@ -677,7 +694,7 @@ if (getGatewayInfo == true) { //鑾峰彇缃戝叧淇℃伅 - var info = await this.GetGatewayNewInfoAsync(realWay); + var info = this.GetGatewayInfo(realWay); if (info == null) { //鍏抽棴杩涘害鏉� @@ -746,7 +763,7 @@ } //鍒犻櫎浜戠鐨勭綉鍏� - await this.DeleteDataBaseGateway(zbGatewayID); + this.DeleteDataBaseGateway(zbGatewayID); //鍒犻櫎缃戝叧鏂囦欢 this.DeleteGatewayFile(zbGatewayID); @@ -1388,9 +1405,9 @@ else { //缁欎竴涓嚎绋嬪幓鑾峰彇瀹冪殑闀滃儚绫诲瀷 - HdlThreadLogic.Current.RunThread(async () => + HdlThreadLogic.Current.RunThread(() => { - var result = await this.GetGatewayNewInfoAsync(zbGateway, ShowErrorMode.NO); + var result = this.GetGatewayInfo(zbGateway, ShowErrorMode.NO); if (result != null) { //灏嗙綉鍏崇殑鏁版嵁璁剧疆鍒版湰鍦扮紦瀛樹腑 @@ -1430,32 +1447,13 @@ /// <param name="zbGateway"></param> /// <param name="mode"></param> /// <returns></returns> - public async Task<ZbGatewayData.GetGwData> GetGatewayNewInfoAsync(ZbGateway zbGateway, ShowErrorMode mode = ShowErrorMode.YES) + public ZbGatewayData.GetGwData GetGatewayInfo(ZbGateway zbGateway, ShowErrorMode mode = ShowErrorMode.YES) { - ZbGateway realWay = null; - if (this.GetRealGateway(ref realWay, zbGateway) == false) - { - if (mode == ShowErrorMode.YES) - { - string msg = Language.StringByID(R.MyInternationalizationString.uErrorGatewayLostMsg); - this.ShowTipMsg(msg); - } - return null; - } //鑾峰彇缃戝叧鐗堟湰淇℃伅 - var imageTypeResult = await realWay.GetZbGwInfoAsync(); - //妫�娴嬬綉鍏宠繑鍥炵殑鍏遍�氶敊璇姸鎬佺爜 - string error = HdlCheckLogic.Current.CheckCommonErrorCode(imageTypeResult); - if (error != null) - { - if (mode == ShowErrorMode.YES) - { - this.ShowTipMsg(error); - } - return null; - } + var jObject = new Newtonsoft.Json.Linq.JObject { { "Cluster_ID", 0 }, { "Command", 95 } }; + var result = this.SendJobjectDataToGateway(zbGateway, "GetZbGwInfo", jObject.ToString(), "GetZbGwInfo_Respon"); - if (imageTypeResult == null || imageTypeResult.getGwData == null) + if (result.ErrorMsgDiv != 1) { if (mode == ShowErrorMode.YES) { @@ -1467,42 +1465,19 @@ } return null; } - + var getGwInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<ZbGatewayData.GetGwData>(result.ReceiptData); string gwID = zbGateway.GwId; if (this.dicGateway.ContainsKey(gwID) == true) { //鍒锋柊缂撳瓨 ZbGateway localWay = this.dicGateway[gwID]; //灏嗙綉鍏崇殑鏁版嵁璁剧疆鍒版湰鍦扮紦瀛樹腑 - this.SetGatewayDataToLocalMemmory(localWay, imageTypeResult.getGwData); + this.SetGatewayDataToLocalMemmory(localWay, getGwInfo); } //椤轰究杩欎釜鍙橀噺涔熻缃竴涓� - this.SetGatewayDataToLocalMemmory(zbGateway, imageTypeResult.getGwData, false); + this.SetGatewayDataToLocalMemmory(zbGateway, getGwInfo, false); - return imageTypeResult.getGwData; - } - - /// <summary> - /// 鑾峰彇缃戝叧淇℃伅,闈炲紓姝�,浼氱瓑寰�(鐗堟湰淇℃伅,闀滃儚绫诲瀷,鍩烘湰淇℃伅绛夈�傚彧鍒锋柊鏈湴缃戝叧鐨勭紦瀛�) - /// </summary> - /// <param name="zbGateway"></param> - /// <param name="mode"></param> - /// <returns></returns> - public ZbGatewayData.GetGwData GetGatewayNewInfo(ZbGateway zbGateway, ShowErrorMode mode = ShowErrorMode.YES) - { - bool bolBreak = false; - ZbGatewayData.GetGwData result = null; - HdlThreadLogic.Current.RunThread(async () => - { - result = await this.GetGatewayNewInfoAsync(zbGateway, mode); - bolBreak = true; - }); - - while (bolBreak == false) - { - System.Threading.Thread.Sleep(500); - } - return result; + return getGwInfo; } /// <summary> @@ -1609,10 +1584,10 @@ /// <param name="zbGateway">缃戝叧瀵硅薄</param> /// <param name="mode">閿欒鏃讹紝鏄惁鏄剧ず閿欒</param> /// <returns></returns> - public async Task<List<FirmwareVersionInfo>> GetGatewayAllNewVersion(ZbGateway zbGateway, ShowErrorMode mode = ShowErrorMode.YES) + public List<FirmwareVersionInfo> GetGatewayAllNewVersion(ZbGateway zbGateway, ShowErrorMode mode = ShowErrorMode.YES) { //鑾峰彇缃戝叧鐗堟湰淇℃伅 - var result = await HdlGatewayLogic.Current.GetGatewayNewInfoAsync(zbGateway, mode); + var result = this.GetGatewayInfo(zbGateway, mode); if (result == null) { return null; @@ -1629,10 +1604,14 @@ localWay.LinuxHardVersion.ToString(), localWay.LinuxImageType.ToString()); - //娣诲姞鍗忚皟鍣ㄧ殑鍗囩骇鍥轰欢(鎴愪笉鎴愬姛閮芥棤鎵�璋�) - flage = HdlFirmwareUpdateLogic.AddFirmwareVersionInfo(FirmwareLevelType.Coordinator, - localWay.CoordinatorHardVersion.ToString(), - localWay.CoordinatorImageId.ToString()); + //娣诲姞鍗忚皟鍣ㄧ殑鍗囩骇鍥轰欢(鎴愪笉鎴愬姛閮芥棤鎵�璋�) 蹇呴』鑳藉鑱旂綉鎵嶈 + if (flage == 1) + { + //娌$綉鐨勬椂鍊欎笉鍐嶅鐞� + HdlFirmwareUpdateLogic.AddFirmwareVersionInfo(FirmwareLevelType.Coordinator, + localWay.CoordinatorHardVersion.ToString(), + localWay.CoordinatorImageId.ToString()); + } //缃戝叧鐨勭増鏈� var gatewayFirmware = HdlFirmwareUpdateLogic.GetFirmwareMostVersionInfo(FirmwareLevelType.Linux, @@ -1656,10 +1635,13 @@ //铏氭嫙椹卞姩鍙� foreach (var data in localWay.DriveCodeList) { - //娣诲姞铏氭嫙椹卞姩鐨勫崌绾у浐浠�(鎴愪笉鎴愬姛閮芥棤鎵�璋�) - flage = HdlFirmwareUpdateLogic.AddFirmwareVersionInfo(FirmwareLevelType.VirtualDevice, - data.DriveHwVersion.ToString(), - data.DriveImageType.ToString()); + //娣诲姞铏氭嫙椹卞姩鐨勫崌绾у浐浠�(鎴愪笉鎴愬姛閮芥棤鎵�璋�) 蹇呴』鑳藉鑱旂綉鎵嶈 + if (flage == 1) + { + HdlFirmwareUpdateLogic.AddFirmwareVersionInfo(FirmwareLevelType.VirtualDevice, + data.DriveHwVersion.ToString(), + data.DriveImageType.ToString()); + } //铏氭嫙椹卞姩 var virtualFirmware = HdlFirmwareUpdateLogic.GetFirmwareMostVersionInfo(FirmwareLevelType.VirtualDevice, @@ -1753,9 +1735,9 @@ else { //缁欎竴涓嚎绋嬪幓鑾峰彇瀹冪殑闀滃儚绫诲瀷 - HdlThreadLogic.Current.RunThread(async () => + HdlThreadLogic.Current.RunThread(() => { - var result = await this.GetGatewayNewInfoAsync(zbGateway, ShowErrorMode.NO); + var result = this.GetGatewayInfo(zbGateway, ShowErrorMode.NO); if (result != null) { //灏嗙綉鍏崇殑鏁版嵁璁剧疆鍒版湰鍦扮紦瀛樹腑 @@ -1791,9 +1773,9 @@ else { //缁欎竴涓嚎绋嬪幓鑾峰彇瀹冪殑闀滃儚绫诲瀷 - HdlThreadLogic.Current.RunThread(async () => + HdlThreadLogic.Current.RunThread(() => { - var result = await this.GetGatewayNewInfoAsync(zbGateway, ShowErrorMode.NO); + var result = this.GetGatewayInfo(zbGateway, ShowErrorMode.NO); if (result != null) { //灏嗙綉鍏崇殑鏁版嵁璁剧疆鍒版湰鍦扮紦瀛樹腑 @@ -1885,9 +1867,9 @@ } bool canBreak = false; - HdlThreadLogic.Current.RunThread(async () => + HdlThreadLogic.Current.RunThread(() => { - List<string> list = new List<string>() { "NotSetAgain", "NotCheck" }; + List<string> list = new List<string>() { "NotCheck" }; //璁剧疆璁块棶鎺ュ彛鐨勫弬鏁� var pra = new GetGatewayPra(); @@ -1896,7 +1878,7 @@ //鑾峰彇鎺у埗涓讳汉璐﹀彿鐨凾oken pra.ReqDto.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); - var result = await UserCenterLogic.GetResponseDataByRequestHttps("App/GetSingleHomeGatewayPagger", true, pra, list); + var result = UserCenterLogic.GetResponseDataByRequestHttps("App/GetSingleHomeGatewayPagger", true, pra, list); if (string.IsNullOrEmpty(result) == true) { canBreak = true; @@ -2019,16 +2001,16 @@ /// 瑙g粦浜戠缁戝畾鐨勭綉鍏� /// </summary> /// <param name="strWayId"></param> - public async Task<bool> DeleteDataBaseGateway(string strWayId) + public bool DeleteDataBaseGateway(string strWayId) { var Pra = new DeleteGatewayPra(); Pra.BindGateways.Add(strWayId); //鑾峰彇鎺у埗涓讳汉璐﹀彿鐨凾oken Pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken(); - List<string> listNotShowError = new List<string>() { "NoExist", "NoBind", "NoRecord", "NotSetAgain" }; + List<string> listNotShowError = new List<string>() { "NoExist", "NoBind", "NoRecord" }; - bool result = await UserCenterLogic.GetResultStatuByRequestHttps("App/ReleaseGatewayToHome", true, Pra, listNotShowError); + bool result = UserCenterLogic.GetResultStatuByRequestHttps("App/ReleaseGatewayToHome", true, Pra, listNotShowError); if (result == false) { return false; @@ -2063,7 +2045,7 @@ /// </summary> public void ResetComandToBindBackupGateway() { - HdlThreadLogic.Current.RunThread(async () => + HdlThreadLogic.Current.RunThread(() => { var fileData = Global.ReadFileByDirectory(DirNameResourse.LocalMemoryDirectory, DirNameResourse.BackupGatewayIdFile); if (fileData == null) @@ -2074,8 +2056,6 @@ var listTempId = new List<string>(); listTempId.AddRange(this.listBackupGwId); - //涓嶆樉绀哄凡缁忚缁戝畾杩囩殑淇℃伅,NotSetAgain:鍋囧鏂綉鏃�,涓嶄簩娆″彂閫� - List<string> listNotShow = new List<string>() { "NotSetAgain" }; //璋冪敤鎺ュ彛锛岀粦瀹氱綉鍏� var bindGateway = new BindGatewayPra(); //鑾峰彇鎺у埗涓讳汉璐﹀彿鐨凾oken @@ -2085,12 +2065,12 @@ { bindGateway.BindGateways.Clear(); bindGateway.BindGateways.Add(gwId); - var result = await UserCenterLogic.GetResultCodeByRequestHttps("App/BindGatewayToHome", true, bindGateway, listNotShow); + var result = UserCenterLogic.GetResultCodeByRequestHttps("App/BindGatewayToHome", true, bindGateway); if (result == "Success") { this.listBackupGwId.Remove(gwId); } - if (result == "Error" || result == "ErrorEx") + if (result == "Error") { break; } -- Gitblit v1.8.0