From c7698e163e43cea9e7f8ee45f8e3f91c9265cca4 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期一, 04 十一月 2019 19:11:41 +0800 Subject: [PATCH] 合并了全部的代码 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayUpdateLogic.cs | 309 ++++++++++---------------------------------------- 1 files changed, 65 insertions(+), 244 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/GatewayFirmwareUpdateControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayUpdateLogic.cs similarity index 73% rename from ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/GatewayFirmwareUpdateControl.cs rename to ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayUpdateLogic.cs index 0d15b69..1d0ea04 100755 --- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/GatewayFirmwareUpdateControl.cs +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlGatewayUpdateLogic.cs @@ -7,12 +7,25 @@ namespace Shared.Phone.UserCenter { /// <summary> - /// 鍥轰欢鍗囩骇鎺т欢 + /// 缃戝叧鐨勫崌绾ч�昏緫 /// </summary> - public class GatewayFirmwareUpdateControl : RowLayout + public class HdlGatewayUpdateLogic { #region 鈻� 鍙橀噺澹版槑___________________________ + /// <summary> + /// <para>鏇存柊鐘舵�佸彉鍖栫殑浜嬩欢</para> + /// <para>绗竴涓弬鏁颁负:</para> + /// <para>-1:鏇存柊寮傚父,鍚庨潰鐨勫�间负寮傚父淇℃伅鐨勭炕璇戞枃鏈�</para> + /// <para> 0:鏇存柊鐘舵�佹甯稿彉鍖�,鍚庨潰鐨勫�间负鐘舵�佸彉鏇寸殑鏂囨湰缈昏瘧</para> + /// <para> 1:鍗囩骇鎴愬姛</para> + /// <para> 3:浠庣瓑寰呬腑鍙栨秷(鐩墠杩樻病鏈夌敤)</para> + /// </summary> + public Action<int, string> UpdateStatuChangedEvent = null; + /// <summary> + /// 杩涘害鍊间簨浠� + /// </summary> + public Action<decimal> ProgressEvent = null; /// <summary> /// 铏氭嫙璁惧鐨勫浐浠朵俊鎭� /// </summary> @@ -26,11 +39,7 @@ /// </summary> public FirmwareVersionInfo gatewayFirmware = null; /// <summary> - /// 鍗囩骇鎸夐挳(鐢卞閮ㄨ繘琛岃祴鍊�) - /// </summary> - public BottomClickButton btnUpdateButton = null; - /// <summary> - /// 褰撳墠鎵ц鐘舵�� + /// 褰撳墠鎵ц鐘舵��(鍑虹幇閿欒鏃�,瀹冧篃浼氬彉鎴恡rue) /// </summary> public UpdateStatuMode UpdateStatu = UpdateStatuMode.None; /// <summary> @@ -43,21 +52,9 @@ /// </summary> private UpdateStatuMode oldUpdateStatu = UpdateStatuMode.None; /// <summary> - /// 杩涘害鎺т欢 - /// </summary> - private FrameLayout frameBar = null; - /// <summary> - /// 鐧惧垎姣旇繘搴� - /// </summary> - private NormalViewControl btnProgress = null; - /// <summary> /// 瑕佸崌绾х殑缃戝叧 /// </summary> private ZbGateway upDatezbGateway = null; - /// <summary> - /// 閿欒淇℃伅 - /// </summary> - private string errorMsg = string.Empty; #endregion @@ -71,72 +68,13 @@ /// <param name="i_virtualFirmware">铏氭嫙璁惧鐨勫浐浠朵俊鎭�</param> /// <param name="i_coordinatorFirmware">鍗忚皟鍣ㄦ柊鐗堟湰鐨勫浐浠朵俊鎭�</param> /// <param name="i_gatewayFirmware">缃戝叧鏂扮増鏈殑鍥轰欢淇℃伅</param> - public GatewayFirmwareUpdateControl(VerticalScrolViewLayout listView, ZbGateway zbGateway, - FirmwareVersionInfo i_virtualFirmware, FirmwareVersionInfo i_coordinatorFirmware, FirmwareVersionInfo i_gatewayFirmware) + public HdlGatewayUpdateLogic(ZbGateway zbGateway, FirmwareVersionInfo i_virtualFirmware, + FirmwareVersionInfo i_coordinatorFirmware, FirmwareVersionInfo i_gatewayFirmware) { this.upDatezbGateway = zbGateway; this.virtualFirmware = i_virtualFirmware; this.coordinatorFirmware = i_coordinatorFirmware; this.gatewayFirmware = i_gatewayFirmware; - - this.Height = ControlCommonResourse.ListViewRowHeight; - if (listView != null) - { - listView.AddChidren(this); - //鍒濆鍖栨帶浠� - this.InitChidrenControl(); - } - } - - /// <summary> - /// 鍒濆鍖栨帶浠� - /// </summary> - public void InitChidrenControl() - { - this.RemoveAll(); - - //杩涘害鎺т欢(鑳屾櫙鑹蹭负缁胯壊锛屼細鍔ㄧ殑閭d釜) - this.frameBar = new FrameLayout(); - this.frameBar.Width = 0; - this.frameBar.BackgroundColor = UserCenterColor.Current.Green; - this.AddChidren(frameBar); - - //妗屽竷 - var frameLayout = new RowLayoutControl(); - frameLayout.BackgroundColor = UserCenterColor.Current.Transparent; - this.AddChidren(frameLayout); - - //鍥炬爣 - var btnIcon = frameLayout.frameTable.AddLeftIcon(); - HdlGatewayLogic.Current.SetGatewayIcon(btnIcon, this.upDatezbGateway); - - //鎸囧畾鐨勮澶� - var btnDevice = frameLayout.frameTable.AddLeftCaption("", 830); - //btnDevice.Y = UserCenterLogic.GetControlChidrenYaxis(ControlCommonResourse.ListViewRowHeight, ControlCommonResourse.ListViewRowHalfHeight, UViewAlignment.Top); - btnDevice.X = Application.GetRealWidth(200); - btnDevice.BackgroundColor = UserCenterColor.Current.Transparent; - btnDevice.Text = HdlGatewayLogic.Current.GetGatewayName(upDatezbGateway); - - //鍥轰欢淇℃伅 - this.btnProgress = frameLayout.frameTable.AddLeftCaption("", 830); - //btnDevice.Y = UserCenterLogic.GetControlChidrenYaxis(ControlCommonResourse.ListViewRowHeight, ControlCommonResourse.ListViewRowHalfHeight, UViewAlignment.Bottom); - btnDevice.X = Application.GetRealWidth(200); - btnProgress.BackgroundColor = UserCenterColor.Current.Transparent; - if (this.gatewayFirmware != null) - { - //鐗堟湰 - btnProgress.Text = Common.LocalDevice.Current.AppendVersion(this.gatewayFirmware.FirmwareVersion); - } - else if (this.coordinatorFirmware != null) - { - //鐗堟湰 - btnProgress.Text = Common.LocalDevice.Current.AppendVersion(this.coordinatorFirmware.FirmwareVersion); - } - else if (this.virtualFirmware != null) - { - //鐗堟湰 - btnProgress.Text = Common.LocalDevice.Current.AppendVersion(this.virtualFirmware.FirmwareVersion); - } } #endregion @@ -148,10 +86,6 @@ /// </summary> public void StartUpdateReady() { - if (btnUpdateButton.CanClick == false) - { - return; - } if (this.UpdateStatu == UpdateStatuMode.Wait) { //濡傛灉鏄瓑寰呮ā寮忥紝鍐嶆鐐瑰嚮鏃讹紝绉婚櫎鍒楄〃 @@ -160,10 +94,9 @@ { FirmwareUpdateResourse.dicGatewayUpdateList.Remove(gwId); } - //鍗囩骇 - btnUpdateButton.TextID = R.MyInternationalizationString.uLevelUp; - btnUpdateButton.SetNotClickStatu(); this.UpdateStatu = UpdateStatuMode.None; + //鍙栨秷 + this.UpdateStatuChangedEvent?.Invoke(3, ""); return; } //濡傛灉瀹冩湁鐘舵�侊紝鍒欒〃绀轰箣鍓嶅畠琚粈涔堥敊璇腑鏂簡 @@ -175,10 +108,10 @@ //杩涘叆绛夊緟妯″紡 this.UpdateStatu = UpdateStatuMode.Wait; - this.btnUpdateButton.TextID = R.MyInternationalizationString.uWaitting; - this.btnUpdateButton.SetClickStatu(); string gwId2 = HdlGatewayLogic.Current.GetGatewayId(this.upDatezbGateway); FirmwareUpdateResourse.dicGatewayUpdateList[gwId2] = this; + //绛夊緟涓�� + this.UpdateStatuChangedEvent?.Invoke(0, Language.StringByID(R.MyInternationalizationString.uWaitting)); //鎵ц涓嬩竴涓彲鏇存柊鐨勫浐浠剁殑鏇存柊鎿嶄綔 HdlFirmwareUpdateLogic.DoUpdateNextFirmware(); @@ -189,13 +122,9 @@ /// </summary> public void DoStartUpdate() { - //娓呯┖閿欒淇℃伅 - this.errorMsg = string.Empty; //鐘舵�佸彉鏇� this.IsFinishUpdate = false; this.UpdateStatu = UpdateStatuMode.Action; - //寮�濮嬫墽琛屾搷浣滅殑鏃跺�欙紝鎸夐敭涓嶈兘鍐嶇偣鍑� - this.btnUpdateButton.CanClick = false; //璁剧疆鎷ユ湁缃戝叧姝e湪鍗囩骇鐨勬爣璇� HdlGatewayLogic.Current.SetHadGatewayUpdateFlage(true); //鏍规嵁鐘舵�佹墽琛屾搷浣� @@ -277,14 +206,8 @@ } this.UpdateStatu = UpdateStatuMode.VirtualDownLoad; - Application.RunOnMainThread(() => - { - this.btnUpdateButton.TextID = R.MyInternationalizationString.uDownLoading; - }); - //铏氭嫙椹卞姩鍥轰欢涓嬭浇涓� - string msg = Language.StringByID(R.MyInternationalizationString.uVirtualFirmwareDownLoading); - this.SetProgressValue(0, 100, msg); + this.UpdateStatuChangedEvent?.Invoke(0, Language.StringByID(R.MyInternationalizationString.uVirtualFirmwareDownLoading)); //涓嬭浇铏氭嫙椹卞姩鏂囦欢鐨勮繘搴� this.upDatezbGateway.ReportAction += this.DownLoadVirtualFileProgress; @@ -293,7 +216,6 @@ var result = await this.upDatezbGateway.DownloadFileAsync(this.virtualFirmware.DistributedMark, this.virtualFirmware.Name); if (string.IsNullOrEmpty(result.errorMessageBase) == false) { - System.Console.WriteLine("鉁┾湬涓嬭浇铏氭嫙椹卞姩鏂囦欢鉁�" + result.errorResponData?.Error + " " + result.errorMessageBase); if (result.errorResponData != null && result.errorResponData.Error == 2) { //鍥犱负tcp搴曞眰鍦ㄧ綉缁滀笉濂界殑鏃跺�欙紝鏈夊彲鑳戒細閲嶅彂澶氭锛屾墍浠ヨ繖閲屽拷鐣ユ帀銆愬崗璋冨櫒姝e湪鍗囩骇鎴栧浠�/鎭㈠鏁版嵁銆戠殑閿欒 @@ -325,7 +247,6 @@ return; } var tempZb = (ZbGateway)objValue; - System.Console.WriteLine("鈽呪槄鈽呬笅杞介┍鍔�" + tempZb.CurrentGateWayId + " " + tempZb.downloadFileProgressResponData.Status + " " + tempZb.downloadFileProgressResponData.DownloadPercent); if (tempZb.CurrentGateWayId != HdlGatewayLogic.Current.GetGatewayId(this.upDatezbGateway)) { //涓嶆槸鑷繁鐨勭綉鍏虫帹閫侊紝鍒欎笉澶勭悊 @@ -339,8 +260,7 @@ var responData = tempZb.downloadFileProgressResponData; //铏氭嫙椹卞姩鍥轰欢涓嬭浇涓� - string msg = Language.StringByID(R.MyInternationalizationString.uVirtualFirmwareDownLoading); - this.SetProgressValue(responData.DownloadPercent, 100, msg); + this.UpdateStatuChangedEvent?.Invoke(0, Language.StringByID(R.MyInternationalizationString.uVirtualFirmwareDownLoading)); if (responData.Status == 2) { @@ -375,6 +295,8 @@ this.DownLoadTimeOutRefresh(); //寮�鍚綉鍏冲崌绾ц櫄鎷熻繘搴︾嚎绋� this.StartUpdateVirtualThread(); + //鍗囩骇涓� + this.UpdateStatuChangedEvent?.Invoke(0, Language.StringByID(R.MyInternationalizationString.uLevelUping)); //濡傛灉铏氭嫙椹卞姩涓嶉渶瑕佸崌绾э紝鍒欑洿鎺ヨ烦杞笅涓�姝� if (this.virtualFirmware == null) @@ -385,11 +307,6 @@ } this.UpdateStatu = UpdateStatuMode.VirtualUpdateReady; - Application.RunOnMainThread(() => - { - this.btnUpdateButton.TextID = R.MyInternationalizationString.uLevelUping; - }); - //鍗囩骇铏氭嫙椹卞姩鐨勮繘搴� this.upDatezbGateway.ReportAction += this.UpdateVirtualProgress; @@ -397,7 +314,6 @@ var result = await this.upDatezbGateway.VirtualDriveUpgradeAsync(this.virtualFirmware.Name, this.virtualFirmware.VirtualCode); if (string.IsNullOrEmpty(result.errorMessageBase) == false) { - System.Console.WriteLine("鉁┾湬铏氭嫙椹卞姩鍗囩骇鉁�" + result.errorResponData?.Error + " " + result.errorMessageBase); if (result.errorResponData != null && result.errorResponData.Error == 2) { //鍥犱负tcp搴曞眰鍦ㄧ綉缁滀笉濂界殑鏃跺�欙紝鏈夊彲鑳戒細閲嶅彂澶氭锛屾墍浠ヨ繖閲屽拷鐣ユ帀銆愬崗璋冨櫒姝e湪鍗囩骇鎴栧浠�/鎭㈠鏁版嵁銆戠殑閿欒 @@ -411,7 +327,7 @@ } //铏氭嫙椹卞姩鍗囩骇澶辫触 - this.errorMsg = Language.StringByID(R.MyInternationalizationString.uVirtualUpdatingFail); + this.UpdateStatuChangedEvent?.Invoke(-1, Language.StringByID(R.MyInternationalizationString.uVirtualUpdatingFail)); //鏄剧ず閲嶆柊瀹夎 this.ShowReSetupMsg(); @@ -434,7 +350,6 @@ return; } var tempZb = (ZbGateway)objValue; - System.Console.WriteLine("鈽呪槄鈽呭崌绾ч┍鍔�" + tempZb.CurrentGateWayId + " " + tempZb.virtualDriveUpgradeResponData.Flag + " " + tempZb.virtualDriveUpgradeResponData.Percent); if (tempZb.CurrentGateWayId != HdlGatewayLogic.Current.GetGatewayId(this.upDatezbGateway)) { //涓嶆槸鑷繁鐨勭綉鍏虫帹閫侊紝鍒欎笉澶勭悊 @@ -449,7 +364,7 @@ if (responData.Flag != 0 && responData.Flag != 2) { //铏氭嫙椹卞姩鍗囩骇澶辫触 - this.errorMsg = Language.StringByID(R.MyInternationalizationString.uVirtualUpdatingFail); + this.UpdateStatuChangedEvent?.Invoke(-1, Language.StringByID(R.MyInternationalizationString.uVirtualUpdatingFail)); //鏄剧ず閲嶆柊瀹夎 this.ShowReSetupMsg(); @@ -492,17 +407,11 @@ this.DownLoadTimeOutRefresh(); this.UpdateStatu = UpdateStatuMode.CoordinatorDownLoad; - Application.RunOnMainThread(() => - { - this.btnUpdateButton.TextID = R.MyInternationalizationString.uDownLoading; - }); - //绛変釜1绉� await Task.Delay(1000); //鍗忚皟鍣ㄥ浐浠朵笅杞戒腑 - string msg = Language.StringByID(R.MyInternationalizationString.uCoordinatorFirmwareDownLoading); - this.SetProgressValue(0, 100, msg); + this.UpdateStatuChangedEvent(0, Language.StringByID(R.MyInternationalizationString.uCoordinatorFirmwareDownLoading)); //涓嬭浇鍗忚皟鍣ㄦ枃浠剁殑杩涘害 this.upDatezbGateway.ReportAction += this.DownLoadCoordinatorFileProgress; @@ -511,7 +420,6 @@ var result = await this.upDatezbGateway.DownloadFileAsync(this.coordinatorFirmware.DistributedMark, this.coordinatorFirmware.Name); if (string.IsNullOrEmpty(result.errorMessageBase) == false) { - System.Console.WriteLine("鉁┾湬涓嬭浇鍗忚皟鍣ㄦ枃浠垛湬" + result.errorResponData?.Error + " " + result.errorMessageBase); if (result.errorResponData != null && result.errorResponData.Error == 2) { //鍥犱负tcp搴曞眰鍦ㄧ綉缁滀笉濂界殑鏃跺�欙紝鏈夊彲鑳戒細閲嶅彂澶氭锛屾墍浠ヨ繖閲屽拷鐣ユ帀銆愬崗璋冨櫒姝e湪鍗囩骇鎴栧浠�/鎭㈠鏁版嵁銆戠殑閿欒 @@ -543,7 +451,6 @@ return; } var tempZb = (ZbGateway)objValue; - System.Console.WriteLine("鈽呪槄鈽呬笅杞藉崗璋冨櫒" + tempZb.CurrentGateWayId + " " + tempZb.downloadFileProgressResponData.Status + " " + tempZb.downloadFileProgressResponData.DownloadPercent); if (tempZb.CurrentGateWayId != HdlGatewayLogic.Current.GetGatewayId(this.upDatezbGateway)) { //涓嶆槸鑷繁鐨勭綉鍏虫帹閫侊紝鍒欎笉澶勭悊 @@ -557,8 +464,7 @@ var responData = tempZb.downloadFileProgressResponData; //鍗忚皟鍣ㄥ浐浠朵笅杞戒腑 - string msg = Language.StringByID(R.MyInternationalizationString.uCoordinatorFirmwareDownLoading); - this.SetProgressValue(responData.DownloadPercent, 100, msg); + this.UpdateStatuChangedEvent?.Invoke(0, Language.StringByID(R.MyInternationalizationString.uCoordinatorFirmwareDownLoading)); if (responData.Status == 2) { @@ -598,11 +504,6 @@ } this.UpdateStatu = UpdateStatuMode.CoordinatorUpdateReady; - Application.RunOnMainThread(() => - { - this.btnUpdateButton.TextID = R.MyInternationalizationString.uLevelUping; - }); - //鍗囩骇鍗忚皟鍣ㄧ殑杩涘害 this.upDatezbGateway.ReportAction += this.UpdateCoordinatorProgress; @@ -610,7 +511,6 @@ var result = await this.upDatezbGateway.UpgradeNVAsync(this.coordinatorFirmware.Name); if (string.IsNullOrEmpty(result.errorMessageBase) == false) { - System.Console.WriteLine("鉁┾湬鍗忚皟鍣ㄥ崌绾р湬" + result.errorResponData?.Error + " " + result.errorMessageBase); if (result.errorResponData != null && result.errorResponData.Error == 2) { //鍥犱负tcp搴曞眰鍦ㄧ綉缁滀笉濂界殑鏃跺�欙紝鏈夊彲鑳戒細閲嶅彂澶氭锛屾墍浠ヨ繖閲屽拷鐣ユ帀銆愬崗璋冨櫒姝e湪鍗囩骇鎴栧浠�/鎭㈠鏁版嵁銆戠殑閿欒 @@ -624,7 +524,7 @@ } //鍗忚皟鍣ㄥ崌绾уけ璐� - this.errorMsg = Language.StringByID(R.MyInternationalizationString.uCoordinatorUpdatingFail); + this.UpdateStatuChangedEvent?.Invoke(-1, Language.StringByID(R.MyInternationalizationString.uCoordinatorUpdatingFail)); //鏄剧ず閲嶆柊瀹夎 this.ShowReSetupMsg(); @@ -648,7 +548,6 @@ } var tempZb = (ZbGateway)objValue; - System.Console.WriteLine("鈽呪槄鈽呭崌绾у崗璋冨櫒" + tempZb.CurrentGateWayId + " " + tempZb.zbGwOperationUpgradeData.Flag + " " + tempZb.zbGwOperationUpgradeData.Percent); if (tempZb.CurrentGateWayId != HdlGatewayLogic.Current.GetGatewayId(this.upDatezbGateway)) { //涓嶆槸鑷繁鐨勭綉鍏虫帹閫侊紝鍒欎笉澶勭悊 @@ -663,7 +562,7 @@ if (responData.Flag != 0 && responData.Flag != 2) { //鍗忚皟鍣ㄥ崌绾уけ璐� - this.errorMsg = Language.StringByID(R.MyInternationalizationString.uCoordinatorUpdatingFail); + this.UpdateStatuChangedEvent?.Invoke(-1, Language.StringByID(R.MyInternationalizationString.uCoordinatorUpdatingFail)); //鏄剧ず閲嶆柊瀹夎 this.ShowReSetupMsg(); @@ -702,10 +601,6 @@ return; } this.UpdateStatu = UpdateStatuMode.GatewayDownLoad; - Application.RunOnMainThread(() => - { - this.btnUpdateButton.TextID = R.MyInternationalizationString.uDownLoading; - }); //鍒锋柊瓒呮椂鏃堕棿 this.DownLoadTimeOutRefresh(); @@ -714,8 +609,7 @@ await Task.Delay(1000); //缃戝叧鍥轰欢涓嬭浇涓� - string msg = Language.StringByID(R.MyInternationalizationString.uGatewayFirmwareDownLoading); - this.SetProgressValue(0, 100, msg); + this.UpdateStatuChangedEvent?.Invoke(0, Language.StringByID(R.MyInternationalizationString.uGatewayFirmwareDownLoading)); //涓嬭浇缃戝叧鏂囦欢鐨勮繘搴� this.upDatezbGateway.ReportAction += this.DownLoadGatewayFileProgress; @@ -724,14 +618,13 @@ var result = await this.upDatezbGateway.DownloadFileAsync(this.gatewayFirmware.DistributedMark, this.gatewayFirmware.Name); if (string.IsNullOrEmpty(result.errorMessageBase) == false) { - System.Console.WriteLine("鉁┾湬涓嬭浇缃戝叧鏂囦欢鉁�" + result.errorResponData?.Error + " " + result.errorMessageBase); if (result.errorResponData != null && result.errorResponData.Error == 2) { //鍥犱负tcp搴曞眰鍦ㄧ綉缁滀笉濂界殑鏃跺�欙紝鏈夊彲鑳戒細閲嶅彂澶氭锛屾墍浠ヨ繖閲屽拷鐣ユ帀銆愬崗璋冨櫒姝e湪鍗囩骇鎴栧浠�/鎭㈠鏁版嵁銆戠殑閿欒 return; } //缃戝叧鍥轰欢璧勬簮涓嬭浇澶辫触 - this.ShowErrorMsg(Language.StringByID(R.MyInternationalizationString.uGatewayFirmwareDownLoadFail)); + this.UpdateStatuChangedEvent?.Invoke(-1, Language.StringByID(R.MyInternationalizationString.uGatewayFirmwareDownLoadFail)); //鏄剧ず閲嶆柊涓嬭浇妯″紡 this.ShowReDownLoadMode(); @@ -754,7 +647,6 @@ return; } var tempZb = (ZbGateway)objValue; - System.Console.WriteLine("鈽呪槄鈽呬笅杞界綉鍏�" + tempZb.CurrentGateWayId + " " + tempZb.downloadFileProgressResponData.Status + " " + tempZb.downloadFileProgressResponData.DownloadPercent); if (tempZb.CurrentGateWayId != HdlGatewayLogic.Current.GetGatewayId(this.upDatezbGateway)) { //涓嶆槸鑷繁鐨勭綉鍏虫帹閫侊紝鍒欎笉澶勭悊 @@ -766,8 +658,8 @@ //璁剧疆杩涘害 var responData = tempZb.downloadFileProgressResponData; - string msg = Language.StringByID(R.MyInternationalizationString.uGatewayFirmwareDownLoading); - this.SetProgressValue(responData.DownloadPercent, 100, msg); + this.SetProgressValue(responData.DownloadPercent, 100); + if (responData.Status == 2) { //缃戝叧鍥轰欢璧勬簮涓嬭浇澶辫触 @@ -783,10 +675,6 @@ else if (responData.Status == 0) { this.upDatezbGateway.ReportAction -= this.DownLoadGatewayFileProgress; - if (this.Parent == null) - { - return; - } //鎵ц铏氭嫙椹卞姩鍗囩骇绋嬪簭 this.DoUpdateVirtual(); } @@ -810,16 +698,11 @@ } this.UpdateStatu = UpdateStatuMode.GatewayUpdateReady; - Application.RunOnMainThread(() => - { - this.btnUpdateButton.TextID = R.MyInternationalizationString.uLevelUping; - }); //缃戝叧鍗囩骇 var result = await this.upDatezbGateway.LinuxUpgradeAsync(this.gatewayFirmware.Name); if (string.IsNullOrEmpty(result.errorMessageBase) == false) { - System.Console.WriteLine("鉁┾湬缃戝叧鍗囩骇鉁�" + result.errorResponData?.Error + " " + result.errorMessageBase); if (result.errorMessageBase.Contains("鍥炲瓒呮椂") == true) { //缃戝叧鍗囩骇鐨勬椂鍊欙紝鏈夊彲鑳藉畠涓嶅啀鍥炰粈涔堜俊鎭� @@ -862,32 +745,16 @@ { //鐘舵�佸彉鏇� this.IsFinishUpdate = true; - //璁╁埆鐨勭嚎绋嬪厛閫�鍑� System.Threading.Thread.Sleep(2000); //璁剧疆娌℃湁缃戝叧姝e湪鍗囩骇鐨勬爣璇� HdlGatewayLogic.Current.SetHadGatewayUpdateFlage(false); + + this.UpdateStatu = UpdateStatuMode.UpdateSuccess; + //鎵ц涓嬩竴涓崌绾� + HdlFirmwareUpdateLogic.DoUpdateNextFirmware(); //缃戝叧鍗囩骇鎴愬姛! - this.SetProgressValue(100, 100, Language.StringByID(R.MyInternationalizationString.uGatewayUpdateSuccess)); - - Application.RunOnMainThread(() => - { - if (UserCenterResourse.DicActionForm.ContainsKey("GatewayFirmwareInfoForm") == true) - { - //鍒锋柊璁惧淇℃伅鐣岄潰 - ((GatewayManage.GatewayFirmwareInfoForm)UserCenterResourse.DicActionForm["GatewayFirmwareInfoForm"]).ShowForm(upDatezbGateway); - } - this.UpdateStatu = UpdateStatuMode.UpdateSuccess; - - //鎵ц涓嬩竴涓崌绾� - HdlFirmwareUpdateLogic.DoUpdateNextFirmware(); - - //瀹屾垚 - this.btnUpdateButton.TextID = R.MyInternationalizationString.uFinish; - this.btnUpdateButton.CanClick = true; - this.btnUpdateButton.SetNotClickStatu(); - - }); + this.UpdateStatuChangedEvent?.Invoke(1, ""); }); } @@ -905,18 +772,8 @@ //璁剧疆娌℃湁缃戝叧姝e湪鍗囩骇鐨勬爣璇� HdlGatewayLogic.Current.SetHadGatewayUpdateFlage(false); - Application.RunOnMainThread(() => - { - //閲嶆柊鍗囩骇 - this.btnUpdateButton.TextID = R.MyInternationalizationString.uReLevelUp; - this.btnUpdateButton.CanClick = true; - this.btnUpdateButton.SetNotClickStatu(); - //娓呯┖杩涘害鏉� - this.frameBar.Width = 0; - - //鎵ц涓嬩竴涓崌绾� - HdlFirmwareUpdateLogic.DoUpdateNextFirmware(); - }); + //鎵ц涓嬩竴涓崌绾� + HdlFirmwareUpdateLogic.DoUpdateNextFirmware(); } /// <summary> @@ -929,17 +786,8 @@ //璁剧疆娌℃湁缃戝叧姝e湪鍗囩骇鐨勬爣璇� HdlGatewayLogic.Current.SetHadGatewayUpdateFlage(false); - Application.RunOnMainThread(() => - { - this.btnUpdateButton.TextID = R.MyInternationalizationString.uReDownLoad; - this.btnUpdateButton.CanClick = true; - this.btnUpdateButton.SetNotClickStatu(); - //娓呯┖杩涘害鏉� - this.frameBar.Width = 0; - - //鎵ц涓嬩竴涓崌绾� - HdlFirmwareUpdateLogic.DoUpdateNextFirmware(); - }); + //鎵ц涓嬩竴涓崌绾� + HdlFirmwareUpdateLogic.DoUpdateNextFirmware(); } #endregion @@ -951,8 +799,7 @@ /// </summary> /// <param name="value">杩涘害鍊�</param> /// <param name="maxValue">鏈�澶у��</param> - /// <param name="appendText">杩藉姞淇℃伅</param> - private void SetProgressValue(decimal value, decimal maxValue, string appendText = "") + private void SetProgressValue(decimal value, decimal maxValue) { if (value > maxValue) { @@ -960,35 +807,7 @@ return; } decimal result = value / maxValue; - - Application.RunOnMainThread(() => - { - //鐧惧垎姣旀暟,鍙栨暣鏁伴儴鍒� - int percent = (int)(result * 100); - int width = (int)(result * this.Width); - - if (appendText != string.Empty) - { - this.btnProgress.Text = percent + "% " + appendText; - } - else - { - this.btnProgress.Text = percent + "%"; - } - this.frameBar.Width = width; - }); - } - - /// <summary> - /// 璁惧畾杩涘害鍊� - /// </summary> - /// <param name="value">杩涘害鍊�</param> - private void SetProgressValue(string value) - { - Application.RunOnMainThread(() => - { - this.btnProgress.Text = value; - }); + this.ProgressEvent?.Invoke(value); } /// <summary> @@ -997,13 +816,7 @@ /// <param name="value"></param> private void ShowErrorMsg(string value) { - Application.RunOnMainThread(() => - { - //璁剧疆閿欒淇℃伅 - this.btnProgress.Text = value; - //娓呯┖杩涘害鏉� - this.frameBar.Width = 0; - }); + this.UpdateStatuChangedEvent?.Invoke(-1, value); } #endregion @@ -1096,7 +909,7 @@ if (updateTimeOutCount == 0) { //鍝嶅簲瓒呮椂,鍗囩骇澶辫触 - this.errorMsg = Language.StringByID(R.MyInternationalizationString.uResponseTimeoutsAndUpdateFail); + this.UpdateStatuChangedEvent?.Invoke(-1, Language.StringByID(R.MyInternationalizationString.uResponseTimeoutsAndUpdateFail)); //浠庡ご鍐嶆潵 this.UpdateStatu = UpdateStatuMode.GatewayDownLoadFail; //鏄剧ず閲嶆柊涓嬭浇妯″紡 @@ -1107,20 +920,15 @@ //鍓╀綑鏃堕棿 int remainingTime = timeCount - nowTimeCount; - if (remainingTime == -1) + if (remainingTime <= -1) { //鏃堕棿鐢ㄥ畬浜嗭紝鐩存帴鏄剧ず鎴愬姛 this.IsFinishUpdate = true; break; } //璁剧疆杩涘害鍊� - this.SetProgressValue(nowTimeCount, timeCount, msg + remainingTime + "s"); - } - //鍗囩骇澶辫触 - if (this.errorMsg != string.Empty) - { - //璁剧疆閿欒淇℃伅 - this.ShowErrorMsg(this.errorMsg); + this.UpdateStatuChangedEvent?.Invoke(0, msg + remainingTime + "s"); + this.SetProgressValue(nowTimeCount, timeCount); } }); } @@ -1209,5 +1017,18 @@ } #endregion + + #region 鈻� 閲婃斁缂撳瓨___________________________ + + /// <summary> + /// 閲婃斁缂撳瓨 + /// </summary> + public void Dispose() + { + this.ProgressEvent = null; + this.UpdateStatuChangedEvent = null; + } + + #endregion } } -- Gitblit v1.8.0