From 44fe474424adad994ffc12da0991fb512de277f8 Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Thu, 16 Sep 2021 20:05:20 +0200 Subject: [PATCH] jobcontainer: check if runs have been added in waitFinished refactor tempwriter in case of chained simulation runs to allow avoiding writing files refactor datawriter to provide vif for next simulation run --- VECTO.sln | 145 ++++++------------ .../Models/Simulation/Impl/JobContainer.cs | 24 ++- .../Simulation/Impl/SimulatorFactory.cs | 11 +- .../OutputData/FileIO/FileOutputWriter.cs | 2 + .../OutputData/FileIO/TempFileOutputWriter.cs | 53 +++++-- VectoCore/VectoCore/OutputData/IDataWriter.cs | 4 +- .../Declaration/NaturalGasVehicles.cs | 2 + 7 files changed, 117 insertions(+), 124 deletions(-) diff --git a/VECTO.sln b/VECTO.sln index fb0a7c6567..54a24ad8f2 100644 --- a/VECTO.sln +++ b/VECTO.sln @@ -36,9 +36,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ModelbasedTests", "VectoCor EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Plugins", "Plugins", "{D29E62A2-CF08-469F-B29F-1B25DCB35386}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VectoAPI", "..\VECTO_API\VectoAPI\VectoAPI.csproj", "{512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VectoAPI", "..\VECTO_API_DEV\VectoAPI\VectoAPI.csproj", "{DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VectoAPI Test", "..\VECTO_API\VectoAPI Test\VectoAPI Test.csproj", "{D959CB7C-F514-4F5E-9C33-684D0012474B}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VectoAPI Test", "..\VECTO_API_DEV\VectoAPI Test\VectoAPI Test.csproj", "{F79D87B8-9C5A-439B-9EAD-D66386447719}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VectoEngineeringAPI", "..\VECTO_API\VectoEngineeringAPI\VectoEngineeringAPI.csproj", "{41314A40-AB3E-4F43-B1A4-58443F4014F2}" EndProject @@ -66,8 +66,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VECTO3GUI", "VECTO3GUI\VECT EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PluginsDEV", "PluginsDEV", "{C4D97EBF-BA80-4943-9D27-33179405D8D5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VectoAPI", "..\VECTO_API_DEV\VectoAPI\VectoAPI.csproj", "{DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VECTO3GUI2020", "VECTO3GUI2020\VECTO3GUI2020.csproj", "{7E9172D4-07E3-4077-814E-7117AB2B3E22}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Vecto3GUI2020Test", "Vecto3GUI2020Test\Vecto3GUI2020Test.csproj", "{7F4FF473-96B3-461E-9CE6-76D3B75F87CB}" @@ -372,52 +370,52 @@ Global {A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.ReleaseTUG|Any CPU.Build.0 = Release|Any CPU {A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.ReleaseTUG|x64.ActiveCfg = Release|Any CPU {A0256B2A-09F8-45AD-B46A-FD98D7AAAA0C}.ReleaseTUG|x86.ActiveCfg = Release|Any CPU - {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.Debug PerformanceStats|Any CPU.ActiveCfg = Debug|Any CPU - {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.Debug PerformanceStats|x64.ActiveCfg = Debug|Any CPU - {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.Debug PerformanceStats|x86.ActiveCfg = Debug|Any CPU - {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.Debug PerformanceTrace|Any CPU.ActiveCfg = Debug|Any CPU - {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.Debug PerformanceTrace|x64.ActiveCfg = Debug|Any CPU - {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.Debug PerformanceTrace|x86.ActiveCfg = Debug|Any CPU - {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.Debug|x64.ActiveCfg = Debug|Any CPU - {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.Debug|x86.ActiveCfg = Debug|Any CPU - {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.DebugTUG|Any CPU.ActiveCfg = Debug|Any CPU - {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.DebugTUG|Any CPU.Build.0 = Debug|Any CPU - {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.DebugTUG|x64.ActiveCfg = Debug|Any CPU - {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.DebugTUG|x86.ActiveCfg = Debug|Any CPU - {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.Deploy|Any CPU.ActiveCfg = Release|Any CPU - {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.Deploy|x64.ActiveCfg = Debug|Any CPU - {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.Deploy|x86.ActiveCfg = Debug|Any CPU - {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.Release|Any CPU.ActiveCfg = Release|Any CPU - {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.Release|x64.ActiveCfg = Release|Any CPU - {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.Release|x86.ActiveCfg = Release|Any CPU - {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.ReleaseTUG|Any CPU.ActiveCfg = Release|Any CPU - {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.ReleaseTUG|Any CPU.Build.0 = Release|Any CPU - {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.ReleaseTUG|x64.ActiveCfg = Release|Any CPU - {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64}.ReleaseTUG|x86.ActiveCfg = Release|Any CPU - {D959CB7C-F514-4F5E-9C33-684D0012474B}.Debug PerformanceStats|Any CPU.ActiveCfg = Debug|Any CPU - {D959CB7C-F514-4F5E-9C33-684D0012474B}.Debug PerformanceStats|x64.ActiveCfg = Debug|Any CPU - {D959CB7C-F514-4F5E-9C33-684D0012474B}.Debug PerformanceStats|x86.ActiveCfg = Debug|Any CPU - {D959CB7C-F514-4F5E-9C33-684D0012474B}.Debug PerformanceTrace|Any CPU.ActiveCfg = Debug|Any CPU - {D959CB7C-F514-4F5E-9C33-684D0012474B}.Debug PerformanceTrace|x64.ActiveCfg = Debug|Any CPU - {D959CB7C-F514-4F5E-9C33-684D0012474B}.Debug PerformanceTrace|x86.ActiveCfg = Debug|Any CPU - {D959CB7C-F514-4F5E-9C33-684D0012474B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D959CB7C-F514-4F5E-9C33-684D0012474B}.Debug|x64.ActiveCfg = Debug|Any CPU - {D959CB7C-F514-4F5E-9C33-684D0012474B}.Debug|x86.ActiveCfg = Debug|Any CPU - {D959CB7C-F514-4F5E-9C33-684D0012474B}.DebugTUG|Any CPU.ActiveCfg = Debug|Any CPU - {D959CB7C-F514-4F5E-9C33-684D0012474B}.DebugTUG|Any CPU.Build.0 = Debug|Any CPU - {D959CB7C-F514-4F5E-9C33-684D0012474B}.DebugTUG|x64.ActiveCfg = Debug|Any CPU - {D959CB7C-F514-4F5E-9C33-684D0012474B}.DebugTUG|x86.ActiveCfg = Debug|Any CPU - {D959CB7C-F514-4F5E-9C33-684D0012474B}.Deploy|Any CPU.ActiveCfg = Debug|Any CPU - {D959CB7C-F514-4F5E-9C33-684D0012474B}.Deploy|x64.ActiveCfg = Debug|Any CPU - {D959CB7C-F514-4F5E-9C33-684D0012474B}.Deploy|x86.ActiveCfg = Debug|Any CPU - {D959CB7C-F514-4F5E-9C33-684D0012474B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D959CB7C-F514-4F5E-9C33-684D0012474B}.Release|x64.ActiveCfg = Release|Any CPU - {D959CB7C-F514-4F5E-9C33-684D0012474B}.Release|x86.ActiveCfg = Release|Any CPU - {D959CB7C-F514-4F5E-9C33-684D0012474B}.ReleaseTUG|Any CPU.ActiveCfg = Release|Any CPU - {D959CB7C-F514-4F5E-9C33-684D0012474B}.ReleaseTUG|Any CPU.Build.0 = Release|Any CPU - {D959CB7C-F514-4F5E-9C33-684D0012474B}.ReleaseTUG|x64.ActiveCfg = Release|Any CPU - {D959CB7C-F514-4F5E-9C33-684D0012474B}.ReleaseTUG|x86.ActiveCfg = Release|Any CPU + {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug PerformanceStats|Any CPU.ActiveCfg = Debug|Any CPU + {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug PerformanceStats|x64.ActiveCfg = Debug|Any CPU + {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug PerformanceStats|x86.ActiveCfg = Debug|Any CPU + {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug PerformanceTrace|Any CPU.ActiveCfg = Debug|Any CPU + {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug PerformanceTrace|x64.ActiveCfg = Debug|Any CPU + {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug PerformanceTrace|x86.ActiveCfg = Debug|Any CPU + {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug|x64.ActiveCfg = Debug|Any CPU + {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug|x86.ActiveCfg = Debug|Any CPU + {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.DebugTUG|Any CPU.ActiveCfg = Debug|Any CPU + {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.DebugTUG|Any CPU.Build.0 = Debug|Any CPU + {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.DebugTUG|x64.ActiveCfg = Debug|Any CPU + {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.DebugTUG|x86.ActiveCfg = Debug|Any CPU + {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Deploy|Any CPU.ActiveCfg = Release|Any CPU + {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Deploy|x64.ActiveCfg = Debug|Any CPU + {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Deploy|x86.ActiveCfg = Debug|Any CPU + {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Release|x64.ActiveCfg = Release|Any CPU + {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Release|x86.ActiveCfg = Release|Any CPU + {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.ReleaseTUG|Any CPU.ActiveCfg = Release|Any CPU + {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.ReleaseTUG|Any CPU.Build.0 = Release|Any CPU + {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.ReleaseTUG|x64.ActiveCfg = Release|Any CPU + {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.ReleaseTUG|x86.ActiveCfg = Release|Any CPU + {F79D87B8-9C5A-439B-9EAD-D66386447719}.Debug PerformanceStats|Any CPU.ActiveCfg = Debug|Any CPU + {F79D87B8-9C5A-439B-9EAD-D66386447719}.Debug PerformanceStats|x64.ActiveCfg = Debug|Any CPU + {F79D87B8-9C5A-439B-9EAD-D66386447719}.Debug PerformanceStats|x86.ActiveCfg = Debug|Any CPU + {F79D87B8-9C5A-439B-9EAD-D66386447719}.Debug PerformanceTrace|Any CPU.ActiveCfg = Debug|Any CPU + {F79D87B8-9C5A-439B-9EAD-D66386447719}.Debug PerformanceTrace|x64.ActiveCfg = Debug|Any CPU + {F79D87B8-9C5A-439B-9EAD-D66386447719}.Debug PerformanceTrace|x86.ActiveCfg = Debug|Any CPU + {F79D87B8-9C5A-439B-9EAD-D66386447719}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F79D87B8-9C5A-439B-9EAD-D66386447719}.Debug|x64.ActiveCfg = Debug|Any CPU + {F79D87B8-9C5A-439B-9EAD-D66386447719}.Debug|x86.ActiveCfg = Debug|Any CPU + {F79D87B8-9C5A-439B-9EAD-D66386447719}.DebugTUG|Any CPU.ActiveCfg = Debug|Any CPU + {F79D87B8-9C5A-439B-9EAD-D66386447719}.DebugTUG|Any CPU.Build.0 = Debug|Any CPU + {F79D87B8-9C5A-439B-9EAD-D66386447719}.DebugTUG|x64.ActiveCfg = Debug|Any CPU + {F79D87B8-9C5A-439B-9EAD-D66386447719}.DebugTUG|x86.ActiveCfg = Debug|Any CPU + {F79D87B8-9C5A-439B-9EAD-D66386447719}.Deploy|Any CPU.ActiveCfg = Debug|Any CPU + {F79D87B8-9C5A-439B-9EAD-D66386447719}.Deploy|x64.ActiveCfg = Debug|Any CPU + {F79D87B8-9C5A-439B-9EAD-D66386447719}.Deploy|x86.ActiveCfg = Debug|Any CPU + {F79D87B8-9C5A-439B-9EAD-D66386447719}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F79D87B8-9C5A-439B-9EAD-D66386447719}.Release|x64.ActiveCfg = Release|Any CPU + {F79D87B8-9C5A-439B-9EAD-D66386447719}.Release|x86.ActiveCfg = Release|Any CPU + {F79D87B8-9C5A-439B-9EAD-D66386447719}.ReleaseTUG|Any CPU.ActiveCfg = Release|Any CPU + {F79D87B8-9C5A-439B-9EAD-D66386447719}.ReleaseTUG|Any CPU.Build.0 = Release|Any CPU + {F79D87B8-9C5A-439B-9EAD-D66386447719}.ReleaseTUG|x64.ActiveCfg = Release|Any CPU + {F79D87B8-9C5A-439B-9EAD-D66386447719}.ReleaseTUG|x86.ActiveCfg = Release|Any CPU {41314A40-AB3E-4F43-B1A4-58443F4014F2}.Debug PerformanceStats|Any CPU.ActiveCfg = Debug|Any CPU {41314A40-AB3E-4F43-B1A4-58443F4014F2}.Debug PerformanceStats|x64.ActiveCfg = Debug|Any CPU {41314A40-AB3E-4F43-B1A4-58443F4014F2}.Debug PerformanceStats|x86.ActiveCfg = Debug|Any CPU @@ -738,48 +736,6 @@ Global {A17C6067-4DD9-41FC-B335-39F3DE1DE6B3}.ReleaseTUG|x64.Build.0 = Release|Any CPU {A17C6067-4DD9-41FC-B335-39F3DE1DE6B3}.ReleaseTUG|x86.ActiveCfg = Release|Any CPU {A17C6067-4DD9-41FC-B335-39F3DE1DE6B3}.ReleaseTUG|x86.Build.0 = Release|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug PerformanceStats|Any CPU.ActiveCfg = Debug|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug PerformanceStats|Any CPU.Build.0 = Debug|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug PerformanceStats|x64.ActiveCfg = Debug|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug PerformanceStats|x64.Build.0 = Debug|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug PerformanceStats|x86.ActiveCfg = Debug|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug PerformanceStats|x86.Build.0 = Debug|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug PerformanceTrace|Any CPU.ActiveCfg = Debug|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug PerformanceTrace|Any CPU.Build.0 = Debug|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug PerformanceTrace|x64.ActiveCfg = Debug|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug PerformanceTrace|x64.Build.0 = Debug|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug PerformanceTrace|x86.ActiveCfg = Debug|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug PerformanceTrace|x86.Build.0 = Debug|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug|x64.ActiveCfg = Debug|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug|x64.Build.0 = Debug|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug|x86.ActiveCfg = Debug|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Debug|x86.Build.0 = Debug|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.DebugTUG|Any CPU.ActiveCfg = Debug|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.DebugTUG|Any CPU.Build.0 = Debug|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.DebugTUG|x64.ActiveCfg = Debug|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.DebugTUG|x64.Build.0 = Debug|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.DebugTUG|x86.ActiveCfg = Debug|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.DebugTUG|x86.Build.0 = Debug|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Deploy|Any CPU.ActiveCfg = Deploy|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Deploy|Any CPU.Build.0 = Deploy|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Deploy|x64.ActiveCfg = Deploy|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Deploy|x64.Build.0 = Deploy|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Deploy|x86.ActiveCfg = Deploy|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Deploy|x86.Build.0 = Deploy|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Release|Any CPU.Build.0 = Release|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Release|x64.ActiveCfg = Release|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Release|x64.Build.0 = Release|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Release|x86.ActiveCfg = Release|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.Release|x86.Build.0 = Release|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.ReleaseTUG|Any CPU.ActiveCfg = Release|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.ReleaseTUG|Any CPU.Build.0 = Release|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.ReleaseTUG|x64.ActiveCfg = Release|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.ReleaseTUG|x64.Build.0 = Release|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.ReleaseTUG|x86.ActiveCfg = Release|Any CPU - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2}.ReleaseTUG|x86.Build.0 = Release|Any CPU {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Debug PerformanceStats|Any CPU.ActiveCfg = Debug|Any CPU {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Debug PerformanceStats|Any CPU.Build.0 = Debug|Any CPU {7E9172D4-07E3-4077-814E-7117AB2B3E22}.Debug PerformanceStats|x64.ActiveCfg = Debug|Any CPU @@ -917,8 +873,8 @@ Global {2320CD6F-FE7B-4341-A9BB-3ABCA7EF18F6} = {351FF7E8-B56B-445E-8E98-A61E07C990DA} {E8B0B447-1A54-4BEC-A160-AF0017000781} = {351FF7E8-B56B-445E-8E98-A61E07C990DA} {79A066AD-69A9-4223-90F6-6ED5D2D084F4} = {73A5BF70-6168-456F-95E5-A1402BFA488C} - {512C2CD1-E5BE-4F6B-943B-2BFA7E0CBD64} = {D29E62A2-CF08-469F-B29F-1B25DCB35386} - {D959CB7C-F514-4F5E-9C33-684D0012474B} = {D29E62A2-CF08-469F-B29F-1B25DCB35386} + {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2} = {D29E62A2-CF08-469F-B29F-1B25DCB35386} + {F79D87B8-9C5A-439B-9EAD-D66386447719} = {D29E62A2-CF08-469F-B29F-1B25DCB35386} {41314A40-AB3E-4F43-B1A4-58443F4014F2} = {D29E62A2-CF08-469F-B29F-1B25DCB35386} {749F150A-F974-46DC-A1E2-F4153C54FC0D} = {351FF7E8-B56B-445E-8E98-A61E07C990DA} {2C58BA97-2954-4D19-920F-A24B78FC80A4} = {D29E62A2-CF08-469F-B29F-1B25DCB35386} @@ -926,7 +882,6 @@ Global {B673E12F-D323-4C4C-8805-9915B2C72D3D} = {73A5BF70-6168-456F-95E5-A1402BFA488C} {760C1C5B-A767-463E-BA85-F0BCFC23A550} = {73A5BF70-6168-456F-95E5-A1402BFA488C} {C234077C-F81E-42FA-9367-1319753678A6} = {D29E62A2-CF08-469F-B29F-1B25DCB35386} - {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2} = {C4D97EBF-BA80-4943-9D27-33179405D8D5} {E672322E-44DC-41C8-A3A4-603233C72F92} = {351FF7E8-B56B-445E-8E98-A61E07C990DA} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/JobContainer.cs b/VectoCore/VectoCore/Models/Simulation/Impl/JobContainer.cs index 9db07ad7cb..e8d2b01df1 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/JobContainer.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/JobContainer.cs @@ -306,15 +306,23 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl public void WaitFinished() { - Task[] tasks; - try { - _runsRwLock.EnterReadLock(); - tasks = Runs.Select(r => r.RunTask).ToArray(); - } finally { - _runsRwLock.ExitReadLock(); - } + Task[] prevTasks; + Task[] tasks = {}; + for (var i = 0; i < 5; i++) { + try { + prevTasks = tasks; + _runsRwLock.EnterReadLock(); + tasks = Runs.Select(r => r.RunTask).ToArray(); + } finally { + _runsRwLock.ExitReadLock(); + } - Task.WaitAll(tasks); + if (prevTasks.Length != tasks.Length) { + Task.WaitAll(tasks); + } else { + return; + } + } } //[MethodImpl(MethodImplOptions.Synchronized)] diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs index 3e1e6c78d5..cf6112ccc4 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs @@ -214,8 +214,10 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl var mode = _mode; var inputData = - inputDataReader.CreateDeclaration(((FileOutputWriter)ReportWriter) - .XMLMultistageReportFileName); + inputDataReader.CreateDeclaration( + XmlReader.Create(ReportWriter.MultistageXmlReport.ToString().ToStream())); + //inputDataReader.CreateDeclaration(((FileOutputWriter)ReportWriter) + // .XMLMultistageReportFileName); return new SimulatorFactory(_mode, new XMLDeclarationVIFInputData(inputData as IMultistageBusInputDataProvider, null), ReportWriter, report, vtpReport, Validate) { }; @@ -229,7 +231,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl { System.Diagnostics.Debug.Assert(multiStagePrimaryAndStageInputData.PrimaryVehicle.JobInputData.Vehicle.VehicleCategory == VehicleCategory.HeavyBusPrimaryVehicle); - var tempOutputWriter = new TempFileOutputWriter(ReportWriter.JobFile, ReportType.DeclarationReportManufacturerXML); + var tempOutputWriter = new TempFileOutputWriter(ReportWriter, ReportType.DeclarationReportManufacturerXML); var originalReportWriter = ReportWriter; ReportWriter = tempOutputWriter; @@ -237,12 +239,9 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl DataReader = new DeclarationModePrimaryBusVectoRunDataFactory(multiStagePrimaryAndStageInputData.PrimaryVehicle, tempPrimaryReport); - var reportPrimary = new XMLDeclarationReportPrimaryVehicle(ReportWriter, true); - - CreateFollowUpSimulatorFactory = true; _followingSimulatorFactoryCreator = (() => { //replace with dependency injection diff --git a/VectoCore/VectoCore/OutputData/FileIO/FileOutputWriter.cs b/VectoCore/VectoCore/OutputData/FileIO/FileOutputWriter.cs index a6a94c4656..ab736db2e5 100644 --- a/VectoCore/VectoCore/OutputData/FileIO/FileOutputWriter.cs +++ b/VectoCore/VectoCore/OutputData/FileIO/FileOutputWriter.cs @@ -68,6 +68,8 @@ namespace TUGraz.VectoCore.OutputData.FileIO set => _numberOfManufacturingStages = value; } + public XDocument MultistageXmlReport => XDocument.Load(XMLMultistageReportFileName); + public string XMLMultistageReportFileName { get diff --git a/VectoCore/VectoCore/OutputData/FileIO/TempFileOutputWriter.cs b/VectoCore/VectoCore/OutputData/FileIO/TempFileOutputWriter.cs index 94a3bd18a1..508e37e40c 100644 --- a/VectoCore/VectoCore/OutputData/FileIO/TempFileOutputWriter.cs +++ b/VectoCore/VectoCore/OutputData/FileIO/TempFileOutputWriter.cs @@ -8,14 +8,15 @@ using TUGraz.VectoCommon.Models; namespace TUGraz.VectoCore.OutputData.FileIO { - public class TempFileOutputWriter : FileOutputWriter - { + public class TempFileOutputWriter : LoggingObject, IOutputDataWriter //: FileOutputWriter + { private readonly Dictionary<ReportType, XDocument> _storedReports = new Dictionary<ReportType, XDocument>(); private readonly HashSet<ReportType> _reportsToWrite; + private IOutputDataWriter BaseWriter; #region Overrides of FileOutputWriter - public override string XMLFullReportName => Path.ChangeExtension(_jobFile, "RSLT_MANUFACTURER_PRIMARY.xml"); + public string XMLFullReportName => Path.ChangeExtension(BaseWriter.JobFile, "RSLT_MANUFACTURER_PRIMARY.xml"); #endregion @@ -24,8 +25,9 @@ namespace TUGraz.VectoCore.OutputData.FileIO /// </summary> /// <param name="jobFile"></param> /// <param name="reportsToWrite">ReportTypes specified here are written to disk</param> - public TempFileOutputWriter(string jobFile, params ReportType[] reportsToWrite) : base(jobFile) + public TempFileOutputWriter(IOutputDataWriter baseWriter, params ReportType[] reportsToWrite) { + BaseWriter = baseWriter; _reportsToWrite = new HashSet<ReportType>(); if (!reportsToWrite.IsNullOrEmpty()) { foreach (var reportType in reportsToWrite) { @@ -36,34 +38,33 @@ namespace TUGraz.VectoCore.OutputData.FileIO #region Overrides of FileOutputWriter - public override IDictionary<ReportType, string> GetWrittenFiles() + public IDictionary<ReportType, string> GetWrittenFiles() { - return base.GetWrittenFiles(); + return BaseWriter.GetWrittenFiles(); } + public int NumberOfManufacturingStages { get; set; } + + public XDocument MultistageXmlReport { get; } + #endregion - protected TempFileOutputWriter(string jobFile, int numberOfManufacturingStages) : base(jobFile, - numberOfManufacturingStages) - { - - } #region Overrides of FileOutputWriter - public override void WriteReport(ReportType type, XDocument data) + public void WriteReport(ReportType type, XDocument data) { if (type == ReportType.DeclarationReportPdf) { throw new ArgumentOutOfRangeException("PDF is not supported by TempFileOutputWriter"); } if (_reportsToWrite.Contains(type)) { - base.WriteReport(type, data); + BaseWriter.WriteReport(type, data); } _storedReports.Add(type, data); } - public override void WriteReport(ReportType type, Stream data) + public void WriteReport(ReportType type, Stream data) { throw new NotImplementedException("PDF is not supported by TempFileOutputWriter"); } @@ -78,5 +79,29 @@ namespace TUGraz.VectoCore.OutputData.FileIO } return report; } + + #region Implementation of IModalDataWriter + + public void WriteModData(int jobRunId, string runName, string cycleName, string runSuffix, DataTable modData) + { + BaseWriter.WriteModData(jobRunId, runName, cycleName, runSuffix, modData); + } + + #endregion + + #region Implementation of ISummaryWriter + + public void WriteSumData(DataTable sortedAndFilteredTable) + { + BaseWriter.WriteSumData(sortedAndFilteredTable); + } + + #endregion + + #region Implementation of IOutputDataWriter + + public string JobFile => BaseWriter.JobFile; + + #endregion } } \ No newline at end of file diff --git a/VectoCore/VectoCore/OutputData/IDataWriter.cs b/VectoCore/VectoCore/OutputData/IDataWriter.cs index 1ab43ecc30..4d60255003 100644 --- a/VectoCore/VectoCore/OutputData/IDataWriter.cs +++ b/VectoCore/VectoCore/OutputData/IDataWriter.cs @@ -39,7 +39,6 @@ namespace TUGraz.VectoCore.OutputData public interface IOutputDataWriter : IModalDataWriter, IReportWriter, ISummaryWriter { string JobFile { get; } - } public interface IModalDataWriter @@ -61,6 +60,9 @@ namespace TUGraz.VectoCore.OutputData IDictionary<ReportType, string> GetWrittenFiles(); int NumberOfManufacturingStages { set; } + + XDocument MultistageXmlReport { get; } + } diff --git a/VectoCore/VectoCoreTest/Integration/Declaration/NaturalGasVehicles.cs b/VectoCore/VectoCoreTest/Integration/Declaration/NaturalGasVehicles.cs index 50a2fe0a41..c37a4affed 100644 --- a/VectoCore/VectoCoreTest/Integration/Declaration/NaturalGasVehicles.cs +++ b/VectoCore/VectoCoreTest/Integration/Declaration/NaturalGasVehicles.cs @@ -177,6 +177,8 @@ namespace TUGraz.VectoCore.Tests.Integration.Declaration set => throw new NotImplementedException(); } + public XDocument MultistageXmlReport { get; } + #endregion #region Implementation of ISummaryWriter -- GitLab