Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

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

Merge pull request #120 in VECTO/vecto-sim from...

Merge pull request #120 in VECTO/vecto-sim from ~EMQUARIMA/vecto-sim:bugfix/VECTO-198-split-inputdataprovider-interfaces to develop

* commit '4131eee3':
  renaming file
  moving engineering input data interfaces to a separate file
  split driver data into engineering and declaration, separate engineerign and declaration input data provider (top level)
  adapt aux data container
  adapt factories
  adapt DataObjectAdapters
  adapt json input provider
  split input data interfaces into declaration data and engineering data
parents 45bd5860 4131eee3
No related branches found
No related tags found
No related merge requests found
Showing
with 528 additions and 349 deletions
...@@ -37,23 +37,11 @@ using TUGraz.VectoCore.Utils; ...@@ -37,23 +37,11 @@ using TUGraz.VectoCore.Utils;
namespace TUGraz.VectoCore.InputData namespace TUGraz.VectoCore.InputData
{ {
public interface IJobInputData public interface IDeclarationJobInputData
{ {
bool SavedInDeclarationMode { get; } bool SavedInDeclarationMode { get; }
IVehicleInputData Vehicle { get; } IVehicleDeclarationInputData Vehicle { get; }
/// <summary>
/// P008 Cycles
/// cf. VECTO Input Parameters.xlsx
/// </summary>
IList<ICycleData> Cycles { get; }
/// <summary>
/// P001
/// cf. VECTO Input Parameters.xlsx
/// </summary>
bool EngineOnlyMode { get; }
string JobName { get; } string JobName { get; }
} }
...@@ -77,7 +65,7 @@ namespace TUGraz.VectoCore.InputData ...@@ -77,7 +65,7 @@ namespace TUGraz.VectoCore.InputData
IntegrityStatus IntegrityStatus { get; } IntegrityStatus IntegrityStatus { get; }
} }
public interface IVehicleInputData : IComponentInputData public interface IVehicleDeclarationInputData : IComponentInputData
{ {
/// <summary> /// <summary>
/// P036 /// P036
...@@ -86,16 +74,16 @@ namespace TUGraz.VectoCore.InputData ...@@ -86,16 +74,16 @@ namespace TUGraz.VectoCore.InputData
VehicleCategory VehicleCategory { get; } VehicleCategory VehicleCategory { get; }
/// <summary> /// <summary>
/// P038 Curb Weight Vehicle /// P037
/// cf. VECTO Input Parameters.xlsx /// cf. VECTO Input Parameters.xlsx
/// </summary> /// </summary>
Kilogram CurbWeight { get; } AxleConfiguration AxleConfiguration { get; }
/// <summary> /// <summary>
/// P039 Curb Weight Extra Trailer/Body /// P038 Curb Weight Vehicle
/// cf. VECTO Input Parameters.xlsx /// cf. VECTO Input Parameters.xlsx
/// </summary> /// </summary>
Kilogram CurbWeightExtra { get; } Kilogram CurbWeightChassis { get; }
/// <summary> /// <summary>
/// P041 Max. vehicle weight /// P041 Max. vehicle weight
...@@ -103,18 +91,6 @@ namespace TUGraz.VectoCore.InputData ...@@ -103,18 +91,6 @@ namespace TUGraz.VectoCore.InputData
/// </summary> /// </summary>
Kilogram GrossVehicleMassRating { get; } Kilogram GrossVehicleMassRating { get; }
/// <summary>
/// P040 Loading
/// cf. VECTO Input Parameters.xlsx
/// </summary>
Kilogram Loading { get; }
/// <summary>
/// P049
/// cf. VECTO Input Parameters.xlsx
/// </summary>
Meter DynamicTyreRadius { get; }
/// <summary> /// <summary>
/// P146 DragCoefficient * Cross Section Area - Truck & Trailer /// P146 DragCoefficient * Cross Section Area - Truck & Trailer
/// cf. VECTO Input Parameters.xlsx /// cf. VECTO Input Parameters.xlsx
...@@ -134,31 +110,13 @@ namespace TUGraz.VectoCore.InputData ...@@ -134,31 +110,13 @@ namespace TUGraz.VectoCore.InputData
/// </summary> /// </summary>
string Rim { get; } string Rim { get; }
/// <summary>
/// P037
/// cf. VECTO Input Parameters.xlsx
/// </summary>
AxleConfiguration AxleConfiguration { get; }
/// <summary> /// <summary>
/// parameters for every axle /// parameters for every axle
/// P044, P045, P046, P047, P048, P108 /// P044, P045, P046, P047, P048, P108
/// cf. VECTO Input Parameters.xlsx /// cf. VECTO Input Parameters.xlsx
/// </summary> /// </summary>
IList<IAxleInputData> Axles { get; } IList<IAxleDeclarationInputData> Axles { get; }
/// <summary>
/// P050
/// cf. VECTO Input Parameters.xlsx
/// </summary>
CrossWindCorrectionMode CrossWindCorrectionMode { get; }
/// <summary>
/// P051
/// P055, P056
/// cf. VECTO Input Parameters.xlsx
/// </summary>
DataTable CrosswindCorrectionMap { get; }
/// <summary> /// <summary>
/// P053 /// P053
...@@ -167,6 +125,7 @@ namespace TUGraz.VectoCore.InputData ...@@ -167,6 +125,7 @@ namespace TUGraz.VectoCore.InputData
double RetarderRatio { get; } double RetarderRatio { get; }
} }
public interface IRetarderInputData : IComponentInputData public interface IRetarderInputData : IComponentInputData
{ {
/// <summary> /// <summary>
...@@ -183,7 +142,7 @@ namespace TUGraz.VectoCore.InputData ...@@ -183,7 +142,7 @@ namespace TUGraz.VectoCore.InputData
DataTable LossMap { get; } DataTable LossMap { get; }
} }
public interface IAxleInputData : IComponentInputData public interface IAxleDeclarationInputData : IComponentInputData
{ {
/// <summary> /// <summary>
/// P108 /// P108
...@@ -210,22 +169,9 @@ namespace TUGraz.VectoCore.InputData ...@@ -210,22 +169,9 @@ namespace TUGraz.VectoCore.InputData
/// cf. VECTO Input Parameters.xlsx /// cf. VECTO Input Parameters.xlsx
/// </summary> /// </summary>
Newton TyreTestLoad { get; } Newton TyreTestLoad { get; }
/// <summary>
/// P044 (0 - 1)
/// cf. VECTO Input Parameters.xlsx
/// </summary>
double AxleWeightShare { get; }
/// <summary>
/// P048
/// cf. VECTO Input Parameters.xlsx
/// </summary>
KilogramSquareMeter Inertia { get; }
} }
public interface IGearboxDeclarationInputData : IComponentInputData
public interface IGearboxInputData : IComponentInputData
{ {
/// <summary> /// <summary>
/// P076 /// P076
...@@ -233,72 +179,11 @@ namespace TUGraz.VectoCore.InputData ...@@ -233,72 +179,11 @@ namespace TUGraz.VectoCore.InputData
/// </summary> /// </summary>
GearboxType Type { get; } GearboxType Type { get; }
/// <summary>
/// P080
/// cf. VECTO Input Parameters.xlsx
/// </summary>
KilogramSquareMeter Inertia { get; }
/// <summary>
/// P081
/// cf. VECTO Input Parameters.xlsx
/// </summary>
Second TractionInterruption { get; }
/// <summary> /// <summary>
/// P078, P079, P077, P082, P145 (for every gear) /// P078, P079, P077, P082, P145 (for every gear)
/// cf. VECTO Input Parameters.xlsx /// cf. VECTO Input Parameters.xlsx
/// </summary> /// </summary>
IList<ITransmissionInputData> Gears { get; } IList<ITransmissionInputData> Gears { get; }
/// <summary>
/// P084
/// cf. VECTO Input Parameters.xlsx
/// </summary>
bool SkipGears { get; }
/// <summary>
/// P086
/// cf. VECTO Input Parameters.xlsx
/// </summary>
Second ShiftTime { get; }
/// <summary>
/// P083
/// cf. VECTO Input Parameters.xlsx
/// </summary>
bool EarlyShiftUp { get; }
/// <summary>
/// P085
/// cf. VECTO Input Parameters.xlsx
/// </summary>
double TorqueReserve { get; }
/// <summary>
/// P087
/// cf. VECTO Input Parameters.xlsx
/// </summary>
MeterPerSecond StartSpeed { get; }
/// <summary>
/// P088
/// cf. VECTO Input Parameters.xlsx
/// </summary>
MeterPerSquareSecond StartAcceleration { get; }
/// <summary>
/// P089
/// [%] (0-1)
/// cf. VECTO Input Parameters.xlsx
/// </summary>
double StartTorqueReserve { get; }
/// <summary>
/// P090, P091, P092, P127
/// cf. VECTO Input Parameters.xlsx
/// </summary>
ITorqueConverterInputData TorqueConverter { get; }
} }
public interface ITransmissionInputData public interface ITransmissionInputData
...@@ -382,7 +267,7 @@ namespace TUGraz.VectoCore.InputData ...@@ -382,7 +267,7 @@ namespace TUGraz.VectoCore.InputData
DataTable TCData { get; } DataTable TCData { get; }
} }
public interface IEngineInputData : IComponentInputData public interface IEngineDeclarationInputData : IComponentInputData
{ {
/// <summary> /// <summary>
/// P061 /// P061
...@@ -397,52 +282,47 @@ namespace TUGraz.VectoCore.InputData ...@@ -397,52 +282,47 @@ namespace TUGraz.VectoCore.InputData
PerSecond IdleSpeed { get; } PerSecond IdleSpeed { get; }
/// <summary> /// <summary>
/// P067 /// P111
/// P072, P073, P074
/// cf. VECTO Input Parameters.xlsx
/// engine speed in rpm, torque in NM, fuel consumption in g/h
/// </summary>
DataTable FuelConsumptionMap { get; }
/// <summary>
/// P144
/// P068, P069, P70, P71
/// cf. VECTO Input Parameters.xlsx /// cf. VECTO Input Parameters.xlsx
/// </summary> /// </summary>
DataTable FullLoadCurve { get; } KilogramPerWattSecond WHTCMotorway { get; }
/// <summary> /// <summary>
/// P062 /// P110
/// cf. VECTO Input Parameters.xlsx /// cf. VECTO Input Parameters.xlsx
/// </summary> /// </summary>
KilogramSquareMeter Inertia { get; } KilogramPerWattSecond WHTCRural { get; }
/// <summary> /// <summary>
/// P111 /// P109
/// cf. VECTO Input Parameters.xlsx /// cf. VECTO Input Parameters.xlsx
/// </summary> /// </summary>
KilogramPerWattSecond WHTCMotorway { get; } KilogramPerWattSecond WHTCUrban { get; }
/// <summary> /// <summary>
/// P110 /// P067
/// P072, P073, P074
/// cf. VECTO Input Parameters.xlsx /// cf. VECTO Input Parameters.xlsx
/// engine speed in rpm, torque in NM, fuel consumption in g/h
/// </summary> /// </summary>
KilogramPerWattSecond WHTCRural { get; } DataTable FuelConsumptionMap { get; }
/// <summary> /// <summary>
/// P109 /// P144
/// P068, P069, P70, P71
/// cf. VECTO Input Parameters.xlsx /// cf. VECTO Input Parameters.xlsx
/// </summary> /// </summary>
KilogramPerWattSecond WHTCUrban { get; } DataTable FullLoadCurve { get; }
} }
public interface IAuxiliariesInputData public interface IAuxiliariesDeclarationInputData
{ {
bool SavedInDeclarationMode { get; } bool SavedInDeclarationMode { get; }
IList<IAuxiliaryInputData> Auxiliaries { get; } IList<IAuxiliaryDeclarationInputData> Auxiliaries { get; }
} }
public interface ICycleData public interface ICycleData
{ {
string Name { get; } string Name { get; }
...@@ -454,97 +334,39 @@ namespace TUGraz.VectoCore.InputData ...@@ -454,97 +334,39 @@ namespace TUGraz.VectoCore.InputData
DataTable CycleData { get; } DataTable CycleData { get; }
} }
public interface IDriverInputData public interface IDriverDeclarationInputData
{ {
bool SavedInDeclarationMode { get; } bool SavedInDeclarationMode { get; }
IStartStopInputData StartStop { get; } IStartStopDeclarationInputData StartStop { get; }
ILookaheadCoastingInputData Lookahead { get; }
IOverSpeedEcoRollInputData OverSpeedEcoRoll { get; }
/// <summary> IOverSpeedEcoRollDeclarationInputData OverSpeedEcoRoll { get; }
/// P009; P033, P034, P035
/// cf. VECTO Input Parameters.xlsx
/// </summary>
DataTable AccelerationCurve { get; }
} }
public interface IOverSpeedEcoRollInputData
public interface IOverSpeedEcoRollDeclarationInputData
{ {
/// <summary> /// <summary>
/// P015 /// P015
/// cf. VECTO Input Parameters.xlsx /// cf. VECTO Input Parameters.xlsx
/// </summary> /// </summary>
DriverData.DriverMode Mode { get; } DriverData.DriverMode Mode { get; }
/// <summary>
/// P016
/// cf. VECTO Input Parameters.xlsx
/// </summary>
MeterPerSecond MinSpeed { get; }
/// <summary>
/// P017
/// cf. VECTO Input Parameters.xlsx
/// </summary>
MeterPerSecond OverSpeed { get; }
/// <summary>
/// P018
/// cf. VECTO Input Parameters.xlsx
/// </summary>
MeterPerSecond UnderSpeed { get; }
} }
public interface ILookaheadCoastingInputData
{
/// <summary>
/// P019
/// cf. VECTO Input Parameters.xlsx
/// </summary>
bool Enabled { get; }
/// <summary>
/// P020
/// cf. VECTO Input Parameters.xlsx
/// </summary>
MeterPerSquareSecond Deceleration { get; }
/// <summary>
/// P021
/// cf. VECTO Input Parameters.xlsx
/// </summary>
MeterPerSecond MinSpeed { get; }
}
public interface IStartStopInputData public interface IStartStopDeclarationInputData
{ {
/// <summary> /// <summary>
/// P010 StartStop - enabled /// P010 StartStop - enabled
/// cf. VECTO Input Parameters.xlsx /// cf. VECTO Input Parameters.xlsx
/// </summary> /// </summary>
bool Enabled { get; } bool Enabled { get; }
}
/// <summary>
/// P011 StartStop - Max speed
/// cf. VECTO Input Parameters.xlsx
/// </summary>
MeterPerSecond MaxSpeed { get; }
/// <summary>
/// P012 StartStop - Min ICE-ON Time
/// cf. VECTO Input Parameters.xlsx
/// </summary>
Second MinTime { get; }
/// <summary> public interface IAuxiliaryDeclarationInputData
/// P013 StartStop - Activation Delay
/// cf. VECTO Input Parameters.xlsx
/// </summary>
Second Delay { get; }
}
public interface IAuxiliaryInputData
{ {
bool SavedInDeclarationMode { get; } bool SavedInDeclarationMode { get; }
...@@ -571,29 +393,6 @@ namespace TUGraz.VectoCore.InputData ...@@ -571,29 +393,6 @@ namespace TUGraz.VectoCore.InputData
/// cf. VECTO Input Parameters.xlsx /// cf. VECTO Input Parameters.xlsx
/// </summary> /// </summary>
IList<string> TechList { get; } IList<string> TechList { get; }
/// <summary>
/// P022 Aux-InputFile: transmission ratio
/// cf. VECTO Input Parameters.xlsx
/// </summary>
double TransmissionRatio { get; }
/// <summary>
/// P023 Aux-InputFile: efficiency to engine
/// cf. VECTO Input Parameters.xlsx
/// </summary>
double EfficiencyToEngine { get; }
/// <summary>
/// P024 Aux-InputFile: efficiency to supply
/// cf. VECTO Input Parameters.xlsx
/// </summary>
double EfficiencyToSupply { get; }
/// <summary>
/// P025, P026, P027 Aux-InputFile: map
/// cf. VECTO Input Parameters.xlsx
/// </summary>
DataTable DemandMap { get; }
} }
} }
\ No newline at end of file
using System.Collections.Generic;
using System.Data;
using TUGraz.VectoCore.Models.SimulationComponent.Data;
using TUGraz.VectoCore.Utils;
namespace TUGraz.VectoCore.InputData
{
public interface IEngineeringJobInputData : IDeclarationJobInputData
{
new IVehicleEngineeringInputData Vehicle { get; }
/// <summary>
/// P008 Cycles
/// cf. VECTO Input Parameters.xlsx
/// </summary>
IList<ICycleData> Cycles { get; }
/// <summary>
/// P001
/// cf. VECTO Input Parameters.xlsx
/// </summary>
bool EngineOnlyMode { get; }
}
public interface IVehicleEngineeringInputData : IVehicleDeclarationInputData
{
/// <summary>
/// P039 Curb Weight Extra Trailer/Body
/// cf. VECTO Input Parameters.xlsx
/// </summary>
Kilogram CurbWeightExtra { get; }
/// <summary>
/// P040 Loading
/// cf. VECTO Input Parameters.xlsx
/// </summary>
Kilogram Loading { get; }
/// <summary>
/// parameters for every axle
/// P044, P045, P046, P047, P048, P108
/// cf. VECTO Input Parameters.xlsx
/// </summary>
new IList<IAxleEngineeringInputData> Axles { get; }
/// <summary>
/// P049
/// cf. VECTO Input Parameters.xlsx
/// </summary>
Meter DynamicTyreRadius { get; }
/// <summary>
/// P050
/// cf. VECTO Input Parameters.xlsx
/// </summary>
CrossWindCorrectionMode CrossWindCorrectionMode { get; }
/// <summary>
/// P051
/// P055, P056
/// cf. VECTO Input Parameters.xlsx
/// </summary>
DataTable CrosswindCorrectionMap { get; }
}
public interface IAxleEngineeringInputData : IAxleDeclarationInputData
{
/// <summary>
/// P044 (0 - 1)
/// cf. VECTO Input Parameters.xlsx
/// </summary>
double AxleWeightShare { get; }
/// <summary>
/// P048
/// cf. VECTO Input Parameters.xlsx
/// </summary>
KilogramSquareMeter Inertia { get; }
}
public interface IGearboxEngineeringInputData : IGearboxDeclarationInputData
{
/// <summary>
/// P080
/// cf. VECTO Input Parameters.xlsx
/// </summary>
KilogramSquareMeter Inertia { get; }
/// <summary>
/// P081
/// cf. VECTO Input Parameters.xlsx
/// </summary>
Second TractionInterruption { get; }
/// <summary>
/// P086
/// cf. VECTO Input Parameters.xlsx
/// </summary>
Second ShiftTime { get; }
/// <summary>
/// P083
/// cf. VECTO Input Parameters.xlsx
/// </summary>
bool EarlyShiftUp { get; }
/// <summary>
/// P085
/// cf. VECTO Input Parameters.xlsx
/// </summary>
double TorqueReserve { get; }
/// <summary>
/// P087
/// cf. VECTO Input Parameters.xlsx
/// </summary>
MeterPerSecond StartSpeed { get; }
/// <summary>
/// P088
/// cf. VECTO Input Parameters.xlsx
/// </summary>
MeterPerSquareSecond StartAcceleration { get; }
/// <summary>
/// P089
/// [%] (0-1)
/// cf. VECTO Input Parameters.xlsx
/// </summary>
double StartTorqueReserve { get; }
/// <summary>
/// P084
/// cf. VECTO Input Parameters.xlsx
/// </summary>
bool SkipGears { get; }
/// <summary>
/// P090, P091, P092, P127
/// cf. VECTO Input Parameters.xlsx
/// </summary>
ITorqueConverterInputData TorqueConverter { get; }
}
public interface IEngineEngineeringInputData : IEngineDeclarationInputData
{
/// <summary>
/// P062
/// cf. VECTO Input Parameters.xlsx
/// </summary>
KilogramSquareMeter Inertia { get; }
}
public interface IAuxiliariesEngineeringInputData : IAuxiliariesDeclarationInputData
{
new IList<IAuxiliaryEngineeringInputData> Auxiliaries { get; }
}
public interface IDriverEngineeringInputData : IDriverDeclarationInputData
{
new IStartStopEngineeringInputData StartStop { get; }
new IOverSpeedEcoRollEngineeringInputData OverSpeedEcoRoll { get; }
/// <summary>
/// P009; P033, P034, P035
/// cf. VECTO Input Parameters.xlsx
/// </summary>
DataTable AccelerationCurve { get; }
ILookaheadCoastingInputData Lookahead { get; }
}
public interface IOverSpeedEcoRollEngineeringInputData : IOverSpeedEcoRollDeclarationInputData
{
/// <summary>
/// P016
/// cf. VECTO Input Parameters.xlsx
/// </summary>
MeterPerSecond MinSpeed { get; }
/// <summary>
/// P017
/// cf. VECTO Input Parameters.xlsx
/// </summary>
MeterPerSecond OverSpeed { get; }
/// <summary>
/// P018
/// cf. VECTO Input Parameters.xlsx
/// </summary>
MeterPerSecond UnderSpeed { get; }
}
public interface IStartStopEngineeringInputData : IStartStopDeclarationInputData
{
/// <summary>
/// P011 StartStop - Max speed
/// cf. VECTO Input Parameters.xlsx
/// </summary>
MeterPerSecond MaxSpeed { get; }
/// <summary>
/// P012 StartStop - Min ICE-ON Time
/// cf. VECTO Input Parameters.xlsx
/// </summary>
Second MinTime { get; }
/// <summary>
/// P013 StartStop - Activation Delay
/// cf. VECTO Input Parameters.xlsx
/// </summary>
Second Delay { get; }
}
public interface ILookaheadCoastingInputData
{
/// <summary>
/// P019
/// cf. VECTO Input Parameters.xlsx
/// </summary>
bool Enabled { get; }
/// <summary>
/// P020
/// cf. VECTO Input Parameters.xlsx
/// </summary>
MeterPerSquareSecond Deceleration { get; }
/// <summary>
/// P021
/// cf. VECTO Input Parameters.xlsx
/// </summary>
MeterPerSecond MinSpeed { get; }
}
public interface IAuxiliaryEngineeringInputData : IAuxiliaryDeclarationInputData
{
/// <summary>
/// P022 Aux-InputFile: transmission ratio
/// cf. VECTO Input Parameters.xlsx
/// </summary>
double TransmissionRatio { get; }
/// <summary>
/// P023 Aux-InputFile: efficiency to engine
/// cf. VECTO Input Parameters.xlsx
/// </summary>
double EfficiencyToEngine { get; }
/// <summary>
/// P024 Aux-InputFile: efficiency to supply
/// cf. VECTO Input Parameters.xlsx
/// </summary>
double EfficiencyToSupply { get; }
/// <summary>
/// P025, P026, P027 Aux-InputFile: map
/// cf. VECTO Input Parameters.xlsx
/// </summary>
DataTable DemandMap { get; }
}
}
\ No newline at end of file
...@@ -65,7 +65,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON ...@@ -65,7 +65,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
/// } /// }
/// } /// }
/// </code> /// </code>
public class JSONEngineDataV3 : JSONFile, IEngineInputData public class JSONEngineDataV3 : JSONFile, IEngineEngineeringInputData
{ {
public JSONEngineDataV3(JObject data, string fileName) : base(data, fileName) {} public JSONEngineDataV3(JObject data, string fileName) : base(data, fileName) {}
......
...@@ -65,7 +65,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON ...@@ -65,7 +65,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
/// ... /// ...
/// ] /// ]
/// } /// }
public class JSONGearboxDataV5 : JSONFile, IGearboxInputData, IAxleGearInputData, ITorqueConverterInputData public class JSONGearboxDataV5 : JSONFile, IGearboxEngineeringInputData, IAxleGearInputData, ITorqueConverterInputData
{ {
public JSONGearboxDataV5(JObject data, string filename) : base(data, filename) {} public JSONGearboxDataV5(JObject data, string filename) : base(data, filename) {}
......
...@@ -186,15 +186,16 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON ...@@ -186,15 +186,16 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
/// } /// }
/// } /// }
/// </code> /// </code>
public class JSONInputDataV2 : JSONFile, IInputDataProvider, IJobInputData, IDriverInputData, IAuxiliariesInputData public class JSONInputDataV2 : JSONFile, IEngineeringInputDataProvider, IDeclarationInputDataProvider,
IEngineeringJobInputData, IDriverEngineeringInputData, IAuxiliariesEngineeringInputData
{ {
protected IGearboxInputData Gearbox; protected IGearboxEngineeringInputData Gearbox;
protected IAxleGearInputData AxleGear; protected IAxleGearInputData AxleGear;
protected IEngineInputData Engine; protected IEngineEngineeringInputData Engine;
protected IVehicleInputData VehicleData; protected IVehicleEngineeringInputData VehicleData;
protected IRetarderInputData Retarder; protected IRetarderInputData Retarder;
...@@ -242,12 +243,27 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON ...@@ -242,12 +243,27 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
#region IInputDataProvider #region IInputDataProvider
public virtual IJobInputData JobInputData() public virtual IEngineeringJobInputData JobInputData()
{ {
return this; return this;
} }
public virtual IVehicleInputData VehicleInputData IVehicleDeclarationInputData IDeclarationInputDataProvider.VehicleInputData
{
get { return VehicleInputData; }
}
IGearboxDeclarationInputData IDeclarationInputDataProvider.GearboxInputData
{
get { return GearboxInputData; }
}
IDeclarationJobInputData IDeclarationInputDataProvider.JobInputData()
{
return JobInputData();
}
public virtual IVehicleEngineeringInputData VehicleInputData
{ {
get get
{ {
...@@ -258,7 +274,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON ...@@ -258,7 +274,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
} }
} }
public virtual IGearboxInputData GearboxInputData public virtual IGearboxEngineeringInputData GearboxInputData
{ {
get get
{ {
...@@ -280,7 +296,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON ...@@ -280,7 +296,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
} }
} }
public virtual IEngineInputData EngineInputData IEngineDeclarationInputData IDeclarationInputDataProvider.EngineInputData
{
get { return EngineInputData; }
}
public virtual IEngineEngineeringInputData EngineInputData
{ {
get get
{ {
...@@ -291,11 +312,21 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON ...@@ -291,11 +312,21 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
} }
} }
public virtual IAuxiliariesInputData AuxiliaryInputData() public virtual IAuxiliariesEngineeringInputData AuxiliaryInputData()
{ {
return this; return this;
} }
IDriverEngineeringInputData IEngineeringInputDataProvider.DriverInputData
{
get { return this; }
}
IAuxiliariesDeclarationInputData IDeclarationInputDataProvider.AuxiliaryInputData()
{
return AuxiliaryInputData();
}
public virtual IRetarderInputData RetarderInputData public virtual IRetarderInputData RetarderInputData
{ {
get get
...@@ -307,7 +338,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON ...@@ -307,7 +338,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
} }
} }
public virtual IDriverInputData DriverInputData public virtual IDriverDeclarationInputData DriverInputData
{ {
get { return this; } get { return this; }
} }
...@@ -316,7 +347,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON ...@@ -316,7 +347,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
#region IJobInputData #region IJobInputData
public virtual IVehicleInputData Vehicle public virtual IVehicleEngineeringInputData Vehicle
{ {
get { return VehicleData; } get { return VehicleData; }
} }
...@@ -356,6 +387,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON ...@@ -356,6 +387,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
get { return Body.GetEx(JsonKeys.Job_EngineOnlyMode).Value<bool>(); } get { return Body.GetEx(JsonKeys.Job_EngineOnlyMode).Value<bool>(); }
} }
IVehicleDeclarationInputData IDeclarationJobInputData.Vehicle
{
get { return Vehicle; }
}
public virtual string JobName public virtual string JobName
{ {
get { return _jobname; } get { return _jobname; }
...@@ -365,7 +401,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON ...@@ -365,7 +401,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
#region DriverInputData #region DriverInputData
public virtual IStartStopInputData StartStop public virtual IStartStopEngineeringInputData StartStop
{ {
get get
{ {
...@@ -379,6 +415,17 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON ...@@ -379,6 +415,17 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
} }
} }
IOverSpeedEcoRollDeclarationInputData IDriverDeclarationInputData.OverSpeedEcoRoll
{
get
{
var overspeed = Body.GetEx(JsonKeys.DriverData_OverspeedEcoRoll);
return new OverSpeedEcoRollInputData() {
Mode = DriverData.ParseDriverMode(overspeed.GetEx<string>(JsonKeys.DriverData_OverspeedEcoRoll_Mode))
};
}
}
public virtual ILookaheadCoastingInputData Lookahead public virtual ILookaheadCoastingInputData Lookahead
{ {
get get
...@@ -392,7 +439,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON ...@@ -392,7 +439,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
} }
} }
public virtual IOverSpeedEcoRollInputData OverSpeedEcoRoll IStartStopDeclarationInputData IDriverDeclarationInputData.StartStop
{
get { return StartStop; }
}
public virtual IOverSpeedEcoRollEngineeringInputData OverSpeedEcoRoll
{ {
get get
{ {
...@@ -433,11 +485,19 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON ...@@ -433,11 +485,19 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
#endregion #endregion
public virtual IList<IAuxiliaryInputData> Auxiliaries public virtual IList<IAuxiliaryEngineeringInputData> Auxiliaries
{ {
get get { return AuxData().Cast<IAuxiliaryEngineeringInputData>().ToList(); }
}
IList<IAuxiliaryDeclarationInputData> IAuxiliariesDeclarationInputData.Auxiliaries
{ {
var retVal = new List<IAuxiliaryInputData>(); get { return AuxData().Cast<IAuxiliaryDeclarationInputData>().ToList(); }
}
private IList<AuxiliaryDataInputData> AuxData()
{
var retVal = new List<AuxiliaryDataInputData>();
foreach (var aux in Body["Aux"] ?? Enumerable.Empty<JToken>()) { foreach (var aux in Body["Aux"] ?? Enumerable.Empty<JToken>()) {
var auxData = new AuxiliaryDataInputData { var auxData = new AuxiliaryDataInputData {
ID = aux.GetEx<string>("ID"), ID = aux.GetEx<string>("ID"),
...@@ -463,4 +523,3 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON ...@@ -463,4 +523,3 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
} }
} }
} }
\ No newline at end of file
}
\ No newline at end of file
...@@ -60,7 +60,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON ...@@ -60,7 +60,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
} }
} }
public static IVehicleInputData ReadJsonVehicle(string filename) public static IVehicleEngineeringInputData ReadJsonVehicle(string filename)
{ {
var json = ReadFile(filename); var json = ReadFile(filename);
var version = ReadVersion(json); var version = ReadVersion(json);
...@@ -72,7 +72,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON ...@@ -72,7 +72,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
} }
} }
public static IGearboxInputData ReadGearbox(string filename) public static IGearboxEngineeringInputData ReadGearbox(string filename)
{ {
var json = ReadFile(filename); var json = ReadFile(filename);
var version = ReadVersion(json); var version = ReadVersion(json);
...@@ -84,7 +84,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON ...@@ -84,7 +84,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
} }
} }
public static IEngineInputData ReadEngine(string filename) public static IEngineEngineeringInputData ReadEngine(string filename)
{ {
var json = ReadFile(filename); var json = ReadFile(filename);
var version = ReadVersion(json); var version = ReadVersion(json);
......
...@@ -41,7 +41,7 @@ using TUGraz.VectoCore.Utils; ...@@ -41,7 +41,7 @@ using TUGraz.VectoCore.Utils;
namespace TUGraz.VectoCore.InputData.FileIO.JSON namespace TUGraz.VectoCore.InputData.FileIO.JSON
{ {
public class JSONVehicleDataV7 : JSONFile, IVehicleInputData, IRetarderInputData public class JSONVehicleDataV7 : JSONFile, IVehicleEngineeringInputData, IRetarderInputData
{ {
public JSONVehicleDataV7(JObject data, string fileName) : base(data, fileName) {} public JSONVehicleDataV7(JObject data, string fileName) : base(data, fileName) {}
...@@ -56,7 +56,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON ...@@ -56,7 +56,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
} }
} }
public virtual Kilogram CurbWeight public virtual Kilogram CurbWeightChassis
{ {
get { return Body.GetEx<double>(JsonKeys.Vehicle_CurbWeight).SI<Kilogram>(); } get { return Body.GetEx<double>(JsonKeys.Vehicle_CurbWeight).SI<Kilogram>(); }
} }
...@@ -111,9 +111,17 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON ...@@ -111,9 +111,17 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
} }
} }
public virtual IList<IAxleInputData> Axles public virtual IList<IAxleEngineeringInputData> Axles
{ {
get get { return AxleWheels().Cast<IAxleEngineeringInputData>().ToList(); }
}
IList<IAxleDeclarationInputData> IVehicleDeclarationInputData.Axles
{
get { return AxleWheels().Cast<IAxleDeclarationInputData>().ToList(); }
}
private IEnumerable<AxleInputData> AxleWheels()
{ {
return return
Body.GetEx(JsonKeys.Vehicle_AxleConfiguration).GetEx(JsonKeys.Vehicle_AxleConfiguration_Axles).Select( Body.GetEx(JsonKeys.Vehicle_AxleConfiguration).GetEx(JsonKeys.Vehicle_AxleConfiguration_Axles).Select(
...@@ -124,8 +132,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON ...@@ -124,8 +132,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
RollResistanceCoefficient = axle.GetEx<double>(JsonKeys.Vehicle_Axles_RollResistanceCoefficient), RollResistanceCoefficient = axle.GetEx<double>(JsonKeys.Vehicle_Axles_RollResistanceCoefficient),
TyreTestLoad = axle.GetEx<double>(JsonKeys.Vehicle_Axles_TyreTestLoad).SI<Newton>(), TyreTestLoad = axle.GetEx<double>(JsonKeys.Vehicle_Axles_TyreTestLoad).SI<Newton>(),
AxleWeightShare = axle.GetEx<double>("AxleWeightShare") AxleWeightShare = axle.GetEx<double>("AxleWeightShare")
}).Cast<IAxleInputData>().ToList(); });
}
} }
public virtual DataTable CrosswindCorrectionMap public virtual DataTable CrosswindCorrectionMap
......
...@@ -34,22 +34,44 @@ using System.Deployment.Internal; ...@@ -34,22 +34,44 @@ using System.Deployment.Internal;
namespace TUGraz.VectoCore.InputData namespace TUGraz.VectoCore.InputData
{ {
public interface IInputDataProvider public interface IInputDataProvider {}
public interface IDeclarationInputDataProvider : IInputDataProvider
{
IDeclarationJobInputData JobInputData();
IVehicleDeclarationInputData VehicleInputData { get; }
IGearboxDeclarationInputData GearboxInputData { get; }
IAxleGearInputData AxleGearInputData { get; }
IEngineDeclarationInputData EngineInputData { get; }
IAuxiliariesDeclarationInputData AuxiliaryInputData();
IRetarderInputData RetarderInputData { get; }
IDriverDeclarationInputData DriverInputData { get; }
}
public interface IEngineeringInputDataProvider : IInputDataProvider
{ {
IJobInputData JobInputData(); IEngineeringJobInputData JobInputData();
IVehicleInputData VehicleInputData { get; } IVehicleEngineeringInputData VehicleInputData { get; }
IGearboxInputData GearboxInputData { get; } IGearboxEngineeringInputData GearboxInputData { get; }
IAxleGearInputData AxleGearInputData { get; } IAxleGearInputData AxleGearInputData { get; }
IEngineInputData EngineInputData { get; } IEngineEngineeringInputData EngineInputData { get; }
IAuxiliariesInputData AuxiliaryInputData(); IAuxiliariesEngineeringInputData AuxiliaryInputData();
IRetarderInputData RetarderInputData { get; } IRetarderInputData RetarderInputData { get; }
IDriverInputData DriverInputData { get; } IDriverEngineeringInputData DriverInputData { get; }
} }
} }
\ No newline at end of file
...@@ -45,7 +45,7 @@ namespace TUGraz.VectoCore.InputData.Impl ...@@ -45,7 +45,7 @@ namespace TUGraz.VectoCore.InputData.Impl
public DataTable CycleData { get; internal set; } public DataTable CycleData { get; internal set; }
} }
public class StartStopInputData : IStartStopInputData public class StartStopInputData : IStartStopEngineeringInputData
{ {
public bool Enabled { get; internal set; } public bool Enabled { get; internal set; }
...@@ -65,7 +65,7 @@ namespace TUGraz.VectoCore.InputData.Impl ...@@ -65,7 +65,7 @@ namespace TUGraz.VectoCore.InputData.Impl
public MeterPerSecond MinSpeed { get; internal set; } public MeterPerSecond MinSpeed { get; internal set; }
} }
public class OverSpeedEcoRollInputData : IOverSpeedEcoRollInputData public class OverSpeedEcoRollInputData : IOverSpeedEcoRollEngineeringInputData
{ {
public DriverData.DriverMode Mode { get; internal set; } public DriverData.DriverMode Mode { get; internal set; }
...@@ -91,7 +91,7 @@ namespace TUGraz.VectoCore.InputData.Impl ...@@ -91,7 +91,7 @@ namespace TUGraz.VectoCore.InputData.Impl
public bool TorqueConverterActive { get; internal set; } public bool TorqueConverterActive { get; internal set; }
} }
public class AxleInputData : IAxleInputData public class AxleInputData : IAxleEngineeringInputData
{ {
public bool SavedInDeclarationMode public bool SavedInDeclarationMode
{ {
...@@ -127,7 +127,7 @@ namespace TUGraz.VectoCore.InputData.Impl ...@@ -127,7 +127,7 @@ namespace TUGraz.VectoCore.InputData.Impl
public KilogramSquareMeter Inertia { get; internal set; } public KilogramSquareMeter Inertia { get; internal set; }
} }
public class AuxiliaryDataInputData : IAuxiliaryInputData public class AuxiliaryDataInputData : IAuxiliaryEngineeringInputData
{ {
public bool SavedInDeclarationMode { get; internal set; } public bool SavedInDeclarationMode { get; internal set; }
......
...@@ -43,7 +43,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper ...@@ -43,7 +43,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
{ {
// ========================= // =========================
internal VehicleData SetCommonVehicleData(IVehicleInputData data) internal VehicleData SetCommonVehicleData(IVehicleDeclarationInputData data)
{ {
var retVal = new VehicleData { var retVal = new VehicleData {
SavedInDeclarationMode = data.SavedInDeclarationMode, SavedInDeclarationMode = data.SavedInDeclarationMode,
...@@ -56,7 +56,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper ...@@ -56,7 +56,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
IntegrityStatus = data.IntegrityStatus, IntegrityStatus = data.IntegrityStatus,
VehicleCategory = data.VehicleCategory, VehicleCategory = data.VehicleCategory,
AxleConfiguration = data.AxleConfiguration, AxleConfiguration = data.AxleConfiguration,
CurbWeight = data.CurbWeight, CurbWeight = data.CurbWeightChassis,
//CurbWeigthExtra = data.CurbWeightExtra.SI<Kilogram>(), //CurbWeigthExtra = data.CurbWeightExtra.SI<Kilogram>(),
//Loading = data.Loading.SI<Kilogram>(), //Loading = data.Loading.SI<Kilogram>(),
GrossVehicleMassRating = data.GrossVehicleMassRating, GrossVehicleMassRating = data.GrossVehicleMassRating,
...@@ -71,7 +71,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper ...@@ -71,7 +71,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
return retVal; return retVal;
} }
internal RetarderData SetCommonRetarderData(IRetarderInputData data, IVehicleInputData vehicle) internal RetarderData SetCommonRetarderData(IRetarderInputData data, IVehicleDeclarationInputData vehicle)
{ {
var retarder = new RetarderData { var retarder = new RetarderData {
SavedInDeclarationMode = data.SavedInDeclarationMode, SavedInDeclarationMode = data.SavedInDeclarationMode,
...@@ -91,7 +91,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper ...@@ -91,7 +91,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
return retarder; return retarder;
} }
internal CombustionEngineData SetCommonCombustionEngineData(IEngineInputData data) internal CombustionEngineData SetCommonCombustionEngineData(IEngineDeclarationInputData data)
{ {
var retVal = new CombustionEngineData { var retVal = new CombustionEngineData {
SavedInDeclarationMode = data.SavedInDeclarationMode, SavedInDeclarationMode = data.SavedInDeclarationMode,
...@@ -112,7 +112,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper ...@@ -112,7 +112,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
return retVal; return retVal;
} }
internal GearboxData SetCommonGearboxData(IGearboxInputData data) internal GearboxData SetCommonGearboxData(IGearboxDeclarationInputData data)
{ {
return new GearboxData { return new GearboxData {
SavedInDeclarationMode = data.SavedInDeclarationMode, SavedInDeclarationMode = data.SavedInDeclarationMode,
......
...@@ -46,7 +46,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper ...@@ -46,7 +46,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
{ {
public class DeclarationDataAdapter : AbstractSimulationDataAdapter public class DeclarationDataAdapter : AbstractSimulationDataAdapter
{ {
public DriverData CreateDriverData(IDriverInputData data) public DriverData CreateDriverData(IDriverDeclarationInputData data)
{ {
if (!data.SavedInDeclarationMode) { if (!data.SavedInDeclarationMode) {
WarnDeclarationMode("DriverData"); WarnDeclarationMode("DriverData");
...@@ -81,7 +81,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper ...@@ -81,7 +81,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
return retVal; return retVal;
} }
internal VehicleData CreateVehicleData(IVehicleInputData data, Mission mission, Kilogram loading) internal VehicleData CreateVehicleData(IVehicleDeclarationInputData data, Mission mission, Kilogram loading)
{ {
if (!data.SavedInDeclarationMode) { if (!data.SavedInDeclarationMode) {
WarnDeclarationMode("VehicleData"); WarnDeclarationMode("VehicleData");
...@@ -133,7 +133,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper ...@@ -133,7 +133,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
return retVal; return retVal;
} }
internal CombustionEngineData CreateEngineData(IEngineInputData engine) internal CombustionEngineData CreateEngineData(IEngineDeclarationInputData engine)
{ {
if (!engine.SavedInDeclarationMode) { if (!engine.SavedInDeclarationMode) {
WarnDeclarationMode("EngineData"); WarnDeclarationMode("EngineData");
...@@ -146,7 +146,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper ...@@ -146,7 +146,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
return retVal; return retVal;
} }
internal GearboxData CreateGearboxData(IGearboxInputData gearbox, CombustionEngineData engine) internal GearboxData CreateGearboxData(IGearboxDeclarationInputData gearbox, CombustionEngineData engine)
{ {
if (!gearbox.SavedInDeclarationMode) { if (!gearbox.SavedInDeclarationMode) {
WarnDeclarationMode("GearboxData"); WarnDeclarationMode("GearboxData");
...@@ -199,7 +199,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper ...@@ -199,7 +199,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
} }
public IList<VectoRunData.AuxData> CreateAuxiliaryData(IAuxiliariesInputData auxInputData, public IList<VectoRunData.AuxData> CreateAuxiliaryData(IAuxiliariesDeclarationInputData auxInputData,
MissionType mission, VehicleClass hvdClass) MissionType mission, VehicleClass hvdClass)
{ {
if (!auxInputData.SavedInDeclarationMode) { if (!auxInputData.SavedInDeclarationMode) {
...@@ -260,7 +260,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper ...@@ -260,7 +260,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
Log.Warn("{0} not in Declaration Mode!", inputData); Log.Warn("{0} not in Declaration Mode!", inputData);
} }
public RetarderData CreateRetarderData(IRetarderInputData retarder, IVehicleInputData vehicle) public RetarderData CreateRetarderData(IRetarderInputData retarder, IVehicleDeclarationInputData vehicle)
{ {
return SetCommonRetarderData(retarder, vehicle); return SetCommonRetarderData(retarder, vehicle);
} }
......
...@@ -46,7 +46,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper ...@@ -46,7 +46,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
{ {
public class EngineeringDataAdapter : AbstractSimulationDataAdapter public class EngineeringDataAdapter : AbstractSimulationDataAdapter
{ {
internal VehicleData CreateVehicleData(IVehicleInputData data) internal VehicleData CreateVehicleData(IVehicleEngineeringInputData data)
{ {
if (data.SavedInDeclarationMode) { if (data.SavedInDeclarationMode) {
WarnEngineeringMode("VehicleData"); WarnEngineeringMode("VehicleData");
...@@ -95,7 +95,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper ...@@ -95,7 +95,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
Log.Warn("{0} is in Declaration Mode but is used for Engineering Mode!", msg); Log.Warn("{0} is in Declaration Mode but is used for Engineering Mode!", msg);
} }
internal CombustionEngineData CreateEngineData(IEngineInputData engine) internal CombustionEngineData CreateEngineData(IEngineEngineeringInputData engine)
{ {
if (engine.SavedInDeclarationMode) { if (engine.SavedInDeclarationMode) {
WarnEngineeringMode("EngineData"); WarnEngineeringMode("EngineData");
...@@ -108,7 +108,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper ...@@ -108,7 +108,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
return retVal; return retVal;
} }
internal GearboxData CreateGearboxData(IGearboxInputData gearbox, CombustionEngineData engineData) internal GearboxData CreateGearboxData(IGearboxEngineeringInputData gearbox, CombustionEngineData engineData)
{ {
if (gearbox.SavedInDeclarationMode) { if (gearbox.SavedInDeclarationMode) {
WarnEngineeringMode("GearboxData"); WarnEngineeringMode("GearboxData");
...@@ -157,7 +157,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper ...@@ -157,7 +157,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
return retVal; return retVal;
} }
public IList<VectoRunData.AuxData> CreateAuxiliaryData(IAuxiliariesInputData auxInputData) public IList<VectoRunData.AuxData> CreateAuxiliaryData(IAuxiliariesEngineeringInputData auxInputData)
{ {
if (auxInputData.SavedInDeclarationMode) { if (auxInputData.SavedInDeclarationMode) {
WarnEngineeringMode("AuxData"); WarnEngineeringMode("AuxData");
...@@ -172,7 +172,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper ...@@ -172,7 +172,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
}).Concat(new VectoRunData.AuxData { ID = "", DemandType = AuxiliaryDemandType.Direct }.ToEnumerable()).ToList(); }).Concat(new VectoRunData.AuxData { ID = "", DemandType = AuxiliaryDemandType.Direct }.ToEnumerable()).ToList();
} }
internal DriverData CreateDriverData(IDriverInputData driver) internal DriverData CreateDriverData(IDriverEngineeringInputData driver)
{ {
if (driver.SavedInDeclarationMode) { if (driver.SavedInDeclarationMode) {
WarnEngineeringMode("DriverData"); WarnEngineeringMode("DriverData");
...@@ -210,7 +210,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper ...@@ -210,7 +210,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper
} }
//================================= //=================================
public RetarderData CreateRetarderData(IRetarderInputData retarder, IVehicleInputData vehicle) public RetarderData CreateRetarderData(IRetarderInputData retarder, IVehicleEngineeringInputData vehicle)
{ {
return SetCommonRetarderData(retarder, vehicle); return SetCommonRetarderData(retarder, vehicle);
} }
......
...@@ -47,11 +47,11 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl ...@@ -47,11 +47,11 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
protected static Dictionary<MissionType, DrivingCycleData> CyclesCache = protected static Dictionary<MissionType, DrivingCycleData> CyclesCache =
new Dictionary<MissionType, DrivingCycleData>(); new Dictionary<MissionType, DrivingCycleData>();
protected IInputDataProvider InputDataProvider; protected IDeclarationInputDataProvider InputDataProvider;
protected DeclarationReport Report; protected DeclarationReport Report;
internal DeclarationModeVectoRunDataFactory(IInputDataProvider dataProvider, DeclarationReport report) internal DeclarationModeVectoRunDataFactory(IDeclarationInputDataProvider dataProvider, DeclarationReport report)
{ {
InputDataProvider = dataProvider; InputDataProvider = dataProvider;
Report = report; Report = report;
...@@ -62,7 +62,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl ...@@ -62,7 +62,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
var dao = new DeclarationDataAdapter(); var dao = new DeclarationDataAdapter();
var segment = GetVehicleClassification(InputDataProvider.VehicleInputData.VehicleCategory, var segment = GetVehicleClassification(InputDataProvider.VehicleInputData.VehicleCategory,
InputDataProvider.VehicleInputData.AxleConfiguration, InputDataProvider.VehicleInputData.AxleConfiguration,
InputDataProvider.VehicleInputData.GrossVehicleMassRating, InputDataProvider.VehicleInputData.CurbWeight); InputDataProvider.VehicleInputData.GrossVehicleMassRating, InputDataProvider.VehicleInputData.CurbWeightChassis);
var driverdata = dao.CreateDriverData(InputDataProvider.DriverInputData); var driverdata = dao.CreateDriverData(InputDataProvider.DriverInputData);
driverdata.AccelerationCurve = AccelerationCurveData.ReadFromStream(segment.AccelerationFile); driverdata.AccelerationCurve = AccelerationCurveData.ReadFromStream(segment.AccelerationFile);
......
...@@ -38,7 +38,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl ...@@ -38,7 +38,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
{ {
public class EngineOnlyVectoRunDataFactory : EngineeringModeVectoRunDataFactory public class EngineOnlyVectoRunDataFactory : EngineeringModeVectoRunDataFactory
{ {
internal EngineOnlyVectoRunDataFactory(IInputDataProvider dataProvider) : base(dataProvider) {} internal EngineOnlyVectoRunDataFactory(IEngineeringInputDataProvider dataProvider) : base(dataProvider) {}
public override IEnumerable<VectoRunData> NextRun() public override IEnumerable<VectoRunData> NextRun()
{ {
......
...@@ -45,9 +45,9 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl ...@@ -45,9 +45,9 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
{ {
protected DriverData Driver; protected DriverData Driver;
protected IInputDataProvider InputDataProvider; protected IEngineeringInputDataProvider InputDataProvider;
internal EngineeringModeVectoRunDataFactory(IInputDataProvider dataProvider) internal EngineeringModeVectoRunDataFactory(IEngineeringInputDataProvider dataProvider)
{ {
InputDataProvider = dataProvider; InputDataProvider = dataProvider;
} }
......
...@@ -68,17 +68,29 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl ...@@ -68,17 +68,29 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
ModWriter = writer; ModWriter = writer;
switch (mode) { switch (mode) {
case ExecutionMode.Declaration: case ExecutionMode.Declaration:
var declDataProvider = dataProvider as IDeclarationInputDataProvider;
if (declDataProvider == null) {
throw new VectoException("InputDataProvider does not implement DeclarationData interface");
}
report = report ?? new PDFDeclarationReport(writer); report = report ?? new PDFDeclarationReport(writer);
var windowsIdentity = WindowsIdentity.GetCurrent(); var windowsIdentity = WindowsIdentity.GetCurrent();
report.Creator = windowsIdentity != null ? windowsIdentity.Name : "N/A"; report.Creator = windowsIdentity != null ? windowsIdentity.Name : "N/A";
report.JobName = dataProvider.JobInputData().JobName; report.JobName = declDataProvider.JobInputData().JobName;
DataReader = new DeclarationModeVectoRunDataFactory(dataProvider, report); DataReader = new DeclarationModeVectoRunDataFactory(declDataProvider, report);
break; break;
case ExecutionMode.Engineering: case ExecutionMode.Engineering:
DataReader = new EngineeringModeVectoRunDataFactory(dataProvider); var engDataProvider = dataProvider as IEngineeringInputDataProvider;
if (engDataProvider == null) {
throw new VectoException("InputDataProvider does not implement Engineering interface");
}
DataReader = new EngineeringModeVectoRunDataFactory(engDataProvider);
break; break;
case ExecutionMode.EngineOnly: case ExecutionMode.EngineOnly:
DataReader = new EngineOnlyVectoRunDataFactory(dataProvider); var engineDataProvider = dataProvider as IEngineeringInputDataProvider;
if (engineDataProvider == null) {
throw new VectoException("InputDataProvider does not implement Engineering interface");
}
DataReader = new EngineOnlyVectoRunDataFactory(engineDataProvider);
break; break;
default: default:
throw new VectoException("Unkown factory mode in SimulatorFactory: {0}", mode); throw new VectoException("Unkown factory mode in SimulatorFactory: {0}", mode);
......
...@@ -114,7 +114,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data ...@@ -114,7 +114,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
} }
} }
internal AuxiliaryData(IAuxiliaryInputData data) internal AuxiliaryData(IAuxiliaryEngineeringInputData data)
{ {
TransmissionRatio = data.TransmissionRatio; TransmissionRatio = data.TransmissionRatio;
EfficiencyToEngine = data.EfficiencyToEngine; EfficiencyToEngine = data.EfficiencyToEngine;
......
...@@ -110,6 +110,7 @@ ...@@ -110,6 +110,7 @@
<Compile Include="Configuration\Constants.cs" /> <Compile Include="Configuration\Constants.cs" />
<Compile Include="Exceptions\VectoExceptions.cs" /> <Compile Include="Exceptions\VectoExceptions.cs" />
<Compile Include="Exceptions\VectoSimulationException.cs" /> <Compile Include="Exceptions\VectoSimulationException.cs" />
<Compile Include="InputData\EngineeringInputData.cs" />
<Compile Include="InputData\FileIO\JSON\JsonExtensionMethods.cs" /> <Compile Include="InputData\FileIO\JSON\JsonExtensionMethods.cs" />
<Compile Include="InputData\Impl\InputData.cs" /> <Compile Include="InputData\Impl\InputData.cs" />
<Compile Include="InputData\FileIO\JSON\JSONEngineData.cs" /> <Compile Include="InputData\FileIO\JSON\JSONEngineData.cs" />
...@@ -118,7 +119,7 @@ ...@@ -118,7 +119,7 @@
<Compile Include="InputData\FileIO\JSON\JSONInputDataFactory.cs" /> <Compile Include="InputData\FileIO\JSON\JSONInputDataFactory.cs" />
<Compile Include="InputData\FileIO\JSON\JSONVehicleData.cs" /> <Compile Include="InputData\FileIO\JSON\JSONVehicleData.cs" />
<Compile Include="InputData\IInputDataProvider.cs" /> <Compile Include="InputData\IInputDataProvider.cs" />
<Compile Include="InputData\InputData.cs" /> <Compile Include="InputData\DeclarationInputData.cs" />
<Compile Include="InputData\IntegrityStatus.cs" /> <Compile Include="InputData\IntegrityStatus.cs" />
<Compile Include="InputData\IVectoRunDataFactory.cs" /> <Compile Include="InputData\IVectoRunDataFactory.cs" />
<Compile Include="InputData\Reader\DataObjectAdaper\AbstractSimulationDataAdapter.cs" /> <Compile Include="InputData\Reader\DataObjectAdaper\AbstractSimulationDataAdapter.cs" />
......
...@@ -90,9 +90,8 @@ namespace TUGraz.VectoCore.Tests.FileIO ...@@ -90,9 +90,8 @@ namespace TUGraz.VectoCore.Tests.FileIO
var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile)));
((JObject)json["Body"]).Property("Cycles").Remove(); ((JObject)json["Body"]).Property("Cycles").Remove();
AssertHelper.Exception<InvalidFileFormatException>(() => { AssertHelper.Exception<InvalidFileFormatException>(
var tmp = new JSONInputDataV2(json, TestJobFile).Cycles; () => { var tmp = new JSONInputDataV2(json, TestJobFile).Cycles; }, "Key Cycles not found");
}, "Key Cycles not found");
} }
[TestMethod] [TestMethod]
...@@ -113,7 +112,8 @@ namespace TUGraz.VectoCore.Tests.FileIO ...@@ -113,7 +112,8 @@ namespace TUGraz.VectoCore.Tests.FileIO
((JObject)json["Body"]).Property("VACC").Remove(); ((JObject)json["Body"]).Property("VACC").Remove();
AssertHelper.Exception<VectoException>(() => { AssertHelper.Exception<VectoException>(() => {
var tmp = new JSONInputDataV2(json, TestJobFile).DriverInputData.AccelerationCurve; IEngineeringInputDataProvider input = new JSONInputDataV2(json, TestJobFile);
var tmp = input.DriverInputData.AccelerationCurve;
}, "AccelerationCurve (VACC) required"); }, "AccelerationCurve (VACC) required");
} }
...@@ -124,7 +124,8 @@ namespace TUGraz.VectoCore.Tests.FileIO ...@@ -124,7 +124,8 @@ namespace TUGraz.VectoCore.Tests.FileIO
var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile)));
json["Body"]["VACC"] = "Truck"; json["Body"]["VACC"] = "Truck";
var tmp = new JSONInputDataV2(json, TestJobFile).DriverInputData.AccelerationCurve; IEngineeringInputDataProvider input = new JSONInputDataV2(json, TestJobFile);
var tmp = input.DriverInputData.AccelerationCurve;
Assert.IsNotNull(tmp); Assert.IsNotNull(tmp);
} }
...@@ -134,8 +135,10 @@ namespace TUGraz.VectoCore.Tests.FileIO ...@@ -134,8 +135,10 @@ namespace TUGraz.VectoCore.Tests.FileIO
var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile)));
((JObject)json["Body"]).Property("LAC").Remove(); ((JObject)json["Body"]).Property("LAC").Remove();
AssertHelper.Exception<VectoException>(() => { AssertHelper.Exception<VectoException>(
var tmp = new JSONInputDataV2(json, TestJobFile).DriverInputData.Lookahead; () => {
IEngineeringInputDataProvider input = new JSONInputDataV2(json, TestJobFile);
var tmp = input.DriverInputData.Lookahead;
}, "Key LAC not found"); }, "Key LAC not found");
} }
...@@ -145,9 +148,9 @@ namespace TUGraz.VectoCore.Tests.FileIO ...@@ -145,9 +148,9 @@ namespace TUGraz.VectoCore.Tests.FileIO
var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile)));
((JObject)json["Body"]).Property("OverSpeedEcoRoll").Remove(); ((JObject)json["Body"]).Property("OverSpeedEcoRoll").Remove();
AssertHelper.Exception<VectoException>(() => { AssertHelper.Exception<VectoException>(
var tmp = new JSONInputDataV2(json, TestJobFile).DriverInputData.OverSpeedEcoRoll; () => { var tmp = new JSONInputDataV2(json, TestJobFile).DriverInputData.OverSpeedEcoRoll; },
}, "Key OverSpeedEcoRoll not found"); "Key OverSpeedEcoRoll not found");
} }
} }
......
...@@ -32,6 +32,8 @@ ...@@ -32,6 +32,8 @@
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.VisualStudio.TestTools.UnitTesting;
using TUGraz.VectoCore.Exceptions;
using TUGraz.VectoCore.InputData;
using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.InputData.FileIO.JSON;
using TUGraz.VectoCore.InputData.Reader.Impl; using TUGraz.VectoCore.InputData.Reader.Impl;
using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Declaration;
...@@ -50,7 +52,11 @@ namespace TUGraz.VectoCore.Tests.FileIO ...@@ -50,7 +52,11 @@ namespace TUGraz.VectoCore.Tests.FileIO
public void ReadDeclarationJobFile() public void ReadDeclarationJobFile()
{ {
var dataProvider = JSONInputDataFactory.ReadJsonJob(DeclarationJob); var dataProvider = JSONInputDataFactory.ReadJsonJob(DeclarationJob);
var reader = new DeclarationModeVectoRunDataFactory(dataProvider, null); var declarationProvider = dataProvider as IDeclarationInputDataProvider;
if (declarationProvider == null) {
throw new VectoException("Failed to cas to Engineering InputDataProvider");
}
var reader = new DeclarationModeVectoRunDataFactory(declarationProvider, null);
//reader.SetJobFile(DeclarationJob); //reader.SetJobFile(DeclarationJob);
var runData = reader.NextRun().First(); var runData = reader.NextRun().First();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment