diff --git a/VectoCommon/VectoCommon/Models/GearshiftPosition.cs b/VectoCommon/VectoCommon/Models/GearshiftPosition.cs index 9de4158daee87d124079d27dab7993c029473904..f5ffb0f4c18dcd881319fb6a26293f1729972866 100644 --- a/VectoCommon/VectoCommon/Models/GearshiftPosition.cs +++ b/VectoCommon/VectoCommon/Models/GearshiftPosition.cs @@ -74,7 +74,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl public GearList(GearshiftPosition[] gearList) => Entries = gearList; - public bool HasPredecessor(GearshiftPosition cur) => cur.Gear != 0 && cur != Entries[0]; + public bool HasPredecessor(GearshiftPosition cur) => cur.Gear != 0 && !Entries[0].Equals(cur); public GearshiftPosition Predecessor(GearshiftPosition cur) { @@ -82,7 +82,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return idx <= 0 ? null : Entries[idx - 1]; } - public bool HasSuccessor(GearshiftPosition cur) => cur.Gear != 0 && cur != Entries[Entries.Length-1]; + public bool HasSuccessor(GearshiftPosition cur) => cur.Gear != 0 && !Entries[Entries.Length-1].Equals(cur); public GearshiftPosition Successor(GearshiftPosition cur) { diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/Gearbox/ShiftPolygon.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/Gearbox/ShiftPolygon.cs index 43ae727730cedf6c25f9be1061fb0e793b6da637..d9f07a552825f27e88fcd5c7f670083650b352c0 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Data/Gearbox/ShiftPolygon.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/Gearbox/ShiftPolygon.cs @@ -71,6 +71,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox public bool IsBelowDownshiftCurve(NewtonMeter inTorque, PerSecond inAngularVelocity) { + if (!Downshift.Any()) { + return false;} var section = Downshift.GetSection(entry => entry.AngularSpeed < inAngularVelocity); if (section.Item2.AngularSpeed < inAngularVelocity) { return false; @@ -99,6 +101,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox public bool IsAboveUpshiftCurve(NewtonMeter inTorque, PerSecond inAngularVelocity) { + if (!Upshift.Any()) { + return false; + } var section = Upshift.GetSection(entry => entry.AngularSpeed < inAngularVelocity); if (section.Item2.AngularSpeed < inAngularVelocity) {