diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-08-27 00:39:49 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2020-08-27 00:39:49 +0300 |
| commit | ddce0f3215746d6884acb94f3cedc613008aed5c (patch) | |
| tree | f9338c5358064cad26c0c2cecb80647e3a4eac85 | |
| parent | 415e7387f7daef038430016b41d16bc5b8cfa0d8 (diff) | |
| download | Tango-ddce0f3215746d6884acb94f3cedc613008aed5c.tar.gz Tango-ddce0f3215746d6884acb94f3cedc613008aed5c.zip | |
Improved machine operator firmware upgrade on emulated devices.
added isEmulated flag.
Dropped the need to modify the FirmwareUpgrade mode when emulated due to this new flag.
5 files changed, 31 insertions, 46 deletions
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/BackupRestore/DefaultBackupManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/BackupRestore/DefaultBackupManager.cs index 495521dd9..087534d48 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/BackupRestore/DefaultBackupManager.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/BackupRestore/DefaultBackupManager.cs @@ -510,16 +510,10 @@ namespace Tango.PPC.Common.BackupRestore var stream = new FileStream(tfpFile, FileMode.Open); - if (_machineProvider.Machine.IsDemo) - { - _machineProvider.MachineOperator.FirmwareUpgradeMode = FirmwareUpgradeModes.TFP_PACKAGE; - } - else - { - _machineProvider.MachineOperator.FirmwareUpgradeMode = FirmwareUpgradeModes.DFU | FirmwareUpgradeModes.TFP_PACKAGE; - } + _machineProvider.MachineOperator.FirmwareUpgradeMode = FirmwareUpgradeModes.DFU | FirmwareUpgradeModes.TFP_PACKAGE; + - var handler = _machineProvider.MachineOperator.UpgradeFirmware(stream).Result; + var handler = _machineProvider.MachineOperator.UpgradeFirmware(stream, _machineProvider.Machine.IsDemo).Result; handler.Failed += (_, ex) => { stream.Dispose(); diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineSetup/MachineSetupManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineSetup/MachineSetupManager.cs index 2177efecc..a2a750805 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineSetup/MachineSetupManager.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineSetup/MachineSetupManager.cs @@ -436,7 +436,7 @@ namespace Tango.PPC.Common.MachineSetup UpdateProgress("Updating Firmware", "Loading firmware package..."); var tfpPath = Path.Combine(_newPackageTempFolder, "firmware_package.tfp"); var stream = new FileStream(tfpPath, FileMode.Open); - var handler = await op.UpgradeFirmware(stream); + var handler = await op.UpgradeFirmware(stream, setup_response.IsDemo); handler.Failed += (_, ex) => { stream.Dispose(); diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs index c73cc6196..bbc8d93f6 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs @@ -843,23 +843,16 @@ namespace Tango.PPC.Common.MachineUpdate var tfpPath = Path.Combine(_newPackageTempFolder, "firmware_package.tfp"); var stream = new FileStream(tfpPath, FileMode.Open); - if (!_machineProvider.Machine.IsDemo) + if (setupFPGA) { - if (setupFPGA) - { - op.FirmwareUpgradeMode = FirmwareUpgradeModes.DFU | FirmwareUpgradeModes.TFP_PACKAGE; - } - else - { - op.FirmwareUpgradeMode = FirmwareUpgradeModes.DFU; - } + op.FirmwareUpgradeMode = FirmwareUpgradeModes.DFU | FirmwareUpgradeModes.TFP_PACKAGE; } else { - op.FirmwareUpgradeMode = FirmwareUpgradeModes.TFP_PACKAGE; + op.FirmwareUpgradeMode = FirmwareUpgradeModes.DFU; } - var handler = await op.UpgradeFirmware(stream); + var handler = await op.UpgradeFirmware(stream, _machineProvider.Machine.IsDemo); handler.Failed += (_, ex) => { stream.Dispose(); @@ -1432,23 +1425,16 @@ namespace Tango.PPC.Common.MachineUpdate var tfpPath = Path.Combine(_newPackageTempFolder, "firmware_package.tfp"); var stream = new FileStream(tfpPath, FileMode.Open); - if (!_machineProvider.Machine.IsDemo) + if (setupFPGA) { - if (setupFPGA) - { - op.FirmwareUpgradeMode = FirmwareUpgradeModes.DFU | FirmwareUpgradeModes.TFP_PACKAGE; - } - else - { - op.FirmwareUpgradeMode = FirmwareUpgradeModes.DFU; - } + op.FirmwareUpgradeMode = FirmwareUpgradeModes.DFU | FirmwareUpgradeModes.TFP_PACKAGE; } else { - op.FirmwareUpgradeMode = FirmwareUpgradeModes.TFP_PACKAGE; + op.FirmwareUpgradeMode = FirmwareUpgradeModes.DFU; } - var handler = await op.UpgradeFirmware(stream); + var handler = await op.UpgradeFirmware(stream, _machineProvider.Machine.IsDemo); handler.Failed += (_, ex) => { stream.Dispose(); @@ -1543,16 +1529,9 @@ namespace Tango.PPC.Common.MachineUpdate LogManager.Log("-------------------------------------------------------------------------"); LogManager.Log("Updating Firmware..."); - if (!_machineProvider.Machine.IsDemo) - { - op.FirmwareUpgradeMode = FirmwareUpgradeModes.DFU | FirmwareUpgradeModes.TFP_PACKAGE; - } - else - { - op.FirmwareUpgradeMode = FirmwareUpgradeModes.TFP_PACKAGE; - } + op.FirmwareUpgradeMode = FirmwareUpgradeModes.DFU | FirmwareUpgradeModes.TFP_PACKAGE; - var handler = await op.UpgradeFirmware(stream); + var handler = await op.UpgradeFirmware(stream, _machineProvider.Machine.IsDemo); handler.Failed += (_, ex) => { stream.Dispose(); diff --git a/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs b/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs index bee4a7523..1c239f4f5 100644 --- a/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs +++ b/Software/Visual_Studio/Tango.Integration/Operation/IMachineOperator.cs @@ -244,7 +244,7 @@ namespace Tango.Integration.Operation /// Occurs when a head cleaning job has ended. /// </summary> event EventHandler<HeadCleaningEndedEventArgs> HeadCleaningEnded; - + /// <summary> /// Gets or sets a value indicating whether direct the embedded device to send diagnostics messages. /// </summary> @@ -469,8 +469,9 @@ namespace Tango.Integration.Operation /// Upgrades the firmware. /// </summary> /// <param name="tfpStream">The TFP stream (Tango Firmware Package File).</param> + /// <param name="isEmulated">Specify whether the connected machine is emulated and to skip the actual DFU interface.</param> /// <returns></returns> - Task<FirmwareUpgradeHandler> UpgradeFirmware(Stream tfpStream); + Task<FirmwareUpgradeHandler> UpgradeFirmware(Stream tfpStream, bool isEmulated = false); /// <summary> /// Directs the embedded device to validate the last uploaded firmware package. diff --git a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs index de8e118e9..57ba6e727 100644 --- a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs +++ b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs @@ -3371,8 +3371,10 @@ namespace Tango.Integration.Operation /// Upgrades the firmware. /// </summary> /// <param name="tfpStream">The TFP stream (Tango Firmware Package File).</param> + /// <param name="isEmulated">Specify whether the connected machine is emulated and to skip the actual DFU interface.</param> /// <returns></returns> - public virtual async Task<FirmwareUpgradeHandler> UpgradeFirmware(Stream tfpStream) + /// <exception cref="InvalidOperationException"></exception> + public virtual async Task<FirmwareUpgradeHandler> UpgradeFirmware(Stream tfpStream, bool isEmulated = false) { bool cancel = false; ZipFile zip = null; @@ -3493,8 +3495,16 @@ namespace Tango.Integration.Operation try { - LogManager.Log("Upgrading..."); - upgradeManager.PerformUpgrade(data).Wait(); + if (!isEmulated) + { + LogManager.Log("Upgrading..."); + upgradeManager.PerformUpgrade(data).Wait(); + } + else + { + LogManager.Log("Upgrading (emulated)..."); + Thread.Sleep(3000); + } } catch (Exception ex) { @@ -3512,6 +3522,7 @@ namespace Tango.Integration.Operation LogManager.Log("Reconnecting adapter..."); upgradeHandler.RaiseProgress(100, FirmwareUpgradeStatus.Upgrading, "Connecting..."); Adapter.Connect().Wait(); + Connect().Wait(); LogManager.Log("Connected..."); |
