aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs')
-rw-r--r--Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs46
1 files changed, 44 insertions, 2 deletions
diff --git a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs
index f7b447843..118bbc38a 100644
--- a/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs
+++ b/Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs
@@ -49,6 +49,7 @@ namespace Tango.Integration.Operation
public MachineOperator() : base()
{
+ DeviceInformation = new DeviceInformation();
MachineEventsStateProvider = new DefaultMachineEventsStateProvider();
EnableEmbeddedDebugging = true;
LogEmbeddedDebuggingToFile = true;
@@ -154,6 +155,27 @@ namespace Tango.Integration.Operation
/// </summary>
public IMachineEventsStateProvider MachineEventsStateProvider { get; set; }
+ /// <summary>
+ /// Gets the last process parameters table sent to the embedded device.
+ /// </summary>
+ public ProcessParametersTable CurrentProcessParameters { get; private set; }
+
+ /// <summary>
+ /// Gets the last hardware configuration sent to the embedded device.
+ /// </summary>
+ public HardwareConfiguration CurrentHardwareConfiguration { get; private set; }
+
+ private DeviceInformation _deviceInformation;
+ /// <summary>
+ /// Gets or sets the embedded device information.
+ /// </summary>
+ public DeviceInformation DeviceInformation
+ {
+ get { return _deviceInformation; }
+ set { _deviceInformation = value; RaisePropertyChangedAuto(); }
+ }
+
+
#endregion
#region Virtual Methods
@@ -367,6 +389,8 @@ namespace Tango.Integration.Operation
var response = await SendRequest<ConnectRequest, ConnectResponse>(request);
LogResponseReceived(response.Message);
+ DeviceInformation = response.Message.DeviceInformation;
+
OnEnableDiagnosticsChanged(EnableDiagnostics);
OnEnableEmbeddedDebuggingChanged(EnableEmbeddedDebugging);
}
@@ -391,6 +415,8 @@ namespace Tango.Integration.Operation
/// <returns></returns>
public JobHandler Print(Job job, ProcessParametersTable processParameters)
{
+ CurrentProcessParameters = processParameters;
+
JobRequest request = new JobRequest();
JobTicket ticket = new JobTicket();
@@ -508,6 +534,7 @@ namespace Tango.Integration.Operation
try
{
+ CurrentProcessParameters = processParameters;
LogRequestSent(request);
response = await SendRequest<UploadProcessParametersRequest, UploadProcessParametersResponse>(request);
LogResponseReceived(response);
@@ -530,8 +557,23 @@ namespace Tango.Integration.Operation
{
UploadHardwareConfigurationRequest request = new UploadHardwareConfigurationRequest();
request.HardwareConfiguration = hardwareConfiguration;
- LogRequestSent(request);
- return await SendRequest<UploadHardwareConfigurationRequest, UploadHardwareConfigurationResponse>(request);
+
+ UploadHardwareConfigurationResponse response = null;
+
+ try
+ {
+ CurrentHardwareConfiguration = hardwareConfiguration;
+ LogRequestSent(request);
+ response = await SendRequest<UploadHardwareConfigurationRequest, UploadHardwareConfigurationResponse>(request);
+ LogResponseReceived(response);
+ }
+ catch (Exception ex)
+ {
+ LogRequestFailed(request, ex);
+ throw ex;
+ }
+
+ return response;
}
/// <summary>