From 06013346e9f3643c63b3c2b84cb22865f92fa0b1 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Thu, 1 Sep 2016 18:13:54 +0200
Subject: [PATCH] refactoring reading retarder type, adding missing file,
 physics constants also in declaration class

---
 .../InputData/FileIO/JSON/JSONVehicleData.cs  |  9 +------
 .../Models/Declaration/DeclarationData.cs     | 26 ++++++++++++++++++-
 .../Declaration/IDeclarationAuxiliaryTable.cs |  7 +++++
 VectoCore/VectoCore/VectoCore.csproj          |  1 +
 4 files changed, 34 insertions(+), 9 deletions(-)
 create mode 100644 VectoCore/VectoCore/Models/Declaration/IDeclarationAuxiliaryTable.cs

diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
index 5ffa57f7bb..0bae42915a 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
@@ -149,14 +149,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 			get
 			{
 				var retarderType = Body.GetEx(JsonKeys.Vehicle_Retarder).GetEx<string>(JsonKeys.Vehicle_Retarder_Type);
-				switch (retarderType.ToLowerInvariant()) {
-					case "primary":
-						return RetarderType.TransmissionInputRetarder;
-					case "secondary":
-						return RetarderType.TransmissionOutputRetarder;
-					default:
-						return retarderType.ParseEnum<RetarderType>();
-				}
+				return RetarderTypeHelper.Parse(retarderType);
 			}
 		}
 
diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
index bd968c9cb3..d572394085 100644
--- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
+++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
@@ -156,6 +156,30 @@ namespace TUGraz.VectoCore.Models.Declaration
 			return _instance ?? (_instance = new DeclarationData());
 		}
 
+		public static class Physics
+		{
+			/// <summary>
+			/// The standard acceleration for gravity on earth.
+			/// http://physics.nist.gov/Pubs/SP330/sp330.pdf (page 52)
+			/// </summary>
+			public static readonly MeterPerSquareSecond GravityAccelleration = 9.80665.SI<MeterPerSquareSecond>();
+
+			/// <summary>
+			/// Density of air.
+			/// </summary>
+			public static readonly KilogramPerCubicMeter AirDensity = 1.188.SI<KilogramPerCubicMeter>();
+
+			/// <summary>
+			/// Density of fuel.
+			/// </summary>
+			public static readonly KilogramPerCubicMeter FuelDensity = 832.SI<KilogramPerCubicMeter>();
+
+			/// <summary>
+			/// fuel[kg] => co2[kg]. Factor to convert from fuel weight to co2 weight.
+			/// </summary>
+			public static readonly double CO2PerFuelWeight = 3.16;
+		}
+
 		public static class Driver
 		{
 			public static class LookAhead
@@ -203,7 +227,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 			public static readonly KilogramSquareMeter EngineBaseInertia = 0.41.SI<KilogramSquareMeter>();
 			public static readonly SI EngineDisplacementInertia = (0.27 * 1000).SI().Kilo.Gramm.Per.Meter; // [kg/m]
 
-			public static KilogramSquareMeter EngineInertia(SI displacement, GearboxType gbxType)
+			public static KilogramSquareMeter EngineInertia(CubicMeter displacement, GearboxType gbxType)
 			{
 				// VB Code:    Return 1.3 + 0.41 + 0.27 * (Displ / 1000)
 				return (gbxType.AutomaticTransmission() ? TorqueConverterInertia : ClutchInertia) + EngineBaseInertia +
diff --git a/VectoCore/VectoCore/Models/Declaration/IDeclarationAuxiliaryTable.cs b/VectoCore/VectoCore/Models/Declaration/IDeclarationAuxiliaryTable.cs
new file mode 100644
index 0000000000..94cd089807
--- /dev/null
+++ b/VectoCore/VectoCore/Models/Declaration/IDeclarationAuxiliaryTable.cs
@@ -0,0 +1,7 @@
+namespace TUGraz.VectoCore.Models.Declaration
+{
+	public interface IDeclarationAuxiliaryTable
+	{
+		string[] GetTechnologies();
+	}
+}
\ No newline at end of file
diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj
index 48e120931a..e0fcc547ea 100644
--- a/VectoCore/VectoCore/VectoCore.csproj
+++ b/VectoCore/VectoCore/VectoCore.csproj
@@ -134,6 +134,7 @@
     <Compile Include="Models\Connector\Ports\IFvPort.cs" />
     <Compile Include="Models\Connector\Ports\ITnPort.cs" />
     <Compile Include="InputData\Reader\ComponentData\AccelerationCurveReader.cs" />
+    <Compile Include="Models\Declaration\IDeclarationAuxiliaryTable.cs" />
     <Compile Include="Models\SimulationComponent\Data\AngularGearData.cs" />
     <Compile Include="InputData\Reader\ComponentData\TransmissionLossMapReader.cs" />
     <Compile Include="InputData\Reader\ComponentData\RetarderLossMapReader.cs" />
-- 
GitLab