From c2a885c86dd364538b9f47f6e9d05e33e504ed46 Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Mon, 27 May 2019 09:27:47 +0200 Subject: [PATCH] refactoring: remove deprecated underspeed from overspeed/ecoroll parameters, adding dedicated eco-roll input parameters --- VECTO/GUI/VectoJobForm.Designer.vb | 54 ------------------- VECTO/GUI/VectoJobForm.vb | 18 ++----- VECTO/Input Files/VectoJob.vb | 17 ++---- VECTO/OutputData/JSONFileWriter.vb | 3 +- .../InputData/DeclarationInputData.cs | 2 +- .../InputData/EngineeringInputData.cs | 5 -- VectoCommon/VectoCommon/Models/DriverMode.cs | 40 -------------- .../Resources/XMLNames.Designer.cs | 9 ++++ .../VectoCommon/Resources/XMLNames.resx | 3 ++ VectoCommon/VectoCommon/VectoCommon.csproj | 1 - .../InputData/FileIO/JSON/JSONInputData.cs | 4 +- .../DataProvider/XMLEngineeringOverspeed.cs | 11 +++- .../VectoCore/InputData/Impl/InputData.cs | 3 +- .../DeclarationDataAdapter.cs | 10 +--- .../EngineeringDataAdapter.cs | 3 +- .../Models/Declaration/DeclarationData.cs | 6 --- .../SimulationComponent/Data/DriverData.cs | 20 +++++-- .../Impl/DefaultDriverStrategy.cs | 2 +- .../XMLEngineeringWriterV10InjectModule.cs | 1 + .../DriverData/XMLAccelerationDataWriter.cs | 2 +- .../XMLEngineeringLookaheadDataWriter.cs | 2 +- .../XMLEngineeringOverspeedDataWriter.cs | 10 ++-- .../DriverData/XMLShiftParmeterDataWriter.cs | 2 +- .../FileIO/SimulationDataReaderTest.cs | 4 +- .../VectoCoreTest/Integration/ATPowerTrain.cs | 8 +-- .../Integration/CoachAdvancedAuxPowertrain.cs | 8 +-- .../Integration/CoachPowerTrain.cs | 8 +-- .../SimulationRuns/FullPowertrain.cs | 2 +- .../SimulationRuns/MinimalPowertrain.cs | 2 +- .../Integration/Truck40tPowerTrain.cs | 8 +-- .../Models/SimulationComponent/DriverTest.cs | 2 +- .../XML/XMLEngineeringInputRefTest.cs | 2 +- .../XML/XMLEngineeringInputSingleTest.cs | 8 ++- 33 files changed, 75 insertions(+), 205 deletions(-) delete mode 100644 VectoCommon/VectoCommon/Models/DriverMode.cs diff --git a/VECTO/GUI/VectoJobForm.Designer.vb b/VECTO/GUI/VectoJobForm.Designer.vb index 1259757385..9817215ce0 100644 --- a/VECTO/GUI/VectoJobForm.Designer.vb +++ b/VECTO/GUI/VectoJobForm.Designer.vb @@ -88,10 +88,6 @@ Partial Class VectoJobForm Me.tbLacDfVelocityDropFile = New System.Windows.Forms.TextBox() Me.CbLookAhead = New System.Windows.Forms.CheckBox() Me.GroupBox1 = New System.Windows.Forms.GroupBox() - Me.GroupBox2 = New System.Windows.Forms.GroupBox() - Me.Label22 = New System.Windows.Forms.Label() - Me.TbUnderSpeed = New System.Windows.Forms.TextBox() - Me.Label20 = New System.Windows.Forms.Label() Me.PnEcoRoll = New System.Windows.Forms.Panel() Me.Label21 = New System.Windows.Forms.Label() Me.Label14 = New System.Windows.Forms.Label() @@ -159,7 +155,6 @@ Partial Class VectoJobForm Me.GrLAC.SuspendLayout Me.pnLookAheadCoasting.SuspendLayout Me.GroupBox1.SuspendLayout - Me.GroupBox2.SuspendLayout Me.PnEcoRoll.SuspendLayout Me.StatusStrip1.SuspendLayout Me.ToolStrip1.SuspendLayout @@ -806,7 +801,6 @@ Partial Class VectoJobForm ' 'GroupBox1 ' - Me.GroupBox1.Controls.Add(Me.GroupBox2) Me.GroupBox1.Controls.Add(Me.PnEcoRoll) Me.GroupBox1.Controls.Add(Me.RdOverspeed) Me.GroupBox1.Controls.Add(Me.RdOff) @@ -817,48 +811,6 @@ Partial Class VectoJobForm Me.GroupBox1.TabStop = false Me.GroupBox1.Text = "Overspeed" ' - 'GroupBox2 - ' - Me.GroupBox2.Controls.Add(Me.Label22) - Me.GroupBox2.Controls.Add(Me.TbUnderSpeed) - Me.GroupBox2.Controls.Add(Me.Label20) - Me.GroupBox2.Enabled = false - Me.GroupBox2.Location = New System.Drawing.Point(338, 14) - Me.GroupBox2.Name = "GroupBox2" - Me.GroupBox2.Size = New System.Drawing.Size(168, 57) - Me.GroupBox2.TabIndex = 37 - Me.GroupBox2.TabStop = false - Me.GroupBox2.Text = "!! hidden !!" - Me.GroupBox2.Visible = false - ' - 'Label22 - ' - Me.Label22.AutoSize = true - Me.Label22.Location = New System.Drawing.Point(6, 16) - Me.Label22.Name = "Label22" - Me.Label22.Size = New System.Drawing.Size(91, 13) - Me.Label22.TabIndex = 1 - Me.Label22.Text = "Max. Underspeed" - Me.Label22.Visible = false - ' - 'TbUnderSpeed - ' - Me.TbUnderSpeed.Location = New System.Drawing.Point(9, 32) - Me.TbUnderSpeed.Name = "TbUnderSpeed" - Me.TbUnderSpeed.Size = New System.Drawing.Size(64, 20) - Me.TbUnderSpeed.TabIndex = 1 - Me.TbUnderSpeed.Visible = false - ' - 'Label20 - ' - Me.Label20.AutoSize = true - Me.Label20.Location = New System.Drawing.Point(75, 36) - Me.Label20.Name = "Label20" - Me.Label20.Size = New System.Drawing.Size(38, 13) - Me.Label20.TabIndex = 3 - Me.Label20.Text = "[km/h]" - Me.Label20.Visible = false - ' 'PnEcoRoll ' Me.PnEcoRoll.Controls.Add(Me.Label21) @@ -1411,8 +1363,6 @@ Partial Class VectoJobForm Me.pnLookAheadCoasting.PerformLayout Me.GroupBox1.ResumeLayout(false) Me.GroupBox1.PerformLayout - Me.GroupBox2.ResumeLayout(false) - Me.GroupBox2.PerformLayout Me.PnEcoRoll.ResumeLayout(false) Me.PnEcoRoll.PerformLayout Me.StatusStrip1.ResumeLayout(false) @@ -1482,13 +1432,10 @@ End Sub Friend WithEvents CbLookAhead As CheckBox Friend WithEvents GroupBox1 As GroupBox Friend WithEvents Label21 As Label - Friend WithEvents Label20 As Label Friend WithEvents Label14 As Label Friend WithEvents TbVmin As TextBox - Friend WithEvents TbUnderSpeed As TextBox Friend WithEvents TbOverspeed As TextBox Friend WithEvents Label23 As Label - Friend WithEvents Label22 As Label Friend WithEvents Label13 As Label Friend WithEvents RdOverspeed As RadioButton Friend WithEvents RdOff As RadioButton @@ -1532,7 +1479,6 @@ End Sub Friend WithEvents TbAuxPAdd As System.Windows.Forms.TextBox Friend WithEvents Label8 As System.Windows.Forms.Label Friend WithEvents Label15 As System.Windows.Forms.Label - Friend WithEvents GroupBox2 As System.Windows.Forms.GroupBox Friend WithEvents lblEngineCharacteristics As System.Windows.Forms.Label Friend WithEvents TabPgADAS As TabPage Friend WithEvents GroupBox4 As GroupBox diff --git a/VECTO/GUI/VectoJobForm.vb b/VECTO/GUI/VectoJobForm.vb index deec436512..3274de6dde 100644 --- a/VECTO/GUI/VectoJobForm.vb +++ b/VECTO/GUI/VectoJobForm.vb @@ -120,7 +120,6 @@ Public Class VectoJobForm tbLacDfVelocityDropFile.Text = "" TbOverspeed.Text = DeclarationData.Driver.OverSpeed.AllowedOverSpeed.AsKmph.ToGUIFormat() 'cDeclaration.Overspeed - TbUnderSpeed.Text = DeclarationData.Driver.OverSpeed.UnderSpeed.AsKmph.ToGUIFormat() _ ' cDeclaration.Underspeed TbVmin.Text = DeclarationData.Driver.OverSpeed.MinSpeed.AsKmph.ToGUIFormat() 'cDeclaration.ECvmin TbAuxPAdd.Text = "" @@ -512,17 +511,13 @@ Public Class VectoJobForm Catch ex As Exception End Try - If driver.OverSpeedData.Mode = DriverMode.EcoRoll Then - 'mk 2016-11-10: removed eco roll - instead automatically overspeed is used - 'RdEcoRoll.Checked = True - RdOverspeed.Checked = True - ElseIf driver.OverSpeedData.Mode = DriverMode.Overspeed Then + + If driver.OverSpeedData.Enabled Then RdOverspeed.Checked = True Else RdOff.Checked = True End If TbOverspeed.Text = driver.OverSpeedData.OverSpeed.AsKmph.ToGUIFormat() - TbUnderSpeed.Text = driver.OverSpeedData.UnderSpeed.AsKmph.ToGUIFormat() TbVmin.Text = driver.OverSpeedData.MinSpeed.AsKmph.ToGUIFormat() If Not driver.Lookahead Is Nothing Then CbLookAhead.Checked = driver.Lookahead.Enabled @@ -645,10 +640,8 @@ Public Class VectoJobForm vectoJob.EngineOnly = CbEngOnly.Checked - vectoJob.EcoRollOn = False 'RdEcoRoll.Checked vectoJob.OverSpeedOn = RdOverspeed.Checked vectoJob.OverSpeed = TbOverspeed.Text.ToDouble(0) - vectoJob.UnderSpeed = TbUnderSpeed.Text.ToDouble(0) vectoJob.VMin = TbVmin.Text.ToDouble(0) vectoJob.LookAheadOn = CbLookAhead.Checked 'vec0.ALookahead = CSng(fTextboxToNumString(TbAlookahead.Text)) @@ -706,7 +699,6 @@ Public Class VectoJobForm CbLookAhead.Checked = True 'TbAlookahead.Text = "-0.5" TbOverspeed.Text = DeclarationData.Driver.OverSpeed.AllowedOverSpeed.AsKmph.ToGUIFormat() - TbUnderSpeed.Text = DeclarationData.Driver.OverSpeed.UnderSpeed.AsKmph.ToGUIFormat() TbVmin.Text = DeclarationData.Driver.OverSpeed.MinSpeed.AsKmph.ToGUIFormat() 'TbVminLA.Text = "50" @@ -772,7 +764,7 @@ Public Class VectoJobForm Change() End Sub - Private Sub TbUnderSpeed_TextChanged(sender As Object, e As EventArgs) Handles TbUnderSpeed.TextChanged + Private Sub TbUnderSpeed_TextChanged(sender As Object, e As EventArgs) Change() End Sub @@ -1076,10 +1068,6 @@ lbDlog: Label13.Enabled = overspeed Or ecoRoll Label14.Enabled = overspeed Or ecoRoll - TbUnderSpeed.Enabled = ecoRoll - Label22.Enabled = ecoRoll - Label20.Enabled = ecoRoll - TbVmin.Enabled = overspeed Or ecoRoll Label23.Enabled = overspeed Or ecoRoll Label21.Enabled = overspeed Or ecoRoll diff --git a/VECTO/Input Files/VectoJob.vb b/VECTO/Input Files/VectoJob.vb index 9bf0bf77ce..31023ceeae 100644 --- a/VECTO/Input Files/VectoJob.vb +++ b/VECTO/Input Files/VectoJob.vb @@ -68,8 +68,7 @@ Public Class VectoJob Public LookAheadOn As Boolean Public OverSpeedOn As Boolean Public OverSpeed As Double - Public UnderSpeed As Double - Public EcoRollOn As Boolean + Public LookAheadMinSpeed As Double Public EngineStopStartActivationThreshold As Double @@ -216,18 +215,10 @@ Public Class VectoJob Public ReadOnly Property OverSpeedData As IOverSpeedEngineeringInputData _ Implements IDriverEngineeringInputData.OverSpeedData Get - Dim mode As DriverMode = DriverMode.Off - If EcoRollOn Then - mode = DriverMode.EcoRoll - ElseIf OverSpeedOn Then - mode = DriverMode.Overspeed - End If - - Return New OverSpeedInputData() With { - .Mode = mode, + Return New OverSpeedInputData() With { + .Enabled = OverSpeedOn, .MinSpeed = VMin.KMPHtoMeterPerSecond(), - .OverSpeed = OverSpeed.KMPHtoMeterPerSecond(), - .UnderSpeed = UnderSpeed.KMPHtoMeterPerSecond() + .OverSpeed = OverSpeed.KMPHtoMeterPerSecond() } End Get End Property diff --git a/VECTO/OutputData/JSONFileWriter.vb b/VECTO/OutputData/JSONFileWriter.vb index 0fe9238eea..7929613598 100644 --- a/VECTO/OutputData/JSONFileWriter.vb +++ b/VECTO/OutputData/JSONFileWriter.vb @@ -354,11 +354,10 @@ Public Class JSONFileWriter 'Overspeed / EcoRoll Dim overspeedDic As Dictionary(Of String, Object) = New Dictionary(Of String, Object) - overspeedDic.Add("Mode", driver.OverSpeedData.Mode.ToString()) + overspeedDic.Add("Mode", If(driver.OverSpeedData.Enabled, "Overspeed" ,"Off")) overspeedDic.Add("MinSpeed", driver.OverSpeedData.MinSpeed.AsKmph) overspeedDic.Add("OverSpeed", driver.OverSpeedData.OverSpeed.AsKmph) - overspeedDic.Add("UnderSpeed", driver.OverSpeedData.UnderSpeed.AsKmph) body.Add("OverSpeedEcoRoll", overspeedDic) 'Cycles diff --git a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs index c32b74e64f..f0ccab2740 100644 --- a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs +++ b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs @@ -570,7 +570,7 @@ namespace TUGraz.VectoCommon.InputData /// P015 /// cf. VECTO Input Parameters.xlsx /// </summary> - DriverMode Mode { get; } + bool Enabled { get; } } public interface IAuxiliaryDeclarationInputData diff --git a/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs b/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs index 24d8d42500..e56a294f5a 100644 --- a/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs +++ b/VectoCommon/VectoCommon/InputData/EngineeringInputData.cs @@ -368,11 +368,6 @@ namespace TUGraz.VectoCommon.InputData /// </summary> MeterPerSecond OverSpeed { get; } - /// <summary> - /// P018 - /// cf. VECTO Input Parameters.xlsx - /// </summary> - MeterPerSecond UnderSpeed { get; } } public interface ILookaheadCoastingInputData : IDriverModelData diff --git a/VectoCommon/VectoCommon/Models/DriverMode.cs b/VectoCommon/VectoCommon/Models/DriverMode.cs deleted file mode 100644 index 6ca9a003f5..0000000000 --- a/VectoCommon/VectoCommon/Models/DriverMode.cs +++ /dev/null @@ -1,40 +0,0 @@ -/* -* This file is part of VECTO. -* -* Copyright © 2012-2019 European Union -* -* Developed by Graz University of Technology, -* Institute of Internal Combustion Engines and Thermodynamics, -* Institute of Technical Informatics -* -* VECTO is licensed under the EUPL, Version 1.1 or - as soon they will be approved -* by the European Commission - subsequent versions of the EUPL (the "Licence"); -* You may not use VECTO except in compliance with the Licence. -* You may obtain a copy of the Licence at: -* -* https://joinup.ec.europa.eu/community/eupl/og_page/eupl -* -* Unless required by applicable law or agreed to in writing, VECTO -* distributed under the Licence is distributed on an "AS IS" basis, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the Licence for the specific language governing permissions and -* limitations under the Licence. -* -* Authors: -* Stefan Hausberger, hausberger@ivt.tugraz.at, IVT, Graz University of Technology -* Christian Kreiner, christian.kreiner@tugraz.at, ITI, Graz University of Technology -* Michael Krisper, michael.krisper@tugraz.at, ITI, Graz University of Technology -* Raphael Luz, luz@ivt.tugraz.at, IVT, Graz University of Technology -* Markus Quaritsch, markus.quaritsch@tugraz.at, IVT, Graz University of Technology -* Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology -*/ - -namespace TUGraz.VectoCommon.Models -{ - public enum DriverMode - { - Off, - Overspeed, - EcoRoll, - } -} \ No newline at end of file diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs index bb705b763d..36fa3313ae 100644 --- a/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs +++ b/VectoCommon/VectoCommon/Resources/XMLNames.Designer.cs @@ -852,6 +852,15 @@ namespace TUGraz.VectoCommon.Resources { } } + /// <summary> + /// Looks up a localized string similar to Enabled. + /// </summary> + public static string DriverModel_Overspeed_Enabled { + get { + return ResourceManager.GetString("DriverModel_Overspeed_Enabled", resourceCulture); + } + } + /// <summary> /// Looks up a localized string similar to MinSpeed. /// </summary> diff --git a/VectoCommon/VectoCommon/Resources/XMLNames.resx b/VectoCommon/VectoCommon/Resources/XMLNames.resx index 0f45c51c26..cc488d14ef 100644 --- a/VectoCommon/VectoCommon/Resources/XMLNames.resx +++ b/VectoCommon/VectoCommon/Resources/XMLNames.resx @@ -1059,4 +1059,7 @@ <data name="DriverModel_EcoRoll" xml:space="preserve"> <value>EcoRoll</value> </data> + <data name="DriverModel_Overspeed_Enabled" xml:space="preserve"> + <value>Enabled</value> + </data> </root> \ No newline at end of file diff --git a/VectoCommon/VectoCommon/VectoCommon.csproj b/VectoCommon/VectoCommon/VectoCommon.csproj index 298bb028ec..3bc2cd03be 100644 --- a/VectoCommon/VectoCommon/VectoCommon.csproj +++ b/VectoCommon/VectoCommon/VectoCommon.csproj @@ -73,7 +73,6 @@ <Compile Include="Models\AxleLineType.cs" /> <Compile Include="Models\CertificationMethod.cs" /> <Compile Include="Models\CrossWindCorrectionMode.cs" /> - <Compile Include="Models\DriverMode.cs" /> <Compile Include="Models\ExecutionMode.cs" /> <Compile Include="Models\FuelType.cs" /> <Compile Include="Models\GearboxType.cs" /> diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs index 4224708ebf..42cd22086e 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs @@ -465,14 +465,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON get { var overspeed = Body.GetEx(JsonKeys.DriverData_OverspeedEcoRoll); return new OverSpeedInputData() { - Mode = DriverData.ParseDriverMode( + Enabled = DriverData.ParseDriverMode( overspeed.GetEx<string>(JsonKeys.DriverData_OverspeedEcoRoll_Mode)), MinSpeed = overspeed.GetEx<double>(JsonKeys.DriverData_OverspeedEcoRoll_MinSpeed) .KMPHtoMeterPerSecond(), OverSpeed = overspeed.GetEx<double>(JsonKeys.DriverData_OverspeedEcoRoll_OverSpeed) .KMPHtoMeterPerSecond(), - UnderSpeed = - overspeed.GetEx<double>(JsonKeys.DriverData_OverspeedEcoRoll_UnderSpeed).KMPHtoMeterPerSecond() }; } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringOverspeed.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringOverspeed.cs index 49e444c047..210c8b1e61 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringOverspeed.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringOverspeed.cs @@ -1,3 +1,4 @@ +using System; using System.Xml; using System.Xml.Linq; using TUGraz.VectoCommon.Models; @@ -26,9 +27,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider #region Implementation of IOverSpeedEcoRollDeclarationInputData - public virtual DriverMode Mode + public virtual bool Enabled { - get { return GetNode(XMLNames.DriverModel_Overspeed_Mode, required: false)?.InnerText.ParseEnum<DriverMode>() ?? DriverMode.Off; } + get { return GetNode(XMLNames.DriverModel_Overspeed_Mode, required: false)?.InnerText.Equals("Overspeed", StringComparison.InvariantCultureIgnoreCase) ?? false; } } #endregion @@ -66,5 +67,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider public XMLEngineeringOverspeedV10(IXMLEngineeringDriverData driverData, XmlNode node) : base(driverData, node) { } + + public override bool Enabled + { + get { return XmlConvert.ToBoolean(GetNode(XMLNames.DriverModel_Overspeed_Enabled, required: false)?.InnerText ?? "false"); } + } + } } diff --git a/VectoCore/VectoCore/InputData/Impl/InputData.cs b/VectoCore/VectoCore/InputData/Impl/InputData.cs index f95031a34f..1b58b70b9d 100644 --- a/VectoCore/VectoCore/InputData/Impl/InputData.cs +++ b/VectoCore/VectoCore/InputData/Impl/InputData.cs @@ -60,13 +60,12 @@ namespace TUGraz.VectoCore.InputData.Impl public class OverSpeedInputData : IOverSpeedEngineeringInputData { - public DriverMode Mode { get; internal set; } + public bool Enabled { get; internal set; } public MeterPerSecond MinSpeed { get; internal set; } public MeterPerSecond OverSpeed { get; internal set; } - public MeterPerSecond UnderSpeed { get; internal set; } } public class DriverAccelerationInputData : IDriverAccelerationData diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs index d395a74496..e7d2a93c93 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapter.cs @@ -64,17 +64,11 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter LookAheadDistanceFactor = DeclarationData.Driver.LookAhead.LookAheadDistanceFactor, }; var overspeedData = new DriverData.OverSpeedData { - Mode = DriverMode.Overspeed, + Enabled = true, MinSpeed = DeclarationData.Driver.OverSpeed.MinSpeed, OverSpeed = DeclarationData.Driver.OverSpeed.AllowedOverSpeed, - UnderSpeed = DeclarationData.Driver.OverSpeed.UnderSpeed }; - if (!DeclarationData.Driver.OverSpeed.AllowedModes.Contains(overspeedData.Mode)) { - throw new VectoSimulationException( - "Specified Overspeed/EcoRoll Mode not allowed in declaration mode! {0}", - overspeedData.Mode); - } - + var retVal = new DriverData { LookAheadCoasting = lookAheadData, OverSpeed = overspeedData, diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs index 8a2975ebae..8efa64558e 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs @@ -363,10 +363,9 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter LookAheadDistanceFactor = driver.Lookahead.LookaheadDistanceFactor }; var overspeedData = new DriverData.OverSpeedData { - Mode = driver.OverSpeedData.Mode, + Enabled = driver.OverSpeedData.Enabled, MinSpeed = driver.OverSpeedData.MinSpeed, OverSpeed = driver.OverSpeedData.OverSpeed, - UnderSpeed = driver.OverSpeedData.UnderSpeed, }; var retVal = new DriverData { AccelerationCurve = accelerationData, diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs index 29f5895aa8..d499209203 100644 --- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs +++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs @@ -129,14 +129,8 @@ namespace TUGraz.VectoCore.Models.Declaration public static class OverSpeed { - public static readonly IList<DriverMode> AllowedModes = new List<DriverMode> { - DriverMode.EcoRoll, - DriverMode.Overspeed - }; - public static readonly MeterPerSecond MinSpeed = 50.KMPHtoMeterPerSecond(); public static readonly MeterPerSecond AllowedOverSpeed = 2.5.KMPHtoMeterPerSecond(); - public static readonly MeterPerSecond UnderSpeed = 5.KMPHtoMeterPerSecond(); } public static class EngineStopStart diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/DriverData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/DriverData.cs index 129ec4c441..b104fcf0a7 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Data/DriverData.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/DriverData.cs @@ -50,20 +50,30 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data [Required, ValidateObject] public EcoRollData EcoRoll; - public static DriverMode ParseDriverMode(string mode) + public static bool ParseDriverMode(string mode) { - return mode.Replace("-", "").ParseEnum<DriverMode>(); + if (mode == null) { + return false; + } + var txt = mode.Replace("-", ""); + if (txt.Equals("Off", StringComparison.InvariantCultureIgnoreCase)) { + return false; + } + + if (txt.Equals(bool.TrueString, StringComparison.InvariantCultureIgnoreCase)) { + return true; + } + + return false; } public class OverSpeedData { - public DriverMode Mode; + public bool Enabled; [Required, SIRange(0, 120 / Constants.MeterPerSecondToKMH)] public MeterPerSecond MinSpeed; [Required, SIRange(0, 50 / Constants.MeterPerSecondToKMH)] public MeterPerSecond OverSpeed; - - [Required, SIRange(0, 50 / Constants.MeterPerSecondToKMH)] public MeterPerSecond UnderSpeed; } public class EcoRollData diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs index f25d16c51c..8ed2910571 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs @@ -407,7 +407,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl return false; } - return Driver.DriverData.OverSpeed.Mode == DriverMode.Overspeed + return Driver.DriverData.OverSpeed.Enabled && velocity > Driver.DriverData.OverSpeed.MinSpeed && (velocity + Driver.DriverData.OverSpeed.OverSpeed) < (Driver.DataBus.MaxVehicleSpeed ?? 500.KMPHtoMeterPerSecond()); diff --git a/VectoCore/VectoCore/OutputData/XML/Engineering/NinjectModules/XMLEngineeringWriterV10InjectModule.cs b/VectoCore/VectoCore/OutputData/XML/Engineering/NinjectModules/XMLEngineeringWriterV10InjectModule.cs index f368c38b46..1f91bb78b3 100644 --- a/VectoCore/VectoCore/OutputData/XML/Engineering/NinjectModules/XMLEngineeringWriterV10InjectModule.cs +++ b/VectoCore/VectoCore/OutputData/XML/Engineering/NinjectModules/XMLEngineeringWriterV10InjectModule.cs @@ -1,6 +1,7 @@ using Ninject.Modules; using TUGraz.VectoCore.OutputData.XML.Engineering.Interfaces; using TUGraz.VectoCore.OutputData.XML.Engineering.Writer; +using TUGraz.VectoCore.OutputData.XML.Engineering.Writer.DriverData; using TUGraz.VectoCore.OutputData.XML.Writer; using TUGraz.VectoCore.Utils; diff --git a/VectoCore/VectoCore/OutputData/XML/Engineering/Writer/DriverData/XMLAccelerationDataWriter.cs b/VectoCore/VectoCore/OutputData/XML/Engineering/Writer/DriverData/XMLAccelerationDataWriter.cs index 111392a037..5c710154cf 100644 --- a/VectoCore/VectoCore/OutputData/XML/Engineering/Writer/DriverData/XMLAccelerationDataWriter.cs +++ b/VectoCore/VectoCore/OutputData/XML/Engineering/Writer/DriverData/XMLAccelerationDataWriter.cs @@ -8,7 +8,7 @@ using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.OutputData.XML.Engineering.Interfaces; using TUGraz.VectoCore.Utils; -namespace TUGraz.VectoCore.OutputData.XML.Engineering.Writer +namespace TUGraz.VectoCore.OutputData.XML.Engineering.Writer.DriverData { internal class XMLAccelerationDataWriterV10 : AbstractXMLWriter, IXMLAccelerationDataWriter { diff --git a/VectoCore/VectoCore/OutputData/XML/Engineering/Writer/DriverData/XMLEngineeringLookaheadDataWriter.cs b/VectoCore/VectoCore/OutputData/XML/Engineering/Writer/DriverData/XMLEngineeringLookaheadDataWriter.cs index 9bfeda37e5..b53f5f7d36 100644 --- a/VectoCore/VectoCore/OutputData/XML/Engineering/Writer/DriverData/XMLEngineeringLookaheadDataWriter.cs +++ b/VectoCore/VectoCore/OutputData/XML/Engineering/Writer/DriverData/XMLEngineeringLookaheadDataWriter.cs @@ -6,7 +6,7 @@ using TUGraz.VectoCommon.Resources; using TUGraz.VectoCore.OutputData.XML.Engineering.Interfaces; using TUGraz.VectoCore.Utils; -namespace TUGraz.VectoCore.OutputData.XML.Engineering.Writer +namespace TUGraz.VectoCore.OutputData.XML.Engineering.Writer.DriverData { internal class XMLEngineeringLookaheadDataWriterV10 : AbstractXMLWriter, IXMLLookaheadDataWriter { diff --git a/VectoCore/VectoCore/OutputData/XML/Engineering/Writer/DriverData/XMLEngineeringOverspeedDataWriter.cs b/VectoCore/VectoCore/OutputData/XML/Engineering/Writer/DriverData/XMLEngineeringOverspeedDataWriter.cs index 0358a6d83c..2aec7d9785 100644 --- a/VectoCore/VectoCore/OutputData/XML/Engineering/Writer/DriverData/XMLEngineeringOverspeedDataWriter.cs +++ b/VectoCore/VectoCore/OutputData/XML/Engineering/Writer/DriverData/XMLEngineeringOverspeedDataWriter.cs @@ -1,11 +1,10 @@ using System.Xml.Linq; using TUGraz.VectoCommon.InputData; -using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCore.OutputData.XML.Engineering.Interfaces; using TUGraz.VectoCore.Utils; -namespace TUGraz.VectoCore.OutputData.XML.Engineering.Writer +namespace TUGraz.VectoCore.OutputData.XML.Engineering.Writer.DriverData { internal class XMLEngineeringOverspeedDataWriterV10 : AbstractXMLWriter, IXMLOverspeedDataWriter { @@ -25,17 +24,16 @@ namespace TUGraz.VectoCore.OutputData.XML.Engineering.Writer return new object[] { }; } - if (overspeed.Mode != DriverMode.Off) { + if (overspeed.Enabled) { return new object[] { - new XElement(ns + XMLNames.DriverModel_Overspeed_Mode, overspeed.Mode), + new XElement(ns + XMLNames.DriverModel_Overspeed_Enabled, overspeed.Enabled), new XElement(ns + XMLNames.DriverModel_Overspeed_MinSpeed, overspeed.MinSpeed.AsKmph), new XElement(ns + XMLNames.DriverModel_Overspeed_AllowedOverspeed, overspeed.OverSpeed.AsKmph), - new XElement(ns + XMLNames.DriverModel_Overspeed_AllowedUnderspeed, overspeed.UnderSpeed.AsKmph) }; } return new object[] { - new XElement(ns + XMLNames.DriverModel_Overspeed_Mode, overspeed.Mode), + new XElement(ns + XMLNames.DriverModel_Overspeed_Enabled, overspeed.Enabled), }; } diff --git a/VectoCore/VectoCore/OutputData/XML/Engineering/Writer/DriverData/XMLShiftParmeterDataWriter.cs b/VectoCore/VectoCore/OutputData/XML/Engineering/Writer/DriverData/XMLShiftParmeterDataWriter.cs index 029c2e38d4..c7593a35b4 100644 --- a/VectoCore/VectoCore/OutputData/XML/Engineering/Writer/DriverData/XMLShiftParmeterDataWriter.cs +++ b/VectoCore/VectoCore/OutputData/XML/Engineering/Writer/DriverData/XMLShiftParmeterDataWriter.cs @@ -4,7 +4,7 @@ using TUGraz.VectoCommon.Resources; using TUGraz.VectoCore.OutputData.XML.Engineering.Interfaces; using TUGraz.VectoCore.Utils; -namespace TUGraz.VectoCore.OutputData.XML.Engineering.Writer +namespace TUGraz.VectoCore.OutputData.XML.Engineering.Writer.DriverData { internal class XMLShiftParmeterDataWriterV10 : AbstractXMLWriter, IXMLGearshiftDataWriter { diff --git a/VectoCore/VectoCoreTest/FileIO/SimulationDataReaderTest.cs b/VectoCore/VectoCoreTest/FileIO/SimulationDataReaderTest.cs index d2f3451b60..494bff0e7e 100644 --- a/VectoCore/VectoCoreTest/FileIO/SimulationDataReaderTest.cs +++ b/VectoCore/VectoCoreTest/FileIO/SimulationDataReaderTest.cs @@ -91,13 +91,11 @@ namespace TUGraz.VectoCore.Tests.FileIO //Assert.AreEqual(DeclarationData.Driver.LookAhead.Deceleration.Value(), // runData.DriverData.LookAheadCoasting.Deceleration.Value(), Tolerance); - Assert.AreNotEqual(DriverMode.Off, runData.DriverData.OverSpeed.Mode); + Assert.IsTrue(runData.DriverData.OverSpeed.Enabled); Assert.AreEqual(DeclarationData.Driver.OverSpeed.MinSpeed.Value(), runData.DriverData.OverSpeed.MinSpeed.Value(), Tolerance); Assert.AreEqual(DeclarationData.Driver.OverSpeed.AllowedOverSpeed.Value(), runData.DriverData.OverSpeed.OverSpeed.Value(), Tolerance); - Assert.AreEqual(DeclarationData.Driver.OverSpeed.UnderSpeed.Value(), - runData.DriverData.OverSpeed.UnderSpeed.Value(), Tolerance); Assert.AreEqual(3.7890, runData.EngineData.Inertia.Value(), 1e-6); diff --git a/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs b/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs index 8d9f9fc0b0..7c559d2e95 100644 --- a/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs +++ b/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs @@ -238,15 +238,11 @@ namespace TUGraz.VectoCore.Tests.Integration LookAheadDistanceFactor = DeclarationData.Driver.LookAhead.LookAheadDistanceFactor, LookAheadDecisionFactor = new LACDecisionFactor() }, - OverSpeed = overspeed - ? new DriverData.OverSpeedData { - Mode = DriverMode.Overspeed, + OverSpeed = new DriverData.OverSpeedData { + Enabled = overspeed, MinSpeed = 50.KMPHtoMeterPerSecond(), OverSpeed = 5.KMPHtoMeterPerSecond() } - : new DriverData.OverSpeedData { - Mode = DriverMode.Off - }, }; } } diff --git a/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs b/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs index 7f623c19f6..95b83362a8 100644 --- a/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs +++ b/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs @@ -219,15 +219,11 @@ namespace TUGraz.VectoCore.Tests.Integration LookAheadDistanceFactor = DeclarationData.Driver.LookAhead.LookAheadDistanceFactor, LookAheadDecisionFactor = new LACDecisionFactor() }, - OverSpeed = overspeed - ? new DriverData.OverSpeedData { - Mode = DriverMode.Overspeed, + OverSpeed = new DriverData.OverSpeedData { + Enabled = overspeed, MinSpeed = 50.KMPHtoMeterPerSecond(), OverSpeed = 5.KMPHtoMeterPerSecond() } - : new DriverData.OverSpeedData { - Mode = DriverMode.Off - }, }; } } diff --git a/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs b/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs index 4347dccd75..0f16de0c47 100644 --- a/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs +++ b/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs @@ -226,15 +226,11 @@ namespace TUGraz.VectoCore.Tests.Integration LookAheadDistanceFactor = DeclarationData.Driver.LookAhead.LookAheadDistanceFactor, LookAheadDecisionFactor = new LACDecisionFactor() }, - OverSpeed = overspeed - ? new DriverData.OverSpeedData { - Mode = DriverMode.Overspeed, + OverSpeed = new DriverData.OverSpeedData { + Enabled = overspeed, MinSpeed = 50.KMPHtoMeterPerSecond(), OverSpeed = 5.KMPHtoMeterPerSecond() } - : new DriverData.OverSpeedData { - Mode = DriverMode.Off - }, }; } } diff --git a/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs b/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs index 274b48027e..168b2dd797 100644 --- a/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs +++ b/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs @@ -446,7 +446,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns LookAheadDecisionFactor = new LACDecisionFactor() }, OverSpeed = new DriverData.OverSpeedData { - Mode = DriverMode.Off + Enabled = false }, }; } diff --git a/VectoCore/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs b/VectoCore/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs index 37dc15e9d4..a04d079d95 100644 --- a/VectoCore/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs +++ b/VectoCore/VectoCoreTest/Integration/SimulationRuns/MinimalPowertrain.cs @@ -313,7 +313,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns LookAheadDecisionFactor = new LACDecisionFactor() }, OverSpeed = new DriverData.OverSpeedData { - Mode = DriverMode.Off + Enabled = false }, }; } diff --git a/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs b/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs index fe9ccf24b8..e39c805b85 100644 --- a/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs +++ b/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs @@ -255,15 +255,11 @@ namespace TUGraz.VectoCore.Tests.Integration LookAheadDistanceFactor = DeclarationData.Driver.LookAhead.LookAheadDistanceFactor, LookAheadDecisionFactor = new LACDecisionFactor() }, - OverSpeed = overspeed - ? new DriverData.OverSpeedData() { - Mode = DriverMode.Overspeed, + OverSpeed = new DriverData.OverSpeedData() { + Enabled = overspeed, MinSpeed = 50.KMPHtoMeterPerSecond(), OverSpeed = 5.KMPHtoMeterPerSecond(), } - : new DriverData.OverSpeedData { - Mode = DriverMode.Off - }, }; } } diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/DriverTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/DriverTest.cs index b4d4bdb269..e0706b0f16 100644 --- a/VectoCore/VectoCoreTest/Models/SimulationComponent/DriverTest.cs +++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/DriverTest.cs @@ -437,7 +437,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent //Deceleration = -0.5.SI<MeterPerSquareSecond>() }, OverSpeed = new DriverData.OverSpeedData { - Mode = DriverMode.Off + Enabled = false }, }; } diff --git a/VectoCore/VectoCoreTest/XML/XMLEngineeringInputRefTest.cs b/VectoCore/VectoCoreTest/XML/XMLEngineeringInputRefTest.cs index f50341906f..0824fbc2d0 100644 --- a/VectoCore/VectoCoreTest/XML/XMLEngineeringInputRefTest.cs +++ b/VectoCore/VectoCoreTest/XML/XMLEngineeringInputRefTest.cs @@ -265,7 +265,7 @@ namespace TUGraz.VectoCore.Tests.XML var adas = inputDataProvider.DriverInputData; - Assert.AreEqual(DriverMode.Overspeed, adas.OverSpeedData.Mode); + Assert.IsTrue(adas.OverSpeedData.Enabled); } [TestCase] diff --git a/VectoCore/VectoCoreTest/XML/XMLEngineeringInputSingleTest.cs b/VectoCore/VectoCoreTest/XML/XMLEngineeringInputSingleTest.cs index 98c74ef065..694f361cd7 100644 --- a/VectoCore/VectoCoreTest/XML/XMLEngineeringInputSingleTest.cs +++ b/VectoCore/VectoCoreTest/XML/XMLEngineeringInputSingleTest.cs @@ -375,7 +375,7 @@ namespace TUGraz.VectoCore.Tests.XML var adas = inputDataProvider.DriverInputData; - Assert.AreEqual(DriverMode.Overspeed, adas.OverSpeedData.Mode); + Assert.IsTrue(adas.OverSpeedData.Enabled); } [TestCase] @@ -412,10 +412,9 @@ namespace TUGraz.VectoCore.Tests.XML Assert.AreEqual(DeclarationData.Driver.LookAhead.MinimumSpeed.AsKmph, lac.MinSpeed.AsKmph, 1e-6); var overspeed = driverDataProvider.OverSpeedData; - Assert.AreEqual(DriverMode.Overspeed, overspeed.Mode); + Assert.IsTrue(overspeed.Enabled); Assert.AreEqual(50, overspeed.MinSpeed.AsKmph, 1e-6); Assert.AreEqual(5, overspeed.OverSpeed.AsKmph, 1e-6); - Assert.AreEqual(5, overspeed.UnderSpeed.AsKmph, 1e-6); var driverAcc = driverDataProvider.AccelerationCurve.AccelerationCurve; Assert.AreEqual(2, driverAcc.Rows.Count); @@ -561,10 +560,9 @@ namespace TUGraz.VectoCore.Tests.XML Assert.AreEqual("1", lac.CoastingDecisionFactorVelocityDropLookup.Rows[1][1]); var overspeed = driverDataProvider.OverSpeedData; - Assert.AreEqual(DriverMode.Overspeed, overspeed.Mode); + Assert.IsTrue(overspeed.Enabled); Assert.AreEqual(50, overspeed.MinSpeed.AsKmph, 1e-6); Assert.AreEqual(5, overspeed.OverSpeed.AsKmph, 1e-6); - Assert.AreEqual(5, overspeed.UnderSpeed.AsKmph, 1e-6); var driverAcc = driverDataProvider.AccelerationCurve.AccelerationCurve; Assert.AreEqual(2, driverAcc.Rows.Count); -- GitLab