diff options
Diffstat (limited to 'Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs')
| -rw-r--r-- | Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs | 44 |
1 files changed, 37 insertions, 7 deletions
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs index 965584767..613c70809 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModels/MachineUpdateViewVM.cs @@ -167,7 +167,7 @@ namespace Tango.PPC.UI.ViewModels return; } - var response = await MachineUpdateManager.CheckForUpdate(MachineProvider.Machine.SerialNumber); + var response = await MachineUpdateManager.CheckForUpdate(); try { @@ -208,7 +208,7 @@ namespace Tango.PPC.UI.ViewModels } else { - _db_compare_result = await MachineUpdateManager.UpdateDBCheck(MachineProvider.Machine.SerialNumber); + _db_compare_result = await MachineUpdateManager.UpdateDBCheck(); if (_db_compare_result.RequiresUpdate) { @@ -261,7 +261,7 @@ namespace Tango.PPC.UI.ViewModels try { - await MachineUpdateManager.UpdateDB(_db_compare_result, MachineProvider.Machine.SerialNumber); + await MachineUpdateManager.UpdateDB(_db_compare_result); LogManager.Log("Database update completed."); await NavigateTo(MachineUpdateView.UpdateCompletedView); } @@ -408,8 +408,12 @@ namespace Tango.PPC.UI.ViewModels #region Handle USB Update - private async void HandleSoftwareUpdatePackageLoaded(ExplorerFileItem fileItem) + private async void HandleSoftwareUpdatePackageLoaded(List<ExplorerFileItem> fileItems) { + var fileItem = fileItems.FirstOrDefault(); + + if (fileItem == null) return; + PublishInfo packageFile = null; LogManager.Log("TUP file loaded from storage..."); @@ -456,8 +460,12 @@ namespace Tango.PPC.UI.ViewModels } } - private async void HandleFirmwareUpgradeLoaded(ExplorerFileItem fileItem) + private async void HandleFirmwareUpgradeLoaded(List<ExplorerFileItem> fileItems) { + var fileItem = fileItems.FirstOrDefault(); + + if (fileItem == null) return; + LogManager.Log("TFP file loaded from storage..."); VersionPackageDescriptor packageInfo; @@ -470,12 +478,14 @@ namespace Tango.PPC.UI.ViewModels packageInfo = await MachineProvider.MachineOperator.GetFirmwarePackageInfo(st); } - vm.Version = packageInfo.FileDescriptors.SingleOrDefault(x => x.Destination == VersionFileDestination.Mcu).Version; + packageInfo.Validate(); + + vm.Version = packageInfo.GetMcuVersion().ToString(); } catch (Exception ex) { LogManager.Log(ex, $"Error loading package info from {fileItem.Path}."); - await NotificationProvider.ShowError("An error occurred while trying to load the selected firmware upgrade package. Please make sure the package is valid."); + await NotificationProvider.ShowError($"An error occurred while trying to load the selected firmware upgrade package.\n{ex.FlattenMessage()}"); return; } @@ -529,6 +539,12 @@ namespace Tango.PPC.UI.ViewModels _updateNotificationItem.IsDatabaseUpdate = e.IsDatabaseUpdateAvailable && !e.IsUpdateAvailable; _updateNotificationItem.Pressed += (_, __) => { + if (MachineProvider.MachineOperator.IsPrinting) + { + NotificationProvider.ShowInfo("Cannot perform a machine update while the machine is dyeing."); + return; + } + _updateNotificationItem = null; if (!IsVisible) @@ -601,6 +617,7 @@ namespace Tango.PPC.UI.ViewModels { _update_result = await MachineUpdateManager.UpdateFromTUP(request.RemoteTupFilePath, request.SetupFirmware, request.SetupFPGA); LogManager.Log("Machine update from package completed."); + stopReporting = true; InvokeUI(() => { @@ -616,6 +633,8 @@ namespace Tango.PPC.UI.ViewModels { NavigateTo(MachineUpdateView.UpdateFailedFromPackageView); }); + + throw ex; } await receiver.SendGenericResponse(new StartRemoteApplicationUpgradeResponse() @@ -638,10 +657,13 @@ namespace Tango.PPC.UI.ViewModels } catch (Exception ex) { + stopReporting = true; await receiver.SendErrorResponse(ex, token); } finally { + stopReporting = true; + try { File.Delete(request.RemoteTupFilePath); @@ -699,6 +721,7 @@ namespace Tango.PPC.UI.ViewModels try { await MachineUpdateManager.UpdateFromTFP(request.RemoteTfpFilePath); + stopReporting = true; LogManager.Log("Firmware upgrade from package completed."); _update_result = new MachineUpdateResult() { @@ -712,6 +735,8 @@ namespace Tango.PPC.UI.ViewModels } catch (Exception ex) { + stopReporting = true; + LogManager.Log(ex, "Firmware upgrade from package failed."); FailedError = ex.FlattenMessage(); @@ -719,6 +744,8 @@ namespace Tango.PPC.UI.ViewModels { NavigateTo(MachineUpdateView.UpdateFailedFromPackageView); }); + + throw ex; } await receiver.SendGenericResponse(new StartRemoteFirmwareUpgradeResponse() @@ -741,10 +768,13 @@ namespace Tango.PPC.UI.ViewModels } catch (Exception ex) { + stopReporting = true; await receiver.SendErrorResponse(ex, token); } finally { + stopReporting = true; + try { File.Delete(request.RemoteTfpFilePath); |
