diff --git a/VECTO/Input Files/Gearbox.vb b/VECTO/Input Files/Gearbox.vb index d4f8857fed8c235a6e13b238e7981e1feef95b8d..38eec343d112e0b63a281b9d3ba102112262d0db 100644 --- a/VECTO/Input Files/Gearbox.vb +++ b/VECTO/Input Files/Gearbox.vb @@ -223,7 +223,7 @@ Public Class Gearbox End Try axlegearData = doa.CreateAxleGearData(gearbox) - gearboxData = doa.CreateGearboxData(gearbox, engine, axlegearData.AxleGear.Ratio, rdyn, vehiclecategory, gearbox) + gearboxData = doa.CreateGearboxData(gearbox, engine, axlegearData.AxleGear.Ratio, rdyn, vehiclecategory, gearbox, Nothing) Else Dim doa As EngineeringDataAdapter = New EngineeringDataAdapter() Try diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs index a904b27c8673ac5525a0cb932592fee5a5d0d7ad..1b65f8f0b05de1c77e176e08d64a5f2640335065 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs @@ -41,6 +41,7 @@ using TUGraz.VectoCore.InputData.Reader.ComponentData; using TUGraz.VectoCore.InputData.Reader.ShiftStrategy; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.Models.SimulationComponent; using TUGraz.VectoCore.Models.SimulationComponent.Data; using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine; using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox; @@ -250,7 +251,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter return null; } - internal GearboxData CreateGearboxData(IGearboxDeclarationInputData gearbox, CombustionEngineData engine, double axlegearRatio, Meter dynamicTyreRadius, VehicleCategory vehicleCategory, ITorqueConverterDeclarationInputData torqueConverter) + internal GearboxData CreateGearboxData(IGearboxDeclarationInputData gearbox, CombustionEngineData engine, double axlegearRatio, Meter dynamicTyreRadius, VehicleCategory vehicleCategory, ITorqueConverterDeclarationInputData torqueConverter, IShiftStrategy shiftStrategy) { if (!gearbox.SavedInDeclarationMode) { WarnDeclarationMode("GearboxData"); @@ -279,10 +280,13 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter var gear = gearsInput[(int)i]; var lossMap = CreateGearLossMap(gear, i, false); - var shiftPolygon = DeclarationData.Gearbox.ComputeShiftPolygon( - gearbox.Type, (int)i, engine.FullLoadCurves[i + 1], - gearsInput, engine, - axlegearRatio, dynamicTyreRadius); + var shiftPolygon = shiftStrategy != null + ? shiftStrategy.ComputeDeclarationShiftPolygon( + gearbox.Type, (int)i, engine.FullLoadCurves[i + 1], gearbox.Gears, engine, axlegearRatio, dynamicTyreRadius) + : DeclarationData.Gearbox.ComputeShiftPolygon( + gearbox.Type, (int)i, engine.FullLoadCurves[i + 1], + gearsInput, engine, + axlegearRatio, dynamicTyreRadius); var gearData = new GearData { ShiftPolygon = shiftPolygon, diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs index e51a0610f0cff589be446e92d6b900da4cf8ea2f..3fb9ecf907da064157097d6818f90d713bcb4429 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeVectoRunDataFactory.cs @@ -40,7 +40,9 @@ using TUGraz.VectoCore.InputData.Reader.ComponentData; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.Models.Simulation.Impl; using TUGraz.VectoCore.Models.SimulationComponent.Data; +using TUGraz.VectoCore.Models.SimulationComponent.Impl; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.Utils; @@ -115,9 +117,16 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl vehicle.Components.GearboxInputData, vehicle.TorqueLimits, vehicle.TankSystem); _axlegearData = _dao.CreateAxleGearData(InputDataProvider.JobInputData.Vehicle.Components.AxleGearInputData); _angledriveData = _dao.CreateAngledriveData(InputDataProvider.JobInputData.Vehicle.Components.AngledriveInputData); + var tmpRunData = new VectoRunData() { + ShiftStrategy = InputDataProvider.JobInputData.ShiftStrategy, + GearboxData = new GearboxData() { + Type = vehicle.Components.GearboxInputData.Type, + } + }; + var tmpStrategy = PowertrainBuilder.GetShiftStrategy(tmpRunData, new SimplePowertrainContainer(tmpRunData)); _gearboxData = _dao.CreateGearboxData(vehicle.Components.GearboxInputData, _engineData, _axlegearData.AxleGear.Ratio, - tempVehicle.DynamicTyreRadius, tempVehicle.VehicleCategory, vehicle.Components.TorqueConverterInputData); + tempVehicle.DynamicTyreRadius, tempVehicle.VehicleCategory, vehicle.Components.TorqueConverterInputData, tmpStrategy); _retarderData = _dao.CreateRetarderData(vehicle.Components.RetarderInputData); _ptoTransmissionData = _dao.CreatePTOTransmissionData(vehicle.Components.PTOTransmissionInputData); diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactory.cs index b89cbc6dc7c188fdd546e048f542d9b9505972b6..c0ae8998c1ce405f79192635ca91faa2eda2bf1a 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationVTPModeVectoRunDataFactory.cs @@ -41,7 +41,9 @@ using TUGraz.VectoCore.InputData.Reader.ComponentData; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.Models.Simulation.Impl; using TUGraz.VectoCore.Models.SimulationComponent.Data; +using TUGraz.VectoCore.Models.SimulationComponent.Impl; using TUGraz.VectoCore.OutputData; namespace TUGraz.VectoCore.InputData.Reader.Impl @@ -131,10 +133,11 @@ namespace TUGraz.VectoCore.InputData.Reader.Impl vehicle.Components.GearboxInputData, vehicle.TorqueLimits, vehicle.TankSystem); AxlegearData = Dao.CreateAxleGearData(vehicle.Components.AxleGearInputData); AngledriveData = Dao.CreateAngledriveData(vehicle.Components.AngledriveInputData); + GearboxData = Dao.CreateGearboxData( vehicle.Components.GearboxInputData, EngineData, AxlegearData.AxleGear.Ratio, - tempVehicle.DynamicTyreRadius, tempVehicle.VehicleCategory, vehicle.Components.TorqueConverterInputData); + tempVehicle.DynamicTyreRadius, tempVehicle.VehicleCategory, vehicle.Components.TorqueConverterInputData, null); RetarderData = Dao.CreateRetarderData(vehicle.Components.RetarderInputData); PTOTransmissionData = diff --git a/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs b/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs index 74c246025587cc9a6981da9397b059d7a455a6c7..7e6e9675a1a032d6eaa704b8eedeed21ce65174f 100644 --- a/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs +++ b/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs @@ -57,7 +57,7 @@ namespace TUGraz.VectoCore.Tests.Utils var dao = new DeclarationDataAdapter(); var engineData = dao.CreateEngineData(engineInput, null, gearboxInput, new List<ITorqueLimitInputData>()); return dao.CreateGearboxData(gearboxInput, engineData, ((IAxleGearInputData)gearboxInput).Ratio, 0.5.SI<Meter>(), - VehicleCategory.RigidTruck, (ITorqueConverterDeclarationInputData)gearboxInput); + VehicleCategory.RigidTruck, (ITorqueConverterDeclarationInputData)gearboxInput, null); } else { var dao = new EngineeringDataAdapter(); var engineData = dao.CreateEngineData(engineInput, gearboxInput, new List<ITorqueLimitInputData>(), (ITorqueConverterEngineeringInputData)gearboxInput);