aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineSetup/MachineSetupManager.cs
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2018-12-17 11:13:44 +0200
committerShlomo Hecht <shlomo@twine-s.com>2018-12-17 11:13:44 +0200
commit3b2d3e0e07b6115b143fb8d4a48cb94bb1e17f95 (patch)
tree3d968d7a66bea111e36c716f6c153bf5620ffdef /Software/Visual_Studio/PPC/Tango.PPC.Common/MachineSetup/MachineSetupManager.cs
parent2c37dcf7dc299a8ff66a5c46b4b2424d37005e11 (diff)
parent9562ca15079cdbf2bcfd11c8c8def4a8e4573a78 (diff)
downloadTango-3b2d3e0e07b6115b143fb8d4a48cb94bb1e17f95.tar.gz
Tango-3b2d3e0e07b6115b143fb8d4a48cb94bb1e17f95.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software/Visual_Studio/PPC/Tango.PPC.Common/MachineSetup/MachineSetupManager.cs')
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.Common/MachineSetup/MachineSetupManager.cs109
1 files changed, 80 insertions, 29 deletions
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 22da5c57e..ead508488 100644
--- a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineSetup/MachineSetupManager.cs
+++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineSetup/MachineSetupManager.cs
@@ -15,9 +15,11 @@ using Tango.Core;
using Tango.Core.DB;
using Tango.Core.Helpers;
using Tango.Core.IO;
+using Tango.Integration.Operation;
using Tango.PMR.Synchronization;
using Tango.PPC.Common.Application;
using Tango.PPC.Common.Connection;
+using Tango.PPC.Common.RemoteAssistance;
using Tango.Settings;
using Tango.SharedUI.Helpers;
using Tango.SQLExaminer;
@@ -32,6 +34,8 @@ namespace Tango.PPC.Common.MachineSetup
/// <seealso cref="Tango.PPC.Common.MachineSetup.IMachineSetupManager" />
public class MachineSetupManager : ExtendedObject, IMachineSetupManager
{
+ private IRemoteAssistanceProvider _remoteAssistance;
+
#region Events
/// <summary>
@@ -57,6 +61,19 @@ namespace Tango.PPC.Common.MachineSetup
#endregion
+ #region Constructor
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="MachineSetupManager"/> class.
+ /// </summary>
+ /// <param name="remoteAssistance">The remote assistance.</param>
+ public MachineSetupManager(IRemoteAssistanceProvider remoteAssistance)
+ {
+ _remoteAssistance = remoteAssistance;
+ }
+
+ #endregion
+
#region Public Methods
/// <summary>
@@ -73,8 +90,28 @@ namespace Tango.PPC.Common.MachineSetup
{
LogManager.Log($"Starting machine setup for serial number {serialNumber}...");
+ IMachineOperator op = null;
+
+ var demoMode = SettingsManager.Default.GetOrCreate<PPCSettings>().DemoMode;
+
+ if (!demoMode)
+ {
+ //Connecting to machine...
+ LogManager.Log("Initiating machine connection...");
+
+ UpdateProgress("Connecting to machine", "Connecting...");
+ op = await DefaultMachineProvider.CreateMinimalMachineOperator((msg) =>
+ {
+ UpdateProgress("Connecting to machine", msg);
+ });
+ }
+ else
+ {
+ LogManager.Log("Application in demo mode. Skipping machine connection...");
+ }
+
//Connect to machine service and get matching packages for this machine.
- UpdateProgress("Downloading software package", "Connecting to machine service...");
+ UpdateProgress("Validating serial number", "Connecting to machine service...");
LogManager.Log($"Connecting to machine service on {machineServiceAddress}...");
@@ -97,6 +134,10 @@ namespace Tango.PPC.Common.MachineSetup
LogManager.Log($"Machine setup response received: {Environment.NewLine}{setup_response.ToJsonString()}");
+ LogManager.Log("Installing remote assistance...");
+ UpdateProgress("Installing remote assistance", "Installing...");
+ await _remoteAssistance.InstallRemoteAssistance();
+
//Create temporary folders for packages.
var _newPackageTempFolder = TemporaryManager.CreateFolder();
_newPackageTempFolder.Persist = true;
@@ -228,40 +269,50 @@ namespace Tango.PPC.Common.MachineSetup
throw LogManager.Log(ex, "Setup manager error while trying to synchronize database.");
}
- //Updating firmware
- UpdateProgress("Updating Firmware", "Connecting to firmware device...");
- LogManager.Log("");
- LogManager.Log("-------------------------------------------------------------------------");
- LogManager.Log("Updating Firmware...");
- var op = await DefaultMachineProvider.CreateMinimalMachineOperator();
-
- 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);
- handler.Failed += (_, ex) =>
+ if (!demoMode)
{
- stream.Dispose();
- result.SetException(ex);
- };
- handler.Completed += (_, __) =>
+ //Updating firmware
+ UpdateProgress("Updating Firmware", "Connecting to firmware device...");
+ LogManager.Log("");
+ LogManager.Log("-------------------------------------------------------------------------");
+ LogManager.Log("Updating Firmware...");
+
+ 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);
+ handler.Failed += (_, ex) =>
+ {
+ stream.Dispose();
+ result.SetException(ex);
+ };
+ handler.Completed += (_, __) =>
+ {
+ UpdateProgress("Updating Firmware", "Firmware update completed successfully.");
+ stream.Dispose();
+ result.SetResult(new MachineSetupResult()
+ {
+ UpdatePackagePath = _newPackageTempFolder,
+ });
+ };
+ handler.Canceled += (_, __) =>
+ {
+ stream.Dispose();
+ result.SetException(new Exception("The operation has been canceled."));
+ };
+ handler.Progress += (_, e) =>
+ {
+ UpdateProgress("Updating Firmware", e.Message, false, e.Current, e.Total);
+ };
+ }
+ else
{
- UpdateProgress("Updating Firmware", "Firmware update completed successfully.");
- stream.Dispose();
+ LogManager.Log("Application in demo mode. Skipping firmware upgrade...");
result.SetResult(new MachineSetupResult()
{
UpdatePackagePath = _newPackageTempFolder,
});
- };
- handler.Canceled += (_, __) =>
- {
- stream.Dispose();
- result.SetException(new Exception("The operation has been canceled."));
- };
- handler.Progress += (_, e) =>
- {
- UpdateProgress("Updating Firmware", e.Message, false, e.Current, e.Total);
- };
+ }
}
catch (Exception ex)
{