diff options
Diffstat (limited to 'Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs')
| -rw-r--r-- | Software/Visual_Studio/Tango.Integration/Operation/MachineOperator.cs | 46 |
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> |
