diff --git a/VectoCore/Models/Connector/Ports/IResponse.cs b/VectoCore/Models/Connector/Ports/IResponse.cs index 0faf538ddcc9e5a5641ad45a50fdce66d860abff..7cf8de2e0331861e65bb88199f0e8955a6ea80b5 100644 --- a/VectoCore/Models/Connector/Ports/IResponse.cs +++ b/VectoCore/Models/Connector/Ports/IResponse.cs @@ -3,11 +3,23 @@ using System.Security.Cryptography.X509Certificates; namespace TUGraz.VectoCore.Models.Connector.Ports { + public enum ResponseType + { + Success, + CycleFinished, + FailOverload, + FailTimeInterval, + DrivingCycleDistanceExceeded, + } + + /// <summary> /// Defines an interface for a Response. /// </summary> public interface IResponse { TimeSpan SimulationInterval { get; set; } + + ResponseType ResponseType { get; } } } \ No newline at end of file diff --git a/VectoCore/Models/Connector/Ports/Impl/Response.cs b/VectoCore/Models/Connector/Ports/Impl/Response.cs index a95af729576062be7e1f61f5b8262edd4e356fcf..191fc3b711dbcf6c4b768194549636966a6f9d62 100644 --- a/VectoCore/Models/Connector/Ports/Impl/Response.cs +++ b/VectoCore/Models/Connector/Ports/Impl/Response.cs @@ -6,17 +6,31 @@ namespace TUGraz.VectoCore.Models.Connector.Ports.Impl public abstract class AbstractResponse : IResponse { public TimeSpan SimulationInterval { get; set; } + + public abstract ResponseType ResponseType { get; } } /// <summary> /// Response when the Cycle is finished. /// </summary> - public class ResponseCycleFinished : AbstractResponse {} + public class ResponseCycleFinished : AbstractResponse + { + public override ResponseType ResponseType + { + get { return ResponseType.CycleFinished; } + } + } /// <summary> /// Response when a request was successful. /// </summary> - public class ResponseSuccess : AbstractResponse {} + public class ResponseSuccess : AbstractResponse + { + public override ResponseType ResponseType + { + get { return ResponseType.Success; } + } + } /// <summary> /// Response when the request resulted in an engine overload. @@ -25,6 +39,11 @@ namespace TUGraz.VectoCore.Models.Connector.Ports.Impl { public double Delta { get; set; } public double Gradient { get; set; } + + public override ResponseType ResponseType + { + get { return ResponseType.FailOverload; } + } } /// <summary> @@ -33,10 +52,20 @@ namespace TUGraz.VectoCore.Models.Connector.Ports.Impl public class ResponseFailTimeInterval : AbstractResponse { public TimeSpan DeltaT { get; set; } + + public override ResponseType ResponseType + { + get { return ResponseType.FailTimeInterval; } + } } public class ResponseDrivingCycleDistanceExceeded : AbstractResponse { public Meter MaxDistance { get; set; } + + public override ResponseType ResponseType + { + get { return ResponseType.DrivingCycleDistanceExceeded; } + } } } \ No newline at end of file