From e66ec07addfcd78ab7e7e75f4ec844540e9f75d3 Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Fri, 22 May 2020 11:22:03 +0200 Subject: [PATCH] primary bus: set tpmlm to the max allowed value (40t) completed bus: throw exception if the tmplm is too low for the number of reg passengers --- .../DeclarationDataAdapterCompletedBusGeneric.cs | 15 ++++++++++++++- .../DeclarationDataAdapterCompletedBusSpecific.cs | 4 +++- .../DeclarationDataAdapterPrimaryBus.cs | 5 +++-- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusGeneric.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusGeneric.cs index ccdf65ecf5..20a775f5b4 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusGeneric.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusGeneric.cs @@ -33,7 +33,20 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter public const double GearEfficiencyIndirectGear = 0.96; - + #region Overrides of DeclarationDataAdapterPrimaryBus + + public override VehicleData CreateVehicleData( + IVehicleDeclarationInputData data, Segment segment, Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading) + { + var retVal = base.CreateVehicleData(data, segment, mission, loading); + retVal.GrossVehicleMass = data.GrossVehicleMassRating; + if (retVal.TotalVehicleMass.IsGreater(retVal.GrossVehicleMass)) { + throw new VectoException("Total Vehicle Mass exceeds Gross Vehicle Mass for completed bus generic ({0}/{1})", retVal.TotalVehicleMass, retVal.GrossVehicleMass); + } + return retVal; + } + + #endregion // The model parameters for the completed bus with generic power train and generic body is basically the same as the primary bus // only powertrain components are different diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs index 38c89f5b2f..943730cdc5 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs @@ -47,7 +47,9 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter vehicleData.RegisteredClass = completedVehicle.RegisteredClass; vehicleData.VehicleCode = completedVehicle.VehicleCode; - + if (vehicleData.TotalVehicleMass.IsGreater(vehicleData.GrossVehicleMass)) { + throw new VectoException("Total Vehicle Mass exceeds Gross Vehicle Mass for completed bus specific ({0}/{1})", vehicleData.TotalVehicleMass, vehicleData.GrossVehicleMass); + } return vehicleData; } diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs index bba6f4bb14..616965942b 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterPrimaryBus.cs @@ -35,6 +35,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter { var retVal = base.CreateVehicleData(data, segment, mission, loading); retVal.CurbMass = mission.CurbMass; + retVal.GrossVehicleMass = 40000.SI<Kilogram>(); return retVal; } @@ -297,8 +298,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter var busParams = mission.BusParameter; var hvacBusLength = busParams.HVACConfiguration == BusHVACSystemConfiguration.Configuration2 - ? 2 * Constants.BusParameters.DriverCompartmentLength - : busParams.VehicleLength; + ? 2 * Constants.BusParameters.DriverCompartmentLength // OK + : busParams.VehicleLength; // missing: correction length for low floor buses var hvacBusheight = DeclarationData.BusAuxiliaries.CalculateInternalHeight(mission.BusParameter.VehicleCode, busParams.BodyHeight); var coolingPower = CalculateMaxCoolingPower(null, mission); -- GitLab