Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit 70608994 authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

allow HVAC System Configuration 10, add sanity checks to provide driver/passenger AC tech

parent 7c3cc98b
No related branches found
No related tags found
No related merge requests found
using System.Text.RegularExpressions; using System;
using System.Text.RegularExpressions;
using TUGraz.VectoCommon.Utils; using TUGraz.VectoCommon.Utils;
namespace TUGraz.VectoCommon.BusAuxiliaries { namespace TUGraz.VectoCommon.BusAuxiliaries {
...@@ -14,6 +15,7 @@ namespace TUGraz.VectoCommon.BusAuxiliaries { ...@@ -14,6 +15,7 @@ namespace TUGraz.VectoCommon.BusAuxiliaries {
Configuration7, Configuration7,
Configuration8, Configuration8,
Configuration9, Configuration9,
Configuration10,
} }
public static class BusHVACSystemConfigurationHelper public static class BusHVACSystemConfigurationHelper
...@@ -52,5 +54,28 @@ namespace TUGraz.VectoCommon.BusAuxiliaries { ...@@ -52,5 +54,28 @@ namespace TUGraz.VectoCommon.BusAuxiliaries {
return GetName(hvacConfiguration); return GetName(hvacConfiguration);
} }
public static bool RequiresDriverAC(this BusHVACSystemConfiguration hvacConfig)
{
switch (hvacConfig) {
case BusHVACSystemConfiguration.Configuration2:
case BusHVACSystemConfiguration.Configuration4:
case BusHVACSystemConfiguration.Configuration7:
case BusHVACSystemConfiguration.Configuration9:
return true;
}
return false;
}
public static bool RequiresPassengerAC(this BusHVACSystemConfiguration hvacConfig)
{
switch (hvacConfig) {
case BusHVACSystemConfiguration.Configuration1:
case BusHVACSystemConfiguration.Configuration2:
return false;
}
return true;
}
} }
} }
\ No newline at end of file
...@@ -181,6 +181,15 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter ...@@ -181,6 +181,15 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
{ {
var isDoubleDecker = completedVehicle.VehicleCode.IsDoubleDeckerBus(); var isDoubleDecker = completedVehicle.VehicleCode.IsDoubleDeckerBus();
var hvacConfiguration = completedVehicle.Components.BusAuxiliaries.HVACAux.SystemConfiguration; var hvacConfiguration = completedVehicle.Components.BusAuxiliaries.HVACAux.SystemConfiguration;
var busAux = completedVehicle.Components.BusAuxiliaries.HVACAux;
if (hvacConfiguration.RequiresDriverAC() && (busAux.CompressorTypeDriver == ACCompressorType.None || busAux.CompressorTypeDriver == ACCompressorType.Unknown)) {
throw new VectoException("HVAC System Configuration {0} requires DriverAC Technology", hvacConfiguration);
}
if (hvacConfiguration.RequiresPassengerAC() && (busAux.CompressorTypePassenger == ACCompressorType.None || busAux.CompressorTypePassenger == ACCompressorType.Unknown)) {
throw new VectoException("HVAC System Configuration {0} requires PassengerAC Technology", hvacConfiguration);
}
var internalLength = hvacConfiguration == BusHVACSystemConfiguration.Configuration2 var internalLength = hvacConfiguration == BusHVACSystemConfiguration.Configuration2
? 2 * Constants.BusParameters.DriverCompartmentLength // OK ? 2 * Constants.BusParameters.DriverCompartmentLength // OK
...@@ -196,7 +205,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter ...@@ -196,7 +205,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
var coolingPower = CalculateMaxCoolingPower(completedVehicle, primaryVehicle, mission); var coolingPower = CalculateMaxCoolingPower(completedVehicle, primaryVehicle, mission);
var busAux = completedVehicle.Components.BusAuxiliaries.HVACAux;
var floorType = completedVehicle.VehicleCode.GetFloorType(); var floorType = completedVehicle.VehicleCode.GetFloorType();
var ssmInputs =GetDefaulSSMInputs(FuelData.Diesel); var ssmInputs =GetDefaulSSMInputs(FuelData.Diesel);
......
...@@ -256,6 +256,7 @@ namespace TUGraz.VectoCore.Models.Declaration ...@@ -256,6 +256,7 @@ namespace TUGraz.VectoCore.Models.Declaration
case BusHVACSystemConfiguration.Configuration7: case BusHVACSystemConfiguration.Configuration7:
case BusHVACSystemConfiguration.Configuration8: case BusHVACSystemConfiguration.Configuration8:
case BusHVACSystemConfiguration.Configuration9: case BusHVACSystemConfiguration.Configuration9:
case BusHVACSystemConfiguration.Configuration10:
return heating return heating
? Constants.BusAuxiliaries.SteadyStateModel.HighVentilationHeating ? Constants.BusAuxiliaries.SteadyStateModel.HighVentilationHeating
: Constants.BusAuxiliaries.SteadyStateModel.HighVentilation; : Constants.BusAuxiliaries.SteadyStateModel.HighVentilation;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment