aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Emulations/Emulators
diff options
context:
space:
mode:
authorMirta <mirta@twine-s.com>2020-12-30 16:39:52 +0200
committerMirta <mirta@twine-s.com>2020-12-30 16:39:52 +0200
commit00a491d93733d4625ad329b2ba8237f445364b3f (patch)
tree4b24c6fa78d7648f4bb7cefafa464bb0b063fec4 /Software/Visual_Studio/Tango.Emulations/Emulators
parent124ad4150f80c6846fdee41dbbda9848c105f6e5 (diff)
downloadTango-00a491d9.tar.gz
Tango-00a491d9.zip
merge
Diffstat (limited to 'Software/Visual_Studio/Tango.Emulations/Emulators')
-rw-r--r--Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs949
-rw-r--r--Software/Visual_Studio/Tango.Emulations/Emulators/MobileEmulator.cs4
2 files changed, 56 insertions, 897 deletions
diff --git a/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs b/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs
index 6360b7bbc..ad3b242f4 100644
--- a/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs
+++ b/Software/Visual_Studio/Tango.Emulations/Emulators/MachineEmulator.cs
@@ -32,10 +32,6 @@ using Tango.PMR.FirmwareUpgrade;
using System.Diagnostics;
using Tango.Core.ExtensionMethods;
using Tango.PMR.MachineStatus;
-using Tango.PMR.Power;
-using Tango.PMR.ThreadLoading;
-using Tango.PMR.IFS;
-using Tango.PMR.DataStore;
namespace Tango.Emulations.Emulators
{
@@ -54,8 +50,6 @@ namespace Tango.Emulations.Emulators
}
private const int MAX_CHUNK_LENGTH = 4000;
- private const int DIAGNOSTICS_INTERVAL = 300;
- private static Random _rnd = new Random();
private StartDiagnosticsRequest _diagnosticsRequest;
private bool _cancelJob;
private List<PMR.Hardware.HardwareMotorType> _motorJoggingRequestTypes;
@@ -79,13 +73,6 @@ namespace Tango.Emulations.Emulators
private JobTicket _current_job_ticket;
private String _current_job_resume_token;
private FileUploadRequest _lastFileUploadRequest;
- private bool _isAfterReset;
- private bool _abortPowerDown;
- private bool _isThreadLoadingStarted;
- private String _threadLoadingToken;
- private DateTime _connectionTime;
- private int _jobAbortCounter;
- private bool _abortHeadCleaning;
#region Properties
@@ -116,8 +103,6 @@ namespace Tango.Emulations.Emulators
public MachineStatus MachineStatus { get; set; }
- public InkFillingStatus InkFillingStatus { get; set; }
-
#endregion
#region Constructors
@@ -136,7 +121,6 @@ namespace Tango.Emulations.Emulators
/// <param name="transporter">The transporter.</param>
public MachineEmulator(ITransporter transporter) : base(transporter)
{
- transporter.ComponentName = $"Machine Emulator";
LogManager.Log("Machine emulator initialized using transporter " + transporter.ToString());
Init();
}
@@ -154,7 +138,6 @@ namespace Tango.Emulations.Emulators
private void Init()
{
- _isAfterReset = true;
MachineStatus = new MachineStatus();
MachineStatus.State = MachineState.Ready;
@@ -229,33 +212,6 @@ namespace Tango.Emulations.Emulators
}
ResetGraphFactors();
-
- InkFillingStatus = new InkFillingStatus();
-
- for (int i = 0; i < 8; i++)
- {
- InkFillingStatus.CartridgesStatuses.Add(new CartridgeStatus()
- {
- Cartridge = new Cartridge()
- {
- Index = i,
- Slot = CartridgeSlot.Ink,
- },
- State = CartridgeState.Present
- });
- }
-
- InkFillingStatus.CartridgesStatuses.Add(new CartridgeStatus()
- {
- Cartridge = new Cartridge() { Index = 0, Slot = CartridgeSlot.WasteMiddle },
- State = CartridgeState.Present
- });
-
- InkFillingStatus.CartridgesStatuses.Add(new CartridgeStatus()
- {
- Cartridge = new Cartridge() { Index = 1, Slot = CartridgeSlot.WasteLower },
- State = CartridgeState.Present
- });
}
private void ResetGraphFactors()
@@ -268,21 +224,13 @@ namespace Tango.Emulations.Emulators
#region Override Methods
- public override Task Start()
- {
- _isAfterReset = true;
- return base.Start();
- }
-
/// <summary>
/// Called on new request message.
/// </summary>
/// <param name="sender">The sender.</param>
/// <param name="container">The container.</param>
- protected override void OnTransporterRequestReceived(object sender, RequestReceivedEventArgs e)
+ protected override void OnTransporterRequestReceived(object sender, MessageContainer container)
{
- var container = e.Container;
-
if (container.Type != MessageType.FileChunkUploadRequest && container.Type != MessageType.FileChunkDownloadRequest)
{
LogManager.Log(container.Type.ToString().ToWords() + " received." + Environment.NewLine + MessageFactory.ExtractMessageFromContainer(container).ToJsonString());
@@ -440,42 +388,6 @@ namespace Tango.Emulations.Emulators
case MessageType.ActivateVersionRequest:
HandleActivateVersionRequest(MessageFactory.ParseTangoMessageFromContainer<ActivateVersionRequest>(container));
break;
- case MessageType.StartPowerDownRequest:
- HandleStartPowerDownRequest(MessageFactory.ParseTangoMessageFromContainer<StartPowerDownRequest>(container));
- break;
- case MessageType.AbortPowerDownRequest:
- HandleAbortPowerDownRequest(MessageFactory.ParseTangoMessageFromContainer<AbortPowerDownRequest>(container));
- break;
- case MessageType.StartThreadLoadingRequest:
- HandleStartThreadLoadingRequest(MessageFactory.ParseTangoMessageFromContainer<StartThreadLoadingRequest>(container));
- break;
- case MessageType.TryThreadLoadingRequest:
- HandleTryThreadLoadingRequest(MessageFactory.ParseTangoMessageFromContainer<TryThreadLoadingRequest>(container));
- break;
- case MessageType.ContinueThreadLoadingRequest:
- HandleContinueThreadLoadingRequest(MessageFactory.ParseTangoMessageFromContainer<ContinueThreadLoadingRequest>(container));
- break;
- case MessageType.StartHeadCleaningRequest:
- HandleStartHeadCleaningRequest(MessageFactory.ParseTangoMessageFromContainer<StartHeadCleaningRequest>(container));
- break;
- case MessageType.AbortHeadCleaningRequest:
- HandleAbortHeadCleaningRequest(MessageFactory.ParseTangoMessageFromContainer<AbortHeadCleaningRequest>(container));
- break;
- case MessageType.StartPowerUpRequest:
- HandleStartPowerUpRequest(MessageFactory.ParseTangoMessageFromContainer<StartPowerUpRequest>(container));
- break;
- case MessageType.StartInkFillingStatusRequest:
- HandleStartInkFillingStatusRequest(MessageFactory.ParseTangoMessageFromContainer<StartInkFillingStatusRequest>(container));
- break;
- case MessageType.StandByRequest:
- HandleStandByRequest(MessageFactory.ParseTangoMessageFromContainer<StandByRequest>(container));
- break;
- case MessageType.AttemptThreadJoggingRequest:
- HandleAttemptThreadJoggingRequest(MessageFactory.ParseTangoMessageFromContainer<AttemptThreadJoggingRequest>(container));
- break;
- case MessageType.DataStoreItemModifiedRequest:
- HandleDataStoreItemModifiedRequest(MessageFactory.ParseTangoMessageFromContainer<DataStoreItemModifiedRequest>(container));
- break;
}
}
@@ -499,7 +411,7 @@ namespace Tango.Emulations.Emulators
{
for (int i = 0; i < request.Message.Amount; i++)
{
- Thread.Sleep(request.Message.Delay);
+ Thread.Sleep(request.Message.Delay * 10);
var res = MessageFactory.CreateTangoMessage<ProgressResponse>(request.Container.Token);
res.Message.Progress = i;
@@ -507,8 +419,6 @@ namespace Tango.Emulations.Emulators
Transporter.SendResponse(res);
}
-
- Transporter.SendResponse(new ProgressResponse(), request.Container.Token, new TransportResponseConfig() { Completed = true });
});
}
@@ -523,12 +433,8 @@ namespace Tango.Emulations.Emulators
var cancelToken = CreateCancelToken();
- Stopwatch watch = new Stopwatch();
-
Task.Factory.StartNew(() =>
{
- watch.Start();
-
while (_diagnostics_enabled && Transporter.State == TransportComponentState.Connected && !cancelToken.Canceled)
{
StartDiagnosticsResponse res = new StartDiagnosticsResponse();
@@ -553,8 +459,6 @@ namespace Tango.Emulations.Emulators
for (int i = 0; i < 1; i++)
{
monitors.Dancer2Angle.Add(y);
- monitors.GasSensor.Add(y);
- monitors.FilterDeltaPressure.Add(y);
}
for (int i = 0; i < 30; i++)
@@ -604,16 +508,13 @@ namespace Tango.Emulations.Emulators
res.ComponentsStates.AddRange(_componentsStates);
res.HeatersStates.AddRange(_heater_states);
res.ValvesStates.AddRange(_valveStates);
- res.ElapsedMilli = (uint)watch.ElapsedMilliseconds;
-
- watch.Restart();
if (!EmulateCorruption)
{
Transporter.SendResponse<StartDiagnosticsResponse>(res, request.Container.Token);
}
- Thread.Sleep(DIAGNOSTICS_INTERVAL);
+ Thread.Sleep(300);
}
});
@@ -709,7 +610,7 @@ namespace Tango.Emulations.Emulators
Transporter.SendResponse<StartDebugLogResponse>(res, request.Container.Token);
}
- Thread.Sleep(1000);
+ Thread.Sleep(10);
counter_message++;
@@ -727,19 +628,18 @@ namespace Tango.Emulations.Emulators
MachineStatus.State = MachineState.PreparingJob;
JobTicket job = request.Message.JobTicket;
- var jobTicket = job;
- _current_job_ticket = jobTicket.Clone();
+ _current_job_ticket = job;
_current_job_resume_token = null;
- if (jobTicket.UploadStrategy == JobUploadStrategy.JobDescriptionFile)
+ if (_current_job_ticket.UploadStrategy == JobUploadStrategy.JobDescriptionFile)
{
- using (FileStream fs = new FileStream(jobTicket.JobDescriptionFile, FileMode.Open))
+ using (FileStream fs = new FileStream(_current_job_ticket.JobDescriptionFile, FileMode.Open))
{
var segments = JobDescriptionFile.ReadJobDescriptionFile(fs);
- jobTicket.Segments.AddRange(segments);
+ _current_job_ticket.Segments.AddRange(segments);
}
- var logedTicket = jobTicket.Clone();
+ var logedTicket = _current_job_ticket.Clone();
foreach (var segment in logedTicket.Segments)
{
if (segment.BrushStops.Count > 2)
@@ -757,127 +657,52 @@ namespace Tango.Emulations.Emulators
double centimeter_per_second = request.Message.JobTicket.ProcessParameters.DyeingSpeed;
+ double progress = 0;
_cancelJob = false;
bool message_sent = false;
- int units = (int)Math.Max(job.NumberOfUnits, 1);
- double unit_length = job.Length;/// units;
+ double length = job.Segments.Sum(x => x.Length) * (Math.Max(job.NumberOfUnits, 1));
Task.Factory.StartNew(() =>
{
MachineStatus.State = MachineState.RunningJob;
- List<int> calculatedStopIndexes = new List<int>();
- double progress = 0;
- double lastProgress = 0;
- Stopwatch watch = new Stopwatch();
- Dictionary<int, IDSPackLevel> dispenserindexToPacklevel = new Dictionary<int, IDSPackLevel>();
-
- for (int i = 0; i < units; i++)
+ while (progress < length + job.ProcessParameters.DryerBufferLength * ProcessParametersTable.DRYER_METERS_PER_CYCLE && !_cancelJob)
{
+ var status = new PMR.Printing.JobStatus();
+ status.Progress = progress;
- while (progress < unit_length + (i == units - 1 ? (job.ProcessParameters.DryerBufferLength * ProcessParametersTable.DRYER_METERS_PER_CYCLE + ProcessParametersTable.DRYER_TO_SPOOL_LENGTH_METERS) : 0) && !_cancelJob)
+ if (!message_sent)
{
- var status = new PMR.Printing.JobStatus();
- status.Progress = progress;
-
- if (!message_sent)
- {
- message_sent = true;
- status.Message = "Demo Message From Emulator...";
- }
+ message_sent = true;
+ status.Message = "Demo Message From Emulator...";
+ }
- if (!EmulateCorruption)
+ if (!EmulateCorruption)
+ {
+ if (_current_job_resume_token == null)
{
- if (_current_job_resume_token == null)
- {
- Transporter.SendResponse<JobResponse>(new JobResponse()
- {
- Status = status,
-
- }, request.Container.Token);
- }
- else
+ Transporter.SendResponse<JobResponse>(new JobResponse()
{
- Transporter.SendResponse<ResumeCurrentJobResponse>(new ResumeCurrentJobResponse()
- {
- Status = status,
+ Status = status,
- }, _current_job_resume_token);
- }
+ }, request.Container.Token);
}
-
- progress += Math.Min((centimeter_per_second / 1000d), (unit_length + (i == units - 1 ? (job.ProcessParameters.DryerBufferLength * ProcessParametersTable.DRYER_METERS_PER_CYCLE + ProcessParametersTable.DRYER_TO_SPOOL_LENGTH_METERS) : 0)) - progress);
-
- double currentPosition = 0;
- double nextStopPosition = unit_length;
-
- watch.Restart();
- for (int seg_index = 0; seg_index < jobTicket.Segments.Count(); seg_index++)
+ else
{
- var segment = jobTicket.Segments[seg_index];
- if ((seg_index + 1) < jobTicket.Segments.Count())
+ Transporter.SendResponse<ResumeCurrentJobResponse>(new ResumeCurrentJobResponse()
{
- nextStopPosition = jobTicket.Segments[seg_index + 1].Length;
- }
+ Status = status,
- for (int index = 0; index < segment.BrushStops.Count(); index++)
- {
- var stop = segment.BrushStops[index];
- if ((index + 1) < segment.BrushStops.Count())
- {
- var nextStop = segment.BrushStops[index + 1];
- nextStopPosition = nextStop.OffsetMeters;
- }
-
- if (!calculatedStopIndexes.Contains(stop.Index))
- {
- var brushStopPosition = currentPosition + stop.OffsetMeters;
- if (brushStopPosition >= lastProgress && brushStopPosition <= progress)
- {
- foreach (var dispenser in stop.Dispensers)
- {
- var quantity = dispenser.NanoliterPerCentimeter * (nextStopPosition - stop.OffsetMeters) * 100d;
- IDSPackLevel packLevel;
- if (!dispenserindexToPacklevel.TryGetValue(dispenser.Index, out packLevel))
- {
- packLevel = MachineStatus.IDSPacksLevels.SingleOrDefault(x => x.Index == dispenser.Index);
- dispenserindexToPacklevel.Add(dispenser.Index, packLevel);
- }
- if (packLevel != null)
- {
- packLevel.DispenserLevel -= (int)quantity;
- }
- }
- calculatedStopIndexes.Add(stop.Index);
- }
- }
- }
- currentPosition += segment.Length;
- }
- watch.Stop();
- lastProgress = progress;
- int delay = (100 - (int)watch.ElapsedMilliseconds) > 0 ? (100 - (int)watch.ElapsedMilliseconds) : 5;
- Thread.Sleep(delay);
-
- if (_cancelJob)
- {
- break;
+ }, _current_job_resume_token);
}
}
- if (_cancelJob)
- {
- break;
- }
- }
+ progress += Math.Min((centimeter_per_second / 1000d), (length + job.ProcessParameters.DryerBufferLength * ProcessParametersTable.DRYER_METERS_PER_CYCLE) - progress);
- foreach (var packLevel in MachineStatus.IDSPacksLevels)
- {
- Debug.WriteLine($"packLevel.DispenserLevel = {packLevel.DispenserLevel}");
- Debug.WriteLine($"quantity = {130000000 - packLevel.DispenserLevel}");
- Debug.WriteLine($"packLevel.Index = {packLevel.Index}");
+ Thread.Sleep(100);
}
- jobTicket = null;
+
+ _current_job_ticket = null;
if (_cancelJob)
{
@@ -886,14 +711,14 @@ namespace Tango.Emulations.Emulators
Transporter.SendResponse<JobResponse>(new JobResponse()
{
- }, request.Container.Token, new TransportResponseConfig() { ErrorCode = ErrorCode.ContinuousResponseAborted });
+ }, request.Container.Token, false, ErrorCode.ContinuousResponseAborted);
}
else
{
Transporter.SendResponse<ResumeCurrentJobResponse>(new ResumeCurrentJobResponse()
{
- }, _current_job_resume_token, new TransportResponseConfig() { ErrorCode = ErrorCode.ContinuousResponseAborted });
+ }, _current_job_resume_token, false, ErrorCode.ContinuousResponseAborted);
}
}
else
@@ -904,10 +729,10 @@ namespace Tango.Emulations.Emulators
{
Status = new PMR.Printing.JobStatus()
{
- Progress = unit_length + job.ProcessParameters.DryerBufferLength * ProcessParametersTable.DRYER_METERS_PER_CYCLE + ProcessParametersTable.DRYER_TO_SPOOL_LENGTH_METERS,
+ Progress = length + job.ProcessParameters.DryerBufferLength * ProcessParametersTable.DRYER_METERS_PER_CYCLE,
}
- }, request.Container.Token, new TransportResponseConfig() { Completed = !_cancelJob });
+ }, request.Container.Token, !_cancelJob);
}
else
{
@@ -915,10 +740,10 @@ namespace Tango.Emulations.Emulators
{
Status = new PMR.Printing.JobStatus()
{
- Progress = unit_length + job.ProcessParameters.DryerBufferLength * ProcessParametersTable.DRYER_METERS_PER_CYCLE + ProcessParametersTable.DRYER_TO_SPOOL_LENGTH_METERS,
+ Progress = length + job.ProcessParameters.DryerBufferLength * ProcessParametersTable.DRYER_METERS_PER_CYCLE,
}
- }, _current_job_resume_token, new TransportResponseConfig() { Completed = !_cancelJob });
+ }, _current_job_resume_token, !_cancelJob);
}
}
@@ -928,16 +753,8 @@ namespace Tango.Emulations.Emulators
private void HandleAbortJobRequest(TangoMessage<AbortJobRequest> request)
{
- //if (_jobAbortCounter == 1)
- //{
_cancelJob = true;
Transporter.SendResponse<AbortJobResponse>(new AbortJobResponse(), request.Container.Token);
- // _jobAbortCounter = 0;
- //}
- //else
- //{
- // _jobAbortCounter++;
- //}
}
private void HandleMotorJoggingRequest(TangoMessage<MotorJoggingRequest> request)
@@ -1006,27 +823,9 @@ namespace Tango.Emulations.Emulators
Thread.Sleep(30);
}
- Transporter.SendResponse<MotorHomingResponse>(new MotorHomingResponse() { MaxProgress = 100, Progress = 100 }, request.Container.Token, new TransportResponseConfig() { Completed = true });
+ Transporter.SendResponse<MotorHomingResponse>(new MotorHomingResponse() { MaxProgress = 100, Progress = 100 }, request.Container.Token, true);
_motorHomingRequestCodes.Remove(homeRequest.MotorType);
ResetGraphFactors();
-
- if (request.Message.MotorType == PMR.Hardware.HardwareMotorType.MotoDhLid)
- {
- if (request.Message.Direction == MotorDirection.Backward)
- {
- var eventState1 = EventsStates.FirstOrDefault(x => x.EventType == PMR.Diagnostics.EventType.DyeingHeadArcLidIsOpen);
- var eventState2 = EventsStates.FirstOrDefault(x => x.EventType == PMR.Diagnostics.EventType.DyeingHeadCoverIsOpen);
- eventState1.IsActive = true;
- eventState2.IsActive = true;
- }
- else
- {
- var eventState1 = EventsStates.FirstOrDefault(x => x.EventType == PMR.Diagnostics.EventType.DyeingHeadArcLidIsOpen);
- var eventState2 = EventsStates.FirstOrDefault(x => x.EventType == PMR.Diagnostics.EventType.DyeingHeadCoverIsOpen);
- eventState1.IsActive = false;
- eventState2.IsActive = false;
- }
- }
});
}
@@ -1095,7 +894,7 @@ namespace Tango.Emulations.Emulators
Thread.Sleep(30);
}
- Transporter.SendResponse<DispenserHomingResponse>(new DispenserHomingResponse() { MaxProgress = 100, Progress = 100 }, request.Container.Token, new TransportResponseConfig() { Completed = true });
+ Transporter.SendResponse<DispenserHomingResponse>(new DispenserHomingResponse() { MaxProgress = 100, Progress = 100 }, request.Container.Token, true);
_dispenserHomingRequestCodes.Remove(homeRequest.Index);
ResetGraphFactors();
});
@@ -1118,7 +917,7 @@ namespace Tango.Emulations.Emulators
}
else
{
- Transporter.SendResponse<SetDigitalOutResponse>(new SetDigitalOutResponse(), request.Container.Token, new TransportResponseConfig() { ErrorCode = ErrorCode.InvalidDigitalPinNumber });
+ Transporter.SendResponse<SetDigitalOutResponse>(new SetDigitalOutResponse(), request.Container.Token, null, ErrorCode.InvalidDigitalPinNumber);
}
}
@@ -1214,16 +1013,9 @@ namespace Tango.Emulations.Emulators
Name = "Machine Emulator",
FPGA1Version = "1.1",
FPGA2Version = "2.2",
- FPGA3Version = "3.3",
- DiagnosticsInterval = (uint)DIAGNOSTICS_INTERVAL,
+ FPGA3Version = "3.3"
},
- IsAfterReset = _isAfterReset,
- }, request.Container.Token, new TransportResponseConfig() { ErrorCode = request.Message.Password == "1234" ? ErrorCode.None : ErrorCode.UnauthorizedConnection });
-
-
- _connectionTime = DateTime.Now;
-
- _isAfterReset = false;
+ }, request.Container.Token, null, request.Message.Password == "1234" ? ErrorCode.None : ErrorCode.UnauthorizedConnection);
}
}
@@ -1328,7 +1120,7 @@ namespace Tango.Emulations.Emulators
}
else
{
- Transporter.SendResponse<ResumeCurrentJobResponse>(new ResumeCurrentJobResponse(), request.Container.Token, new TransportResponseConfig() { Completed = true, ErrorCode = ErrorCode.NoJobInProgress });
+ Transporter.SendResponse<ResumeCurrentJobResponse>(new ResumeCurrentJobResponse(), request.Container.Token, true, ErrorCode.NoJobInProgress);
}
}
@@ -1342,7 +1134,7 @@ namespace Tango.Emulations.Emulators
{
Capacity = d.TotalSize,
FreeSpace = d.TotalFreeSpace,
- Root = "C:\\EmulatorStorage"
+ Root = "/"
}, request.Container.Token);
}
@@ -1394,7 +1186,7 @@ namespace Tango.Emulations.Emulators
msg = ex.Message;
}
- Transporter.SendResponse<GetFilesResponse>(response, request.Container.Token, new TransportResponseConfig() { ErrorCode = failed ? ErrorCode.GeneralError : ErrorCode.None, ErrorMessage = msg });
+ Transporter.SendResponse<GetFilesResponse>(response, request.Container.Token, false, failed ? ErrorCode.GeneralError : ErrorCode.None, msg);
}
private void HandleFileDownloadRequest(TangoMessage<FileDownloadRequest> request)
@@ -1405,7 +1197,7 @@ namespace Tango.Emulations.Emulators
{
DownloadID = Guid.NewGuid().ToString(),
MaxChunkLength = Math.Min(MAX_CHUNK_LENGTH, length),
- }, request.Container.Token, new TransportResponseConfig() { ErrorCode = File.Exists(request.Message.FileName) ? ErrorCode.None : ErrorCode.FileNotFound });
+ }, request.Container.Token, null, File.Exists(request.Message.FileName) ? ErrorCode.None : ErrorCode.FileNotFound);
}
private void HandleFileChunkDownloadRequest(TangoMessage<FileChunkDownloadRequest> request)
@@ -1430,7 +1222,7 @@ namespace Tango.Emulations.Emulators
Transporter.SendResponse<FileChunkDownloadResponse>(new FileChunkDownloadResponse()
{
- }, request.Container.Token, new TransportResponseConfig() { ErrorCode = ErrorCode.FileRequestDenied, ErrorMessage = ex.Message });
+ }, request.Container.Token, null, ErrorCode.FileRequestDenied, ex.Message);
}
}
@@ -1443,7 +1235,7 @@ namespace Tango.Emulations.Emulators
}
catch (Exception ex)
{
- Transporter.SendResponse<CreateResponse>(new CreateResponse(), request.Container.Token, new TransportResponseConfig() { ErrorCode = ErrorCode.FileRequestInvalidParameter, ErrorMessage = ex.Message });
+ Transporter.SendResponse<CreateResponse>(new CreateResponse(), request.Container.Token, null, ErrorCode.FileRequestInvalidParameter, ex.Message);
}
}
@@ -1464,7 +1256,7 @@ namespace Tango.Emulations.Emulators
}
catch (Exception ex)
{
- Transporter.SendResponse<DeleteResponse>(new DeleteResponse(), request.Container.Token, new TransportResponseConfig() { ErrorCode = ErrorCode.FileRequestInvalidParameter, ErrorMessage = ex.Message });
+ Transporter.SendResponse<DeleteResponse>(new DeleteResponse(), request.Container.Token, null, ErrorCode.FileRequestInvalidParameter, ex.Message);
}
}
@@ -1497,7 +1289,7 @@ namespace Tango.Emulations.Emulators
}
catch (Exception ex)
{
- Transporter.SendResponse<FileChunkUploadResponse>(new FileChunkUploadResponse(), request.Container.Token, new TransportResponseConfig() { ErrorCode = ErrorCode.GeneralError, ErrorMessage = ex.Message });
+ Transporter.SendResponse<FileChunkUploadResponse>(new FileChunkUploadResponse(), request.Container.Token, null, ErrorCode.GeneralError, ex.Message);
}
}
@@ -1518,7 +1310,7 @@ namespace Tango.Emulations.Emulators
}
catch (Exception ex)
{
- Transporter.SendResponse<ValidateVersionResponse>(new ValidateVersionResponse(), request.Container.Token, new TransportResponseConfig() { ErrorCode = ErrorCode.GeneralError, ErrorMessage = ex.Message });
+ Transporter.SendResponse<ValidateVersionResponse>(new ValidateVersionResponse(), request.Container.Token, null, ErrorCode.GeneralError, ex.Message);
}
});
}
@@ -1536,235 +1328,12 @@ namespace Tango.Emulations.Emulators
VersionPackageDescriptor package = VersionPackageDescriptor.Parser.ParseFrom(fs);
}
- for (int i = 0; i < 100; i++)
- {
- Transporter.SendResponse<ActivateVersionResponse>(new ActivateVersionResponse()
- {
- Progress = i + 1,
- Total = 100
- }, request.Container.Token);
-
- Thread.Sleep(10);
- }
-
- Transporter.SendResponse<ActivateVersionResponse>(new ActivateVersionResponse()
- {
- Progress = 100,
- Total = 100
- }, request.Container.Token, new TransportResponseConfig() { Completed = true });
+ Transporter.SendResponse<ActivateVersionResponse>(new ActivateVersionResponse(), request.Container.Token);
}
catch (Exception ex)
{
- Transporter.SendResponse<ActivateVersionResponse>(new ActivateVersionResponse(), request.Container.Token, new TransportResponseConfig() { ErrorCode = ErrorCode.GeneralError, ErrorMessage = ex.Message });
- }
- });
- }
-
- private void HandleStartPowerDownRequest(TangoMessage<StartPowerDownRequest> request)
- {
- _abortPowerDown = false;
-
- Task.Factory.StartNew(async () =>
- {
- MachineStatus.State = MachineState.PowerOff;
-
- for (int i = 0; i < 100; i++)
- {
- if (_abortPowerDown) return;
-
- await Task.Delay(200);
- await Transporter.SendResponse<StartPowerDownResponse>(new StartPowerDownResponse()
- {
- ProgressPercentage = i++,
- Message = $"Powering down {i}%..."
- }, request.Container.Token);
+ Transporter.SendResponse<ActivateVersionResponse>(new ActivateVersionResponse(), request.Container.Token, null, ErrorCode.GeneralError, ex.Message);
}
-
- await Task.Delay(500);
-
- await Transporter.SendResponse<StartPowerDownResponse>(new StartPowerDownResponse()
- {
- ProgressPercentage = 100,
- Message = "Machine is turned off",
- State = PowerDownState.PowerOffCompleted
- }, request.Container.Token, new TransportResponseConfig() { Completed = true });
- });
- }
-
- private async void HandleAbortPowerDownRequest(TangoMessage<AbortPowerDownRequest> request)
- {
- _abortPowerDown = true;
- await Task.Delay(1000);
- await Transporter.SendResponse<AbortPowerDownResponse>(new AbortPowerDownResponse(), request.Container.Token);
- }
-
- private async void HandleStartThreadLoadingRequest(TangoMessage<StartThreadLoadingRequest> request)
- {
- _isThreadLoadingStarted = true;
- _threadLoadingToken = request.Container.Token;
- await Transporter.SendResponse<StartThreadLoadingResponse>(new StartThreadLoadingResponse(), request.Container.Token);
- }
-
- private async void HandleTryThreadLoadingRequest(TangoMessage<TryThreadLoadingRequest> request)
- {
- await Transporter.SendResponse<TryThreadLoadingResponse>(new TryThreadLoadingResponse(), request.Container.Token);
- StartThreadLoading();
- }
-
- private async void HandleContinueThreadLoadingRequest(TangoMessage<ContinueThreadLoadingRequest> request)
- {
- if (_threadLoadingToken != null)
- {
- await Transporter.SendResponse<ContinueThreadLoadingResponse>(new ContinueThreadLoadingResponse(), request.Container.Token);
-
- await Task.Delay(1000);
- await Transporter.SendResponse<StartThreadLoadingResponse>(new StartThreadLoadingResponse() { State = ThreadLoadingState.Finalizing }, _threadLoadingToken);
- await Task.Delay(8000);
-
- //if (_rnd.Next(0, 100) > 50)
- //{
- await Transporter.SendResponse<StartThreadLoadingResponse>(new StartThreadLoadingResponse() { State = ThreadLoadingState.Completed }, _threadLoadingToken);
- //}
- //else
- //{
- // await Transporter.SendResponse<StartThreadLoadingResponse>(new StartThreadLoadingResponse() { State = ThreadLoadingState.FinalizationError, ErrorReason = "Emulator random error." }, _threadLoadingToken);
- //}
- }
- else
- {
- await Transporter.SendResponse<ContinueThreadLoadingResponse>(new ContinueThreadLoadingResponse(), request.Container.Token, new TransportResponseConfig() { ErrorCode = ErrorCode.GeneralError, ErrorMessage = "StartThreadLoadingRequest was never sent." });
- }
- }
-
- private async void HandleStartHeadCleaningRequest(TangoMessage<StartHeadCleaningRequest> request)
- {
- _abortHeadCleaning = false;
-
- for (int i = 0; i < 100; i++)
- {
- if (_abortHeadCleaning)
- {
- await Transporter.SendResponse<StartHeadCleaningResponse>(new StartHeadCleaningResponse()
- {
-
- }, request.Container.Token, new TransportResponseConfig()
- {
- Completed = true,
- ErrorCode = ErrorCode.ContinuousResponseAborted
- });
-
- return;
- }
-
- await Task.Delay(200);
- await Transporter.SendResponse<StartHeadCleaningResponse>(new StartHeadCleaningResponse()
- {
- Progress = i++,
- Total = 100,
- Status = $"Performing head cleaning..."
- }, request.Container.Token);
- }
-
- await Task.Delay(500);
-
- await Transporter.SendResponse<StartHeadCleaningResponse>(new StartHeadCleaningResponse()
- {
- Progress = 100,
- Total = 100,
- Status = "Completed",
- }, request.Container.Token, new TransportResponseConfig() { Completed = true });
- }
-
- private async void HandleAbortHeadCleaningRequest(TangoMessage<AbortHeadCleaningRequest> request)
- {
- if (_rnd.Next(0, 100) > 60)
- {
- _abortHeadCleaning = true;
- await Task.Delay(1000);
- await Transporter.SendResponse<AbortHeadCleaningResponse>(new AbortHeadCleaningResponse(), request.Container.Token);
- }
- }
-
- private async void HandleStartPowerUpRequest(TangoMessage<StartPowerUpRequest> request)
- {
- await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Power up started...", ProgressPercentage = 10, State = PowerUpState.BuiltInTest }, request.Container.Token);
- Thread.Sleep(1000);
-
- await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Testing dispensers...", ProgressPercentage = 20, State = PowerUpState.DispenserPressureBuildupTest }, request.Container.Token);
- Thread.Sleep(1000);
-
- await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Heating started...", ProgressPercentage = 30, State = PowerUpState.HeatingStarted }, request.Container.Token);
- Thread.Sleep(1000);
-
- await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Heating started...", ProgressPercentage = 40, State = PowerUpState.HwConfig }, request.Container.Token);
- Thread.Sleep(1000);
-
- await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Hardware configuration...", ProgressPercentage = 50, State = PowerUpState.HwConfig }, request.Container.Token);
- Thread.Sleep(1000);
-
- await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Initializing blower...", ProgressPercentage = 60, State = PowerUpState.InitialBlowerActivation }, request.Container.Token);
- Thread.Sleep(1000);
-
- await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Thread detection...", ProgressPercentage = 70, State = PowerUpState.ThreadDetection }, request.Container.Token);
- Thread.Sleep(1000);
-
- await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Waiting for cooler...", ProgressPercentage = 80, State = PowerUpState.WaitForCooler }, request.Container.Token);
- Thread.Sleep(4000);
-
- await Transporter.SendResponse(new StartPowerUpResponse() { Message = "Ready to dye...", ProgressPercentage = 90, State = PowerUpState.MachineReadyToDye }, request.Container.Token, new TransportResponseConfig()
- {
- Completed = true
- });
- }
-
- private void HandleStartInkFillingStatusRequest(TangoMessage<StartInkFillingStatusRequest> request)
- {
- Task.Factory.StartNew(() =>
- {
- while (IsStarted)
- {
- if (!_emulateCorruption)
- {
- Transporter.SendResponse(new StartInkFillingStatusResponse()
- {
- Status = InkFillingStatus
- }, request.Container.Token);
- }
-
- Thread.Sleep(2000);
- }
- });
- }
-
- private async void HandleStandByRequest(TangoMessage<StandByRequest> request)
- {
- await Task.Delay(1500);
- MachineStatus.State = MachineState.Sleep;
- await Transporter.SendResponse(new StandByResponse(), request.Container.Token);
- }
-
- private async void HandleAttemptThreadJoggingRequest(TangoMessage<AttemptThreadJoggingRequest> request)
- {
- await Task.Delay(3000);
-
- if (_rnd.Next(0, 100) > 50)
- {
- await Transporter.SendResponse(new AttemptThreadJoggingResponse(), request.Container.Token);
- }
- else
- {
- await Transporter.SendResponse(new AttemptThreadJoggingResponse(), request.Container.Token, new TransportResponseConfig() { ErrorCode = ErrorCode.GeneralError });
- }
- }
-
- private async void HandleDataStoreItemModifiedRequest(TangoMessage<DataStoreItemModifiedRequest> request)
- {
- await Transporter.SendResponse<DataStoreItemModifiedResponse>(new DataStoreItemModifiedResponse(), request.Container.Token);
-
- GetDataStoreItem(new GetDataStoreItemRequest()
- {
- Collection = request.Message.Collection,
- Key = request.Message.Key
});
}
@@ -1778,419 +1347,11 @@ namespace Tango.Emulations.Emulators
{
Action = CartridgeAction.Inserted,
- }, new TransportRequestConfig() { Timeout = TimeSpan.FromSeconds(10) });
+ }, TimeSpan.FromSeconds(10));
return response.Message.Index;
}
- public async void StartThreadLoading()
- {
- await Transporter.SendResponse<StartThreadLoadingResponse>(new StartThreadLoadingResponse() { State = ThreadLoadingState.Preparing }, _threadLoadingToken);
- await Task.Delay(8000);
-
- if (_rnd.Next(0, 100) > 50)
- {
- await Transporter.SendResponse<StartThreadLoadingResponse>(new StartThreadLoadingResponse() { State = ThreadLoadingState.PreparationError, ErrorReason = "Emulator preparation random error." }, _threadLoadingToken);
- }
- else
- {
- await Transporter.SendResponse<StartThreadLoadingResponse>(new StartThreadLoadingResponse() { State = ThreadLoadingState.ReadyForLoading }, _threadLoadingToken);
- }
- }
-
- public async void FinalizeThreadLoading()
- {
- await Transporter.SendResponse<StartThreadLoadingResponse>(new StartThreadLoadingResponse() { State = ThreadLoadingState.Finalizing }, _threadLoadingToken);
- await Task.Delay(3000);
-
- if (_rnd.Next(0, 100) > 50)
- {
- await Transporter.SendResponse<StartThreadLoadingResponse>(new StartThreadLoadingResponse() { State = ThreadLoadingState.Completed }, _threadLoadingToken);
- }
- else
- {
- await Transporter.SendResponse<StartThreadLoadingResponse>(new StartThreadLoadingResponse() { State = ThreadLoadingState.FinalizationError, ErrorReason = "Emulator finalization random error." }, _threadLoadingToken);
- }
- }
-
- public void AbortJob()
- {
- _cancelJob = true;
- }
-
- public async void SetThreadLoadingState(ThreadLoadingState state)
- {
- await Transporter.SendResponse<StartThreadLoadingResponse>(new StartThreadLoadingResponse() { State = state, Message = $"{state.ToString()}", ErrorReason = "Fake emulator error" }, _threadLoadingToken);
- }
-
- public async void PerformDataStoreTest()
- {
- LogManager.Log("Starting data store test...");
-
- {
- try
- {
- LogManager.Log("Testing Int32...");
-
- var response = await Transporter.SendRequest<PutDataStoreItemRequest, PutDataStoreItemResponse>(new PutDataStoreItemRequest()
- {
- Collection = "TEST",
- Key = "int",
- Item = new PMR.DataStore.DataStoreItem()
- {
- DataType = DataType.Int32,
- Int32Value = 100
- }
- });
-
- if (response.Container.Error != ErrorCode.None)
- {
- LogManager.Log("Put Failed.");
- LogManager.Log(response.ToJsonString());
- }
- else
- {
- var res = await Transporter.SendRequest<GetDataStoreItemRequest, GetDataStoreItemResponse>(new GetDataStoreItemRequest()
- {
- Collection = "TEST",
- Key = "int"
- });
-
- LogManager.Log(res.Container.Error != ErrorCode.None ? "Get Failed." : "Passed.");
-
- LogManager.Log(res.ToJsonString());
- }
- }
- catch (Exception ex)
- {
- LogManager.Log(ex, "Failed.");
- }
- }
-
- {
- try
- {
- LogManager.Log("Testing float...");
-
- var response = await Transporter.SendRequest<PutDataStoreItemRequest, PutDataStoreItemResponse>(new PutDataStoreItemRequest()
- {
- Collection = "TEST",
- Key = "float",
- Item = new PMR.DataStore.DataStoreItem()
- {
- DataType = DataType.Float,
- FloatValue = 101f
- }
- });
-
- if (response.Container.Error != ErrorCode.None)
- {
- LogManager.Log("Put Failed.");
- LogManager.Log(response.ToJsonString());
- }
- else
- {
- var res = await Transporter.SendRequest<GetDataStoreItemRequest, GetDataStoreItemResponse>(new GetDataStoreItemRequest()
- {
- Collection = "TEST",
- Key = "float"
- });
-
- LogManager.Log(res.Container.Error != ErrorCode.None ? "Get Failed." : "Passed.");
-
- LogManager.Log(res.ToJsonString());
- }
- }
- catch (Exception ex)
- {
- LogManager.Log(ex, "Failed.");
- }
- }
-
- {
- try
- {
- LogManager.Log("Testing double...");
-
- var response = await Transporter.SendRequest<PutDataStoreItemRequest, PutDataStoreItemResponse>(new PutDataStoreItemRequest()
- {
- Collection = "TEST",
- Key = "double",
- Item = new PMR.DataStore.DataStoreItem()
- {
- DataType = DataType.Double,
- DoubleValue = 102d
- }
- });
-
- if (response.Container.Error != ErrorCode.None)
- {
- LogManager.Log("Put Failed.");
- LogManager.Log(response.ToJsonString());
- }
- else
- {
- var res = await Transporter.SendRequest<GetDataStoreItemRequest, GetDataStoreItemResponse>(new GetDataStoreItemRequest()
- {
- Collection = "TEST",
- Key = "double"
- });
-
- LogManager.Log(res.Container.Error != ErrorCode.None ? "Get Failed." : "Passed.");
-
- LogManager.Log(res.ToJsonString());
- }
- }
- catch (Exception ex)
- {
- LogManager.Log(ex, "Failed.");
- }
- }
-
- {
- try
- {
- LogManager.Log("Testing boolean...");
-
- var response = await Transporter.SendRequest<PutDataStoreItemRequest, PutDataStoreItemResponse>(new PutDataStoreItemRequest()
- {
- Collection = "TEST",
- Key = "bool",
- Item = new PMR.DataStore.DataStoreItem()
- {
- DataType = DataType.Boolean,
- BooleanValue = true
- }
- });
-
- if (response.Container.Error != ErrorCode.None)
- {
- LogManager.Log("Put Failed.");
- LogManager.Log(response.ToJsonString());
- }
- else
- {
- var res = await Transporter.SendRequest<GetDataStoreItemRequest, GetDataStoreItemResponse>(new GetDataStoreItemRequest()
- {
- Collection = "TEST",
- Key = "bool"
- });
-
- LogManager.Log(res.Container.Error != ErrorCode.None ? "Get Failed." : "Passed.");
-
- LogManager.Log(res.ToJsonString());
- }
- }
- catch (Exception ex)
- {
- LogManager.Log(ex, "Failed.");
- }
- }
-
- {
- try
- {
- LogManager.Log("Testing string...");
-
- var response = await Transporter.SendRequest<PutDataStoreItemRequest, PutDataStoreItemResponse>(new PutDataStoreItemRequest()
- {
- Collection = "TEST",
- Key = "string",
- Item = new PMR.DataStore.DataStoreItem()
- {
- DataType = DataType.String,
- StringValue = "String Value"
- }
- });
-
- if (response.Container.Error != ErrorCode.None)
- {
- LogManager.Log("Put Failed.");
- LogManager.Log(response.ToJsonString());
- }
- else
- {
- var res = await Transporter.SendRequest<GetDataStoreItemRequest, GetDataStoreItemResponse>(new GetDataStoreItemRequest()
- {
- Collection = "TEST",
- Key = "string"
- });
-
- LogManager.Log(res.Container.Error != ErrorCode.None ? "Get Failed." : "Passed.");
-
- LogManager.Log(res.ToJsonString());
- }
- }
- catch (Exception ex)
- {
- LogManager.Log(ex, "Failed.");
- }
- }
-
- {
- try
- {
- LogManager.Log("Testing bytes...");
-
- var response = await Transporter.SendRequest<PutDataStoreItemRequest, PutDataStoreItemResponse>(new PutDataStoreItemRequest()
- {
- Collection = "TEST",
- Key = "bytes",
- Item = new PMR.DataStore.DataStoreItem()
- {
- DataType = DataType.Bytes,
- BytesValue = ByteString.CopyFromUtf8("Bytes TEST TEST TEST"),
- }
- });
-
- if (response.Container.Error != ErrorCode.None)
- {
- LogManager.Log("Put Failed.");
- LogManager.Log(response.ToJsonString());
- }
- else
- {
- var res = await Transporter.SendRequest<GetDataStoreItemRequest, GetDataStoreItemResponse>(new GetDataStoreItemRequest()
- {
- Collection = "TEST",
- Key = "bytes"
- });
-
- LogManager.Log(res.Container.Error != ErrorCode.None ? "Get Failed." : "Passed.");
-
- LogManager.Log(res.Message.Item.BytesValue.ToStringUtf8());
- LogManager.Log(res.ToJsonString());
- }
- }
- catch (Exception ex)
- {
- LogManager.Log(ex, "Failed.");
- }
- }
-
- {
- try
- {
- LogManager.Log("Testing proto...");
-
- var response = await Transporter.SendRequest<PutDataStoreItemRequest, PutDataStoreItemResponse>(new PutDataStoreItemRequest()
- {
- Collection = "TEST",
- Key = "proto",
- Item = new PMR.DataStore.DataStoreItem()
- {
- DataType = DataType.Proto,
- BytesValue = new CalculateRequest() { A = 10, B = 15 }.ToByteString(),
- ProtoType = MessageType.CalculateRequest,
- }
- });
-
- if (response.Container.Error != ErrorCode.None)
- {
- LogManager.Log("Put Failed.");
- LogManager.Log(response.ToJsonString());
- }
- else
- {
- var res = await Transporter.SendRequest<GetDataStoreItemRequest, GetDataStoreItemResponse>(new GetDataStoreItemRequest()
- {
- Collection = "TEST",
- Key = "proto"
- });
-
- LogManager.Log(res.Container.Error != ErrorCode.None ? "Get Failed." : "Passed.");
-
- LogManager.Log(CalculateRequest.Parser.ParseFrom(res.Message.Item.BytesValue).ToJsonString());
- LogManager.Log(res.ToJsonString());
- }
- }
- catch (Exception ex)
- {
- LogManager.Log(ex, "Failed.");
- }
- }
-
- {
- try
- {
- LogManager.Log("Testing int default...");
-
- var res = await Transporter.SendRequest<GetDataStoreItemRequest, GetDataStoreItemResponse>(new GetDataStoreItemRequest()
- {
- Collection = "TEST",
- Key = "intDefault",
- DefaultItem = new PMR.DataStore.DataStoreItem()
- {
- DataType = DataType.Int32,
- Int32Value = 10,
- },
- });
-
- LogManager.Log(res.Container.Error != ErrorCode.None ? "Get Failed." : "Passed.");
- LogManager.Log(res.ToJsonString());
- }
- catch (Exception ex)
- {
- LogManager.Log(ex, "Failed.");
- }
- }
-
- {
- try
- {
- LogManager.Log("Testing proto default...");
-
- var res = await Transporter.SendRequest<GetDataStoreItemRequest, GetDataStoreItemResponse>(new GetDataStoreItemRequest()
- {
- Collection = "TEST",
- Key = "protoDefault",
- DefaultItem = new PMR.DataStore.DataStoreItem()
- {
- DataType = DataType.Proto,
- BytesValue = (new CalculateRequest() { A = 10, B = 15 }).ToByteString(),
- ProtoType = MessageType.CalculateRequest,
- },
- });
-
- LogManager.Log(res.Container.Error != ErrorCode.None ? "Get Failed." : "Passed.");
-
- LogManager.Log(CalculateRequest.Parser.ParseFrom(res.Message.Item.BytesValue).ToJsonString());
- LogManager.Log(res.ToJsonString());
- }
- catch (Exception ex)
- {
- LogManager.Log(ex, "Failed.");
- }
- }
- }
-
- public async void PutDataStoreItem(PutDataStoreItemRequest request)
- {
- LogManager.Log($"Sending PutDataStoreItemRequest:\n{request.ToJsonString()}");
- try
- {
- var response = await Transporter.SendRequest<PutDataStoreItemRequest, PutDataStoreItemResponse>(request);
- }
- catch (Exception ex)
- {
- LogManager.Log(ex, "Error putting data store item.");
- }
- }
-
- public async void GetDataStoreItem(GetDataStoreItemRequest request)
- {
- LogManager.Log($"Sending GetDataStoreItemRequest:\n{request.ToJsonString()}");
- try
- {
- var response = await Transporter.SendRequest<GetDataStoreItemRequest, GetDataStoreItemResponse>(request);
- LogManager.Log($"Received GetDataStoreItemResponse:\n{response.Message.ToJsonString()}");
- }
- catch (Exception ex)
- {
- LogManager.Log(ex, "Error getting data store item.");
- }
- }
-
#endregion
}
}
diff --git a/Software/Visual_Studio/Tango.Emulations/Emulators/MobileEmulator.cs b/Software/Visual_Studio/Tango.Emulations/Emulators/MobileEmulator.cs
index 086d256f2..5e645928f 100644
--- a/Software/Visual_Studio/Tango.Emulations/Emulators/MobileEmulator.cs
+++ b/Software/Visual_Studio/Tango.Emulations/Emulators/MobileEmulator.cs
@@ -41,10 +41,8 @@ namespace Tango.Emulations.Emulators
/// </summary>
/// <param name="sender">The sender.</param>
/// <param name="container">The container.</param>
- protected override void OnTransporterRequestReceived(object sender, RequestReceivedEventArgs e)
+ protected override void OnTransporterRequestReceived(object sender, MessageContainer container)
{
- var container = e.Container;
-
switch (container.Type)
{
case MessageType.CalculateRequest: