diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/AMTShiftStrategyV2.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/AMTShiftStrategyV2.cs index ca9f35bce0d2b36f83204c5940b73bd14e25a5ae..1cb3ca26a78c7d1aa2b39f229874ef5dd6efc64c 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/AMTShiftStrategyV2.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/AMTShiftStrategyV2.cs @@ -576,7 +576,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl string.Format("Gear{0}-Rating", gear), GearRatings.ContainsKey(gear) ? GearRatings[gear].NumericValue - : new GearRating(GearRatingCase.E, 0, null).NumericValue); + : new GearRating(GearRatingCase.Z, 0, null).NumericValue); } container.SetDataValue("acc_rsv", accRsv?.Value() ?? 0); diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/GearRating.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/GearRating.cs index 25a8bfe40e23b860daa9629f5565da8c707a34ca..f121a03358f8760addd970df590c97d917fe624b 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/GearRating.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/GearRating.cs @@ -8,12 +8,15 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl { B, // inside engine speed limits, torque demand too high C, // valid gear, gear residience time below threshold D, // inside engine speed limits, outside preferred speed range - E // outside engine speed limits + E, // outside engine speed limits + Z = 10 // no rating calculated } internal struct GearRating { + private const double CaseSeparationInterval = 1e6; + public GearRating(GearRatingCase ratingCase, double rating, PerSecond maxEngineSpeed) { RatingCase = ratingCase; @@ -24,11 +27,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl { public double Rating { get; } public GearRatingCase RatingCase { get; } - public PerSecond MaxEngineSpeed { get; set; } + public PerSecond MaxEngineSpeed { get; } public double NumericValue { - get { return ((int)RatingCase - 1) * 1e3 + (Rating * 100).LimitTo(0, 1e3-10); } + get { return ((int)RatingCase - 1) * CaseSeparationInterval + (Rating * 100).LimitTo(0, CaseSeparationInterval-10); } } public static bool operator <(GearRating first, GearRating second)