diff --git a/VectoCore/VectoCore/OutputData/IModalDataContainer.cs b/VectoCore/VectoCore/OutputData/IModalDataContainer.cs index 3239ca696771a6f31f7b2318c3274346d07d5ba0..33ccd8bad6f259b4e513368c527ace75905ece1c 100644 --- a/VectoCore/VectoCore/OutputData/IModalDataContainer.cs +++ b/VectoCore/VectoCore/OutputData/IModalDataContainer.cs @@ -200,7 +200,7 @@ namespace TUGraz.VectoCore.OutputData public static Scalar CruiseTimeShare(this MeterPerSquareSecond[] acceleration3SecondAverage) { if (acceleration3SecondAverage.Length > 0) { - return 100.SI<Scalar>() * acceleration3SecondAverage.Count(x => x.IsBetween(-0.125, -0.125)) / + return 100.SI<Scalar>() * acceleration3SecondAverage.Count(x => x.IsBetween(-0.125, 0.125)) / acceleration3SecondAverage.Length; } return null; diff --git a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs index 87be1e16ff201f720c42f9bfbedf142c113f7db9..48c3978c90cb3ab5eac575ae6d81890cb50cebbf 100644 --- a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs +++ b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs @@ -275,10 +275,21 @@ namespace TUGraz.VectoCore.OutputData row[ACC] = modData.AccelerationAverage(); row[ACC_POS] = acc.AccelerationsPositive(); row[ACC_NEG] = acc.AccelerationsNegative(); - row[ACC_TIMESHARE] = acc.AccelerationTimeShare(); - row[DEC_TIMESHARE] = acc.DecelerationTimeShare(); - row[CRUISE_TIMESHARE] = acc.CruiseTimeShare(); + var accTimeShare = acc.AccelerationTimeShare(); + row[ACC_TIMESHARE] = accTimeShare; + var decTimeShare = acc.DecelerationTimeShare(); + row[DEC_TIMESHARE] = decTimeShare; + var cruiseTimeShare = acc.CruiseTimeShare(); + row[CRUISE_TIMESHARE] = cruiseTimeShare; row[STOP_TIMESHARE] = modData.StopTimeShare(); + + var shareSum = accTimeShare + decTimeShare + cruiseTimeShare; + if (!shareSum.IsEqual(100)) { + Log.Error( + "Sumfile Error: driving behavior timeshares must sum up to 100%: acc: {0}%, dec: {1}%, cruise: {2}%, sum: {3}%", + accTimeShare.ToOutputFormat(1, null, false), decTimeShare.ToOutputFormat(1, null, false), + cruiseTimeShare.ToOutputFormat(1, null, false), shareSum.ToOutputFormat(1, null, false)); + } } private static string ReplaceNotAllowedCharacters(string text)