diff options
| author | Avi Levkovich <avi@twine-s.com> | 2019-02-17 17:25:52 +0200 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2019-02-17 17:25:52 +0200 |
| commit | 638ef66200cc71378f00e2705dc6b259c461ae78 (patch) | |
| tree | f8143befd029c56599f4f892427713960e99c50b /Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels | |
| parent | e89e1d93b6c8198828a6bda95db0bbd6cbae3955 (diff) | |
| parent | 21cdc1e12814f72e6aac795f9ddd2a32b9614389 (diff) | |
| download | Tango-638ef66200cc71378f00e2705dc6b259c461ae78.tar.gz Tango-638ef66200cc71378f00e2705dc6b259c461ae78.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels')
2 files changed, 61 insertions, 7 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/FirmwareUpgradeViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/FirmwareUpgradeViewVM.cs index 09b63cfc9..e54c28e17 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/FirmwareUpgradeViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/FirmwareUpgradeViewVM.cs @@ -5,11 +5,14 @@ using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Windows; +using System.Windows.Input; using Tango.Core.Commands; using Tango.Integration.Operation; using Tango.Integration.Upgrade; using Tango.MachineStudio.Common.Notifications; using Tango.SharedUI; +using Tango.SharedUI.Helpers; namespace Tango.MachineStudio.UI.ViewModels { @@ -47,6 +50,35 @@ namespace Tango.MachineStudio.UI.ViewModels set { upgradeError = value; RaisePropertyChangedAuto(); } } + private bool _dfu; + public bool DFU + { + get { return _dfu; } + set + { + _dfu = value; RaisePropertyChangedAuto(); + + if (_dfu) + { + UploadTFP = false; + } + } + } + + private bool _uploadTFP; + public bool UploadTFP + { + get { return _uploadTFP; } + set + { + _uploadTFP = value; RaisePropertyChangedAuto(); + + if (_uploadTFP) + { + DFU = false; + } + } + } public RelayCommand SelectCommand { get; set; } @@ -56,6 +88,7 @@ namespace Tango.MachineStudio.UI.ViewModels public FirmwareUpgradeViewVM(IMachineOperator machineOperator, INotificationProvider notificationProvider) : base() { + DFU = true; _notification = notificationProvider; _operator = machineOperator; SelectCommand = new RelayCommand(BrowseForFile); @@ -96,6 +129,17 @@ namespace Tango.MachineStudio.UI.ViewModels try { + IsFree = false; + + if (UploadTFP) + { + _operator.FirmwareUpgradeMode = FirmwareUpgradeModes.DFU | FirmwareUpgradeModes.TFP_PACKAGE; + } + else + { + _operator.FirmwareUpgradeMode = FirmwareUpgradeModes.DFU; + } + _stream = new FileStream(SelectedFile, FileMode.Open); Handler = await _operator.UpgradeFirmware(_stream); Handler.Progress += (_, e) => @@ -104,18 +148,22 @@ namespace Tango.MachineStudio.UI.ViewModels { AbortCommand.RaiseCanExecuteChanged(); }); + + UIHelper.DoEvents(); }; Handler.Completed += (_, __) => { CanClose = true; _stream.Dispose(); CurrentPage = 2; + IsFree = true; }; Handler.Canceled += (_, __) => { CanClose = true; _stream.Dispose(); CurrentPage = 0; + IsFree = true; }; Handler.Failed += (_, ex) => { @@ -123,10 +171,12 @@ namespace Tango.MachineStudio.UI.ViewModels CanClose = true; _stream.Dispose(); CurrentPage = 3; + IsFree = true; }; } catch (Exception ex) { + IsFree = true; CanClose = true; UpgradeError = ex.FlattenMessage(); CurrentPage = 3; diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs index 573e56fff..1d03dd389 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs @@ -11,6 +11,7 @@ using System.Windows; using System.Windows.Controls; using System.Windows.Media; using Tango.BL; +using Tango.BL.Builders; using Tango.BL.Entities; using Tango.Core.Commands; using Tango.Core.DI; @@ -483,7 +484,7 @@ namespace Tango.MachineStudio.UI.ViewModels if (x.UploadHardwareConfiguration) { - UploadHardwareConfiguration(); + UploadHardwareConfiguration(false); } } @@ -525,7 +526,7 @@ namespace Tango.MachineStudio.UI.ViewModels if (x.UploadHardwareConfiguration) { - UploadHardwareConfiguration(); + UploadHardwareConfiguration(false); } } catch (Exception ex) @@ -615,18 +616,21 @@ namespace Tango.MachineStudio.UI.ViewModels InvalidateRelayCommands(); } - private async void UploadHardwareConfiguration() + private async void UploadHardwareConfiguration(bool showSuccessMessage = true) { try { using (ObservablesContext db = ObservablesContext.CreateDefault()) { - var config = db.Adapter.GetConfiguration(s => s.Guid == ApplicationManager.Machine.ConfigurationGuid); - var hw = db.Adapter.GetHardwareVersionByMachine(ApplicationManager.Machine.Guid); + var config = (await new ConfigurationBuilder(db).Set(ApplicationManager.Machine.ConfigurationGuid).WithIdsPacks().WithHardwareVersion().BuildAsync()); - await ApplicationManager.ConnectedMachine.UploadHardwareConfiguration(hw, config); + await ApplicationManager.ConnectedMachine.UploadHardwareConfiguration(config.HardwareVersion, config); + } + + if (showSuccessMessage) + { + NotificationProvider.ShowInfo("Hardware configuration uploaded successfully."); } - NotificationProvider.ShowInfo("Hardware configuration uploaded successfully."); } catch (Exception ex) { |
