From 0d47ea6e40b3087348e601a02320ada2f8739d1f Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <quaritsch@ivt.tugraz.at>
Date: Wed, 25 Oct 2023 10:02:58 +0200
Subject: [PATCH] update repository

---
 .../Class5_Tractor_DECL.vecto                 |  6 +-
 .../Class5_Tractor_ENG.vecto                  | 33 +++++++++-
 HashingCmd/App.config                         |  4 ++
 HashingCmd/Properties/Version.cs              | 11 ++--
 HashingTool/App.config                        |  4 ++
 HashingTool/Properties/Version.cs             |  7 +-
 Tools/DeclarationCycleZip/App.config          |  4 ++
 Tools/GraphDrawer/App.config                  |  4 ++
 VECTO/VECTO.vbproj                            |  1 +
 VectoCommon/VectoCommon/Properties/Version.cs |  6 +-
 .../VectoHashing/Properties/Version.cs        |  7 +-
 VectoCommon/VectoHashingTest/app.config       |  4 ++
 VectoConsole/App.config                       |  4 ++
 VectoConsole/Properties/Version.cs            |  7 +-
 VectoCore/ModelbasedTests/app.config          |  4 ++
 .../Models/Simulation/Impl/JobContainer.cs    |  2 +-
 .../Simulation/Impl/PowertrainBuilder.cs      |  5 +-
 .../Simulation/Impl/VehicleContainer.cs       |  5 --
 .../Impl/SimulinkModelShiftStrategy.cs        |  1 +
 VectoCore/VectoCore/Properties/Version.cs     |  6 +-
 VectoCore/VectoCore/Utils/FMUConnector.cs     | 64 ++++++++++++++++---
 VectoCore/VectoCore/VectoCore.csproj          |  1 +
 .../Models/SimulationComponent/ClutchTest.cs  | 16 +++++
 VectoCore/VectoCoreTest/app.config            |  4 ++
 24 files changed, 172 insertions(+), 38 deletions(-)

diff --git a/Generic Vehicles/Declaration Mode/Class5_Tractor_4x2/Class5_Tractor_DECL.vecto b/Generic Vehicles/Declaration Mode/Class5_Tractor_4x2/Class5_Tractor_DECL.vecto
index 542e4626d4..36a725f0fe 100644
--- a/Generic Vehicles/Declaration Mode/Class5_Tractor_4x2/Class5_Tractor_DECL.vecto	
+++ b/Generic Vehicles/Declaration Mode/Class5_Tractor_4x2/Class5_Tractor_DECL.vecto	
@@ -1,9 +1,9 @@
 {
   "Header": {
     "CreatedBy": "",
-    "Date": "2017-07-03T14:47:43.6586880Z",
+    "Date": "2021-05-27T12:30:21.0886937Z",
     "AppVersion": "3",
-    "FileVersion": 3
+    "FileVersion": 4
   },
   "Body": {
     "SavedInDeclMode": true,
@@ -54,7 +54,7 @@
     "OverSpeedEcoRoll": {
       "Mode": "Overspeed",
       "MinSpeed": 50.0,
-      "OverSpeed": 5.0,
+      "OverSpeed": 2.5,
       "UnderSpeed": 5.0
     }
   }
diff --git a/Generic Vehicles/Engineering Mode/Class5_Tractor_4x2/Class5_Tractor_ENG.vecto b/Generic Vehicles/Engineering Mode/Class5_Tractor_4x2/Class5_Tractor_ENG.vecto
index 6f17db3c47..6a50ad2217 100644
--- a/Generic Vehicles/Engineering Mode/Class5_Tractor_4x2/Class5_Tractor_ENG.vecto	
+++ b/Generic Vehicles/Engineering Mode/Class5_Tractor_4x2/Class5_Tractor_ENG.vecto	
@@ -15,11 +15,40 @@
     "AuxiliaryVersion": "CLASSIC",
     "AdvancedAuxiliaryFilePath": "",
     "Aux": [
+      {
+        "ID": "FAN",
+        "Type": "Fan",
+        "Technology": [
+          "Belt driven or driven via transm. - Electronically controlled visco clutch"
+        ]
+      },
+      {
+        "ID": "STP",
+        "Type": "Steering pump",
+        "Technology": [
+          "Fixed displacement with elec. control"
+        ]
+      },
+      {
+        "ID": "AC",
+        "Type": "HVAC",
+        "Technology": [
+          "Default"
+        ]
+      },
       {
         "ID": "ES",
         "Type": "Electric System",
-        "Path": "Alt.vaux",
-        "Technology": []
+        "Technology": [
+          "Standard technology"
+        ]
+      },
+      {
+        "ID": "PS",
+        "Type": "Pneumatic System",
+        "Technology": [
+          "Medium Supply 2-stage + ESS + AMS"
+        ]
       }
     ],
     "Padd": 5000.0,
diff --git a/HashingCmd/App.config b/HashingCmd/App.config
index 2d7c95c83a..ec8a1646d9 100644
--- a/HashingCmd/App.config
+++ b/HashingCmd/App.config
@@ -9,6 +9,10 @@
         <assemblyIdentity name="Ninject" publicKeyToken="c7192dc5380945e7" culture="neutral" />
         <bindingRedirect oldVersion="0.0.0.0-3.3.4.0" newVersion="3.3.4.0" />
       </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
+      </dependentAssembly>
     </assemblyBinding>
   </runtime>
 </configuration>
\ No newline at end of file
diff --git a/HashingCmd/Properties/Version.cs b/HashingCmd/Properties/Version.cs
index 452573a97e..e26c43533b 100644
--- a/HashingCmd/Properties/Version.cs
+++ b/HashingCmd/Properties/Version.cs
@@ -1,7 +1,7 @@
 /*
 * This file is part of VECTO.
 *
-* Copyright © 2012-2019 European Union
+* Copyright © 2012-2017 European Union
 *
 * Developed by Graz University of Technology,
 *              Institute of Internal Combustion Engines and Thermodynamics,
@@ -11,7 +11,7 @@
 * 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
@@ -29,6 +29,9 @@
 *   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
 */
 
+
+
+
 using System.Reflection;
-[assembly: AssemblyVersion("0.1.0.274")]
-[assembly: AssemblyFileVersion("0.1.0.274")]
+[assembly: AssemblyVersion("0.1.0.2202")]
+[assembly: AssemblyFileVersion("0.1.0.2202")]
diff --git a/HashingTool/App.config b/HashingTool/App.config
index 2d7c95c83a..ec8a1646d9 100644
--- a/HashingTool/App.config
+++ b/HashingTool/App.config
@@ -9,6 +9,10 @@
         <assemblyIdentity name="Ninject" publicKeyToken="c7192dc5380945e7" culture="neutral" />
         <bindingRedirect oldVersion="0.0.0.0-3.3.4.0" newVersion="3.3.4.0" />
       </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
+      </dependentAssembly>
     </assemblyBinding>
   </runtime>
 </configuration>
\ No newline at end of file
diff --git a/HashingTool/Properties/Version.cs b/HashingTool/Properties/Version.cs
index 9a6ec74644..290ec2e499 100644
--- a/HashingTool/Properties/Version.cs
+++ b/HashingTool/Properties/Version.cs
@@ -29,6 +29,9 @@
 *   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
 */
 
+
+
+
 using System.Reflection;
-[assembly: AssemblyVersion("0.2.0.1916")]
-[assembly: AssemblyFileVersion("0.2.0.1916")]
+[assembly: AssemblyVersion("0.2.0.2202")]
+[assembly: AssemblyFileVersion("0.2.0.2202")]
diff --git a/Tools/DeclarationCycleZip/App.config b/Tools/DeclarationCycleZip/App.config
index 2d7c95c83a..ec8a1646d9 100644
--- a/Tools/DeclarationCycleZip/App.config
+++ b/Tools/DeclarationCycleZip/App.config
@@ -9,6 +9,10 @@
         <assemblyIdentity name="Ninject" publicKeyToken="c7192dc5380945e7" culture="neutral" />
         <bindingRedirect oldVersion="0.0.0.0-3.3.4.0" newVersion="3.3.4.0" />
       </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
+      </dependentAssembly>
     </assemblyBinding>
   </runtime>
 </configuration>
\ No newline at end of file
diff --git a/Tools/GraphDrawer/App.config b/Tools/GraphDrawer/App.config
index 2d7c95c83a..ec8a1646d9 100644
--- a/Tools/GraphDrawer/App.config
+++ b/Tools/GraphDrawer/App.config
@@ -9,6 +9,10 @@
         <assemblyIdentity name="Ninject" publicKeyToken="c7192dc5380945e7" culture="neutral" />
         <bindingRedirect oldVersion="0.0.0.0-3.3.4.0" newVersion="3.3.4.0" />
       </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
+      </dependentAssembly>
     </assemblyBinding>
   </runtime>
 </configuration>
\ No newline at end of file
diff --git a/VECTO/VECTO.vbproj b/VECTO/VECTO.vbproj
index 2d2c4f2909..d7167e19f2 100644
--- a/VECTO/VECTO.vbproj
+++ b/VECTO/VECTO.vbproj
@@ -180,6 +180,7 @@
     <Reference Include="System.Drawing" />
     <Reference Include="System.IO.Compression" />
     <Reference Include="System.Management" />
+    <Reference Include="System.Net.Http" />
     <Reference Include="System.Runtime.Remoting" />
     <Reference Include="System.Runtime.Serialization" />
     <Reference Include="System.ServiceModel" />
diff --git a/VectoCommon/VectoCommon/Properties/Version.cs b/VectoCommon/VectoCommon/Properties/Version.cs
index b8e0efb8f8..316264dffa 100644
--- a/VectoCommon/VectoCommon/Properties/Version.cs
+++ b/VectoCommon/VectoCommon/Properties/Version.cs
@@ -29,6 +29,8 @@
 *   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
 */
 
+
+
 using System.Reflection;
-[assembly: AssemblyVersion("3.3.6.1916")]
-[assembly: AssemblyFileVersion("3.3.6.1916")]
\ No newline at end of file
+[assembly: AssemblyVersion("3.3.6.2202")]
+[assembly: AssemblyFileVersion("3.3.6.2202")]
\ No newline at end of file
diff --git a/VectoCommon/VectoHashing/Properties/Version.cs b/VectoCommon/VectoHashing/Properties/Version.cs
index fbd6a91799..66b4ea9b25 100644
--- a/VectoCommon/VectoHashing/Properties/Version.cs
+++ b/VectoCommon/VectoHashing/Properties/Version.cs
@@ -29,6 +29,9 @@
 *   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
 */
 
+
+
+
 using System.Reflection;
-[assembly: AssemblyVersion("1.2.0.1916")]
-[assembly: AssemblyFileVersion("1.2.0.1916")]
+[assembly: AssemblyVersion("1.2.0.2202")]
+[assembly: AssemblyFileVersion("1.2.0.2202")]
diff --git a/VectoCommon/VectoHashingTest/app.config b/VectoCommon/VectoHashingTest/app.config
index fdc60f6f83..09f53d266f 100644
--- a/VectoCommon/VectoHashingTest/app.config
+++ b/VectoCommon/VectoHashingTest/app.config
@@ -6,6 +6,10 @@
         <assemblyIdentity name="Ninject" publicKeyToken="c7192dc5380945e7" culture="neutral" />
         <bindingRedirect oldVersion="0.0.0.0-3.3.4.0" newVersion="3.3.4.0" />
       </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
+      </dependentAssembly>
     </assemblyBinding>
   </runtime>
 </configuration>
\ No newline at end of file
diff --git a/VectoConsole/App.config b/VectoConsole/App.config
index 5f66454572..e990e3fef5 100644
--- a/VectoConsole/App.config
+++ b/VectoConsole/App.config
@@ -14,6 +14,10 @@
 				<assemblyIdentity name="Ninject" publicKeyToken="c7192dc5380945e7" culture="neutral" />
 				<bindingRedirect oldVersion="0.0.0.0-3.3.4.0" newVersion="3.3.4.0" />
 			</dependentAssembly>
+			<dependentAssembly>
+				<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
+				<bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
+			</dependentAssembly>
 		</assemblyBinding>
 	</runtime>
 	<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd" autoReload="false" throwExceptions="false" internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
diff --git a/VectoConsole/Properties/Version.cs b/VectoConsole/Properties/Version.cs
index 0cb9e25696..0423789a98 100644
--- a/VectoConsole/Properties/Version.cs
+++ b/VectoConsole/Properties/Version.cs
@@ -29,6 +29,9 @@
 *   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
 */
 
+
+
+
 using System.Reflection;
-[assembly: AssemblyVersion("3.3.6.1916")]
-[assembly: AssemblyFileVersion("3.3.6.1916")]
\ No newline at end of file
+[assembly: AssemblyVersion("3.3.6.2202")]
+[assembly: AssemblyFileVersion("3.3.6.2202")]
\ No newline at end of file
diff --git a/VectoCore/ModelbasedTests/app.config b/VectoCore/ModelbasedTests/app.config
index fdc60f6f83..09f53d266f 100644
--- a/VectoCore/ModelbasedTests/app.config
+++ b/VectoCore/ModelbasedTests/app.config
@@ -6,6 +6,10 @@
         <assemblyIdentity name="Ninject" publicKeyToken="c7192dc5380945e7" culture="neutral" />
         <bindingRedirect oldVersion="0.0.0.0-3.3.4.0" newVersion="3.3.4.0" />
       </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
+      </dependentAssembly>
     </assemblyBinding>
   </runtime>
 </configuration>
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/JobContainer.cs b/VectoCore/VectoCore/Models/Simulation/Impl/JobContainer.cs
index f7a32414f7..8a838bab05 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/JobContainer.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/JobContainer.cs
@@ -93,7 +93,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 			factory.JobNumber = Interlocked.Increment(ref _jobNumber);
 
 			foreach (var run in factory.SimulationRuns()) {
-				if(run.CycleName == "UrbanDelivery" && run.RunSuffix == "ReferenceLoad")
+				if(run.CycleName == "LongHaulEMS" && run.RunSuffix == "LowLoading")
                 {
 					var entry = new RunEntry { Run = run, JobContainer = this };
 					Runs.Add(entry);
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
index 577c9d992c..fae1c04d3a 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
@@ -376,9 +376,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 			IShiftStrategy strategy;
 			switch (runData.GearboxData.Type) {
 				case GearboxType.AMT:
-					strategy = new AMTShiftStrategy(runData, container);
-					//strategy = new SimulinkModelShiftStrategy(runData, container);
-					
+					//strategy = new AMTShiftStrategy(runData, container);
+					strategy = new SimulinkModelShiftStrategy(runData, container);
 					break;
 				case GearboxType.MT:
 					strategy = new MTShiftStrategy(runData, container);
diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs b/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs
index 7595f91b47..cd67cd135c 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/VehicleContainer.cs
@@ -508,10 +508,5 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 		{
 			get { return Wheels.ReducedMassWheels; }
 		}
-
-		public Second EngageTime 
-		{ 
-			get { return Gearbox.EngageTime;  }
-		}
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/SimulinkModelShiftStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/SimulinkModelShiftStrategy.cs
index ddfc978bd9..06f46216db 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/SimulinkModelShiftStrategy.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/SimulinkModelShiftStrategy.cs
@@ -31,6 +31,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
         ~SimulinkModelShiftStrategy()
         {
            Connector.Step(4, (0.0).SI<Second>(), (0.0).SI<Second>(), (0.0).SI<NewtonMeter>(), (0.0).SI<PerSecond>(), (0.0).SI<NewtonMeter>(), (0.0).SI<PerSecond>(), 0, (0.0).SI<Second>(), DataBus, _gearbox);
+           Connector.Terminate();
         }
         public override GearInfo NextGear
         {
diff --git a/VectoCore/VectoCore/Properties/Version.cs b/VectoCore/VectoCore/Properties/Version.cs
index 87de29294f..528ac9743a 100644
--- a/VectoCore/VectoCore/Properties/Version.cs
+++ b/VectoCore/VectoCore/Properties/Version.cs
@@ -29,6 +29,8 @@
 *   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
 */
 
+
+
 using System.Reflection;
-[assembly: AssemblyVersion("3.3.6.1916")]
-[assembly: AssemblyFileVersion("3.3.6.1916")]
+[assembly: AssemblyVersion("3.3.6.2202")]
+[assembly: AssemblyFileVersion("3.3.6.2202")]
diff --git a/VectoCore/VectoCore/Utils/FMUConnector.cs b/VectoCore/VectoCore/Utils/FMUConnector.cs
index 87bc415b6d..ab0bc5c0bf 100644
--- a/VectoCore/VectoCore/Utils/FMUConnector.cs
+++ b/VectoCore/VectoCore/Utils/FMUConnector.cs
@@ -4,6 +4,7 @@ using System.Diagnostics;
 using System.IO;
 using System.IO.Compression;
 using System.Linq;
+using System.Security.Cryptography;
 using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
@@ -26,11 +27,12 @@ namespace TUGraz.VectoCore.Utils
 
         public uint InitGearNextGear = 0;
         private decimal Time { get; set; }
+        private string FmuDLL { get; set; }
         public void InitFMU(string fmuPath)
         {
             Time = 0;
             string fmuDLL = LoadAndCopyFMUArchive(fmuPath);
-
+            FmuDLL = fmuDLL;
             FmuInstance fmu_instance = new FmuInstance(fmuDLL);
             
             fmu_instance.Log += Fmu_instance_Log;
@@ -42,6 +44,8 @@ namespace TUGraz.VectoCore.Utils
                   "file:///C:\\Users\\Work\\Programming\\vectosimulinkshiftstrategymodel\\AMTShiftStrategyModel_grt_fmi_rtw\\AMTShiftStrategyModel\\resources",
                   false,
                   true);
+
+            
             Fmi2Status experiment_status = fmu_instance.SetupExperiment(false, 0, 0, false, 10);
             //Console.WriteLine("Setup Experiment status: " + experiment_status);
 
@@ -53,8 +57,16 @@ namespace TUGraz.VectoCore.Utils
 
         }
 
+        ~FMUConnector()
+        {
+            //File.Delete(FmuDLL);
+        }
 
 
+        public void Terminate()
+        {
+            Instance.Terminate();
+        }
         public uint Step(int function_, Second absTime, Second dt, NewtonMeter outTorque, PerSecond outAngularVelocity, NewtonMeter inTorque, PerSecond inAngularVelocity, uint gear, Second lastShiftTime, IDataBus DataBus, Gearbox gearbox)
         {
             //LogShiftData.LogFunctionDataToExcel(function_, absTime, dt, outTorque, outAngularVelocity, inTorque, inAngularVelocity, gear, lastShiftTime, DataBus, gearbox);
@@ -214,7 +226,7 @@ namespace TUGraz.VectoCore.Utils
             SetInput(new uint[] { InputDict["EnginePreviousStatedt"] }, new double[] { EnginePreviousStatedt });
             //string jsonName = "VectoJsonModelData.json";
 
-            SetInput(new uint[] { InputDict["jsonName"] }, new double[] { 86, 101, 99, 116, 111, 74, 115, 111, 110, 77, 111, 100, 101, 108, 68, 97, 116, 97, 46, 106, 115, 111, 110 });
+            //SetInput(new uint[] { InputDict["jsonName"] }, new double[] { 86, 101, 99, 116, 111, 74, 115, 111, 110, 77, 111, 100, 101, 108, 68, 97, 116, 97, 46, 106, 115, 111, 110 });
         }
 
 
@@ -300,18 +312,50 @@ namespace TUGraz.VectoCore.Utils
 
                     using (var dll = fmuDLL.Open())
                     {
-                        int fileCounter = 1;
+                        
+                        //int fileCounter = 1;
                         string copyToPath = Path.Combine(tempPath, ModelIdentifier + ".dll");
-                        while(File.Exists(copyToPath))
-                        {
-                            copyToPath = Path.Combine(tempPath, ModelIdentifier + fileCounter + ".dll");
-                            fileCounter++;
-                        }
-                        using (var target = File.Create(copyToPath))
+                        //while(File.Exists(copyToPath))
+                        //{
+                        //    copyToPath = Path.Combine(tempPath, ModelIdentifier + fileCounter + ".dll");
+                        //    fileCounter++;
+                        //}
+
+                        using (var md5 = MD5.Create())
                         {
-                            dll.CopyTo(target);
+                            if(File.Exists(copyToPath))
+                            {
+                                using (var stream2 = File.OpenRead(copyToPath))
+                                {
+                                    byte[] hash = md5.ComputeHash(dll);
+                                    byte[] hash2 = md5.ComputeHash(stream2);
+                                    bool hashCompare = true;
+                                    for (int i = 0; i < hash.Length; i++)
+                                    {
+                                        if (hash[i] != hash2[i])
+                                            hashCompare = false;
+                                    }
+                                    if(!hashCompare)
+                                    {
+                                        stream2.Close();
+                                        using (var target = File.Create(copyToPath))
+                                        {
+                                            dll.CopyTo(target);
+                                        }
+                                    } 
+                                }
+                            }
+                            else
+                            {
+                                using (var target = File.Create(copyToPath))
+                                {
+                                    dll.CopyTo(target);
+                                }
+                            }
+                            
                             return copyToPath;
                         }
+                            //File.Copy(path, copyToPath);
                     }
                 }
                 
diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj
index fa5b8d2b8b..8d159373c4 100644
--- a/VectoCore/VectoCore/VectoCore.csproj
+++ b/VectoCore/VectoCore/VectoCore.csproj
@@ -253,6 +253,7 @@
     <Compile Include="InputData\FileIO\XML\Declaration\IXMLDeclarationInputDataReader.cs" />
     <Compile Include="InputData\FileIO\XML\IXMLInputDataReader.cs" />
     <Compile Include="InputData\FileIO\XML\XMLInputDataNinjectModule.cs" />
+    <Compile Include="Models\SimulationComponent\Impl\LogShiftData.cs" />
     <Compile Include="Models\SimulationComponent\Impl\PTODriveAuxiliary.cs" />
     <Compile Include="Models\SimulationComponent\Impl\RoadSweeperAuxiliary.cs" />
     <Compile Include="Models\SimulationComponent\Impl\SimulinkModelShiftStrategy.cs" />
diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/ClutchTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/ClutchTest.cs
index 754a9195ab..f1881e2774 100644
--- a/VectoCore/VectoCoreTest/Models/SimulationComponent/ClutchTest.cs
+++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/ClutchTest.cs
@@ -181,6 +181,22 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 		public PerSecond EngineN95hSpeed { get; set; }
 		public PerSecond EngineN80hSpeed { get; set; }
 
+        public Watt PreviousStateEnginePower { get; set; }
+
+		public NewtonMeter PreviousStateEngineTorque { get; set; }
+
+		public NewtonMeter PreviousStateEngineTorqueOut { get; set; }
+
+		public NewtonMeter PreviousStateFullDragTorque { get; set; }
+
+		public NewtonMeter PreviousStateInertiaTorqueLoss { get; set; }
+
+		public CombustionEngine.EngineOperationMode PreviousStateOperationMode { get; set; }
+
+		public NewtonMeter PreviousStateStationaryFullLoadTorque { get; set; }
+
+		public Second PreviousStateDt { get; set; }
+
 		protected override void DoWriteModalResults(IModalDataContainer container)
 		{
 			container[ModalResultField.P_eng_fcmap] = 0.SI<Watt>();
diff --git a/VectoCore/VectoCoreTest/app.config b/VectoCore/VectoCoreTest/app.config
index fed7e747cc..75cb9fd234 100644
--- a/VectoCore/VectoCoreTest/app.config
+++ b/VectoCore/VectoCoreTest/app.config
@@ -30,6 +30,10 @@
         <assemblyIdentity name="Ninject" publicKeyToken="c7192dc5380945e7" culture="neutral" />
         <bindingRedirect oldVersion="0.0.0.0-3.3.4.0" newVersion="3.3.4.0" />
       </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0" />
+      </dependentAssembly>
     </assemblyBinding>
   </runtime>
 
-- 
GitLab