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 42bf6389 authored by Michael KRISPER's avatar Michael KRISPER
Browse files

Added PTO in the Input Interfaces (With Vehicle as Source, JSON)

parent d76ab585
No related branches found
No related tags found
No related merge requests found
Showing with 70 additions and 16 deletions
......@@ -77,5 +77,7 @@ namespace TUGraz.VectoCommon.InputData
IRetarderInputData RetarderInputData { get; }
IDriverEngineeringInputData DriverInputData { get; }
IPTOTransmissionInputData PTOTransmissionInputData { get; }
}
}
\ No newline at end of file
......@@ -112,6 +112,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
protected readonly IEngineEngineeringInputData Engine;
protected readonly IVehicleEngineeringInputData VehicleData;
protected readonly IRetarderInputData Retarder;
protected readonly IPTOTransmissionInputData PTOTransmission;
private readonly string _jobname;
......@@ -146,6 +147,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
AngularGear = VehicleData as IAngularGearInputData;
Retarder = VehicleData as IRetarderInputData;
PTOTransmission = VehicleData as IPTOTransmissionInputData;
}
} catch (Exception e) {
throw new VectoException("JobFile: Failed to read Vehicle file '{0}': {1}", e, Body[JsonKeys.Vehicle_VehicleFile],
......@@ -263,6 +265,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
get { return this; }
}
public IPTOTransmissionInputData PTOTransmissionInputData
{
get { return PTOTransmission; }
}
IAuxiliariesDeclarationInputData IDeclarationInputDataProvider.AuxiliaryInputData()
{
return this;
......@@ -453,6 +460,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
#endregion
#region IAuxiliariesEngineeringInputData
IList<IAuxiliaryEngineeringInputData> IAuxiliariesEngineeringInputData.Auxiliaries
{
get { return AuxData().Cast<IAuxiliaryEngineeringInputData>().ToList(); }
......@@ -526,6 +535,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
return retVal;
}
#endregion
#region AdvancedAuxiliaries
public AuxiliaryModel AuxiliaryAssembly
......
......@@ -42,7 +42,8 @@ using TUGraz.VectoCore.InputData.Impl;
namespace TUGraz.VectoCore.InputData.FileIO.JSON
{
public class JSONVehicleDataV7 : JSONFile, IVehicleEngineeringInputData, IRetarderInputData, IAngularGearInputData
public class JSONVehicleDataV7 : JSONFile, IVehicleEngineeringInputData, IRetarderInputData, IAngularGearInputData,
IPTOTransmissionInputData
{
public JSONVehicleDataV7(JObject data, string fileName) : base(data, fileName) {}
......@@ -215,6 +216,30 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
#endregion
#region IPTOTransmissionInputData
string IPTOTransmissionInputData.PTOTransmissionType
{
get
{
try {
return Body.GetEx(JsonKeys.Vehicle_PTO).GetEx<string>(JsonKeys.Vehicle_PTO_Type);
} catch (Exception) {
return "None";
}
}
}
DataTable IPTOTransmissionInputData.PTOLossMap
{
get
{
return ReadTableData(Body.GetEx(JsonKeys.Vehicle_PTO).GetEx<string>(JsonKeys.Vehicle_PTO_LossMapFile), "LossMap");
}
}
#endregion
public string Vendor
{
get { return "N/A"; }
......
......@@ -258,6 +258,18 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
return SetCommonRetarderData(retarder);
}
public PTOTransmissionData CreatePTOTransmissionData(IPTOTransmissionInputData pto)
{
if (pto.PTOTransmissionType != "None") {
return new PTOTransmissionData {
TransmissionType = pto.PTOTransmissionType,
LossMap = PTOIdleLossMapReader.Create(pto.PTOLossMap)
};
}
return null;
}
public AdvancedAuxData CreateAdvancedAuxData(IAuxiliariesEngineeringInputData auxInputData)
{
return new AdvancedAuxData() {
......
......@@ -46,7 +46,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
{
protected DriverData Driver;
protected IEngineeringInputDataProvider InputDataProvider;
protected readonly IEngineeringInputDataProvider InputDataProvider;
internal EngineeringModeVectoRunDataFactory(IEngineeringInputDataProvider dataProvider)
{
......@@ -83,6 +83,7 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl
Aux = dao.CreateAuxiliaryData(InputDataProvider.AuxiliaryInputData()),
AdvancedAux = dao.CreateAdvancedAuxData(InputDataProvider.AuxiliaryInputData()),
Retarder = dao.CreateRetarderData(InputDataProvider.RetarderInputData, InputDataProvider.VehicleInputData),
PTOTransmission = dao.CreatePTOTransmissionData(InputDataProvider.PTOTransmissionInputData),
Cycle = DrivingCycleDataReader.ReadFromDataTable(cycle.CycleData, cycle.Name, crossWindRequired),
ExecutionMode = ExecutionMode.Engineering
});
......
......@@ -74,6 +74,9 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
[ValidateObject]
public RetarderData Retarder { get; internal set; }
[ValidateObject]
public PTOTransmissionData PTOTransmission { get; internal set; }
[ValidateObject]
public DriverData DriverData { get; internal set; }
......
......@@ -80,7 +80,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
var cycle = new PowertrainDrivingCycle(container, data.Cycle);
var directAux = new EngineAuxiliary(container);
directAux.AddDirect();
directAux.AddCycle();
var engine = new EngineOnlyCombustionEngine(container, data.EngineData);
engine.Connect(directAux.Port());
......@@ -102,7 +102,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
gearbox.ModelData.Gears.ToDictionary(g => g.Key, g => g.Value.Ratio))
.AddComponent(new AxleGear(container, data.AxleGearData))
.AddComponent(data.AngularGearData != null ? new AngularGear(container, data.AngularGearData) : null)
.AddRetarderAndGearbox(data.Retarder, gearbox, container)
.AddComponent(gearbox, data.Retarder, data.PTOTransmission, container)
.AddComponent(new CycleClutch(container))
.AddComponent(new CombustionEngine(container, data.EngineData, pt1Disabled: true))
.AddAuxiliaries(container, data);
......@@ -126,7 +126,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
.AddComponent(new Brakes(container))
.AddComponent(new AxleGear(container, data.AxleGearData))
.AddComponent(data.AngularGearData != null ? new AngularGear(container, data.AngularGearData) : null)
.AddRetarderAndGearbox(data.Retarder, GetGearbox(container, data.GearboxData), container)
.AddComponent(GetGearbox(container, data.GearboxData), data.Retarder, data.PTOTransmission, container)
.AddComponent(new Clutch(container, data.EngineData, engine.IdleController))
.AddComponent(engine)
.AddAuxiliaries(container, data);
......@@ -149,7 +149,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
.AddComponent(new Brakes(container))
.AddComponent(new AxleGear(container, data.AxleGearData))
.AddComponent(data.AngularGearData != null ? new AngularGear(container, data.AngularGearData) : null)
.AddRetarderAndGearbox(data.Retarder, new CycleGearbox(container, data.GearboxData), container)
.AddComponent(new CycleGearbox(container, data.GearboxData), data.Retarder, data.PTOTransmission, container)
.AddComponent(new CycleClutch(container))
.AddComponent(new CombustionEngine(container, data.EngineData))
.AddAuxiliaries(container, data);
......@@ -176,7 +176,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
.AddComponent(new Brakes(container))
.AddComponent(new AxleGear(container, data.AxleGearData))
.AddComponent(data.AngularGearData != null ? new AngularGear(container, data.AngularGearData) : null)
.AddRetarderAndGearbox(data.Retarder, GetGearbox(container, data.GearboxData), container)
.AddComponent(GetGearbox(container, data.GearboxData), data.Retarder, data.PTOTransmission, container)
.AddComponent(new Clutch(container, data.EngineData, engine.IdleController))
.AddComponent(engine)
.AddAuxiliaries(container, data);
......@@ -204,7 +204,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
aux.AddConstant(id, auxData.PowerDemand);
break;
case AuxiliaryDemandType.Direct:
aux.AddDirect();
aux.AddCycle();
break;
case AuxiliaryDemandType.Mapping:
aux.AddMapping(id, auxData.Data);
......
......@@ -74,7 +74,7 @@ namespace TUGraz.VectoCore.Tests.Integration.EngineOnlyCycle
var engineData = MockSimulationDataFactory.CreateEngineDataFromFile(engineFile);
var aux = new EngineAuxiliary(vehicle);
aux.AddDirect();
aux.AddCycle();
var engine = new EngineOnlyCombustionEngine(vehicle, engineData);
engine.Connect(aux);
......
......@@ -157,7 +157,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
var aux = new EngineAuxiliary(container);
aux.AddDirect();
aux.AddCycle();
var speed = 2358.RPMtoRad();
var torque = 500.SI<NewtonMeter>();
......@@ -198,7 +198,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
// efficiency_supply = 0.98
aux.AddMapping("ALT1", auxData);
aux.AddDirect();
aux.AddCycle();
var constPower = 1200.SI<Watt>();
aux.AddConstant("CONSTANT", constPower);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment