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;
namespace TUGraz.VectoCommon.BusAuxiliaries {
......@@ -14,6 +15,7 @@ namespace TUGraz.VectoCommon.BusAuxiliaries {
Configuration7,
Configuration8,
Configuration9,
Configuration10,
}
public static class BusHVACSystemConfigurationHelper
......@@ -52,5 +54,28 @@ namespace TUGraz.VectoCommon.BusAuxiliaries {
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
{
var isDoubleDecker = completedVehicle.VehicleCode.IsDoubleDeckerBus();
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
? 2 * Constants.BusParameters.DriverCompartmentLength // OK
......@@ -196,7 +205,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
var coolingPower = CalculateMaxCoolingPower(completedVehicle, primaryVehicle, mission);
var busAux = completedVehicle.Components.BusAuxiliaries.HVACAux;
var floorType = completedVehicle.VehicleCode.GetFloorType();
var ssmInputs =GetDefaulSSMInputs(FuelData.Diesel);
......
......@@ -256,6 +256,7 @@ namespace TUGraz.VectoCore.Models.Declaration
case BusHVACSystemConfiguration.Configuration7:
case BusHVACSystemConfiguration.Configuration8:
case BusHVACSystemConfiguration.Configuration9:
case BusHVACSystemConfiguration.Configuration10:
return heating
? Constants.BusAuxiliaries.SteadyStateModel.HighVentilationHeating
: 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