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

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

refactoring rundata creation for completed exempted bus

parent dc4d1af7
No related branches found
No related tags found
No related merge requests found
Showing with 101 additions and 71 deletions
......@@ -148,7 +148,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.CompletedBus.Gener
public IAuxiliaryConfig CreateBusAuxiliariesData(Mission mission, IVehicleDeclarationInputData primaryVehicle, IVehicleDeclarationInputData completedVehicle,
VectoRunData runData)
{
return AuxDataAdapter.CreateBusAuxiliariesData(mission, primaryVehicle, completedVehicle, runData);
return AuxDataAdapter.CreateBusAuxiliariesData(mission, primaryVehicle, null, runData);
}
#endregion
}
......@@ -297,8 +297,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.CompletedBus.Gener
public override VehicleData CreateVehicleData(IVehicleDeclarationInputData vehicle, Segment segment, Mission mission,
KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, bool allowVocational)
{
return _vehicleDataAdapter.CreateExemptedVehicleData(vehicle);
}
throw new NotImplementedException();
}
public override void CreateREESSData(IElectricStorageSystemDeclarationInputData componentsElectricStorage,
VectoSimulationJobType jobType, bool ovc, Action<BatterySystemData> setBatteryData, Action<SuperCapData> setSuperCapData)
......
......@@ -64,31 +64,50 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.CompletedBus.Speci
}
public class Conventional : CompletedBusDeclarationBase
{
#region Overrides of CompletedBusDeclarationBase
public class Conventional : CompletedBusDeclarationBase { }
protected override ICompletedBusAuxiliaryDataAdapter AuxDataAdapter { get; }
public abstract class Hybrid : CompletedBusDeclarationBase { }
#endregion
}
public class HEV_S2 : CompletedBusDeclarationBase { }
public class HEV_S3 : CompletedBusDeclarationBase { }
public class HEV_S4 : CompletedBusDeclarationBase { }
public class HEV_S_IEPC : CompletedBusDeclarationBase { }
public class HEV_P1 : CompletedBusDeclarationBase { }
public class HEV_P2 : CompletedBusDeclarationBase { }
public class HEV_P2_5 : CompletedBusDeclarationBase { }
public class HEV_P3 : CompletedBusDeclarationBase { }
public class HEV_P4 : CompletedBusDeclarationBase { }
public abstract class PEV_Base : CompletedBusDeclarationBase
public abstract class SerialHybrid : Hybrid {}
public class HEV_S2 : SerialHybrid { }
public class HEV_S3 : SerialHybrid { }
public class HEV_S4 : SerialHybrid { }
public class HEV_S_IEPC : SerialHybrid { }
public abstract class ParallelHybrid : Hybrid { }
public class HEV_P1 : ParallelHybrid { }
public class HEV_P2 : ParallelHybrid { }
public class HEV_P2_5 : ParallelHybrid { }
public class HEV_P3 : ParallelHybrid { }
public class HEV_P4 : ParallelHybrid { }
public abstract class BatteryElectric : CompletedBusDeclarationBase { }
public class PEV_E2 : BatteryElectric { }
public class PEV_E3 : BatteryElectric { }
public class PEV_E4 : BatteryElectric { }
public class PEV_E_IEPC : BatteryElectric { }
public class Exempted : CompletedBusDeclarationBase
{
}
public class PEV_E2 : PEV_Base { }
public class PEV_E3 : PEV_Base { }
public class PEV_E4 : PEV_Base { }
public class PEV_E_IEPC : PEV_Base { }
public class Exempted : PEV_Base { }
public override VehicleData CreateVehicleData(IVehicleDeclarationInputData primaryVehicle,
IVehicleDeclarationInputData completedVehicle, Segment segment, Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading)
{
return _vehicleDataAdapter.CreateExemptedVehicleData(primaryVehicle, completedVehicle);
}
}
}
}
\ No newline at end of file
......@@ -28,6 +28,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
//PTOData CreatePTOTransmissionData(IPTOTransmissionInputData ptoData);
//IList<VectoRunData.AuxData> CreateAuxiliaryData(IAuxiliariesDeclarationInputData auxData, IBusAuxiliariesDeclarationData busAuxData, MissionType missionType, VehicleClass vehicleClass, Meter vehicleLength, int? numSteeredAxles);
//AxleGearData CreateDummyAxleGearData(IGearboxDeclarationInputData gbxData);
VehicleData CreateVehicleData(IVehicleDeclarationInputData vehicle, Segment segment, Mission first, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> keyValuePair, bool allowVocational);
RetarderData CreateRetarderData(IRetarderInputData retarderData, PowertrainPosition position = PowertrainPosition.HybridPositionNotSet);
......@@ -52,8 +53,6 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
PTOData CreatePTOTransmissionData(IPTOTransmissionInputData ptoData, IGearboxDeclarationInputData gbx);
PTOData CreatePTOCycleData(IGearboxDeclarationInputData gbx, IPTOTransmissionInputData pto);
ShiftStrategyParameters CreateGearshiftData(double axleRatio, PerSecond engineIdlingSpeed, GearboxType gearboxType, int gearsCount);
//VehicleData CreateVehicleData(IVehicleDeclarationInputData vehicle, Segment segment, Mission mission,
......@@ -141,8 +140,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
public interface IGenericCompletedBusDeclarationDataAdapter : IDeclarationDataAdapter
{
AirdragData CreateAirdragData(IAirdragDeclarationInputData airdragData, Mission mission, Segment segment);
AirdragData CreateAirdragData(IAirdragDeclarationInputData airdragData, Mission mission, Segment segment);
CombustionEngineData CreateEngineData(IVehicleDeclarationInputData primaryVehicle, int modeIdx,
Mission mission);
......
......@@ -11,11 +11,15 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen
{
VehicleData CreateVehicleData(IVehicleDeclarationInputData data, Segment segment, Mission mission,
Kilogram loading, double? passengerCount, bool allowVocational);
VehicleData CreateExemptedVehicleData(IVehicleDeclarationInputData data);
VehicleData CreateExemptedVehicleData(IVehicleDeclarationInputData data);
VehicleData CreateVehicleData(IVehicleDeclarationInputData primaryVehicle,
IVehicleDeclarationInputData completedVehicle, Segment segment, Mission mission,
KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading);
VehicleData CreateExemptedVehicleData(IVehicleDeclarationInputData primaryVehicle,
IVehicleDeclarationInputData completedVehicle);
}
}
\ No newline at end of file
......@@ -95,6 +95,14 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen
throw new NotImplementedException("Method only applicable for completed specific bus!");
}
public VehicleData CreateExemptedVehicleData(IVehicleDeclarationInputData primaryVehicle,
IVehicleDeclarationInputData completedVehicle)
{
throw new NotImplementedException("Method only applicable for completed specific bus!");
}
//protected abstract VehicleData DoCreateExemptedVehicleData(IVehicleDeclarationInputData primaryVehicle, IVehicleDeclarationInputData completedVehicle);
protected abstract VehicleData DoCreateExemptedVehicleData(IVehicleDeclarationInputData data);
protected static VehicleData GetVehicleData(IVehicleDeclarationInputData data,
......@@ -353,9 +361,28 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen
return vehicleData;
}
public VehicleData CreateExemptedVehicleData(IVehicleDeclarationInputData primaryVehicle,
IVehicleDeclarationInputData completedVehicle)
{
return new VehicleData() {
ModelName = completedVehicle.Model,
Manufacturer = completedVehicle.Manufacturer,
ManufacturerAddress = completedVehicle.ManufacturerAddress,
VIN = completedVehicle.VIN,
LegislativeClass = completedVehicle.LegislativeClass,
RegisteredClass = completedVehicle.RegisteredClass,
VehicleCode = completedVehicle.VehicleCode,
VehicleCategory = VehicleCategory.HeavyBusCompletedVehicle,
CurbMass = completedVehicle.CurbMassChassis,
GrossVehicleMass = completedVehicle.GrossVehicleMassRating,
ZeroEmissionVehicle = primaryVehicle.ZeroEmissionVehicle,
MaxNetPower1 = primaryVehicle.MaxNetPower1,
InputData = completedVehicle
};
}
#endregion
}
#endregion
}
internal class SingleBusVehicleDataAdapter : VehicleDataAdapter
{
......
......@@ -66,7 +66,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun
protected virtual VectoRunData CreateVectoRunDataGeneric(Mission mission,
KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, Segment primarySegment, int modeIdx)
KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, Segment primarySegment, int? modeIdx)
{
var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType,
_ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false));
......@@ -79,7 +79,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun
VehicleData =
DataAdapterGeneric.CreateVehicleData(PrimaryVehicle, primarySegment, mission, loading, false),
AirdragData = DataAdapterGeneric.CreateAirdragData(null, mission, new Segment()),
EngineData = DataAdapterGeneric.CreateEngineData(PrimaryVehicle, modeIdx, mission),
EngineData = DataAdapterGeneric.CreateEngineData(PrimaryVehicle, modeIdx.Value, mission),
ElectricMachinesData = new List<Tuple<PowertrainPosition, ElectricMotorData>>(),
//GearboxData = _gearboxData,
AxleGearData = DataAdapterGeneric.CreateAxleGearData(PrimaryVehicle.Components.AxleGearInputData),
......@@ -123,7 +123,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun
}
protected virtual VectoRunData CreateVectoRunDataSpecific(Mission mission,
KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, int modeIdx)
KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, int? modeIdx)
{
var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType,
_ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false));
......@@ -134,7 +134,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun
VehicleData = DataAdapterSpecific.CreateVehicleData(PrimaryVehicle, CompletedVehicle, _segment,
mission, loading),
AirdragData = DataAdapterSpecific.CreateAirdragData(CompletedVehicle, mission),
EngineData = DataAdapterGeneric.CreateEngineData(PrimaryVehicle, modeIdx, mission),
EngineData = DataAdapterGeneric.CreateEngineData(PrimaryVehicle, modeIdx.Value, mission),
ElectricMachinesData = new List<Tuple<PowertrainPosition, ElectricMotorData>>(),
//GearboxData = _gearboxData,
AxleGearData = DataAdapterGeneric.CreateAxleGearData(PrimaryVehicle.Components.AxleGearInputData),
......@@ -193,7 +193,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun
VectoRunData.OvcHevMode ovcMode = VectoRunData.OvcHevMode.NotApplicable)
{
// create specific run data
var simulationRunData = CreateVectoRunDataSpecific(mission, loading, modeIdx.Value);
var simulationRunData = CreateVectoRunDataSpecific(mission, loading, modeIdx);
if (simulationRunData != null) {
yield return simulationRunData;
}
......@@ -211,7 +211,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun
primaryMission,
new KeyValuePair<LoadingType, Tuple<Kilogram, double?>>(loading.Key,
primaryMission.Loadings[loading.Key]),
primarySegment, modeIdx.Value);
primarySegment, modeIdx);
simulationRunData.PrimaryResult = GetPrimaryResult(fuelMode, simulationRunData);
yield return simulationRunData;
......@@ -315,6 +315,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun
foreach (var mission in _segment.Missions) {
foreach (var loading in mission.Loadings) {
// TODO: charge sustaining / charge depleting
foreach (var run in CreateVectoRunData(mission, loading, modeIdx, fuelMode)) {
yield return run;
}
......@@ -400,7 +401,6 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun
protected override IEnumerable<VectoRunData> GetNextRun()
{
foreach (var mission in _segment.Missions) {
foreach (var loading in mission.Loadings) {
foreach (var run in CreateVectoRunData(mission, loading)) {
......@@ -436,45 +436,27 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.CompletedBusRun
protected override IEnumerable<VectoRunData> GetNextRun()
{
return new[] { GetPowertrainConfigForReportInit() };
return CreateVectoRunData(null,
new KeyValuePair<LoadingType, Tuple<Kilogram, double?>>(),
0);
}
protected override VectoRunData CreateVectoRunData(IVehicleDeclarationInputData vehicle,
Mission mission,
KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading,
int? modeIdx,
protected override IEnumerable <VectoRunData> CreateVectoRunData(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading,
int? modeIdx = null, string fuelMode = null,
VectoRunData.OvcHevMode ovcMode = VectoRunData.OvcHevMode.NotApplicable)
{
return new VectoRunData() {
yield return new VectoRunData() {
Exempted = true,
//VehicleData = new VehicleData() {
// ModelName = CompletedVehicle.Model,
// Manufacturer = CompletedVehicle.Manufacturer,
// ManufacturerAddress = CompletedVehicle.ManufacturerAddress,
// VIN = CompletedVehicle.VIN,
// LegislativeClass = CompletedVehicle.LegislativeClass,
// RegisteredClass = CompletedVehicle.RegisteredClass,
// VehicleCode = CompletedVehicle.VehicleCode,
// VehicleCategory = VehicleCategory.HeavyBusCompletedVehicle,
// CurbMass = CompletedVehicle.CurbMassChassis,
// GrossVehicleMass = CompletedVehicle.GrossVehicleMassRating,
// ZeroEmissionVehicle = PrimaryVehicle.ZeroEmissionVehicle,
// MaxNetPower1 = PrimaryVehicle.MaxNetPower1,
// InputData = CompletedVehicle
//},
VehicleData = DataAdapterGeneric.CreateVehicleData(InputDataProvider.JobInputData.Vehicle, new Segment(),
null,
new KeyValuePair<LoadingType, Tuple<Kilogram, double?>>(LoadingType.ReferenceLoad,
Tuple.Create<Kilogram, double?>(0.SI<Kilogram>(), null)), _allowVocational),
Report = Report,
VehicleData = DataAdapterSpecific.CreateVehicleData(PrimaryVehicle, CompletedVehicle, new Segment(), null, new KeyValuePair<LoadingType, Tuple<Kilogram, double?>>()),
Report = Report,
Mission = new Mission() {
MissionType = MissionType.ExemptedMission
},
InputData = DataProvider.MultistageJobInputData
};
}
}
}
}
}
\ No newline at end of file
......@@ -108,7 +108,7 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories
}
protected override VectoRunData CreateVectoRunDataSpecific(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, int modeIdx)
protected override VectoRunData CreateVectoRunDataSpecific(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, int? modeIdx)
{
var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false));
......@@ -214,7 +214,7 @@ namespace TUGraz.VectoMockup.Simulation.RundataFactories
}
}
}
protected override VectoRunData CreateVectoRunDataGeneric(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, Segment primarySegment, int modeIdx)
protected override VectoRunData CreateVectoRunDataGeneric(Mission mission, KeyValuePair<LoadingType, Tuple<Kilogram, double?>> loading, Segment primarySegment, int? modeIdx)
{
var cycle = DeclarationData.CyclesCache.GetOrAdd(mission.MissionType, _ => DrivingCycleDataReader.ReadFromStream(mission.CycleFile, CycleType.DistanceBased, "", false));
return new VectoRunData()
......
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