diff --git a/VectoCore/VectoCore/Models/Declaration/Segments.cs b/VectoCore/VectoCore/Models/Declaration/Segments.cs index 81045618de52bc2b6c5de1c40e843b79c83eb9c8..e7a939f03ea98ab5507cc979dc2d6d41e13ff277 100644 --- a/VectoCore/VectoCore/Models/Declaration/Segments.cs +++ b/VectoCore/VectoCore/Models/Declaration/Segments.cs @@ -114,6 +114,13 @@ namespace TUGraz.VectoCore.Models.Declaration ? DeclarationData.StandardWeights.Lookup(row.Field<string>("trailer")) : DeclarationData.StandardWeights.Empty; + var semiTrailerField = row.Field<string>("semitrailer"); + var semiTrailer = !string.IsNullOrWhiteSpace(semiTrailerField) + ? DeclarationData.StandardWeights.Lookup(semiTrailerField) + : DeclarationData.StandardWeights.Empty; + + trailer += semiTrailer; + // limit gvw to MaxGVW (40t) var gvw = VectoMath.Min(grossVehicleWeight + trailer.GrossVehicleWeight, Constants.SimulationSettings.MaximumGrossVehicleWeight); diff --git a/VectoCore/VectoCore/Models/Declaration/StandardWeights.cs b/VectoCore/VectoCore/Models/Declaration/StandardWeights.cs index 913391e98d900de6497d495193950cc97fd2eb6f..44e0c5212450efd4ff5edb18ea8753147f0c2330 100644 --- a/VectoCore/VectoCore/Models/Declaration/StandardWeights.cs +++ b/VectoCore/VectoCore/Models/Declaration/StandardWeights.cs @@ -29,6 +29,7 @@ * Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology */ +using System.CodeDom; using System.Collections.Generic; using System.Data; using System.Linq; @@ -49,6 +50,15 @@ namespace TUGraz.VectoCore.Models.Declaration } public SquareMeter DeltaCrossWindArea; + + public static StandardWeight operator +(StandardWeight first, StandardWeight second) + { + return new StandardWeight { + CurbWeight = first.CurbWeight + second.CurbWeight, + DeltaCrossWindArea = first.DeltaCrossWindArea + second.DeltaCrossWindArea, + GrossVehicleWeight = first.GrossVehicleWeight + second.GrossVehicleWeight + }; + } } /// <summary>