diff --git a/VECTO/GUI/VehicleForm.vb b/VECTO/GUI/VehicleForm.vb index cf2f1dd2e6d0cce2bdd1aa04cd3c3588fbec32e3..f6829c24af3f5d6ced7bd63aa978aed819fff6f5 100644 --- a/VECTO/GUI/VehicleForm.vb +++ b/VECTO/GUI/VehicleForm.vb @@ -81,9 +81,17 @@ Public Class VehicleForm CbAxleConfig.ValueMember = "Value" CbAxleConfig.DisplayMember = "Label" - CbAxleConfig.DataSource = [Enum].GetValues(GetType(AxleConfiguration)) _ - .Cast(Of AxleConfiguration) _ - .Select(Function(category) New With {Key .Value = category, .Label = category.GetName()}).ToList() + If (cfg.DeclMode) Then + CbAxleConfig.DataSource = DeclarationData.Segments.GetAxleConfigurations() _ + .Cast(Of AxleConfiguration) _ + .Select(Function(category) New With {Key .Value = category, .Label = category.GetName()}).ToList() + else + CbAxleConfig.DataSource = [Enum].GetValues(GetType(AxleConfiguration)) _ + .Cast(Of AxleConfiguration) _ + .Select(Function(category) New With {Key .Value = category, .Label = category.GetName()}).ToList() + End If + + CbCat.ValueMember = "Value" CbCat.DisplayMember = "Label" @@ -477,12 +485,12 @@ Public Class VehicleForm Dim a0 As AxleInputData = New AxleInputData() a0.AxleWeightShare = entry.SubItems(AxleTbl.RelativeLoad).Text.ToDouble(0) a0.TwinTyres = (entry.SubItems(AxleTbl.TwinTyres).Text = "yes") - a0.AxleType = entry.SubItems(AxleTbl.AxleType).Text.ParseEnum(Of AxleType)() - dim tyre as TyreInputData = New TyreInputData() - tyre.RollResistanceCoefficient = entry.SubItems(AxleTbl.RRC).Text.ToDouble(0) - tyre.TyreTestLoad = entry.SubItems(AxleTbl.FzISO).Text.ToDouble(0).SI(Of Newton)() - tyre.Dimension = entry.SubItems(AxleTbl.WheelsDimension).Text - tyre.Inertia = entry.SubItems(AxleTbl.Inertia).Text.ToDouble(0).SI(Of KilogramSquareMeter)() + a0.AxleType = entry.SubItems(AxleTbl.AxleType).Text.ParseEnum(Of AxleType)() + dim tyre as TyreInputData = New TyreInputData() + tyre.RollResistanceCoefficient = entry.SubItems(AxleTbl.RRC).Text.ToDouble(0) + tyre.TyreTestLoad = entry.SubItems(AxleTbl.FzISO).Text.ToDouble(0).SI(Of Newton)() + tyre.Dimension = entry.SubItems(AxleTbl.WheelsDimension).Text + tyre.Inertia = entry.SubItems(AxleTbl.Inertia).Text.ToDouble(0).SI(Of KilogramSquareMeter)() a0.Tyre = tyre veh.Axles.Add(a0) Next diff --git a/VectoCore/VectoCore/Models/Declaration/Segments.cs b/VectoCore/VectoCore/Models/Declaration/Segments.cs index 9addc962a26e3f4b34f53534e03c6dbad8d9c2a7..64655608e7cf66dc5e23ff6503f3a7beeb4451df 100644 --- a/VectoCore/VectoCore/Models/Declaration/Segments.cs +++ b/VectoCore/VectoCore/Models/Declaration/Segments.cs @@ -75,6 +75,12 @@ namespace TUGraz.VectoCore.Models.Declaration return _segmentTable.AsEnumerable().Where(r => !declarationOnly || r.Field<string>("valid") == "1").Select(r => EnumHelper.ParseEnum<VehicleCategory>(r.Field<string>("vehiclecategory"))).Distinct().ToArray(); } + public IEnumerable<AxleConfiguration> GetAxleConfigurations() + { + return _segmentTable.AsEnumerable().Where(row => row.Field<string>("valid") == "1") + .Select(row => AxleConfigurationHelper.Parse(row.Field<string>("axleconf."))).Distinct(); + } + public Segment Lookup(VehicleCategory vehicleCategory, AxleConfiguration axleConfiguration, Kilogram grossVehicleMassRating, Kilogram curbWeight, bool considerInvalid) {