pythonfmu3 0.2.2__py3-none-any.whl → 0.2.2.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pythonfmu3 might be problematic. Click here for more details.

Files changed (199) hide show
  1. pythonfmu3/__init__.py +8 -8
  2. pythonfmu3/__main__.py +52 -52
  3. pythonfmu3/_version.py +1 -1
  4. pythonfmu3/builder.py +260 -260
  5. pythonfmu3/default_experiment.py +7 -7
  6. pythonfmu3/deploy.py +118 -118
  7. pythonfmu3/enums.py +48 -48
  8. pythonfmu3/fmi3slave.py +438 -438
  9. pythonfmu3/logmsg.py +14 -14
  10. pythonfmu3/osutil.py +22 -22
  11. pythonfmu3/pythonfmu-export/.clang-format +35 -35
  12. pythonfmu3/pythonfmu-export/CMakeLists.txt +59 -59
  13. pythonfmu3/pythonfmu-export/build/ALL_BUILD.vcxproj +184 -0
  14. pythonfmu3/pythonfmu-export/build/ALL_BUILD.vcxproj.filters +8 -0
  15. pythonfmu3/pythonfmu-export/build/CMakeCache.txt +369 -0
  16. pythonfmu3/pythonfmu-export/build/CMakeFiles/0ee4db0675778dfba98c7160896d5a45/generate.stamp.rule +1 -0
  17. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CMakeCCompiler.cmake +72 -0
  18. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CMakeCXXCompiler.cmake +83 -0
  19. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CMakeDetermineCompilerABI_C.bin +0 -0
  20. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CMakeDetermineCompilerABI_CXX.bin +0 -0
  21. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CMakeRCCompiler.cmake +6 -0
  22. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CMakeSystem.cmake +15 -0
  23. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CompilerIdC/CMakeCCompilerId.c +838 -0
  24. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CompilerIdC/CompilerIdC.exe +0 -0
  25. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CompilerIdC/CompilerIdC.vcxproj +71 -0
  26. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CompilerIdC/Debug/CMakeCCompilerId.obj +0 -0
  27. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CompilerIdC/Debug/CompilerIdC.exe.recipe +11 -0
  28. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CompilerIdC/Debug/CompilerIdC.tlog/CL.command.1.tlog +0 -0
  29. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CompilerIdC/Debug/CompilerIdC.tlog/CL.read.1.tlog +0 -0
  30. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CompilerIdC/Debug/CompilerIdC.tlog/CL.write.1.tlog +0 -0
  31. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CompilerIdC/Debug/CompilerIdC.tlog/CompilerIdC.lastbuildstate +2 -0
  32. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CompilerIdC/Debug/CompilerIdC.tlog/link.command.1.tlog +0 -0
  33. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CompilerIdC/Debug/CompilerIdC.tlog/link.read.1.tlog +0 -0
  34. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CompilerIdC/Debug/CompilerIdC.tlog/link.write.1.tlog +0 -0
  35. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CompilerIdCXX/CMakeCXXCompilerId.cpp +826 -0
  36. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CompilerIdCXX/CompilerIdCXX.exe +0 -0
  37. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CompilerIdCXX/CompilerIdCXX.vcxproj +71 -0
  38. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CompilerIdCXX/Debug/CMakeCXXCompilerId.obj +0 -0
  39. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CompilerIdCXX/Debug/CompilerIdCXX.exe.recipe +11 -0
  40. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.command.1.tlog +0 -0
  41. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.read.1.tlog +0 -0
  42. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.write.1.tlog +0 -0
  43. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CompilerIdCXX.lastbuildstate +2 -0
  44. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.command.1.tlog +0 -0
  45. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.read.1.tlog +0 -0
  46. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.write.1.tlog +0 -0
  47. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/VCTargetsPath.txt +1 -0
  48. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/VCTargetsPath.vcxproj +31 -0
  49. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/x64/Debug/VCTargetsPath.recipe +11 -0
  50. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.24.0/x64/Debug/VCTargetsPath.tlog/VCTargetsPath.lastbuildstate +2 -0
  51. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CMakeCCompiler.cmake +81 -0
  52. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CMakeCXXCompiler.cmake +101 -0
  53. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CMakeDetermineCompilerABI_C.bin +0 -0
  54. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CMakeDetermineCompilerABI_CXX.bin +0 -0
  55. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CMakeRCCompiler.cmake +6 -0
  56. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CMakeSystem.cmake +15 -0
  57. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CompilerIdC/CMakeCCompilerId.c +904 -0
  58. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CompilerIdC/CompilerIdC.exe +0 -0
  59. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CompilerIdC/CompilerIdC.vcxproj +72 -0
  60. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CompilerIdC/Debug/CMakeCCompilerId.obj +0 -0
  61. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CompilerIdC/Debug/CompilerIdC.exe.recipe +11 -0
  62. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CompilerIdC/Debug/CompilerIdC.tlog/CL.command.1.tlog +0 -0
  63. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CompilerIdC/Debug/CompilerIdC.tlog/CL.read.1.tlog +0 -0
  64. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CompilerIdC/Debug/CompilerIdC.tlog/CL.write.1.tlog +0 -0
  65. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CompilerIdC/Debug/CompilerIdC.tlog/CompilerIdC.lastbuildstate +2 -0
  66. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CompilerIdC/Debug/CompilerIdC.tlog/link.command.1.tlog +0 -0
  67. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CompilerIdC/Debug/CompilerIdC.tlog/link.read.1.tlog +0 -0
  68. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CompilerIdC/Debug/CompilerIdC.tlog/link.write.1.tlog +0 -0
  69. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CompilerIdCXX/CMakeCXXCompilerId.cpp +919 -0
  70. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CompilerIdCXX/CompilerIdCXX.exe +0 -0
  71. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CompilerIdCXX/CompilerIdCXX.vcxproj +72 -0
  72. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CompilerIdCXX/Debug/CMakeCXXCompilerId.obj +0 -0
  73. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CompilerIdCXX/Debug/CompilerIdCXX.exe.recipe +11 -0
  74. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.command.1.tlog +0 -0
  75. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.read.1.tlog +0 -0
  76. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CL.write.1.tlog +0 -0
  77. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CompilerIdCXX.lastbuildstate +2 -0
  78. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.command.1.tlog +0 -0
  79. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.read.1.tlog +0 -0
  80. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/CompilerIdCXX/Debug/CompilerIdCXX.tlog/link.write.1.tlog +0 -0
  81. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/VCTargetsPath.txt +1 -0
  82. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/VCTargetsPath.vcxproj +31 -0
  83. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/x64/Debug/VCTargetsPath.recipe +11 -0
  84. pythonfmu3/pythonfmu-export/build/CMakeFiles/3.30.2/x64/Debug/VCTargetsPath.tlog/VCTargetsPath.lastbuildstate +2 -0
  85. pythonfmu3/pythonfmu-export/build/CMakeFiles/CMakeConfigureLog.yaml +568 -0
  86. pythonfmu3/pythonfmu-export/build/CMakeFiles/CMakeOutput.log +357 -0
  87. pythonfmu3/pythonfmu-export/build/CMakeFiles/TargetDirectories.txt +3 -0
  88. pythonfmu3/pythonfmu-export/build/CMakeFiles/cmake.check_cache +1 -0
  89. pythonfmu3/pythonfmu-export/build/CMakeFiles/generate.stamp +1 -0
  90. pythonfmu3/pythonfmu-export/build/CMakeFiles/generate.stamp.depend +28 -0
  91. pythonfmu3/pythonfmu-export/build/CMakeFiles/generate.stamp.list +2 -0
  92. pythonfmu3/pythonfmu-export/build/ZERO_CHECK.vcxproj +174 -0
  93. pythonfmu3/pythonfmu-export/build/ZERO_CHECK.vcxproj.filters +13 -0
  94. pythonfmu3/pythonfmu-export/build/cmake_install.cmake +50 -0
  95. pythonfmu3/pythonfmu-export/build/install_manifest.txt +0 -0
  96. pythonfmu3/pythonfmu-export/build/pythonfmu-export.sln +53 -0
  97. pythonfmu3/pythonfmu-export/build/src/CMakeFiles/generate.stamp +1 -0
  98. pythonfmu3/pythonfmu-export/build/src/CMakeFiles/generate.stamp.depend +2 -0
  99. pythonfmu3/pythonfmu-export/build/src/Debug/pythonfmu-export.pdb +0 -0
  100. pythonfmu3/pythonfmu-export/build/src/Release/pythonfmu-export.exp +0 -0
  101. pythonfmu3/pythonfmu-export/build/src/Release/pythonfmu-export.lib +0 -0
  102. pythonfmu3/pythonfmu-export/build/src/cmake_install.cmake +34 -0
  103. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Debug/PySlaveInstance.obj +0 -0
  104. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Debug/cppfmu_cs.obj +0 -0
  105. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Debug/exports.def +1885 -0
  106. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Debug/fmi_functions.obj +0 -0
  107. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Debug/objects.txt +3 -0
  108. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Debug/pythonfmu-export.tlog/CL.command.1.tlog +0 -0
  109. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Debug/pythonfmu-export.tlog/CL.read.1.tlog +0 -0
  110. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Debug/pythonfmu-export.tlog/CL.write.1.tlog +0 -0
  111. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Debug/pythonfmu-export.tlog/CustomBuild.command.1.tlog +10 -0
  112. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Debug/pythonfmu-export.tlog/CustomBuild.read.1.tlog +1 -0
  113. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Debug/pythonfmu-export.tlog/CustomBuild.write.1.tlog +2 -0
  114. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Debug/pythonfmu-export.tlog/link.command.1.tlog +1 -0
  115. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Debug/pythonfmu-export.tlog/link.read.1.tlog +1 -0
  116. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Debug/pythonfmu-export.tlog/link.read.3.tlog +1 -0
  117. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Debug/pythonfmu-export.tlog/link.write.1.tlog +1 -0
  118. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Debug/pythonfmu-export.tlog/pythonfmu-export.lastbuildstate +2 -0
  119. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Debug/pythonfmu-export.tlog/unsuccessfulbuild +0 -0
  120. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Debug/vc142.pdb +0 -0
  121. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/MinSizeRel/objects.txt +3 -0
  122. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/RelWithDebInfo/objects.txt +3 -0
  123. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Release/PySlaveInstance.obj +0 -0
  124. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Release/cppfmu_cs.obj +0 -0
  125. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Release/exports.def +538 -0
  126. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Release/fmi_functions.obj +0 -0
  127. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Release/objects.txt +3 -0
  128. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Release/pythonfmu-export.dll.recipe +14 -0
  129. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Release/pythonfmu-export.tlog/CL.command.1.tlog +0 -0
  130. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Release/pythonfmu-export.tlog/CL.read.1.tlog +0 -0
  131. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Release/pythonfmu-export.tlog/CL.write.1.tlog +0 -0
  132. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Release/pythonfmu-export.tlog/CustomBuild.command.1.tlog +10 -0
  133. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Release/pythonfmu-export.tlog/CustomBuild.read.1.tlog +1 -0
  134. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Release/pythonfmu-export.tlog/CustomBuild.write.1.tlog +2 -0
  135. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Release/pythonfmu-export.tlog/link.command.1.tlog +0 -0
  136. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Release/pythonfmu-export.tlog/link.delete.1.tlog +0 -0
  137. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Release/pythonfmu-export.tlog/link.read.1.tlog +0 -0
  138. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Release/pythonfmu-export.tlog/link.write.1.tlog +0 -0
  139. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Release/pythonfmu-export.tlog/pythonfmu-export.lastbuildstate +2 -0
  140. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.dir/Release/pythonfmu-export.tlog/pythonfmu-export.write.1u.tlog +0 -0
  141. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.vcxproj +414 -0
  142. pythonfmu3/pythonfmu-export/build/src/pythonfmu-export.vcxproj.filters +48 -0
  143. pythonfmu3/pythonfmu-export/build/x64/Debug/ZERO_CHECK/ZERO_CHECK.recipe +11 -0
  144. pythonfmu3/pythonfmu-export/build/x64/Debug/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.command.1.tlog +10 -0
  145. pythonfmu3/pythonfmu-export/build/x64/Debug/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.read.1.tlog +29 -0
  146. pythonfmu3/pythonfmu-export/build/x64/Debug/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.write.1.tlog +3 -0
  147. pythonfmu3/pythonfmu-export/build/x64/Debug/ZERO_CHECK/ZERO_CHECK.tlog/ZERO_CHECK.lastbuildstate +2 -0
  148. pythonfmu3/pythonfmu-export/build/x64/Release/ALL_BUILD/ALL_BUILD.recipe +17 -0
  149. pythonfmu3/pythonfmu-export/build/x64/Release/ALL_BUILD/ALL_BUILD.tlog/ALL_BUILD.lastbuildstate +2 -0
  150. pythonfmu3/pythonfmu-export/build/x64/Release/ALL_BUILD/ALL_BUILD.tlog/CustomBuild.command.1.tlog +10 -0
  151. pythonfmu3/pythonfmu-export/build/x64/Release/ALL_BUILD/ALL_BUILD.tlog/CustomBuild.read.1.tlog +27 -0
  152. pythonfmu3/pythonfmu-export/build/x64/Release/ALL_BUILD/ALL_BUILD.tlog/CustomBuild.write.1.tlog +2 -0
  153. pythonfmu3/pythonfmu-export/build/x64/Release/ZERO_CHECK/ZERO_CHECK.recipe +11 -0
  154. pythonfmu3/pythonfmu-export/build/x64/Release/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.command.1.tlog +10 -0
  155. pythonfmu3/pythonfmu-export/build/x64/Release/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.read.1.tlog +29 -0
  156. pythonfmu3/pythonfmu-export/build/x64/Release/ZERO_CHECK/ZERO_CHECK.tlog/CustomBuild.write.1.tlog +3 -0
  157. pythonfmu3/pythonfmu-export/build/x64/Release/ZERO_CHECK/ZERO_CHECK.tlog/ZERO_CHECK.lastbuildstate +2 -0
  158. pythonfmu3/pythonfmu-export/build_unix.sh +4 -4
  159. pythonfmu3/pythonfmu-export/build_win.sh +4 -4
  160. pythonfmu3/pythonfmu-export/src/CMakeLists.txt +45 -45
  161. pythonfmu3/pythonfmu-export/src/cppfmu/cppfmu_common.hpp +161 -161
  162. pythonfmu3/pythonfmu-export/src/cppfmu/cppfmu_cs.cpp +192 -192
  163. pythonfmu3/pythonfmu-export/src/cppfmu/cppfmu_cs.hpp +185 -185
  164. pythonfmu3/pythonfmu-export/src/cppfmu/fmi_functions.cpp +937 -937
  165. pythonfmu3/pythonfmu-export/src/fmi/fmi3FunctionTypes.h +638 -638
  166. pythonfmu3/pythonfmu-export/src/fmi/fmi3Functions.h +343 -343
  167. pythonfmu3/pythonfmu-export/src/fmi/fmi3PlatformTypes.h +94 -94
  168. pythonfmu3/pythonfmu-export/src/pythonfmu/IPyState.hpp +17 -17
  169. pythonfmu3/pythonfmu-export/src/pythonfmu/PySlaveInstance.cpp +744 -744
  170. pythonfmu3/pythonfmu-export/src/pythonfmu/PySlaveInstance.hpp +111 -111
  171. pythonfmu3/pythonfmu-export/src/pythonfmu/PyState.hpp +84 -84
  172. pythonfmu3/resources/binaries/x86_64-linux/libpythonfmu-export.so +0 -0
  173. pythonfmu3/resources/binaries/x86_64-windows/pythonfmu-export.dll +0 -0
  174. pythonfmu3/resources/binaries/x86_64-windows1/pythonfmu-export.dll +0 -0
  175. pythonfmu3/tests/conftest.py +5 -5
  176. pythonfmu3/tests/data/csvdemo.csv +7 -7
  177. pythonfmu3/tests/slaves/PythonSlaveWithException.py +18 -18
  178. pythonfmu3/tests/slaves/localmodule.py +8 -8
  179. pythonfmu3/tests/slaves/pythonslave.py +52 -52
  180. pythonfmu3/tests/slaves/pythonslave_read_file.py +23 -23
  181. pythonfmu3/tests/slaves/slavewithdep.py +21 -21
  182. pythonfmu3/tests/test_builder.py +195 -195
  183. pythonfmu3/tests/test_deploy.py +48 -48
  184. pythonfmu3/tests/test_fmi3slave.py +152 -152
  185. pythonfmu3/tests/test_integration.py +350 -350
  186. pythonfmu3/tests/test_logger.py +180 -180
  187. pythonfmu3/tests/test_multiple_fmus.py +141 -141
  188. pythonfmu3/tests/test_variables.py +334 -334
  189. pythonfmu3/tests/utils.py +13 -13
  190. pythonfmu3/unit.py +62 -62
  191. pythonfmu3/variable_types.py +101 -101
  192. pythonfmu3/variables.py +400 -400
  193. pythonfmu3-0.2.2.dist-info/LICENSE → pythonfmu3-0.2.2.2.dist-info/LICENSE.txt +23 -23
  194. {pythonfmu3-0.2.2.dist-info → pythonfmu3-0.2.2.2.dist-info}/METADATA +9 -6
  195. pythonfmu3-0.2.2.2.dist-info/RECORD +200 -0
  196. {pythonfmu3-0.2.2.dist-info → pythonfmu3-0.2.2.2.dist-info}/WHEEL +1 -1
  197. {pythonfmu3-0.2.2.dist-info → pythonfmu3-0.2.2.2.dist-info}/entry_points.txt +1 -0
  198. pythonfmu3-0.2.2.dist-info/RECORD +0 -54
  199. {pythonfmu3-0.2.2.dist-info → pythonfmu3-0.2.2.2.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,27 @@
1
+ ^C:\USERS\Z004MRCS\PYTHONFMU3\PYTHONFMU3\PYTHONFMU-EXPORT\CMAKELISTS.TXT
2
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\CMAKECINFORMATION.CMAKE
3
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\CMAKECXXINFORMATION.CMAKE
4
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\CMAKECOMMONLANGUAGEINCLUDE.CMAKE
5
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\CMAKEGENERICSYSTEM.CMAKE
6
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\CMAKEINITIALIZECONFIGS.CMAKE
7
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\CMAKELANGUAGEINFORMATION.CMAKE
8
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\CMAKERCINFORMATION.CMAKE
9
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\CMAKESYSTEMSPECIFICINFORMATION.CMAKE
10
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\CMAKESYSTEMSPECIFICINITIALIZE.CMAKE
11
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\COMPILER\CMAKECOMMONCOMPILERMACROS.CMAKE
12
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\COMPILER\MSVC-C.CMAKE
13
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\COMPILER\MSVC-CXX.CMAKE
14
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\COMPILER\MSVC.CMAKE
15
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\FINDPACKAGEHANDLESTANDARDARGS.CMAKE
16
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\FINDPACKAGEMESSAGE.CMAKE
17
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\FINDPYTHON\SUPPORT.CMAKE
18
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\FINDPYTHON3.CMAKE
19
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\PLATFORM\WINDOWS-MSVC-C.CMAKE
20
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\PLATFORM\WINDOWS-MSVC-CXX.CMAKE
21
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\PLATFORM\WINDOWS-MSVC.CMAKE
22
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\PLATFORM\WINDOWS.CMAKE
23
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\PLATFORM\WINDOWSPATHS.CMAKE
24
+ C:\USERS\Z004MRCS\PYTHONFMU3\PYTHONFMU3\PYTHONFMU-EXPORT\BUILD\CMAKEFILES\3.24.0\CMAKECCOMPILER.CMAKE
25
+ C:\USERS\Z004MRCS\PYTHONFMU3\PYTHONFMU3\PYTHONFMU-EXPORT\BUILD\CMAKEFILES\3.24.0\CMAKECXXCOMPILER.CMAKE
26
+ C:\USERS\Z004MRCS\PYTHONFMU3\PYTHONFMU3\PYTHONFMU-EXPORT\BUILD\CMAKEFILES\3.24.0\CMAKERCCOMPILER.CMAKE
27
+ C:\USERS\Z004MRCS\PYTHONFMU3\PYTHONFMU3\PYTHONFMU-EXPORT\BUILD\CMAKEFILES\3.24.0\CMAKESYSTEM.CMAKE
@@ -0,0 +1,2 @@
1
+ ^C:\USERS\Z004MRCS\PYTHONFMU3\PYTHONFMU3\PYTHONFMU-EXPORT\CMAKELISTS.TXT
2
+ C:\USERS\Z004MRCS\PYTHONFMU3\PYTHONFMU3\PYTHONFMU-EXPORT\BUILD\CMAKEFILES\GENERATE.STAMP
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project>
3
+ <ProjectOutputs>
4
+ <ProjectOutput>
5
+ <FullPath>C:\Users\z004mrcs\PythonFMU3\pythonfmu3\pythonfmu-export\build\x64\Release\ZERO_CHECK</FullPath>
6
+ </ProjectOutput>
7
+ </ProjectOutputs>
8
+ <ContentFiles />
9
+ <SatelliteDlls />
10
+ <NonRecipeFileRefs />
11
+ </Project>
@@ -0,0 +1,10 @@
1
+ ^C:\USERS\Z004MRCS\PYTHONFMU3\PYTHONFMU3\PYTHONFMU-EXPORT\BUILD\CMAKEFILES\0EE4DB0675778DFBA98C7160896D5A45\GENERATE.STAMP.RULE
2
+ setlocal
3
+ "C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/z004mrcs/PythonFMU3/pythonfmu3/pythonfmu-export -BC:/Users/z004mrcs/PythonFMU3/pythonfmu3/pythonfmu-export/build --check-stamp-list CMakeFiles/generate.stamp.list --vs-solution-file C:/Users/z004mrcs/PythonFMU3/pythonfmu3/pythonfmu-export/build/pythonfmu-export.sln
4
+ if %errorlevel% neq 0 goto :cmEnd
5
+ :cmEnd
6
+ endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
7
+ :cmErrorLevel
8
+ exit /b %1
9
+ :cmDone
10
+ if %errorlevel% neq 0 goto :VCEnd
@@ -0,0 +1,29 @@
1
+ ^C:\USERS\Z004MRCS\PYTHONFMU3\PYTHONFMU3\PYTHONFMU-EXPORT\BUILD\CMAKEFILES\0EE4DB0675778DFBA98C7160896D5A45\GENERATE.STAMP.RULE
2
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\CMAKECINFORMATION.CMAKE
3
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\CMAKECXXINFORMATION.CMAKE
4
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\CMAKECOMMONLANGUAGEINCLUDE.CMAKE
5
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\CMAKEGENERICSYSTEM.CMAKE
6
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\CMAKEINITIALIZECONFIGS.CMAKE
7
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\CMAKELANGUAGEINFORMATION.CMAKE
8
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\CMAKERCINFORMATION.CMAKE
9
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\CMAKESYSTEMSPECIFICINFORMATION.CMAKE
10
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\CMAKESYSTEMSPECIFICINITIALIZE.CMAKE
11
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\COMPILER\CMAKECOMMONCOMPILERMACROS.CMAKE
12
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\COMPILER\MSVC-C.CMAKE
13
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\COMPILER\MSVC-CXX.CMAKE
14
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\COMPILER\MSVC.CMAKE
15
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\FINDPACKAGEHANDLESTANDARDARGS.CMAKE
16
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\FINDPACKAGEMESSAGE.CMAKE
17
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\FINDPYTHON\SUPPORT.CMAKE
18
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\FINDPYTHON3.CMAKE
19
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\PLATFORM\WINDOWS-MSVC-C.CMAKE
20
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\PLATFORM\WINDOWS-MSVC-CXX.CMAKE
21
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\PLATFORM\WINDOWS-MSVC.CMAKE
22
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\PLATFORM\WINDOWS.CMAKE
23
+ C:\PROGRAM FILES\CMAKE\SHARE\CMAKE-3.24\MODULES\PLATFORM\WINDOWSPATHS.CMAKE
24
+ C:\USERS\Z004MRCS\PYTHONFMU3\PYTHONFMU3\PYTHONFMU-EXPORT\CMAKELISTS.TXT
25
+ C:\USERS\Z004MRCS\PYTHONFMU3\PYTHONFMU3\PYTHONFMU-EXPORT\BUILD\CMAKEFILES\3.24.0\CMAKECCOMPILER.CMAKE
26
+ C:\USERS\Z004MRCS\PYTHONFMU3\PYTHONFMU3\PYTHONFMU-EXPORT\BUILD\CMAKEFILES\3.24.0\CMAKECXXCOMPILER.CMAKE
27
+ C:\USERS\Z004MRCS\PYTHONFMU3\PYTHONFMU3\PYTHONFMU-EXPORT\BUILD\CMAKEFILES\3.24.0\CMAKERCCOMPILER.CMAKE
28
+ C:\USERS\Z004MRCS\PYTHONFMU3\PYTHONFMU3\PYTHONFMU-EXPORT\BUILD\CMAKEFILES\3.24.0\CMAKESYSTEM.CMAKE
29
+ C:\USERS\Z004MRCS\PYTHONFMU3\PYTHONFMU3\PYTHONFMU-EXPORT\SRC\CMAKELISTS.TXT
@@ -0,0 +1,3 @@
1
+ ^C:\USERS\Z004MRCS\PYTHONFMU3\PYTHONFMU3\PYTHONFMU-EXPORT\BUILD\CMAKEFILES\0EE4DB0675778DFBA98C7160896D5A45\GENERATE.STAMP.RULE
2
+ C:\USERS\Z004MRCS\PYTHONFMU3\PYTHONFMU3\PYTHONFMU-EXPORT\BUILD\CMAKEFILES\GENERATE.STAMP
3
+ C:\USERS\Z004MRCS\PYTHONFMU3\PYTHONFMU3\PYTHONFMU-EXPORT\BUILD\SRC\CMAKEFILES\GENERATE.STAMP
@@ -0,0 +1,2 @@
1
+ PlatformToolSet=v142:VCToolArchitecture=Native64Bit:VCToolsVersion=14.29.30133:VCServicingVersionMFC=14.29.30136:VCServicingVersionATL=14.29.30136:VCServicingVersionCrtHeaders=14.29.30136:TargetPlatformVersion=10.0.19041.0:
2
+ Release|x64|C:\Users\z004mrcs\PythonFMU3\pythonfmu3\pythonfmu-export\build\|
@@ -1,4 +1,4 @@
1
- mkdir build
2
- cd build
3
- cmake .. -DCMAKE_BUILD_TYPE=Release
4
- cmake --build .
1
+ mkdir build
2
+ cd build
3
+ cmake .. -DCMAKE_BUILD_TYPE=Release
4
+ cmake --build .
@@ -1,4 +1,4 @@
1
- mkdir build
2
- cd build
3
- cmake .. -DCMAKE_BUILD_TYPE=Release -A x64
4
- cmake --build . --config Release
1
+ mkdir build
2
+ cd build
3
+ cmake .. -DCMAKE_BUILD_TYPE=Release -A x64
4
+ cmake --build . --config Release
@@ -1,45 +1,45 @@
1
-
2
- set(headers
3
- cppfmu/cppfmu_cs.hpp
4
- cppfmu/cppfmu_common.hpp
5
-
6
- fmi/fmi3Functions.h
7
- fmi/fmi3FunctionTypes.h
8
- fmi/fmi3PlatformTypes.h
9
-
10
- pythonfmu/PySlaveInstance.hpp
11
- pythonfmu/PyState.hpp
12
- )
13
-
14
- set(sources
15
- cppfmu/cppfmu_cs.cpp
16
- cppfmu/fmi_functions.cpp
17
- pythonfmu/PySlaveInstance.cpp
18
- )
19
-
20
- add_library(pythonfmu-export ${sources} ${headers})
21
- target_compile_features(pythonfmu-export PUBLIC "cxx_std_17")
22
-
23
- target_include_directories(pythonfmu-export
24
- PRIVATE
25
- "${Python3_INCLUDE_DIRS}"
26
- "${CMAKE_CURRENT_SOURCE_DIR}"
27
- )
28
-
29
- if (WIN32)
30
- target_link_libraries(pythonfmu-export PRIVATE ${Python3_LIBRARIES})
31
- elseif (APPLE)
32
- set_target_properties(pythonfmu-export PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
33
- endif ()
34
-
35
- if (WIN32)
36
- set_target_properties(pythonfmu-export
37
- PROPERTIES
38
- RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_SOURCE_DIR}/../resources/binaries/${TARGET_PLATFORM}"
39
- )
40
- else ()
41
- set_target_properties(pythonfmu-export
42
- PROPERTIES
43
- LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/../resources/binaries/${TARGET_PLATFORM}"
44
- )
45
- endif ()
1
+
2
+ set(headers
3
+ cppfmu/cppfmu_cs.hpp
4
+ cppfmu/cppfmu_common.hpp
5
+
6
+ fmi/fmi3Functions.h
7
+ fmi/fmi3FunctionTypes.h
8
+ fmi/fmi3PlatformTypes.h
9
+
10
+ pythonfmu/PySlaveInstance.hpp
11
+ pythonfmu/PyState.hpp
12
+ )
13
+
14
+ set(sources
15
+ cppfmu/cppfmu_cs.cpp
16
+ cppfmu/fmi_functions.cpp
17
+ pythonfmu/PySlaveInstance.cpp
18
+ )
19
+
20
+ add_library(pythonfmu-export ${sources} ${headers})
21
+ target_compile_features(pythonfmu-export PUBLIC "cxx_std_17")
22
+
23
+ target_include_directories(pythonfmu-export
24
+ PRIVATE
25
+ "${Python3_INCLUDE_DIRS}"
26
+ "${CMAKE_CURRENT_SOURCE_DIR}"
27
+ )
28
+
29
+ if (WIN32)
30
+ target_link_libraries(pythonfmu-export PRIVATE ${Python3_LIBRARIES})
31
+ elseif (APPLE)
32
+ set_target_properties(pythonfmu-export PROPERTIES LINK_FLAGS "-undefined dynamic_lookup")
33
+ endif ()
34
+
35
+ if (WIN32)
36
+ set_target_properties(pythonfmu-export
37
+ PROPERTIES
38
+ RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_SOURCE_DIR}/../resources/binaries/${TARGET_PLATFORM}"
39
+ )
40
+ else ()
41
+ set_target_properties(pythonfmu-export
42
+ PROPERTIES
43
+ LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/../resources/binaries/${TARGET_PLATFORM}"
44
+ )
45
+ endif ()
@@ -1,161 +1,161 @@
1
- /* Copyright 2016-2019, SINTEF Ocean.
2
- * This Source Code Form is subject to the terms of the Mozilla Public
3
- * License, v. 2.0. If a copy of the MPL was not distributed with this
4
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
- */
6
- #ifndef CPPFMU_COMMON_HPP
7
- #define CPPFMU_COMMON_HPP
8
-
9
- #include <algorithm> // std::find()
10
- #include <cstddef> // std::size_t
11
- #include <functional> // std::function
12
- #include <memory> // std::shared_ptr, std::unique_ptr
13
- #include <new> // std::bad_alloc
14
- #include <stdexcept> // std::runtime_error
15
- #include <string> // std::basic_string, std::char_traits
16
- #include <utility> // std::forward
17
- #include <vector>
18
-
19
- extern "C"
20
- {
21
- #include "fmi/fmi3Functions.h"
22
- }
23
-
24
-
25
- // CPPFMU_NOEXCEPT evaluates to 'noexcept' on compilers that support it.
26
- #if (__cplusplus >= 201103L) || (defined(_MSC_VER) && _MSC_VER >= 1900)
27
- # define CPPFMU_NOEXCEPT noexcept
28
- #else
29
- # define CPPFMU_NOEXCEPT
30
- #endif
31
-
32
-
33
- namespace cppfmu
34
- {
35
-
36
- // Aliases for FMI types and enums
37
- typedef fmi3Float64 FMIFloat64;
38
- typedef fmi3Int32 FMIInt32;
39
- typedef fmi3Int64 FMIInt64;
40
- typedef fmi3UInt64 FMIUInt64;
41
- typedef fmi3Boolean FMIBoolean;
42
- typedef fmi3String FMIString;
43
- typedef fmi3LogMessageCallback FMICallbackLogger;
44
- typedef fmi3Instance FMIComponent;
45
- typedef fmi3InstanceEnvironment FMIComponentEnvironment;
46
- typedef fmi3Status FMIStatus;
47
- typedef fmi3ValueReference FMIValueReference;
48
-
49
- const FMIBoolean FMIFalse = fmi3False;
50
- const FMIBoolean FMITrue = fmi3True;
51
-
52
- const FMIStatus FMIOK = fmi3OK;
53
- const FMIStatus FMIWarning = fmi3Warning;
54
- const FMIStatus FMIDiscard = fmi3Discard;
55
- const FMIStatus FMIError = fmi3Error;
56
- const FMIStatus FMIFatal = fmi3Fatal;
57
-
58
- using String = std::string;
59
-
60
-
61
- // ============================================================================
62
- // ERROR HANDLING
63
- // ============================================================================
64
-
65
-
66
- /* Exception class that signals "fatal error", i.e. an error which means that
67
- * not only is the current model instance invalid, but all other instances of
68
- * the same model too.
69
- */
70
- class FatalError : public std::runtime_error
71
- {
72
- public:
73
- FatalError(const char* msg) CPPFMU_NOEXCEPT : std::runtime_error{msg} { }
74
- };
75
-
76
-
77
- // ============================================================================
78
- // LOGGING
79
- // ============================================================================
80
-
81
- namespace detail
82
- {
83
- template<typename Container, typename Item>
84
- bool CanFind(const Container& container, const Item& item)
85
- {
86
- return container.end() != std::find(
87
- container.begin(),
88
- container.end(),
89
- item);
90
- }
91
- }
92
-
93
-
94
- /* A class that can be used to log messages from model code. All messages are
95
- * forwarded to the logging facilities provided by the simulation environment.
96
- */
97
- class Logger
98
- {
99
- public:
100
- struct Settings
101
- {
102
- bool debugLoggingEnabled = false;
103
- std::vector<String> loggedCategories;
104
- };
105
-
106
- Logger(
107
- FMIComponentEnvironment component,
108
- fmi3LogMessageCallback logCallback,
109
- std::shared_ptr<Settings> settings)
110
- : m_component{component}
111
- , m_fmiLogger{logCallback}
112
- , m_settings{settings}
113
- {
114
- }
115
-
116
- // Logs a message.
117
- template<typename... Args>
118
- void Log(
119
- FMIStatus status,
120
- FMIString category,
121
- FMIString message,
122
- Args&&... args) CPPFMU_NOEXCEPT
123
- {
124
- if (m_settings->loggedCategories.empty() ||
125
- detail::CanFind(m_settings->loggedCategories, category)) {
126
- m_fmiLogger(
127
- m_component,
128
- status,
129
- category,
130
- message);
131
- }
132
- }
133
-
134
- /* Logs a debug message (if debug logging is enabled by the simulation
135
- * environment).
136
- */
137
- template<typename... Args>
138
- void DebugLog(
139
- FMIStatus status,
140
- FMIString category,
141
- FMIString message,
142
- Args&&... args) CPPFMU_NOEXCEPT
143
- {
144
- if (m_settings->debugLoggingEnabled) {
145
- Log(
146
- status,
147
- category,
148
- message,
149
- std::forward<Args>(args)...);
150
- }
151
- }
152
-
153
- private:
154
- const FMIComponentEnvironment m_component;
155
- const FMICallbackLogger m_fmiLogger;
156
- std::shared_ptr<Settings> m_settings;
157
- };
158
-
159
-
160
- } // namespace cppfmu
161
- #endif // header guard
1
+ /* Copyright 2016-2019, SINTEF Ocean.
2
+ * This Source Code Form is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ */
6
+ #ifndef CPPFMU_COMMON_HPP
7
+ #define CPPFMU_COMMON_HPP
8
+
9
+ #include <algorithm> // std::find()
10
+ #include <cstddef> // std::size_t
11
+ #include <functional> // std::function
12
+ #include <memory> // std::shared_ptr, std::unique_ptr
13
+ #include <new> // std::bad_alloc
14
+ #include <stdexcept> // std::runtime_error
15
+ #include <string> // std::basic_string, std::char_traits
16
+ #include <utility> // std::forward
17
+ #include <vector>
18
+
19
+ extern "C"
20
+ {
21
+ #include "fmi/fmi3Functions.h"
22
+ }
23
+
24
+
25
+ // CPPFMU_NOEXCEPT evaluates to 'noexcept' on compilers that support it.
26
+ #if (__cplusplus >= 201103L) || (defined(_MSC_VER) && _MSC_VER >= 1900)
27
+ # define CPPFMU_NOEXCEPT noexcept
28
+ #else
29
+ # define CPPFMU_NOEXCEPT
30
+ #endif
31
+
32
+
33
+ namespace cppfmu
34
+ {
35
+
36
+ // Aliases for FMI types and enums
37
+ typedef fmi3Float64 FMIFloat64;
38
+ typedef fmi3Int32 FMIInt32;
39
+ typedef fmi3Int64 FMIInt64;
40
+ typedef fmi3UInt64 FMIUInt64;
41
+ typedef fmi3Boolean FMIBoolean;
42
+ typedef fmi3String FMIString;
43
+ typedef fmi3LogMessageCallback FMICallbackLogger;
44
+ typedef fmi3Instance FMIComponent;
45
+ typedef fmi3InstanceEnvironment FMIComponentEnvironment;
46
+ typedef fmi3Status FMIStatus;
47
+ typedef fmi3ValueReference FMIValueReference;
48
+
49
+ const FMIBoolean FMIFalse = fmi3False;
50
+ const FMIBoolean FMITrue = fmi3True;
51
+
52
+ const FMIStatus FMIOK = fmi3OK;
53
+ const FMIStatus FMIWarning = fmi3Warning;
54
+ const FMIStatus FMIDiscard = fmi3Discard;
55
+ const FMIStatus FMIError = fmi3Error;
56
+ const FMIStatus FMIFatal = fmi3Fatal;
57
+
58
+ using String = std::string;
59
+
60
+
61
+ // ============================================================================
62
+ // ERROR HANDLING
63
+ // ============================================================================
64
+
65
+
66
+ /* Exception class that signals "fatal error", i.e. an error which means that
67
+ * not only is the current model instance invalid, but all other instances of
68
+ * the same model too.
69
+ */
70
+ class FatalError : public std::runtime_error
71
+ {
72
+ public:
73
+ FatalError(const char* msg) CPPFMU_NOEXCEPT : std::runtime_error{msg} { }
74
+ };
75
+
76
+
77
+ // ============================================================================
78
+ // LOGGING
79
+ // ============================================================================
80
+
81
+ namespace detail
82
+ {
83
+ template<typename Container, typename Item>
84
+ bool CanFind(const Container& container, const Item& item)
85
+ {
86
+ return container.end() != std::find(
87
+ container.begin(),
88
+ container.end(),
89
+ item);
90
+ }
91
+ }
92
+
93
+
94
+ /* A class that can be used to log messages from model code. All messages are
95
+ * forwarded to the logging facilities provided by the simulation environment.
96
+ */
97
+ class Logger
98
+ {
99
+ public:
100
+ struct Settings
101
+ {
102
+ bool debugLoggingEnabled = false;
103
+ std::vector<String> loggedCategories;
104
+ };
105
+
106
+ Logger(
107
+ FMIComponentEnvironment component,
108
+ fmi3LogMessageCallback logCallback,
109
+ std::shared_ptr<Settings> settings)
110
+ : m_component{component}
111
+ , m_fmiLogger{logCallback}
112
+ , m_settings{settings}
113
+ {
114
+ }
115
+
116
+ // Logs a message.
117
+ template<typename... Args>
118
+ void Log(
119
+ FMIStatus status,
120
+ FMIString category,
121
+ FMIString message,
122
+ Args&&... args) CPPFMU_NOEXCEPT
123
+ {
124
+ if (m_settings->loggedCategories.empty() ||
125
+ detail::CanFind(m_settings->loggedCategories, category)) {
126
+ m_fmiLogger(
127
+ m_component,
128
+ status,
129
+ category,
130
+ message);
131
+ }
132
+ }
133
+
134
+ /* Logs a debug message (if debug logging is enabled by the simulation
135
+ * environment).
136
+ */
137
+ template<typename... Args>
138
+ void DebugLog(
139
+ FMIStatus status,
140
+ FMIString category,
141
+ FMIString message,
142
+ Args&&... args) CPPFMU_NOEXCEPT
143
+ {
144
+ if (m_settings->debugLoggingEnabled) {
145
+ Log(
146
+ status,
147
+ category,
148
+ message,
149
+ std::forward<Args>(args)...);
150
+ }
151
+ }
152
+
153
+ private:
154
+ const FMIComponentEnvironment m_component;
155
+ const FMICallbackLogger m_fmiLogger;
156
+ std::shared_ptr<Settings> m_settings;
157
+ };
158
+
159
+
160
+ } // namespace cppfmu
161
+ #endif // header guard