Compare commits
45 Commits
7928ce3239
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e978fcacfa | ||
|
|
ac00c1ee63 | ||
|
|
152dd86b21 | ||
|
|
71563cba88 | ||
|
|
144f09ab07 | ||
|
|
070de3d2d3 | ||
|
|
3ce5c867c5 | ||
|
|
12b21daa2d | ||
|
|
f0107377db | ||
|
|
2c427b6a99 | ||
|
|
c220df2df9 | ||
|
|
50a0bc749e | ||
|
|
1f8fe3af50 | ||
|
|
858aa47d00 | ||
|
|
9c4eb6ea1d | ||
|
|
628076ead6 | ||
|
|
fe49b993b4 | ||
|
|
47196263f8 | ||
|
|
06d1732dfe | ||
|
|
84135f70a0 | ||
|
|
2d945c829b | ||
|
|
5673054665 | ||
|
|
5ee5ee8d9a | ||
|
|
0f5dcade23 | ||
|
|
2ebd691693 | ||
|
|
a1cf78dd20 | ||
|
|
3b9405f029 | ||
|
|
699fc87bc3 | ||
|
|
0a49237838 | ||
|
|
aa62bed1b7 | ||
|
|
a936856533 | ||
|
|
39d5179c2c | ||
|
|
e2a8b31b87 | ||
|
|
aebaf52bcc | ||
|
|
285e135254 | ||
|
|
d3a7134199 | ||
|
|
0d7cabd465 | ||
|
|
ec41b1d74a | ||
|
|
503512272e | ||
|
|
3dee24cdfc | ||
|
|
86fdaa46d3 | ||
|
|
9d02e5a96e | ||
|
|
c8c49c140f | ||
|
|
a4b0739467 | ||
|
|
00f8e9a751 |
50
.gitignore
vendored
Executable file
50
.gitignore
vendored
Executable file
@@ -0,0 +1,50 @@
|
|||||||
|
build/*
|
||||||
|
build.*
|
||||||
|
Testing/*
|
||||||
|
CMakeFiles/*
|
||||||
|
CMakeCache.*
|
||||||
|
|
||||||
|
*.o
|
||||||
|
|
||||||
|
*.zip
|
||||||
|
*.user
|
||||||
|
app/.qtcreator/CMakeLists.txt.user
|
||||||
|
app/CMakeFiles/**
|
||||||
|
app/app_lib_autogen/*
|
||||||
|
app/app_autogen/*
|
||||||
|
app/app_lib_autogen/*
|
||||||
|
app/meta_types/**
|
||||||
|
app/libapp_lib.a
|
||||||
|
app/*.cmake
|
||||||
|
app/app
|
||||||
|
|
||||||
|
controller/CMakeFiles/*
|
||||||
|
controller/*.cmake
|
||||||
|
controller/ctrl_algo_autogen/*
|
||||||
|
controller/libctrl_algo.so
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
tests/CMakeFiles/*
|
||||||
|
tests/*.json
|
||||||
|
tests/*.cmake
|
||||||
|
tests/tests
|
||||||
|
|
||||||
|
*.*swp
|
||||||
|
.cmake/**
|
||||||
|
.cmake/*
|
||||||
|
.qtcreator/**
|
||||||
|
.qtc_clangd/**
|
||||||
|
.qtc_clangd/*
|
||||||
|
|
||||||
|
|
||||||
|
ninja_deps
|
||||||
|
.ninja_log
|
||||||
|
CMakeCache.txt
|
||||||
|
CTestTestfile.cmake
|
||||||
|
CMakeCache.*
|
||||||
|
*.cmake
|
||||||
|
.ninja*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
71
.qt/QtDeploySupport.cmake
Executable file
71
.qt/QtDeploySupport.cmake
Executable file
@@ -0,0 +1,71 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.16...3.21)
|
||||||
|
|
||||||
|
# These are part of the public API. Projects should use them to provide a
|
||||||
|
# consistent set of prefix-relative destinations.
|
||||||
|
if(NOT QT_DEPLOY_BIN_DIR)
|
||||||
|
set(QT_DEPLOY_BIN_DIR "bin")
|
||||||
|
endif()
|
||||||
|
if(NOT QT_DEPLOY_LIBEXEC_DIR)
|
||||||
|
set(QT_DEPLOY_LIBEXEC_DIR "libexec")
|
||||||
|
endif()
|
||||||
|
if(NOT QT_DEPLOY_LIB_DIR)
|
||||||
|
set(QT_DEPLOY_LIB_DIR "lib")
|
||||||
|
endif()
|
||||||
|
if(NOT QT_DEPLOY_PLUGINS_DIR)
|
||||||
|
set(QT_DEPLOY_PLUGINS_DIR "plugins")
|
||||||
|
endif()
|
||||||
|
if(NOT QT_DEPLOY_QML_DIR)
|
||||||
|
set(QT_DEPLOY_QML_DIR "qml")
|
||||||
|
endif()
|
||||||
|
if(NOT QT_DEPLOY_TRANSLATIONS_DIR)
|
||||||
|
set(QT_DEPLOY_TRANSLATIONS_DIR "translations")
|
||||||
|
endif()
|
||||||
|
if(NOT QT_DEPLOY_PREFIX)
|
||||||
|
set(QT_DEPLOY_PREFIX "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}")
|
||||||
|
endif()
|
||||||
|
if(QT_DEPLOY_PREFIX STREQUAL "")
|
||||||
|
set(QT_DEPLOY_PREFIX .)
|
||||||
|
endif()
|
||||||
|
if(NOT QT_DEPLOY_IGNORED_LIB_DIRS)
|
||||||
|
set(QT_DEPLOY_IGNORED_LIB_DIRS "/opt/gcc-15/lib/gcc/x86_64-pc-linux-gnu/15.1.0;/opt/gcc-15/lib64;/lib/x86_64-linux-gnu;/lib64;/usr/lib/x86_64-linux-gnu;/usr/lib64;/opt/gcc-15/lib;/lib;/usr/lib")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# These are internal implementation details. They may be removed at any time.
|
||||||
|
set(__QT_DEPLOY_SYSTEM_NAME "Linux")
|
||||||
|
set(__QT_DEPLOY_SHARED_LIBRARY_SUFFIX ".so")
|
||||||
|
set(__QT_DEPLOY_IS_SHARED_LIBS_BUILD "ON")
|
||||||
|
set(__QT_DEPLOY_TOOL "GRD")
|
||||||
|
set(__QT_DEPLOY_IMPL_DIR "/home/k4/tmp/bbr-algo/BinderBeispielRegler/.qt")
|
||||||
|
set(__QT_DEPLOY_VERBOSE "")
|
||||||
|
set(__QT_CMAKE_EXPORT_NAMESPACE "Qt6")
|
||||||
|
set(__QT_LIBINFIX "")
|
||||||
|
set(__QT_DEPLOY_GENERATOR_IS_MULTI_CONFIG "0")
|
||||||
|
set(__QT_DEPLOY_ACTIVE_CONFIG "Debug")
|
||||||
|
set(__QT_NO_CREATE_VERSIONLESS_FUNCTIONS "")
|
||||||
|
set(__QT_DEFAULT_MAJOR_VERSION "6")
|
||||||
|
set(__QT_DEPLOY_QT_ADDITIONAL_PACKAGES_PREFIX_PATH "")
|
||||||
|
set(__QT_DEPLOY_QT_INSTALL_PREFIX "/home/k4/Qt/6.10.2/gcc_64")
|
||||||
|
set(__QT_DEPLOY_QT_INSTALL_BINS "bin")
|
||||||
|
set(__QT_DEPLOY_QT_INSTALL_DATA ".")
|
||||||
|
set(__QT_DEPLOY_QT_INSTALL_DESCRIPTIONSDIR "modules")
|
||||||
|
set(__QT_DEPLOY_QT_INSTALL_LIBEXECS "libexec")
|
||||||
|
set(__QT_DEPLOY_QT_INSTALL_PLUGINS "plugins")
|
||||||
|
set(__QT_DEPLOY_QT_INSTALL_TRANSLATIONS "translations")
|
||||||
|
set(__QT_DEPLOY_TARGET_QT_PATHS_PATH "/home/k4/Qt/6.10.2/gcc_64/bin/qtpaths6")
|
||||||
|
set(__QT_DEPLOY_MUST_ADJUST_PLUGINS_RPATH "ON")
|
||||||
|
set(__QT_DEPLOY_USE_PATCHELF "")
|
||||||
|
set(__QT_DEPLOY_PATCHELF_EXECUTABLE "")
|
||||||
|
set(__QT_DEPLOY_QT_IS_MULTI_CONFIG_BUILD_WITH_DEBUG "FALSE")
|
||||||
|
set(__QT_DEPLOY_QT_DEBUG_POSTFIX "")
|
||||||
|
|
||||||
|
# Define the CMake commands to be made available during deployment.
|
||||||
|
set(__qt_deploy_support_files
|
||||||
|
"/home/k4/tmp/bbr-algo/BinderBeispielRegler/.qt/QtDeployTargets.cmake"
|
||||||
|
"/home/k4/Qt/6.10.2/gcc_64/lib/cmake/Qt6Core/Qt6CoreDeploySupport.cmake"
|
||||||
|
)
|
||||||
|
foreach(__qt_deploy_support_file IN LISTS __qt_deploy_support_files)
|
||||||
|
include("${__qt_deploy_support_file}")
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
unset(__qt_deploy_support_file)
|
||||||
|
unset(__qt_deploy_support_files)
|
||||||
8
.qt/QtDeployTargets.cmake
Executable file
8
.qt/QtDeployTargets.cmake
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
set(__QT_DEPLOY_TARGET_app_FILE /home/k4/tmp/bbr-algo/BinderBeispielRegler/app/app)
|
||||||
|
set(__QT_DEPLOY_TARGET_app_TYPE EXECUTABLE)
|
||||||
|
set(__QT_DEPLOY_TARGET_app_lib_FILE /home/k4/tmp/bbr-algo/BinderBeispielRegler/app/libapp_lib.a)
|
||||||
|
set(__QT_DEPLOY_TARGET_app_lib_TYPE STATIC_LIBRARY)
|
||||||
|
set(__QT_DEPLOY_TARGET_ctrl_algo_FILE /home/k4/tmp/bbr-algo/BinderBeispielRegler/controller/libctrl_algo.so)
|
||||||
|
set(__QT_DEPLOY_TARGET_ctrl_algo_TYPE SHARED_LIBRARY)
|
||||||
|
set(__QT_DEPLOY_TARGET_tests_FILE /home/k4/tmp/bbr-algo/BinderBeispielRegler/tests/tests)
|
||||||
|
set(__QT_DEPLOY_TARGET_tests_TYPE EXECUTABLE)
|
||||||
517
.qtcreator/CMakeLists.txt.user.fc8d3b1
Executable file
517
.qtcreator/CMakeLists.txt.user.fc8d3b1
Executable file
@@ -0,0 +1,517 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE QtCreatorProject>
|
||||||
|
<!-- Written by QtCreator 19.0.0, 2026-03-20T23:55:42. -->
|
||||||
|
<qtcreator>
|
||||||
|
<data>
|
||||||
|
<variable>EnvironmentId</variable>
|
||||||
|
<value type="QByteArray">{fc8d3b14-ba13-41ed-9488-a8a57abc777a}</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
||||||
|
<value type="qlonglong">0</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.EditorSettings</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="bool" key="EditorConfiguration.AutoDetect">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
|
||||||
|
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
|
||||||
|
<value type="QString" key="language">Cpp</value>
|
||||||
|
<valuemap type="QVariantMap" key="value">
|
||||||
|
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
|
||||||
|
</valuemap>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
|
||||||
|
<value type="QString" key="language">QmlJS</value>
|
||||||
|
<valuemap type="QVariantMap" key="value">
|
||||||
|
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
|
||||||
|
</valuemap>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="EditorConfiguration.CodeStyle.Count">2</value>
|
||||||
|
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
|
||||||
|
<value type="int" key="EditorConfiguration.IndentSize">4</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
|
||||||
|
<value type="int" key="EditorConfiguration.LineEndingBehavior">0</value>
|
||||||
|
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
|
||||||
|
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
|
||||||
|
<value type="int" key="EditorConfiguration.PreferAfterWhitespaceComments">0</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.PreferSingleLineComments">false</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
|
||||||
|
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">2</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
|
||||||
|
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
|
||||||
|
<value type="int" key="EditorConfiguration.TabSize">8</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.UseIndenter">false</value>
|
||||||
|
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.addFinalNewLine">false</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
|
||||||
|
<value type="QString" key="EditorConfiguration.ignoreFileTypes">*.md, *.MD, Makefile</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.skipTrailingWhitespace">true</value>
|
||||||
|
<value type="bool" key="EditorConfiguration.tintMarginArea">true</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.PluginSettings</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<valuemap type="QVariantMap" key="AutoTest.ActiveFrameworks">
|
||||||
|
<value type="bool" key="AutoTest.Framework.Boost">true</value>
|
||||||
|
<value type="bool" key="AutoTest.Framework.CTest">false</value>
|
||||||
|
<value type="bool" key="AutoTest.Framework.Catch">true</value>
|
||||||
|
<value type="bool" key="AutoTest.Framework.GTest">true</value>
|
||||||
|
<value type="bool" key="AutoTest.Framework.QtQuickTest">true</value>
|
||||||
|
<value type="bool" key="AutoTest.Framework.QtTest">true</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="bool" key="AutoTest.ApplyFilter">false</value>
|
||||||
|
<valuemap type="QVariantMap" key="AutoTest.CheckStates"/>
|
||||||
|
<valuelist type="QVariantList" key="AutoTest.PathFilters"/>
|
||||||
|
<value type="int" key="AutoTest.RunAfterBuild">0</value>
|
||||||
|
<value type="bool" key="AutoTest.UseGlobal">true</value>
|
||||||
|
<valuemap type="QVariantMap" key="ClangTools">
|
||||||
|
<value type="bool" key="ClangTools.AnalyzeOpenFiles">true</value>
|
||||||
|
<value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
|
||||||
|
<value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
|
||||||
|
<value type="int" key="ClangTools.ParallelJobs">8</value>
|
||||||
|
<value type="bool" key="ClangTools.PreferConfigFile">true</value>
|
||||||
|
<valuelist type="QVariantList" key="ClangTools.SelectedDirs">
|
||||||
|
<value type="QString">/home/yoct/evaluation/cli/tmp-bbr-algo/bbr-algo/CMakeLists.txt</value>
|
||||||
|
</valuelist>
|
||||||
|
<valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
|
||||||
|
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
|
||||||
|
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="RcSync">0</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.Target.0</variable>
|
||||||
|
<valuemap type="QVariantMap">
|
||||||
|
<value type="QString" key="DeviceType">Desktop</value>
|
||||||
|
<value type="bool" key="HasPerBcDcs">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 6.10.2</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 6.10.2</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt6.6102.linux_gcc_64_kit</value>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||||
|
<value type="QString" key="CMake.Build.Type">Debug</value>
|
||||||
|
<value type="int" key="CMake.Configure.BaseEnvironment">2</value>
|
||||||
|
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
|
||||||
|
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_BUILD_TYPE:STRING=Debug
|
||||||
|
-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||||
|
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
|
||||||
|
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
|
||||||
|
-DCMAKE_GENERATOR:STRING=Ninja
|
||||||
|
-DCMAKE_MAKE_PROGRAM:STRING=/usr/bin/ninja
|
||||||
|
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
|
||||||
|
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtcreator/cmake-helper/qtcreator-project.cmake
|
||||||
|
-DQT_CREATOR_ENABLE_MAINTENANCE_TOOL_PROVIDER:BOOL=ON
|
||||||
|
-DQT_ENABLE_QML_DEBUG:BOOL=%{Qt:QT_ENABLE_QML_DEBUG}
|
||||||
|
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}</value>
|
||||||
|
<value type="int" key="EnableQmlDebugging">0</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">./build/%{Asciify:%{Kit:FileSystemName}-%{BuildConfig:Name}}</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="QString" key="CMakeProjectManager.MakeStep.BuildPreset"></value>
|
||||||
|
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
|
||||||
|
<value type="QString">all</value>
|
||||||
|
</valuelist>
|
||||||
|
<value type="bool" key="CMakeProjectManager.MakeStep.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.UserEnvironmentChanges"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Erstellen</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Erstellen</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Erstellen</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="QString" key="CMakeProjectManager.MakeStep.BuildPreset"></value>
|
||||||
|
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
|
||||||
|
<value type="QString">clean</value>
|
||||||
|
</valuelist>
|
||||||
|
<value type="bool" key="CMakeProjectManager.MakeStep.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.UserEnvironmentChanges"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Erstellen</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Bereinigen</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Bereinigen</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.CMakeBuildConfiguration</value>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deployment</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deployment</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.1">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="QString" key="CMakeProjectManager.MakeStep.BuildPreset"></value>
|
||||||
|
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
|
||||||
|
<value type="QString"></value>
|
||||||
|
</valuelist>
|
||||||
|
<value type="bool" key="CMakeProjectManager.MakeStep.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.UserEnvironmentChanges"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ApplicationManagerPlugin.Deploy.CMakePackageStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||||
|
<value type="QString" key="ApplicationManagerPlugin.Deploy.InstallPackageStep.Arguments">install-package --acknowledge</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Application Manager-Paket installieren</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ApplicationManagerPlugin.Deploy.InstallPackageStep</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedFiles"/>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedHosts"/>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedRemotePaths"/>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedSysroots"/>
|
||||||
|
<valuelist type="QVariantList" key="RemoteLinux.LastDeployedLocalTimes"/>
|
||||||
|
<valuelist type="QVariantList" key="RemoteLinux.LastDeployedRemoteTimes"/>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deployment</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deployment</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ApplicationManagerPlugin.Deploy.Configuration</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">2</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings">
|
||||||
|
<value type="bool" key="AndroidBuildTargetDirSupport">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ApplicationmanagerPackageTargets"/>
|
||||||
|
<value type="bool" key="UseAndroidBuildTargetDir">false</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||||
|
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
|
||||||
|
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
||||||
|
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||||
|
<valuelist type="QVariantList" key="Analyzer.Valgrind.SuppressionFiles"/>
|
||||||
|
<valuelist type="QVariantList" key="CustomOutputParsers"/>
|
||||||
|
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||||
|
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||||
|
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
|
||||||
|
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph dwarf,4096 -F 250</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.CMakeRunConfiguration.</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">app</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">false</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.RunConfiguration.UniqueId"></value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||||
|
<value type="QString" key="RunConfiguration.WorkingDirectory.default">%{RunConfig:Executable:Path}</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.1">
|
||||||
|
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
|
||||||
|
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
||||||
|
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||||
|
<valuelist type="QVariantList" key="Analyzer.Valgrind.SuppressionFiles"/>
|
||||||
|
<valuelist type="QVariantList" key="CustomOutputParsers"/>
|
||||||
|
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||||
|
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||||
|
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
|
||||||
|
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph dwarf,4096 -F 250</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.CMakeRunConfiguration.</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">tests</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">false</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.RunConfiguration.UniqueId"></value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||||
|
<value type="QString" key="RunConfiguration.WorkingDirectory.default">%{RunConfig:Executable:Path}</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">2</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||||
|
<value type="QString" key="CMake.Build.Type">Release</value>
|
||||||
|
<value type="int" key="CMake.Configure.BaseEnvironment">2</value>
|
||||||
|
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
|
||||||
|
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_BUILD_TYPE:STRING=Release
|
||||||
|
-DCMAKE_COLOR_DIAGNOSTICS:BOOL=ON
|
||||||
|
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
|
||||||
|
-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
|
||||||
|
-DCMAKE_GENERATOR:STRING=Ninja
|
||||||
|
-DCMAKE_MAKE_PROGRAM:STRING=/usr/bin/ninja
|
||||||
|
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
|
||||||
|
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtcreator/cmake-helper/qtcreator-project.cmake
|
||||||
|
-DQT_CREATOR_ENABLE_MAINTENANCE_TOOL_PROVIDER:BOOL=ON
|
||||||
|
-DQT_ENABLE_QML_DEBUG:BOOL=%{Qt:QT_ENABLE_QML_DEBUG}
|
||||||
|
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">./build/%{Asciify:%{Kit:FileSystemName}-%{BuildConfig:Name}}</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="QString" key="CMakeProjectManager.MakeStep.BuildPreset"></value>
|
||||||
|
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
|
||||||
|
<value type="QString">all</value>
|
||||||
|
</valuelist>
|
||||||
|
<value type="bool" key="CMakeProjectManager.MakeStep.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.UserEnvironmentChanges"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Erstellen</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Erstellen</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="QString" key="CMakeProjectManager.MakeStep.BuildPreset"></value>
|
||||||
|
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
|
||||||
|
<value type="QString">clean</value>
|
||||||
|
</valuelist>
|
||||||
|
<value type="bool" key="CMakeProjectManager.MakeStep.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.UserEnvironmentChanges"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.MakeStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Bereinigen</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Bereinigen</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.CMakeBuildConfiguration</value>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">1</value>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deployment</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deployment</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.1">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="QString" key="CMakeProjectManager.MakeStep.BuildPreset"></value>
|
||||||
|
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
|
||||||
|
<value type="QString"></value>
|
||||||
|
</valuelist>
|
||||||
|
<value type="bool" key="CMakeProjectManager.MakeStep.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.UserEnvironmentChanges"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ApplicationManagerPlugin.Deploy.CMakePackageStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||||
|
<value type="QString" key="ApplicationManagerPlugin.Deploy.InstallPackageStep.Arguments">install-package --acknowledge</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Application Manager-Paket installieren</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ApplicationManagerPlugin.Deploy.InstallPackageStep</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedFiles"/>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedHosts"/>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedRemotePaths"/>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedSysroots"/>
|
||||||
|
<valuelist type="QVariantList" key="RemoteLinux.LastDeployedLocalTimes"/>
|
||||||
|
<valuelist type="QVariantList" key="RemoteLinux.LastDeployedRemoteTimes"/>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deployment</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deployment</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ApplicationManagerPlugin.Deploy.Configuration</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">2</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings">
|
||||||
|
<value type="bool" key="AndroidBuildTargetDirSupport">false</value>
|
||||||
|
<valuelist type="QVariantList" key="ApplicationmanagerPackageTargets"/>
|
||||||
|
<value type="bool" key="UseAndroidBuildTargetDir">false</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||||
|
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
|
||||||
|
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
||||||
|
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||||
|
<valuelist type="QVariantList" key="Analyzer.Valgrind.SuppressionFiles"/>
|
||||||
|
<valuelist type="QVariantList" key="CustomOutputParsers"/>
|
||||||
|
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||||
|
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||||
|
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
|
||||||
|
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph dwarf,4096 -F 250</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.CMakeRunConfiguration.</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">app</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">false</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.RunConfiguration.UniqueId"></value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||||
|
<value type="QString" key="RunConfiguration.WorkingDirectory.default">%{RunConfig:Executable:Path}</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.1">
|
||||||
|
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
|
||||||
|
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
||||||
|
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||||
|
<valuelist type="QVariantList" key="Analyzer.Valgrind.SuppressionFiles"/>
|
||||||
|
<valuelist type="QVariantList" key="CustomOutputParsers"/>
|
||||||
|
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||||
|
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||||
|
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
|
||||||
|
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph dwarf,4096 -F 250</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.CMakeRunConfiguration.</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">tests</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">false</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.RunConfiguration.UniqueId"></value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||||
|
<value type="QString" key="RunConfiguration.WorkingDirectory.default">%{RunConfig:Executable:Path}</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">2</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deployment</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deployment</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.1">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||||
|
<value type="QString" key="CMakeProjectManager.MakeStep.BuildPreset"></value>
|
||||||
|
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
|
||||||
|
<value type="QString"></value>
|
||||||
|
</valuelist>
|
||||||
|
<value type="bool" key="CMakeProjectManager.MakeStep.ClearSystemEnvironment">false</value>
|
||||||
|
<valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.UserEnvironmentChanges"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ApplicationManagerPlugin.Deploy.CMakePackageStep</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||||
|
<value type="QString" key="ApplicationManagerPlugin.Deploy.InstallPackageStep.Arguments">install-package --acknowledge</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Application Manager-Paket installieren</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ApplicationManagerPlugin.Deploy.InstallPackageStep</value>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedFiles"/>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedHosts"/>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedRemotePaths"/>
|
||||||
|
<valuelist type="QVariantList" key="ProjectExplorer.RunConfiguration.LastDeployedSysroots"/>
|
||||||
|
<valuelist type="QVariantList" key="RemoteLinux.LastDeployedLocalTimes"/>
|
||||||
|
<valuelist type="QVariantList" key="RemoteLinux.LastDeployedRemoteTimes"/>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deployment</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deployment</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
|
||||||
|
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ApplicationManagerPlugin.Deploy.Configuration</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">2</value>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||||
|
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
|
||||||
|
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
||||||
|
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||||
|
<valuelist type="QVariantList" key="Analyzer.Valgrind.SuppressionFiles"/>
|
||||||
|
<valuelist type="QVariantList" key="CustomOutputParsers"/>
|
||||||
|
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||||
|
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||||
|
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
|
||||||
|
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph dwarf,4096 -F 250</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.CMakeRunConfiguration.</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">app</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">false</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.RunConfiguration.UniqueId"></value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||||
|
<value type="QString" key="RunConfiguration.WorkingDirectory.default">%{RunConfig:Executable:Path}</value>
|
||||||
|
</valuemap>
|
||||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.1">
|
||||||
|
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
|
||||||
|
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
||||||
|
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
|
||||||
|
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||||
|
<valuelist type="QVariantList" key="Analyzer.Valgrind.SuppressionFiles"/>
|
||||||
|
<valuelist type="QVariantList" key="CustomOutputParsers"/>
|
||||||
|
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||||
|
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||||
|
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
|
||||||
|
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph dwarf,4096 -F 250</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">CMakeProjectManager.CMakeRunConfiguration.</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">tests</value>
|
||||||
|
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">false</value>
|
||||||
|
<value type="QString" key="ProjectExplorer.RunConfiguration.UniqueId"></value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
|
||||||
|
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||||
|
<value type="QString" key="RunConfiguration.WorkingDirectory.default">%{RunConfig:Executable:Path}</value>
|
||||||
|
</valuemap>
|
||||||
|
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">2</value>
|
||||||
|
</valuemap>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>ProjectExplorer.Project.TargetCount</variable>
|
||||||
|
<value type="qlonglong">1</value>
|
||||||
|
</data>
|
||||||
|
<data>
|
||||||
|
<variable>Version</variable>
|
||||||
|
<value type="int">22</value>
|
||||||
|
</data>
|
||||||
|
</qtcreator>
|
||||||
29
CMakeLists.txt
Executable file
29
CMakeLists.txt
Executable file
@@ -0,0 +1,29 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.19)
|
||||||
|
project(bbr-algo LANGUAGES CXX)
|
||||||
|
|
||||||
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||||
|
|
||||||
|
find_package(Qt6 REQUIRED COMPONENTS Core)
|
||||||
|
|
||||||
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
|
|
||||||
|
option(BUILD_TARGET_SOM "TARGET_SOM" OFF)
|
||||||
|
|
||||||
|
|
||||||
|
include_directories(app)
|
||||||
|
add_subdirectory(app)
|
||||||
|
|
||||||
|
include_directories(controller)
|
||||||
|
add_subdirectory(controller)
|
||||||
|
|
||||||
|
# Ks the 'plant' of the regulatroy system
|
||||||
|
# commented as long as 'MATLAB/extern/include' not avaliable
|
||||||
|
# include_directories(ks)
|
||||||
|
# add_subdirectory(ks)
|
||||||
|
|
||||||
|
# add_subdirectory(config)
|
||||||
|
|
||||||
|
enable_testing()
|
||||||
|
add_subdirectory(tests)
|
||||||
21
Jenkinsfile
vendored
Normal file → Executable file
21
Jenkinsfile
vendored
Normal file → Executable file
@@ -1,38 +1,33 @@
|
|||||||
pipeline {
|
pipeline {
|
||||||
agent any // Or use 'dockerfile' if running in a container
|
agent any // Or use 'dockerfile' if running in a container
|
||||||
stages {
|
stages {
|
||||||
stage('Checkout-Jenkinsfile') {
|
stage('Clean') {
|
||||||
steps {
|
|
||||||
// Checks out the source code from the configured Gitea SCM
|
|
||||||
checkout scm
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Clean-Jenkinsfile') {
|
|
||||||
steps {
|
steps {
|
||||||
//sh 'rm -rf build'
|
sh 'rm -rf build'
|
||||||
echo "Building branch ${env.BRANCH_NAME}"
|
echo "Cleaning branch ${env.BRANCH_NAME}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage('Configure') {
|
stage('Configure') {
|
||||||
steps {
|
steps {
|
||||||
// Configure CMake to generate build files in the 'build' directory
|
// Configure CMake to generate build files in the 'build' directory
|
||||||
//sh 'cmake -B build -S .'
|
|
||||||
echo "Configure project"
|
echo "Configure project"
|
||||||
|
sh 'mkdir build'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage('Build') {
|
stage('Build') {
|
||||||
|
|
||||||
steps {
|
steps {
|
||||||
// Build the project using the generated files
|
// Build the project using the generated files
|
||||||
//sh 'cmake --build build'
|
|
||||||
echo "Build project"
|
echo "Build project"
|
||||||
|
|
||||||
|
sh './localbuild.sh'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stage('Test') {
|
stage('Test') {
|
||||||
steps {
|
steps {
|
||||||
// Run the executable to verify it works
|
// Run the executable to verify it works
|
||||||
//sh './build/hello_app'
|
|
||||||
echo "Test project"
|
echo "Test project"
|
||||||
|
sh 'tests/tests'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
36
app/CMakeLists.txt
Executable file
36
app/CMakeLists.txt
Executable file
@@ -0,0 +1,36 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
qt_standard_project_setup()
|
||||||
|
|
||||||
|
|
||||||
|
include_directories(../controller)
|
||||||
|
|
||||||
|
|
||||||
|
qt_add_executable(app main.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
qt_add_library(app_lib STATIC
|
||||||
|
main.cpp
|
||||||
|
filter.h main.cpp filter.cpp
|
||||||
|
pwm.h pwm.cpp
|
||||||
|
climate-algorithm.h climate-algorithm.cpp
|
||||||
|
pid.h pid.cpp
|
||||||
|
datamodel.h datamodel.cpp
|
||||||
|
dataset.h dataset.cpp
|
||||||
|
util.h util.cpp
|
||||||
|
TestModel.cpp
|
||||||
|
|
||||||
|
text-templates.h
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
target_include_directories(app_lib PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
target_include_directories(app_lib PRIVATE ${Qt6Core_INCLUDE_DIRS})
|
||||||
|
|
||||||
|
# add_executable(app main.cpp filter.cpp)
|
||||||
|
target_link_libraries(app PRIVATE
|
||||||
|
app_lib
|
||||||
|
ctrl_algo
|
||||||
|
Qt::Core
|
||||||
|
)
|
||||||
196
app/TestModel.cpp
Executable file
196
app/TestModel.cpp
Executable file
@@ -0,0 +1,196 @@
|
|||||||
|
#include <vector>
|
||||||
|
#include <array>
|
||||||
|
#include <iostream>
|
||||||
|
#include <chrono>
|
||||||
|
#include <thread>
|
||||||
|
class HeatModel
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
using State = std::array<double,3>;
|
||||||
|
HeatModel(State x0,int log_size=600)
|
||||||
|
{
|
||||||
|
T_hist_.reserve(log_size);
|
||||||
|
log_size_=log_size;
|
||||||
|
log_counter_= 0;
|
||||||
|
T_=x0;
|
||||||
|
};
|
||||||
|
|
||||||
|
void initialize(double T_start,double T_amb)
|
||||||
|
{
|
||||||
|
T_start_ = T_start;
|
||||||
|
T_amb_ = T_amb;
|
||||||
|
T_Air_ = T_amb;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Log the Temperature. Return true if log is big enough, return false if log is already full
|
||||||
|
//you can use this as a timer (while (log(){}))
|
||||||
|
bool log()
|
||||||
|
{
|
||||||
|
if (log_counter_< log_size_-1)
|
||||||
|
{
|
||||||
|
T_hist_.push_back(T_Air_);
|
||||||
|
log_counter_++;
|
||||||
|
std::cout <<"T="<<T_Air_<<"\n";
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
T_hist_.push_back(T_Air_);
|
||||||
|
log_counter_++;
|
||||||
|
std::cout<<"Log exceeded Reservation Limit \n";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
double get_Temp()
|
||||||
|
{
|
||||||
|
return T_Air_;
|
||||||
|
}
|
||||||
|
|
||||||
|
// You can call stepfunction with Bool Parameter(stepPWM) if you have PWM output, or with double parameter
|
||||||
|
// if you have normalized heating Power (0,1) (stepPower)
|
||||||
|
// Call this Function at least every 250ms (cycletime of Algortihm)
|
||||||
|
void stepPWM(double dt, bool u)
|
||||||
|
{
|
||||||
|
double u_double;
|
||||||
|
if (u)
|
||||||
|
{
|
||||||
|
u_double=1.0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
u_double=0.0;
|
||||||
|
}
|
||||||
|
u_double = u_double *1000.0;
|
||||||
|
const State k1 = Func(T_, u_double);
|
||||||
|
const State k2 = Func(addScaled(T_, k1, 0.5 * dt), u_double);
|
||||||
|
const State k3 = Func(addScaled(T_, k2, 0.5 * dt), u_double);
|
||||||
|
const State k4 = Func(addScaled(T_, k3, dt), u_double);
|
||||||
|
|
||||||
|
for (int i = 0; i < 3; ++i)
|
||||||
|
{
|
||||||
|
T_[i] += (dt / 6.0) * (k1[i] + 2.0 * k2[i] + 2.0 * k3[i] + k4[i]);
|
||||||
|
}
|
||||||
|
T_Air_=T_[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
void stepPower(double dt, double u)
|
||||||
|
{
|
||||||
|
u = u *1000.0;
|
||||||
|
const State k1 = Func(T_, u);
|
||||||
|
const State k2 = Func(addScaled(T_, k1, 0.5 * dt), u);
|
||||||
|
const State k3 = Func(addScaled(T_, k2, 0.5 * dt), u);
|
||||||
|
const State k4 = Func(addScaled(T_, k3, dt), u);
|
||||||
|
|
||||||
|
for (int i = 0; i < 3; ++i)
|
||||||
|
{
|
||||||
|
T_[i] += (dt / 6.0) * (k1[i] + 2.0 * k2[i] + 2.0 * k3[i] + k4[i]);
|
||||||
|
}
|
||||||
|
T_Air_=T_[0];
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
|
||||||
|
double T_start_;
|
||||||
|
int log_size_;
|
||||||
|
double T_Air_;
|
||||||
|
double T_amb_;
|
||||||
|
int log_counter_;
|
||||||
|
std::vector<int> T_hist_;
|
||||||
|
State T_;
|
||||||
|
|
||||||
|
/*
|
||||||
|
LTI System Matrices for FP56
|
||||||
|
A =
|
||||||
|
x1 x2 x3
|
||||||
|
x1 -0.007659 0.003217 0.004442
|
||||||
|
x2 0.08422 -0.08422 0
|
||||||
|
x3 0.005135 0 -0.005856
|
||||||
|
|
||||||
|
B =
|
||||||
|
u1
|
||||||
|
x1 0
|
||||||
|
x2 0.008313
|
||||||
|
x3 0
|
||||||
|
|
||||||
|
C =
|
||||||
|
x1 x2 x3
|
||||||
|
y1 1 0 0
|
||||||
|
|
||||||
|
D =
|
||||||
|
u1
|
||||||
|
y1 0 */
|
||||||
|
|
||||||
|
const std::array<std::array<double, 3>, 3> A_{{
|
||||||
|
{ -0.007659, 0.003217, 0.00442 },
|
||||||
|
{ 0.08422, -0.08422, 0.0 },
|
||||||
|
{ 0.005135, 0.0, -0.005856 }
|
||||||
|
}};
|
||||||
|
const std::vector<double> B_{0.0,0.008313, 0.00};
|
||||||
|
const std::vector<double> C_{1.0, 0.0, 0.0};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static State addScaled(const State& x, const State& dx, double scale)
|
||||||
|
{
|
||||||
|
State out{};
|
||||||
|
for (int i = 0; i < 3; ++i)
|
||||||
|
{
|
||||||
|
out[i] = x[i] + scale * dx[i];
|
||||||
|
}
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
State Func(const State& x,double u)const
|
||||||
|
{
|
||||||
|
State dx=matVec(A_,x);
|
||||||
|
for (int i=0;i<3;i++)
|
||||||
|
{
|
||||||
|
dx[i]+=B_[i]*u;
|
||||||
|
}
|
||||||
|
return dx;
|
||||||
|
}
|
||||||
|
|
||||||
|
static State matVec(const std::array<std::array<double, 3>, 3>& M, const State& x)
|
||||||
|
{
|
||||||
|
State y{};
|
||||||
|
for (int i= 0; i < 3; ++i)
|
||||||
|
{
|
||||||
|
double sum = 0.0;
|
||||||
|
for (int j = 0; j < 3; ++j)
|
||||||
|
{
|
||||||
|
sum += M[i][j] * x[j];
|
||||||
|
}
|
||||||
|
y[i] = sum;
|
||||||
|
}
|
||||||
|
return y;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#define SINGLE_APP 1
|
||||||
|
|
||||||
|
#if SINGLE_APP
|
||||||
|
int main(){
|
||||||
|
HeatModel::State x0={22.0,22.0,22.0};
|
||||||
|
int STEP_TIME=50; // dt in milliseconds
|
||||||
|
// Heatmodel(state starting_Values, size_of_log)
|
||||||
|
HeatModel TestModel(x0,5);
|
||||||
|
std::vector<double> temp;
|
||||||
|
temp.reserve(6000);
|
||||||
|
bool running = true;
|
||||||
|
int counter=0;
|
||||||
|
while (running){
|
||||||
|
TestModel.stepPower(STEP_TIME/1000.0,1.0);
|
||||||
|
temp.push_back(TestModel.get_Temp());
|
||||||
|
counter++;
|
||||||
|
//logg every Minute --> simulate for 5 minutes
|
||||||
|
if (counter >=10){
|
||||||
|
running=TestModel.log();
|
||||||
|
counter = 0;
|
||||||
|
}
|
||||||
|
std::this_thread::sleep_for(std::chrono::milliseconds(STEP_TIME));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
1
app/climate-algorithm.cpp
Executable file
1
app/climate-algorithm.cpp
Executable file
@@ -0,0 +1 @@
|
|||||||
|
// todo: create, import file header
|
||||||
22
app/climate-algorithm.h
Executable file
22
app/climate-algorithm.h
Executable file
@@ -0,0 +1,22 @@
|
|||||||
|
// todo: create, import file header
|
||||||
|
|
||||||
|
#ifndef CLIMATE_ALGORITHM_H
|
||||||
|
#define CLIMATE_ALGORITHM_H
|
||||||
|
#include <iostream>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
//todo - install
|
||||||
|
// #include <nlohmann/json.hpp>
|
||||||
|
|
||||||
|
#include "filter.h"
|
||||||
|
#include "pwm.hpp"
|
||||||
|
#include "pid.h"
|
||||||
|
|
||||||
|
|
||||||
|
class ClimateAlgorithm {
|
||||||
|
public:
|
||||||
|
private:
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // CLIMATE_ALGORITHM_H
|
||||||
37
app/datamodel.cpp
Executable file
37
app/datamodel.cpp
Executable file
@@ -0,0 +1,37 @@
|
|||||||
|
|
||||||
|
/*
|
||||||
|
File: datamodel.cpp
|
||||||
|
Description: This is a C++ source file containing implementation code for a data collection (called model) used for
|
||||||
|
the realisation of a climate chamber control algorithm
|
||||||
|
Rev: 0.1 - draft
|
||||||
|
Created: 20.03.26
|
||||||
|
Author: Uwe Jakobeit
|
||||||
|
Copyright: Binder GmbH TUT
|
||||||
|
Purpose: Configuration data and run-time datasets are provided for a controller simulation
|
||||||
|
|
||||||
|
Notes: [Any relevant details, such as dependencies, usage examples, or known issues.]
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "datamodel.h"
|
||||||
|
|
||||||
|
// initialze data for the control algorithm
|
||||||
|
DataModel::DataModel()
|
||||||
|
{
|
||||||
|
|
||||||
|
// uj todo - set defaults, if JSON input fails
|
||||||
|
// for now only hard-coded data
|
||||||
|
Kennfeld_Ueberhitzung = Kennfeld_Ueberhitzung_Default;
|
||||||
|
// In English:
|
||||||
|
HeadlineOverheat = HeadlineOverheatDefault;
|
||||||
|
|
||||||
|
Kennfeld_Entfeuchtung = Kennfeld_Entfeuchtung_Default;
|
||||||
|
|
||||||
|
Kennfeld_Ueberhitzung = Kennfeld_Ueberhitzung_Default;
|
||||||
|
}
|
||||||
|
|
||||||
|
// provide current process data ( relevant process data for the control algorithm )
|
||||||
|
QList<Input_t>* DataModel::getInputs()
|
||||||
|
{
|
||||||
|
return ∈
|
||||||
|
}
|
||||||
|
|
||||||
199
app/datamodel.h
Executable file
199
app/datamodel.h
Executable file
@@ -0,0 +1,199 @@
|
|||||||
|
#ifndef DATAMODEL_H
|
||||||
|
#define DATAMODEL_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
File: datamodel.h
|
||||||
|
Description: This is a C++ source file containing definitions for the project's datamodel .
|
||||||
|
Rev: 0.1
|
||||||
|
Created: 20.03.2026
|
||||||
|
Author: Uwe Jakobeit
|
||||||
|
Copyright: Binder GmbH TUT
|
||||||
|
Purpose: Definitions, constants used by the datamodel are collected here
|
||||||
|
Notes: [Any relevant details, such as dependencies, usage examples, or known issues.]
|
||||||
|
*/
|
||||||
|
#include <QList>
|
||||||
|
#include "dataset.h"
|
||||||
|
|
||||||
|
|
||||||
|
#define HeadlineOverheat Kennfeld_Ueberhitzung
|
||||||
|
#define HeadlineOverheatDefault Kennfeld_Ueberhitzung_Default
|
||||||
|
|
||||||
|
// Inputs for the component 'control-algorithm', not (only) to be seen als physical inputs e.g. from a sensor
|
||||||
|
typedef struct Inputs
|
||||||
|
{
|
||||||
|
struct BinInputs {
|
||||||
|
// Eingangswerte aus bool_inXX / real_inXX / reset_flag
|
||||||
|
bool reset_flag{};
|
||||||
|
bool Sammelalarm_quittiert{};
|
||||||
|
bool Tuer_offen{};
|
||||||
|
bool Sollwert_Feuchte_aktiv{};
|
||||||
|
bool Steuerkontakt_Standby{};
|
||||||
|
bool Steuerkontakt_Befeuchtung_aus{};
|
||||||
|
bool Steuerkontakt_Entfeuchtung_aus{};
|
||||||
|
bool Entleerbehaelter_Oben{};
|
||||||
|
bool Wasserkanister_leer{};
|
||||||
|
bool Entleerbehaelter_Unten{};
|
||||||
|
bool Sammelalarm{};
|
||||||
|
} bin;
|
||||||
|
|
||||||
|
struct AnalogInputs {
|
||||||
|
double Istwert_Temperatur{};
|
||||||
|
double Sollwert_Temperatur{};
|
||||||
|
double Temperaturband{};
|
||||||
|
double Istwert_Ueberwachungsregler{};
|
||||||
|
double Klasse_Ueberwachungsregler{};
|
||||||
|
double Grenzwert_Untertemperatur{};
|
||||||
|
double Istwert_Feuchte{};
|
||||||
|
double Sollwert_Feuchte{};
|
||||||
|
double Feuchteband{};
|
||||||
|
double Sollwert_Luefter{};
|
||||||
|
double Istwert_Temperatur_Tuer{};
|
||||||
|
double Istwert_Temperatur_Verdampferausgang{};
|
||||||
|
double Temperatur_Feuchtemodul{};
|
||||||
|
double Bandalarm_nach{};
|
||||||
|
double Betauungsschutz{};
|
||||||
|
double real_in11{}; // du nutzt real_in11 später direkt in alarm_15 ?? uj - todo : Kann das weg?
|
||||||
|
} analog;
|
||||||
|
|
||||||
|
}Input_t;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct Outputs
|
||||||
|
{
|
||||||
|
struct AnalogOutputs {
|
||||||
|
// real_outXX (nur die, die du im ST setzt)
|
||||||
|
double real_out01{};
|
||||||
|
double real_out02{};
|
||||||
|
double real_out04{};
|
||||||
|
double real_out05{};
|
||||||
|
double real_out06{};
|
||||||
|
double real_out07{};
|
||||||
|
double real_out08{};
|
||||||
|
double real_out09{};
|
||||||
|
double real_out10{};
|
||||||
|
double real_out11{};
|
||||||
|
double real_out12{};
|
||||||
|
double real_out13{};
|
||||||
|
double real_out14{};
|
||||||
|
double real_out16{};
|
||||||
|
double Stellgrad_Feuchtemodul{}; // ...out17
|
||||||
|
double real_out18{};
|
||||||
|
double real_out19{};
|
||||||
|
double real_out20{};
|
||||||
|
double real_out21{};
|
||||||
|
double real_out25{};
|
||||||
|
double real_out26{};
|
||||||
|
double Stellgrad_Heizung{};
|
||||||
|
double Stellgrad_Kuehlung{};
|
||||||
|
double Stellgrad_Befeuchtung{};
|
||||||
|
double Stellgrad_Entfeuchtung{};
|
||||||
|
double Counter_Tuer{};
|
||||||
|
} analog;
|
||||||
|
|
||||||
|
struct BinOutputs {
|
||||||
|
// bool_outXX
|
||||||
|
bool bool_out01{};
|
||||||
|
bool bool_out02{};
|
||||||
|
bool bool_out03{};
|
||||||
|
bool bool_out07{};
|
||||||
|
bool bool_out09{};
|
||||||
|
bool bool_out11{};
|
||||||
|
bool bool_out12{};
|
||||||
|
bool bool_out13{};
|
||||||
|
bool bool_out14{};
|
||||||
|
bool bool_out16{};
|
||||||
|
bool bool_out17{};
|
||||||
|
bool bool_out18{};
|
||||||
|
bool bool_out19{};
|
||||||
|
bool bool_out20{};
|
||||||
|
bool bool_out21{};
|
||||||
|
bool bool_out23{};
|
||||||
|
} bin;
|
||||||
|
|
||||||
|
}Output_t;
|
||||||
|
|
||||||
|
|
||||||
|
static constexpr double sampling_time = 0.25;
|
||||||
|
|
||||||
|
typedef struct Counter
|
||||||
|
{
|
||||||
|
|
||||||
|
}Counter_t;
|
||||||
|
|
||||||
|
class IInputs {
|
||||||
|
public:
|
||||||
|
virtual ~IInputs() = default;
|
||||||
|
// Pure virtual function returning a pointer to a vector
|
||||||
|
virtual QList<Input_t>* getInputs() = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
class DataModel: public IInputs
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
DataModel();
|
||||||
|
QList<Input_t>* getInputs() override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
Input_t input;
|
||||||
|
QList<Input_t> in{ input };
|
||||||
|
|
||||||
|
#ifndef BUILD_TARGET_SOM
|
||||||
|
|
||||||
|
QList<QList<double>> Kennfeld_Ueberhitzung;
|
||||||
|
QList<QList<double>> Kennfeld_Entfeuchtung;
|
||||||
|
QList<QList<double>> Kennfeld_Regler_Heizung_Xp;
|
||||||
|
|
||||||
|
QList<QList<double>> Kennfeld_Ueberhitzung_Default = {
|
||||||
|
{-20.0, -10.0, 0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0}, // 0: Temperatur
|
||||||
|
{0.01, 0.02, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.0}, // 1: Skalierung Min
|
||||||
|
{0.01, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.0, 1.0, 1.0}, // 1: Skalierung Max
|
||||||
|
{-6.0, -8.0, -10.0, -8.0, -6.0, -8.0, -10.0, -12.0, -16.0, -20.0, -24.0, -28.0, -32.0} // 3: Sollwert Überhitzung
|
||||||
|
};
|
||||||
|
|
||||||
|
QList<QList<double>> Kennfeld_Entfeuchtung_Default{
|
||||||
|
{ -20.0, -10.0, 0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 90.0, 100.0}, // 0: Temperatur
|
||||||
|
{ 0.08, 0.08, 0.08, 0.10, 0.12, 0.14, 0.16, 0.18, 0.20, 0.22, 0.24, 0.26, 0.28}, // 1: Skalierung Entfeuchtung
|
||||||
|
{ 120.0, 120.0, 120.0, 120.0, 120.0, 90.0, 60.0, 60.0, 60.0, 0.0, 0.0, 0.0, 0.0}, // 2: Abtauzyklus Pause
|
||||||
|
{ 60.0, 60.0, 60.0, 30.0, 20.0, 10.0, 8.0, 4.0, 2.0, 0.0, 0.0, 0.0, 0.0} // 3: Abtauzyklus Dauer
|
||||||
|
};
|
||||||
|
|
||||||
|
QList<double> Kennfeld_Regler_Heizung_Xp_Default{
|
||||||
|
0.2, 0.5, 0.8, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0};
|
||||||
|
|
||||||
|
QList<double> Kennfeld_Regler_Kuehlung_Xp{
|
||||||
|
0.1, 0.1, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.0};
|
||||||
|
|
||||||
|
QList<QList<double>> Kennfeld_Regler_Befeuchtung_Xp{
|
||||||
|
{1.00, 0.54, 0.31, 0.18, 0.11, 0.07, 0.05, 0.03, 0.02},
|
||||||
|
{1.00, 0.54, 0.31, 0.18, 0.11, 0.07, 0.05, 0.03, 0.02},
|
||||||
|
{1.00, 0.54, 0.31, 0.18, 0.11, 0.07, 0.05, 0.03, 0.02},
|
||||||
|
{1.00, 0.54, 0.31, 0.18, 0.11, 0.07, 0.05, 0.03, 0.02},
|
||||||
|
{1.00, 0.54, 0.31, 0.18, 0.11, 0.07, 0.05, 0.03, 0.02},
|
||||||
|
{1.00, 0.54, 0.31, 0.18, 0.11, 0.07, 0.05, 0.03, 0.02},
|
||||||
|
{1.00, 0.54, 0.31, 0.18, 0.11, 0.07, 0.05, 0.03, 0.02},
|
||||||
|
{1.00, 0.54, 0.31, 0.18, 0.11, 0.07, 0.05, 0.03, 0.02},
|
||||||
|
{1.00, 0.54, 0.31, 0.18, 0.11, 0.07, 0.05, 0.03, 0.02}};
|
||||||
|
|
||||||
|
QList<QList<double>> Kennfeld_Regler_Entfeuchtung_Xp{
|
||||||
|
{1.00, 0.80, 0.60, 0.50, 0.40, 0.35, 0.30, 0.25, 0.20},
|
||||||
|
{1.00, 0.80, 0.60, 0.50, 0.40, 0.35, 0.30, 0.25, 0.20},
|
||||||
|
{1.00, 0.80, 0.60, 0.50, 0.40, 0.35, 0.30, 0.25, 0.20},
|
||||||
|
{1.00, 0.80, 0.60, 0.50, 0.40, 0.35, 0.30, 0.25, 0.20},
|
||||||
|
{1.00, 0.80, 0.60, 0.50, 0.40, 0.35, 0.30, 0.25, 0.20},
|
||||||
|
{1.00, 0.80, 0.60, 0.50, 0.40, 0.35, 0.30, 0.25, 0.20},
|
||||||
|
{1.00, 0.80, 0.60, 0.50, 0.40, 0.35, 0.30, 0.25, 0.20},
|
||||||
|
{1.00, 0.80, 0.60, 0.50, 0.40, 0.35, 0.30, 0.25, 0.20},
|
||||||
|
{1.00, 0.80, 0.60, 0.50, 0.40, 0.35, 0.30, 0.25, 0.20}};
|
||||||
|
|
||||||
|
QList<QList<double>> Kennfeld_Sollwert_Feuchte_Limit_List{
|
||||||
|
{0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100},
|
||||||
|
{80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80},
|
||||||
|
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif // DATAMODEL_H
|
||||||
60
app/dataset.cpp
Executable file
60
app/dataset.cpp
Executable file
@@ -0,0 +1,60 @@
|
|||||||
|
/*
|
||||||
|
File: dataset.cpp
|
||||||
|
Description: This is a C++ source file containing implementation code handling configuration data
|
||||||
|
Rev: 0.1
|
||||||
|
Created: 20.03.2026
|
||||||
|
Author: Uwe Jakobeit
|
||||||
|
Copyright: Binder GmbH, TUT 2026
|
||||||
|
Purpose: [Briefly describe the file's functionality, e.g., "Implements a class for managing user data."]
|
||||||
|
Implementation of classes which provide changes of dataset without (re-)comiling
|
||||||
|
Notes: [Any relevant details, such as dependencies, usage examples, or known issues.]
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include "dataset.h"
|
||||||
|
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
// Read config file and setup headlines ( characteristics )
|
||||||
|
Dataset::Dataset(QString& configFile)
|
||||||
|
{
|
||||||
|
// headline << &mHeadLineTemperature
|
||||||
|
// << &mHeadLineHumidity
|
||||||
|
// << &mHeadLineOverheat;
|
||||||
|
|
||||||
|
|
||||||
|
// Now you can create a QVector of pointers to QVectorBase
|
||||||
|
QVector<QVectorBase*> mixedVectors;
|
||||||
|
|
||||||
|
// QVector<QVectorBase*> mHeadlineVector;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Usage
|
||||||
|
QVector<int> intVec = {1, 2, 3};
|
||||||
|
QVector<double> dblVec = {1.0, 2, 3};
|
||||||
|
|
||||||
|
QVector<QString> stringVec = {"hello", "world"};
|
||||||
|
|
||||||
|
mixedVectors.append(new QVectorWrapper<int>(intVec));
|
||||||
|
mixedVectors.append(new QVectorWrapper<QString>(stringVec));
|
||||||
|
|
||||||
|
mHeadlineVector.append(new QVectorWrapper<int>(intVec));
|
||||||
|
mHeadlineVector.append(new QVectorWrapper<QString>(stringVec));
|
||||||
|
|
||||||
|
// Iterate and use polymorphic behavior
|
||||||
|
for (QVectorBase* vec : mixedVectors) {
|
||||||
|
vec->print();
|
||||||
|
}
|
||||||
|
// // Clean up
|
||||||
|
// qDeleteAll(mixedVectors);
|
||||||
|
// mixedVectors.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
QVectorBase* Dataset::HeadLine(uint8_t LineId)
|
||||||
|
{
|
||||||
|
|
||||||
|
return mHeadlineVector.at(LineId);
|
||||||
|
}
|
||||||
69
app/dataset.h
Executable file
69
app/dataset.h
Executable file
@@ -0,0 +1,69 @@
|
|||||||
|
// #include <memory>
|
||||||
|
// #include <vector>
|
||||||
|
// #include <string>
|
||||||
|
#include <QVector>
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
enum class LineId {
|
||||||
|
Temperature,
|
||||||
|
Humidity,
|
||||||
|
OverHeat
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
class Dataset{
|
||||||
|
|
||||||
|
public:
|
||||||
|
Dataset(QString& configFile);
|
||||||
|
|
||||||
|
// return headlines (Kennlinien) of known types from ST code
|
||||||
|
QVector* HeadLine(enum class LineId);
|
||||||
|
private:
|
||||||
|
|
||||||
|
// Class members (m_, but don't like the '_' )
|
||||||
|
vector<std::unique_ptr> headline;
|
||||||
|
|
||||||
|
vector mHeadLineTemperature;
|
||||||
|
vector mHeadLineOverheat;
|
||||||
|
vector mHeadLineHumidity;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <QVector>
|
||||||
|
#include <QMetaType>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Forward declaration of a base class for polymorphic behavior
|
||||||
|
class QVectorBase {
|
||||||
|
public:
|
||||||
|
virtual ~QVectorBase() = default;
|
||||||
|
virtual void print() const = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Template class to wrap a QVector<T> and inherit from QVectorBase
|
||||||
|
template<typename T>
|
||||||
|
class QVectorWrapper : public QVectorBase {
|
||||||
|
public:
|
||||||
|
QVector<T> vec;
|
||||||
|
|
||||||
|
QVectorWrapper() = default;
|
||||||
|
explicit QVectorWrapper(const QVector<T>& v) : vec(v) {}
|
||||||
|
|
||||||
|
void print() const override {
|
||||||
|
qDebug() << "Vector of" << sizeof(T) << "bytes:" << vec;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class Dataset{
|
||||||
|
public:
|
||||||
|
Dataset(QString& configFile);
|
||||||
|
QVectorBase *HeadLine(uint8_t LineId);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QVector<QVectorBase*> mHeadlineVector;
|
||||||
|
};
|
||||||
20
app/filter.cpp
Executable file
20
app/filter.cpp
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
#include "filter.h"
|
||||||
|
|
||||||
|
PT1Filter::PT1Filter(double tau, double dt) : output(0.0) {
|
||||||
|
filterFactor = dt / (tau + dt);
|
||||||
|
}
|
||||||
|
|
||||||
|
double PT1Filter::update(double input) {
|
||||||
|
output += filterFactor * (input - output);
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
double PT1Filter::step(double input) {
|
||||||
|
output += filterFactor * (input - output);
|
||||||
|
return output;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
void PT1Filter::reset() {
|
||||||
|
output = 0.0;
|
||||||
|
}
|
||||||
20
app/filter.h
Executable file
20
app/filter.h
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
#ifndef FILTER_H
|
||||||
|
#define FILTER_H
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
class PT1Filter {
|
||||||
|
private:
|
||||||
|
double output;
|
||||||
|
double filterFactor;
|
||||||
|
|
||||||
|
public:
|
||||||
|
PT1Filter(double tau, double dt);
|
||||||
|
double update(double input);
|
||||||
|
double step(double input);
|
||||||
|
void reset();
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif // FILTER_H
|
||||||
66
app/main.cpp
Executable file
66
app/main.cpp
Executable file
@@ -0,0 +1,66 @@
|
|||||||
|
#include <QCoreApplication>
|
||||||
|
#include <QDebug>
|
||||||
|
#include <termios.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include "datamodel.h"
|
||||||
|
#include "Controller.h"
|
||||||
|
|
||||||
|
|
||||||
|
// evaluate keyboard hits
|
||||||
|
// return 0 - no keyboard hit detected
|
||||||
|
// return 1 - keyboard hit detected
|
||||||
|
int kbhit() {
|
||||||
|
struct termios oldt, newt;
|
||||||
|
int ch;
|
||||||
|
int oldf;
|
||||||
|
|
||||||
|
tcgetattr(STDIN_FILENO, &oldt);
|
||||||
|
newt = oldt;
|
||||||
|
newt.c_lflag &= ~(ICANON | ECHO);
|
||||||
|
tcsetattr(STDIN_FILENO, TCSANOW, &newt);
|
||||||
|
oldf = fcntl(STDIN_FILENO, F_GETFL, 0);
|
||||||
|
fcntl(STDIN_FILENO, F_SETFL, oldf | O_NONBLOCK);
|
||||||
|
|
||||||
|
ch = getchar();
|
||||||
|
|
||||||
|
tcsetattr(STDIN_FILENO, TCSANOW, &oldt);
|
||||||
|
fcntl(STDIN_FILENO, F_SETFL, oldf);
|
||||||
|
|
||||||
|
if (ch != EOF) {
|
||||||
|
ungetc(ch, stdin);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// entry point for controller app
|
||||||
|
// no arguments used (yet)
|
||||||
|
// program stops on any keyboard hit
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
QCoreApplication a(argc, argv);
|
||||||
|
|
||||||
|
DataModel model; // create data model instance
|
||||||
|
|
||||||
|
Controller bbr; // create controller instance
|
||||||
|
|
||||||
|
bbr.initialize(&model);
|
||||||
|
|
||||||
|
// loop endlessly until keybord hit
|
||||||
|
qDebug() << "Press any key to stop ...";
|
||||||
|
while(!kbhit())
|
||||||
|
{
|
||||||
|
qDebug() << "Perform 'temperature is rising'";
|
||||||
|
bbr.step();
|
||||||
|
usleep(200000); // 200ms delay
|
||||||
|
|
||||||
|
model.getInputs()->data()->analog.Istwert_Temperatur += 0.1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
// todo uj 30.03.26 - uncomment if needed
|
||||||
|
// return QCoreApplication::exec();
|
||||||
|
}
|
||||||
9
app/pid.cpp
Executable file
9
app/pid.cpp
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
// todo: create, import file header
|
||||||
|
|
||||||
|
#include "pid.h"
|
||||||
|
|
||||||
|
PID::PID()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
12
app/pid.h
Executable file
12
app/pid.h
Executable file
@@ -0,0 +1,12 @@
|
|||||||
|
#ifndef PWM_H
|
||||||
|
#define PWM_H
|
||||||
|
|
||||||
|
class PID{
|
||||||
|
public:
|
||||||
|
PID();
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif //PWM_H
|
||||||
18
app/pwm.cpp
Executable file
18
app/pwm.cpp
Executable file
@@ -0,0 +1,18 @@
|
|||||||
|
// todo: create, import file header
|
||||||
|
|
||||||
|
#include "pwm.h"
|
||||||
|
|
||||||
|
PWM::PWM(double cycleTime_Min,double cycleTime_Max)
|
||||||
|
{
|
||||||
|
m_cycle = 0.0;
|
||||||
|
m_out = 0.0;
|
||||||
|
m_cycleTime = 0.0;
|
||||||
|
m_cycleTime_Min = cycleTime_Min;
|
||||||
|
m_cycleTime_Max = cycleTime_Max;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool PWM::step(double setValue,double samplingTime)
|
||||||
|
{
|
||||||
|
bool output_bool;
|
||||||
|
return output_bool;
|
||||||
|
}
|
||||||
20
app/pwm.h
Executable file
20
app/pwm.h
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
#ifndef PWM_H
|
||||||
|
#define PWM_H
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
class PWM
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
PWM(double cycleTime_Min,double cycleTime_Max);
|
||||||
|
|
||||||
|
bool step(double setValue,double samplingTime);
|
||||||
|
|
||||||
|
private:
|
||||||
|
double m_cycle = 0.0;
|
||||||
|
double m_out = 0.0;
|
||||||
|
double m_cycleTime = 0.0;
|
||||||
|
double m_cycleTime_Min = 0.0;
|
||||||
|
double m_cycleTime_Max = 0.0;
|
||||||
|
};
|
||||||
|
#endif // PWM_H
|
||||||
19
app/text-templates.h
Executable file
19
app/text-templates.h
Executable file
@@ -0,0 +1,19 @@
|
|||||||
|
// CPP Source file header ( as well h-file header, so far (20.03.26)
|
||||||
|
|
||||||
|
/*
|
||||||
|
File: filename.cpp
|
||||||
|
Description: This is a C++ source file containing implementation code for a program or library component.
|
||||||
|
Rev: 0.1
|
||||||
|
Created: [Date]
|
||||||
|
Author: [Your Name]
|
||||||
|
Copyright: Binder GmbH TUT 2026
|
||||||
|
Purpose: [Briefly describe the file's functionality, e.g., "Implements a class for managing user data."]
|
||||||
|
Notes: [Any relevant details, such as dependencies, usage examples, or known issues.]
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
// CPP Source function header
|
||||||
|
// todo
|
||||||
|
|
||||||
|
// Header file function header
|
||||||
|
// todo
|
||||||
6
app/util.cpp
Normal file
6
app/util.cpp
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
|
||||||
|
|
||||||
|
namespace UTILITY_FUNCTIONS {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
84
app/util.h
Normal file
84
app/util.h
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
#ifndef UTIL_H
|
||||||
|
#define UTIL_H
|
||||||
|
/*
|
||||||
|
File: util.h
|
||||||
|
Description: This is a C++ header file containing utility functions
|
||||||
|
Rev: 0.1
|
||||||
|
Created: 01.04.26
|
||||||
|
Author: Uwe Jakobeit
|
||||||
|
Copyright: Binder GmbH TUT
|
||||||
|
Purpose: Supply utility functions for math. evaluation, validation, conversion
|
||||||
|
Notes: [Any relevant details, such as dependencies, usage examples, or known issues.]
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cmath>
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
|
||||||
|
#define MAX std::max
|
||||||
|
#define MIN std::min
|
||||||
|
|
||||||
|
namespace UTILITY_FUNCTIONS {
|
||||||
|
|
||||||
|
// determine if x is in range of ]lo;hi[
|
||||||
|
// if so - x will be returned
|
||||||
|
// if not - lo will be returned if x is smaller than lo
|
||||||
|
// - hi will be returned if x is greater than hi
|
||||||
|
inline double limit(double x, double lo, double hi)
|
||||||
|
{
|
||||||
|
return (x < lo) ? lo : (x > hi) ? hi : x;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// determine the maximum of the 3 parameters
|
||||||
|
inline double max3(double a, double b, double c)
|
||||||
|
{
|
||||||
|
return std::max(a, std::max(b, c));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// determine the minimum of the 3 parameters
|
||||||
|
inline double min3(double a, double b, double c)
|
||||||
|
{
|
||||||
|
return std::min(a, std::min(b, c));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
inline bool is_valid(double x)
|
||||||
|
{
|
||||||
|
return std::isfinite(x);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ST: REAL_TO_INT(x) i.d.R. trunc Richtung 0. Bei Siemens oft ROUND? Du nutzt
|
||||||
|
// häufig +0.5.
|
||||||
|
inline int real_to_int(double x)
|
||||||
|
{
|
||||||
|
return static_cast<int>(x);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Platzhalter für GET_VALUE_* (kommt vermutlich aus Parameter-/Recipe-System)
|
||||||
|
inline int32_t GET_VALUE_DINT(int /*a*/, int /*b*/, int /*c*/, int /*d*/)
|
||||||
|
{
|
||||||
|
// TODO: an dein Parameter-System anbinden
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline double GET_VALUE_REAL(int /*a*/, int /*b*/, int /*c*/, int /*d*/)
|
||||||
|
{
|
||||||
|
// TODO: an dein Parameter-System anbinden
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// UJ: not yet needed, maybe future use - leave it for now
|
||||||
|
class Util{
|
||||||
|
public:
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace UTILITY_FUNCTIONS
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif // UTIL_H
|
||||||
38
config/CMakeLists.txt
Executable file
38
config/CMakeLists.txt
Executable file
@@ -0,0 +1,38 @@
|
|||||||
|
|
||||||
|
if(0)
|
||||||
|
|
||||||
|
# qt_standard_project_setup()
|
||||||
|
|
||||||
|
# qt_add_executable(app main.cpp
|
||||||
|
# )
|
||||||
|
|
||||||
|
add_library(config_lib STATIC dataset.h dataset.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
target_include_directories(config_lib PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
target_include_directories(config_lib PRIVATE ${Qt6Core_INCLUDE_DIRS})
|
||||||
|
|
||||||
|
# add_executable(app main.cpp filter.cpp)
|
||||||
|
target_link_libraries(app PRIVATE config_lib
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
qt_standard_project_setup()
|
||||||
|
|
||||||
|
qt_add_executable(app main.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
qt_add_library(config_lib STATIC dataset.h dataset.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
target_include_directories(config_lib PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
target_include_directories(config_lib PRIVATE ${Qt6Core_INCLUDE_DIRS})
|
||||||
|
|
||||||
|
# add_executable(app main.cpp filter.cpp)
|
||||||
|
target_link_libraries(app PRIVATE
|
||||||
|
config_lib
|
||||||
|
Qt::Core
|
||||||
|
)
|
||||||
|
|
||||||
21
controller/CMakeLists.txt
Executable file
21
controller/CMakeLists.txt
Executable file
@@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
include_directories(.)
|
||||||
|
|
||||||
|
|
||||||
|
# Define a shared library
|
||||||
|
add_library(ctrl_algo SHARED
|
||||||
|
Controller.cpp
|
||||||
|
Controller.h
|
||||||
|
)
|
||||||
|
|
||||||
|
# Propagate include paths to projects linking against this library
|
||||||
|
target_include_directories(ctrl_algo PUBLIC
|
||||||
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
||||||
|
$<INSTALL_INTERFACE:include>
|
||||||
|
)
|
||||||
|
|
||||||
|
target_include_directories(ctrl_algo PRIVATE ${Qt6Core_INCLUDE_DIRS})
|
||||||
|
|
||||||
|
# Link an executable to the library
|
||||||
|
# add_executable(app src/main.cpp)
|
||||||
|
# target_link_libraries(app PRIVATE math_utils)
|
||||||
300
controller/Controller.cpp
Executable file
300
controller/Controller.cpp
Executable file
@@ -0,0 +1,300 @@
|
|||||||
|
/*
|
||||||
|
File: Controller.cpp
|
||||||
|
Description: This is a C++ source file containing implementation code for a program or library component.
|
||||||
|
Rev: 0.1
|
||||||
|
Created: 06.04.26
|
||||||
|
Author: Uwe Jakobeit
|
||||||
|
Copyright: Binder GmbH TUT 2026
|
||||||
|
Purpose: Prelimnary version of control algorithm
|
||||||
|
Notes: [Any relevant details, such as dependencies, usage examples, or known issues.]
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#include "Controller.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef BUILD_TARGET_SOM
|
||||||
|
#include "application/AppLogic.hpp"
|
||||||
|
#include "application/Environment.hpp"
|
||||||
|
#include "application/EventLogger.hpp"
|
||||||
|
#include "deviceConfig/model/DeviceConfiguration.hpp"
|
||||||
|
#include "deviceConfig/model/state/GuardedAnalogConfiguration.hpp"
|
||||||
|
#include "state/DeviceState.hpp"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
bool Controller::initialize(const char *configFilePath, appengine::IAppLogic *appLogic) {
|
||||||
|
appLogic_ = appLogic;
|
||||||
|
auto deviceState = appLogic->deviceState();
|
||||||
|
|
||||||
|
|
||||||
|
MV_ Magnet Variable
|
||||||
|
SV_ State Variable
|
||||||
|
|
||||||
|
// Beispiel:
|
||||||
|
SV_Temperatur_Variable_ = deviceState.getVariableByKey("Temperatur_Innenraum");
|
||||||
|
SV_Feuchte_Variable_ = deviceState.getVariableByKey("Humidity");
|
||||||
|
SV_Tuer_Variable_ = deviceState.getVariableByKey("Temperatur_Tuer");
|
||||||
|
Wasserstand_Oben_Config_ = deviceState.getVariableByKey("Wasserstand_Hoch");
|
||||||
|
Wasserstand_Unten_Config_ = deviceState.getVariableByKey("Wasserstand_Tief");
|
||||||
|
Fuellstand_Config_ = deviceState.getVariableByKey("Fuellstand");
|
||||||
|
Heizung_Bef_Config_ = deviceState.getVariableByKey("Heizung_Bef");
|
||||||
|
MV_Kuehlung_Config_ = deviceState.getVariableByKey("MV_Kuehlung");
|
||||||
|
Abschlaemmen_Config_ = deviceState.getVariableByKey("Abschlaemmen");
|
||||||
|
Entleerpumpe_Config_ = deviceState.getVariableByKey("Entleerpumpe");
|
||||||
|
Heizung_Kesselrand_Config_ = deviceState.getVariableByKey("Heizung_Kesselrand");
|
||||||
|
Freigabe_Verfluessigerluefter_Config_ = deviceState.getVariableByKey("Freigabe_Verfluessigerluefter");
|
||||||
|
Heizung_Innenraum_Config_ = deviceState.getVariableByKey("Heizung_Innenraum");
|
||||||
|
Heizung_Tuer_Config_ = deviceState.getVariableByKey("Heizung_Tuer");
|
||||||
|
Uebertemperatur_Config_ = deviceState.getVariableByKey("Uebertemperatur");
|
||||||
|
MV_Entfeuchtung_Config_ = deviceState.getVariableByKey("MV_Entfeuchtung");
|
||||||
|
MV_Druckluft_Config_ = deviceState.getVariableByKey("MV_Druckluft");
|
||||||
|
Ansteuerung_Wassereinlass_Config_ = deviceState.getVariableByKey("Ansteuerung_Wassereinlass");
|
||||||
|
Ansteuerung_Verdichter_Config_ = deviceState.getVariableByKey("Ansteuerung_Verdichter");
|
||||||
|
Luefter_Innenraum_Config_ = deviceState.getVariableByKey("Luefter_Innenraum");
|
||||||
|
SV_Verdampferausgang_ = deviceState.getVariableByKey("Temperatur_Verdampferausgang");
|
||||||
|
SV_Befeuchtungsmodul_ = deviceState.getVariableByKey("Temperatur_Befeuchtungsmodul");
|
||||||
|
const_duty_cycle_ = deviceState.getVariableByKey("steady_duty");
|
||||||
|
const_freq_ = deviceState.getVariableByKey("steady_freq");
|
||||||
|
Verdichter_Duty_Config = deviceState.getVariableByKey("Ansteuerung_Verdichter_duty");
|
||||||
|
SV_Stellgrad_Heizung = deviceState.getVariableByKey("Stellgrad_Heizung");
|
||||||
|
SV_Stellgrad_Kuehlung = deviceState.getVariableByKey("Stellgrad_Kuehlung");
|
||||||
|
SV_Stellgrad_Befeuchtung = deviceState.getVariableByKey("Stellgrad_Befeuchtung");
|
||||||
|
SV_Stellgrad_Entfeuchtung = deviceState.getVariableByKey("Stellgrad_Entfeuchtung");
|
||||||
|
SV_Verdichter_on_ = deviceState.getVariableByKey("Verdichter_on");
|
||||||
|
Startup_ = deviceState.getVariableByKey("Startup_finished");
|
||||||
|
CounterTuer_ = deviceState.getVariableByKey("Counter_Tuer");
|
||||||
|
|
||||||
|
const_duty_cycle_ ->setValue(1000.0);
|
||||||
|
const_freq_->setValue(1000.0);
|
||||||
|
|
||||||
|
auto TempConfig = dynamic_cast<appengine::deviceConfig::DeviceParameterConfiguration &>(SV_Temperatur_Variable_->configuration());
|
||||||
|
auto FeuchteConfig = dynamic_cast<appengine::deviceConfig::DeviceParameterConfiguration &>(SV_Feuchte_Variable_->configuration());
|
||||||
|
|
||||||
|
|
||||||
|
auto Sollwert_Temp_Config = TempConfig.setPointConfiguration();
|
||||||
|
auto Sollwert_Feuchte_Config = FeuchteConfig.setPointConfiguration();
|
||||||
|
SV_Sollwert_Temperatur_ = deviceState.getVariableByKey(Sollwert_Temp_Config->name());
|
||||||
|
SV_Sollwert_Feuchte_ = deviceState.getVariableByKey(Sollwert_Feuchte_Config->name());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// std::vector<appengine::asio::SignalConnectionPtr> subscriptions_{};
|
||||||
|
// std::shared_ptr<appengine::state::StateVariable> Heizung_Bef_;
|
||||||
|
// std::shared_ptr<appengine::state::StateVariable> MV_Kuehlung_;
|
||||||
|
// std::shared_ptr<appengine::state::StateVariable> Abschlaemmen_;
|
||||||
|
// std::shared_ptr<appengine::state::StateVariable> Entleerpumpe_;
|
||||||
|
// std::shared_ptr<appengine::state::StateVariable> Heizung_Kesselrand;
|
||||||
|
// std::shared_ptr<appengine::state::StateVariable> Freigabe_Verfluessigerluefter;
|
||||||
|
// std::shared_ptr<appengine::state::StateVariable> Heizung_Innenraum;
|
||||||
|
// std::shared_ptr<appengine::state::StateVariable> Heizung_Tuer;
|
||||||
|
// std::shared_ptr<appengine::state::StateVariable> Uebertemperatur;
|
||||||
|
// std::shared_ptr<appengine::state::StateVariable> MV_Entfeuchtung;
|
||||||
|
// std::shared_ptr<appengine::state::StateVariable> MV_Druckluft;
|
||||||
|
// std::shared_ptr<appengine::state::StateVariable> Ansteuerung_Wassereinlass;
|
||||||
|
// std::shared_ptr<appengine::state::StateVariable> Wasserstand_oben_Config_;
|
||||||
|
// std::shared_ptr<appengine::state::StateVariable> Wasserstand_oben_Config_;
|
||||||
|
// std::shared_ptr<appengine::state::StateVariable> Ansteuerung_Verdichter;
|
||||||
|
// std::shared_ptr<appengine::state::StateVariable> Luefter_Innenraum;
|
||||||
|
// std::shared_ptr<appengine::state::StateVariable> heatingPower_Freq_;
|
||||||
|
// std::vector<appengine::asio::SignalConnectionPtr> subscriptions_{};
|
||||||
|
// std::shared_ptr<appengine::state::StateVariable> SV_Sollwert_Temperatur_;
|
||||||
|
// std::shared_ptr<appengine::state::StateVariable> SV_Temperatur_Variable_;
|
||||||
|
// std::shared_ptr<appengine::state::StateVariable> SV_Sollwert_Feuchte_;
|
||||||
|
// std::shared_ptr<appengine::state::StateVariable> SV_Feuchte_Variable_;
|
||||||
|
// std::shared_ptr<appengine::state::StateVariable> SV_Tuer_Variable_;
|
||||||
|
|
||||||
|
// tempSetPointVariable_ = deviceState.getVariableByKey("Temperature_Setpoint");
|
||||||
|
|
||||||
|
// TODO: alle bool_inXX/real_inXX und bool_outXX/real_outXX/alarm_XX Variablen hier holen.
|
||||||
|
// struct Inputs {
|
||||||
|
// // Eingangswerte aus bool_inXX / real_inXX / reset_flag
|
||||||
|
// bool reset_flag{};
|
||||||
|
// bool Sammelalarm_quittiert{};
|
||||||
|
// bool Tuer_offen{};
|
||||||
|
// bool Sollwert_Feuchte_aktiv{};
|
||||||
|
// bool Steuerkontakt_Standby{};
|
||||||
|
// bool Steuerkontakt_Befeuchtung_aus{};
|
||||||
|
// bool Steuerkontakt_Entfeuchtung_aus{};
|
||||||
|
// bool Entleerbehaelter_Oben{};
|
||||||
|
// bool Wasserkanister_leer{};
|
||||||
|
// bool Entleerbehaelter_Unten{};
|
||||||
|
// bool Sammelalarm{};
|
||||||
|
|
||||||
|
// double Istwert_Temperatur{};
|
||||||
|
// double Sollwert_Temperatur{};
|
||||||
|
// double Temperaturband{};
|
||||||
|
// double Istwert_Ueberwachungsregler{};
|
||||||
|
// double Klasse_Ueberwachungsregler{};
|
||||||
|
// double Grenzwert_Untertemperatur{};
|
||||||
|
// double Istwert_Feuchte{};
|
||||||
|
// double Sollwert_Feuchte{};
|
||||||
|
// double Feuchteband{};
|
||||||
|
// double Sollwert_Luefter{};
|
||||||
|
// double Istwert_Temperatur_Tuer{};
|
||||||
|
// double Istwert_Temperatur_Verdampferausgang{};
|
||||||
|
// double Temperatur_Feuchtemodul{};
|
||||||
|
// double Bandalarm_nach{};
|
||||||
|
// double Betauungsschutz{};
|
||||||
|
// double real_in11{}; // du nutzt real_in11 später direkt in alarm_15
|
||||||
|
// };
|
||||||
|
|
||||||
|
//Initialize PT1 Filter
|
||||||
|
|
||||||
|
FILTERED_TEMP.initialize(0.25,1);
|
||||||
|
FILTER_TUER.initialize(0.25,1);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
void Controller::stepSOM(void)
|
||||||
|
{
|
||||||
|
#ifdef BUILD_TARGET_SOM
|
||||||
|
ClimateAlgorithm::Inputs in{};
|
||||||
|
in.Istwert_Temperatur = FILTERED_TEMP.step(SV_Temperatur_Variable_->toType<double>());
|
||||||
|
in.Sollwert_Temperatur = SV_Sollwert_Temperatur_ ->toType<double>();
|
||||||
|
in.Entleerbehaelter_Oben = Wasserstand_Oben_Config_->toType<bool>();
|
||||||
|
in.Entleerbehaelter_Unten = Wasserstand_Unten_Config_->toType<bool>();
|
||||||
|
in.Istwert_Feuchte = SV_Feuchte_Variable_->toType<double>();
|
||||||
|
in.Sollwert_Feuchte = SV_Sollwert_Feuchte_->toType<double>();
|
||||||
|
in.Istwert_Temperatur_Tuer = FILTER_TUER.step(SV_Tuer_Variable_->toType<double>());
|
||||||
|
in.Betauungsschutz = 50.0;
|
||||||
|
in.Grenzwert_Untertemperatur = -80.0;
|
||||||
|
in.Feuchteband=10.0;
|
||||||
|
in.Istwert_Temperatur_Verdampferausgang = SV_Verdampferausgang_->toType<double>();
|
||||||
|
in.Sollwert_Feuchte = SV_Sollwert_Feuchte_->toType<double>();
|
||||||
|
in.Istwert_Ueberwachungsregler=in.Istwert_Temperatur;
|
||||||
|
in.Klasse_Ueberwachungsregler = 3.0;
|
||||||
|
in.reset_flag =false;
|
||||||
|
in.Sammelalarm = false;
|
||||||
|
in.Sollwert_Feuchte_aktiv = true;
|
||||||
|
in.Temperaturband = 5.0;
|
||||||
|
in.Temperatur_Feuchtemodul = SV_Befeuchtungsmodul_->toType<double>();
|
||||||
|
in.Wasserkanister_leer = false;
|
||||||
|
in.Tuer_offen = false;
|
||||||
|
|
||||||
|
|
||||||
|
// TODO: reset_flag und bool_inXX lesen:
|
||||||
|
// in.reset_flag = deviceState.getVariableByKey("reset_flag")->toType<bool>();
|
||||||
|
// in.Sammelalarm_quittiert = ... bool_in01
|
||||||
|
// ...
|
||||||
|
// in.Istwert_Temperatur = real_in01
|
||||||
|
// ...
|
||||||
|
|
||||||
|
// Minimal-Beispiel (falls du erstmal nur Temperatur/Setpoint testest):
|
||||||
|
//in.Istwert_Temperatur = tempVariable_ ? tempVariable_->toType<double>() : 0.0;
|
||||||
|
//in.Sollwert_Temperatur = tempSetPointVariable_ ? tempSetPointVariable_->toType<double>() : 25.0;
|
||||||
|
|
||||||
|
auto out = algo_.step(in);
|
||||||
|
|
||||||
|
Heizung_Bef_Config_ -> setValue(out.bool_out17);
|
||||||
|
MV_Kuehlung_Config_ ->setValue(out.bool_out18);
|
||||||
|
Abschlaemmen_Config_->setValue(out.bool_out20);
|
||||||
|
Entleerpumpe_Config_->setValue(out.bool_out16);
|
||||||
|
Heizung_Kesselrand_Config_->setValue(out.bool_out12);
|
||||||
|
Freigabe_Verfluessigerluefter_Config_->setValue(out.bool_out13);
|
||||||
|
Heizung_Innenraum_Config_->setValue(out.bool_out09);
|
||||||
|
Heizung_Tuer_Config_->setValue(out.bool_out11);
|
||||||
|
Uebertemperatur_Config_->setValue(true);
|
||||||
|
MV_Entfeuchtung_Config_->setValue(out.bool_out19);
|
||||||
|
MV_Druckluft_Config_->setValue(false);
|
||||||
|
|
||||||
|
Ansteuerung_Wassereinlass_Config_->setValue(out.bool_out14);
|
||||||
|
//Ansteuerung_Verdichter_Config_->setValue(out.real_out21*20.0);
|
||||||
|
SV_Verdichter_on_->setValue(1);
|
||||||
|
Ansteuerung_Verdichter_Config_->setValue(static_cast<int> (out.real_out21*10.0));
|
||||||
|
Verdichter_Duty_Config->setValue(500);
|
||||||
|
|
||||||
|
SV_Stellgrad_Heizung->setValue(out.Stellgrad_Heizung);
|
||||||
|
SV_Stellgrad_Kuehlung->setValue(out.Stellgrad_Kuehlung);
|
||||||
|
SV_Stellgrad_Befeuchtung ->setValue(out.Stellgrad_Befeuchtung);
|
||||||
|
SV_Stellgrad_Entfeuchtung->setValue(out.Stellgrad_Entfeuchtung);
|
||||||
|
Startup_->setValue(out.Startup);
|
||||||
|
CounterTuer_->setValue(out.Counter_Tuer);
|
||||||
|
|
||||||
|
// TODO: bool_outXX / real_outXX / alarm_XX setzen:
|
||||||
|
// deviceState.getVariableByKey("bool_out01")->set(out.bool_out01);
|
||||||
|
// deviceState.getVariableByKey("real_out09")->set(out.real_out09);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void Controller::step(void)
|
||||||
|
{
|
||||||
|
#ifdef BUILD_TARGET_SOM
|
||||||
|
|
||||||
|
stepSOM();
|
||||||
|
|
||||||
|
#else
|
||||||
|
stepDesk();
|
||||||
|
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Controller::stepDesk(void)
|
||||||
|
{
|
||||||
|
inputs = model->getInputs();
|
||||||
|
qDebug() << "Tist.: " << inputs->data()->analog.Istwert_Temperatur;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void Controller::terminate() {
|
||||||
|
#ifdef BUILD_TARGET_SOM
|
||||||
|
subscriptions_.clear();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef BUILD_TARGET_SOM
|
||||||
|
ControllerBase *create() {
|
||||||
|
|
||||||
|
return new Controller;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// initialize algorithm according to configuration ( not yet available 02.04.26 )
|
||||||
|
// return plainly true (until otherwise)
|
||||||
|
bool Controller::initialize(const char *configFilePath)
|
||||||
|
{
|
||||||
|
bool result = false;
|
||||||
|
|
||||||
|
// uncomment when available
|
||||||
|
// result = (configFilePath != (const char *) nullptr);
|
||||||
|
|
||||||
|
// DataModel* model = new DataModel;
|
||||||
|
// QList<Input_t>* inputs;
|
||||||
|
// model->getInputs();
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Controller::initialize( QList<Input_t>* inputs)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Controller::initialize( DataModel* instance)
|
||||||
|
{
|
||||||
|
model = instance;
|
||||||
|
|
||||||
|
inputs = model->getInputs();
|
||||||
|
|
||||||
|
return inputs != nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
2930
controller/Controller.h
Executable file
2930
controller/Controller.h
Executable file
File diff suppressed because it is too large
Load Diff
25
ks/CMakeLists.txt
Executable file
25
ks/CMakeLists.txt
Executable file
@@ -0,0 +1,25 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.28)
|
||||||
|
project(ks_lib LANGUAGES CXX)
|
||||||
|
|
||||||
|
qt_standard_project_setup()
|
||||||
|
|
||||||
|
file(GLOB_RECURSE SOURCES CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp")
|
||||||
|
file(GLOB_RECURSE HEADERS CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/*.hpp")
|
||||||
|
|
||||||
|
|
||||||
|
# qt_add_executable(ks main.cpp
|
||||||
|
# )
|
||||||
|
|
||||||
|
qt_add_library(${PROJECT_NAME} STATIC main.cpp
|
||||||
|
${SOURCES}
|
||||||
|
${HEADERS}
|
||||||
|
)
|
||||||
|
|
||||||
|
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/Models/FP56/Model_grt_rtw)
|
||||||
|
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
target_include_directories(${PROJECT_NAME} PRIVATE ${Qt6Core_INCLUDE_DIRS})
|
||||||
|
|
||||||
|
# add_executable(app main.cpp filter.cpp)
|
||||||
|
target_link_libraries(${PROJECT_NAME} PRIVATE
|
||||||
|
Qt::Core
|
||||||
|
)
|
||||||
BIN
ks/Models/FP56/Model.slx
Executable file
BIN
ks/Models/FP56/Model.slx
Executable file
Binary file not shown.
BIN
ks/Models/FP56/Model.slx.autosave
Executable file
BIN
ks/Models/FP56/Model.slx.autosave
Executable file
Binary file not shown.
BIN
ks/Models/FP56/Model.slxc
Executable file
BIN
ks/Models/FP56/Model.slxc
Executable file
Binary file not shown.
16
ks/Models/FP56/Model_grt_rtw/Model.bat
Executable file
16
ks/Models/FP56/Model_grt_rtw/Model.bat
Executable file
@@ -0,0 +1,16 @@
|
|||||||
|
|
||||||
|
set skipSetupArg=%2
|
||||||
|
if "%skipSetupArg%" NEQ "skip_setup_msvc" (
|
||||||
|
call "setup_msvc.bat"
|
||||||
|
)
|
||||||
|
|
||||||
|
cd .
|
||||||
|
|
||||||
|
if "%1"=="" (nmake -f Model.mk all) else (nmake -f Model.mk %1)
|
||||||
|
@if errorlevel 1 goto error_exit
|
||||||
|
|
||||||
|
exit /B 0
|
||||||
|
|
||||||
|
:error_exit
|
||||||
|
echo The make command returned an error of %errorlevel%
|
||||||
|
exit /B 1
|
||||||
358
ks/Models/FP56/Model_grt_rtw/Model.cpp
Executable file
358
ks/Models/FP56/Model_grt_rtw/Model.cpp
Executable file
@@ -0,0 +1,358 @@
|
|||||||
|
/*
|
||||||
|
* Model.cpp
|
||||||
|
*
|
||||||
|
* Code generation for model "Model".
|
||||||
|
*
|
||||||
|
* Model version : 1.2
|
||||||
|
* Simulink Coder version : 9.7 (R2022a) 13-Nov-2021
|
||||||
|
* C++ source code generated on : Sat Mar 28 11:28:04 2026
|
||||||
|
*
|
||||||
|
* Target selection: grt.tlc
|
||||||
|
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
||||||
|
* Embedded hardware selection: Intel->x86-64 (Windows64)
|
||||||
|
* Code generation objectives: Unspecified
|
||||||
|
* Validation result: Not run
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "Model.h"
|
||||||
|
#include "rtwtypes.h"
|
||||||
|
#include "Model_private.h"
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
|
#include "rt_nonfinite.h"
|
||||||
|
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* This function updates continuous states using the ODE3 fixed-step
|
||||||
|
* solver algorithm
|
||||||
|
*/
|
||||||
|
void Model::rt_ertODEUpdateContinuousStates(RTWSolverInfo *si )
|
||||||
|
{
|
||||||
|
/* Solver Matrices */
|
||||||
|
static const real_T rt_ODE3_A[3]{
|
||||||
|
1.0/2.0, 3.0/4.0, 1.0
|
||||||
|
};
|
||||||
|
|
||||||
|
static const real_T rt_ODE3_B[3][3]{
|
||||||
|
{ 1.0/2.0, 0.0, 0.0 },
|
||||||
|
|
||||||
|
{ 0.0, 3.0/4.0, 0.0 },
|
||||||
|
|
||||||
|
{ 2.0/9.0, 1.0/3.0, 4.0/9.0 }
|
||||||
|
};
|
||||||
|
|
||||||
|
time_T t { rtsiGetT(si) };
|
||||||
|
|
||||||
|
time_T tnew { rtsiGetSolverStopTime(si) };
|
||||||
|
|
||||||
|
time_T h { rtsiGetStepSize(si) };
|
||||||
|
|
||||||
|
real_T *x { rtsiGetContStates(si) };
|
||||||
|
|
||||||
|
ODE3_IntgData *id { static_cast<ODE3_IntgData *>(rtsiGetSolverData(si)) };
|
||||||
|
|
||||||
|
real_T *y { id->y };
|
||||||
|
|
||||||
|
real_T *f0 { id->f[0] };
|
||||||
|
|
||||||
|
real_T *f1 { id->f[1] };
|
||||||
|
|
||||||
|
real_T *f2 { id->f[2] };
|
||||||
|
|
||||||
|
real_T hB[3];
|
||||||
|
int_T i;
|
||||||
|
int_T nXc { 3 };
|
||||||
|
|
||||||
|
rtsiSetSimTimeStep(si,MINOR_TIME_STEP);
|
||||||
|
|
||||||
|
/* Save the state values at time t in y, we'll use x as ynew. */
|
||||||
|
(void) std::memcpy(y, x,
|
||||||
|
static_cast<uint_T>(nXc)*sizeof(real_T));
|
||||||
|
|
||||||
|
/* Assumes that rtsiSetT and ModelOutputs are up-to-date */
|
||||||
|
/* f0 = f(t,y) */
|
||||||
|
rtsiSetdX(si, f0);
|
||||||
|
Model_derivatives();
|
||||||
|
|
||||||
|
/* f(:,2) = feval(odefile, t + hA(1), y + f*hB(:,1), args(:)(*)); */
|
||||||
|
hB[0] = h * rt_ODE3_B[0][0];
|
||||||
|
for (i = 0; i < nXc; i++) {
|
||||||
|
x[i] = y[i] + (f0[i]*hB[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
rtsiSetT(si, t + h*rt_ODE3_A[0]);
|
||||||
|
rtsiSetdX(si, f1);
|
||||||
|
this->step();
|
||||||
|
Model_derivatives();
|
||||||
|
|
||||||
|
/* f(:,3) = feval(odefile, t + hA(2), y + f*hB(:,2), args(:)(*)); */
|
||||||
|
for (i = 0; i <= 1; i++) {
|
||||||
|
hB[i] = h * rt_ODE3_B[1][i];
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < nXc; i++) {
|
||||||
|
x[i] = y[i] + (f0[i]*hB[0] + f1[i]*hB[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
rtsiSetT(si, t + h*rt_ODE3_A[1]);
|
||||||
|
rtsiSetdX(si, f2);
|
||||||
|
this->step();
|
||||||
|
Model_derivatives();
|
||||||
|
|
||||||
|
/* tnew = t + hA(3);
|
||||||
|
ynew = y + f*hB(:,3); */
|
||||||
|
for (i = 0; i <= 2; i++) {
|
||||||
|
hB[i] = h * rt_ODE3_B[2][i];
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < nXc; i++) {
|
||||||
|
x[i] = y[i] + (f0[i]*hB[0] + f1[i]*hB[1] + f2[i]*hB[2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
rtsiSetT(si, tnew);
|
||||||
|
rtsiSetSimTimeStep(si,MAJOR_TIME_STEP);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Model step function */
|
||||||
|
void Model::step()
|
||||||
|
{
|
||||||
|
real_T rtb_Gain1;
|
||||||
|
real_T rtb_Gain4;
|
||||||
|
if (rtmIsMajorTimeStep((&Model_M))) {
|
||||||
|
/* set solver stop time */
|
||||||
|
if (!((&Model_M)->Timing.clockTick0+1)) {
|
||||||
|
rtsiSetSolverStopTime(&(&Model_M)->solverInfo, (((&Model_M)
|
||||||
|
->Timing.clockTickH0 + 1) * (&Model_M)->Timing.stepSize0 * 4294967296.0));
|
||||||
|
} else {
|
||||||
|
rtsiSetSolverStopTime(&(&Model_M)->solverInfo, (((&Model_M)
|
||||||
|
->Timing.clockTick0 + 1) * (&Model_M)->Timing.stepSize0 + (&Model_M)
|
||||||
|
->Timing.clockTickH0 * (&Model_M)->Timing.stepSize0 * 4294967296.0));
|
||||||
|
}
|
||||||
|
} /* end MajorTimeStep */
|
||||||
|
|
||||||
|
/* Update absolute time of base rate at minor time step */
|
||||||
|
if (rtmIsMinorTimeStep((&Model_M))) {
|
||||||
|
(&Model_M)->Timing.t[0] = rtsiGetT(&(&Model_M)->solverInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Outport: '<Root>/Temperatur' incorporates:
|
||||||
|
* Integrator: '<S1>/Integrator1'
|
||||||
|
*/
|
||||||
|
Model_Y.Temperatur = Model_X.Integrator1_CSTATE;
|
||||||
|
|
||||||
|
/* Gain: '<S1>/Gain1' incorporates:
|
||||||
|
* Integrator: '<S1>/Integrator'
|
||||||
|
* Integrator: '<S1>/Integrator1'
|
||||||
|
* Sum: '<S1>/Plus1'
|
||||||
|
*/
|
||||||
|
rtb_Gain1 = Model_P.alphaHD * Model_P.AHD * (Model_X.Integrator_CSTATE -
|
||||||
|
Model_X.Integrator1_CSTATE);
|
||||||
|
|
||||||
|
/* Gain: '<S1>/Gain' incorporates:
|
||||||
|
* Inport: '<Root>/Stellgrad'
|
||||||
|
* Sum: '<S1>/Plus'
|
||||||
|
*/
|
||||||
|
Model_B.Gain = 1.0 / (Model_P.mHD * Model_P.CHD) * (Model_U.Stellgrad -
|
||||||
|
rtb_Gain1);
|
||||||
|
|
||||||
|
/* Gain: '<S1>/Gain4' incorporates:
|
||||||
|
* Integrator: '<S1>/Integrator1'
|
||||||
|
* Integrator: '<S1>/Integrator2'
|
||||||
|
* Sum: '<S1>/Plus4'
|
||||||
|
*/
|
||||||
|
rtb_Gain4 = Model_P.alphaSW * Model_P.Ai * (Model_X.Integrator1_CSTATE -
|
||||||
|
Model_X.Integrator2_CSTATE);
|
||||||
|
|
||||||
|
/* Gain: '<S1>/Gain2' incorporates:
|
||||||
|
* Sum: '<S1>/Plus2'
|
||||||
|
*/
|
||||||
|
Model_B.Gain2 = 1.0 / (Model_P.ml * Model_P.Cl + Model_P.mES * Model_P.CES) *
|
||||||
|
(rtb_Gain1 - rtb_Gain4);
|
||||||
|
|
||||||
|
/* Gain: '<S1>/Gain5' incorporates:
|
||||||
|
* Constant: '<Root>/Constant'
|
||||||
|
* Gain: '<S1>/Gain7'
|
||||||
|
* Integrator: '<S1>/Integrator2'
|
||||||
|
* Sum: '<S1>/Plus5'
|
||||||
|
* Sum: '<S1>/Plus7'
|
||||||
|
*/
|
||||||
|
Model_B.Gain5 = (rtb_Gain4 - Model_P.alpha_aussen * Model_P.A_Aussen *
|
||||||
|
(Model_X.Integrator2_CSTATE - Model_P.Constant_Value)) * (1.0
|
||||||
|
/ (Model_P.mSW * Model_P.CSW));
|
||||||
|
if (rtmIsMajorTimeStep((&Model_M))) {
|
||||||
|
/* Matfile logging */
|
||||||
|
rt_UpdateTXYLogVars((&Model_M)->rtwLogInfo, ((&Model_M)->Timing.t));
|
||||||
|
} /* end MajorTimeStep */
|
||||||
|
|
||||||
|
if (rtmIsMajorTimeStep((&Model_M))) {
|
||||||
|
/* signal main to stop simulation */
|
||||||
|
{ /* Sample time: [0.0s, 0.0s] */
|
||||||
|
if ((rtmGetTFinal((&Model_M))!=-1) &&
|
||||||
|
!((rtmGetTFinal((&Model_M))-((((&Model_M)->Timing.clockTick1+(&Model_M)
|
||||||
|
->Timing.clockTickH1* 4294967296.0)) * 0.05)) > ((((&Model_M)
|
||||||
|
->Timing.clockTick1+(&Model_M)->Timing.clockTickH1* 4294967296.0))
|
||||||
|
* 0.05) * (DBL_EPSILON))) {
|
||||||
|
rtmSetErrorStatus((&Model_M), "Simulation finished");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
rt_ertODEUpdateContinuousStates(&(&Model_M)->solverInfo);
|
||||||
|
|
||||||
|
/* Update absolute time for base rate */
|
||||||
|
/* The "clockTick0" counts the number of times the code of this task has
|
||||||
|
* been executed. The absolute time is the multiplication of "clockTick0"
|
||||||
|
* and "Timing.stepSize0". Size of "clockTick0" ensures timer will not
|
||||||
|
* overflow during the application lifespan selected.
|
||||||
|
* Timer of this task consists of two 32 bit unsigned integers.
|
||||||
|
* The two integers represent the low bits Timing.clockTick0 and the high bits
|
||||||
|
* Timing.clockTickH0. When the low bit overflows to 0, the high bits increment.
|
||||||
|
*/
|
||||||
|
if (!(++(&Model_M)->Timing.clockTick0)) {
|
||||||
|
++(&Model_M)->Timing.clockTickH0;
|
||||||
|
}
|
||||||
|
|
||||||
|
(&Model_M)->Timing.t[0] = rtsiGetSolverStopTime(&(&Model_M)->solverInfo);
|
||||||
|
|
||||||
|
{
|
||||||
|
/* Update absolute timer for sample time: [0.05s, 0.0s] */
|
||||||
|
/* The "clockTick1" counts the number of times the code of this task has
|
||||||
|
* been executed. The resolution of this integer timer is 0.05, which is the step size
|
||||||
|
* of the task. Size of "clockTick1" ensures timer will not overflow during the
|
||||||
|
* application lifespan selected.
|
||||||
|
* Timer of this task consists of two 32 bit unsigned integers.
|
||||||
|
* The two integers represent the low bits Timing.clockTick1 and the high bits
|
||||||
|
* Timing.clockTickH1. When the low bit overflows to 0, the high bits increment.
|
||||||
|
*/
|
||||||
|
(&Model_M)->Timing.clockTick1++;
|
||||||
|
if (!(&Model_M)->Timing.clockTick1) {
|
||||||
|
(&Model_M)->Timing.clockTickH1++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} /* end MajorTimeStep */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Derivatives for root system: '<Root>' */
|
||||||
|
void Model::Model_derivatives()
|
||||||
|
{
|
||||||
|
XDot_Model_T *_rtXdot;
|
||||||
|
_rtXdot = ((XDot_Model_T *) (&Model_M)->derivs);
|
||||||
|
|
||||||
|
/* Derivatives for Integrator: '<S1>/Integrator1' */
|
||||||
|
_rtXdot->Integrator1_CSTATE = Model_B.Gain2;
|
||||||
|
|
||||||
|
/* Derivatives for Integrator: '<S1>/Integrator' */
|
||||||
|
_rtXdot->Integrator_CSTATE = Model_B.Gain;
|
||||||
|
|
||||||
|
/* Derivatives for Integrator: '<S1>/Integrator2' */
|
||||||
|
_rtXdot->Integrator2_CSTATE = Model_B.Gain5;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Model initialize function */
|
||||||
|
void Model::initialize()
|
||||||
|
{
|
||||||
|
/* Registration code */
|
||||||
|
|
||||||
|
/* initialize non-finites */
|
||||||
|
rt_InitInfAndNaN(sizeof(real_T));
|
||||||
|
|
||||||
|
{
|
||||||
|
/* Setup solver object */
|
||||||
|
rtsiSetSimTimeStepPtr(&(&Model_M)->solverInfo, &(&Model_M)
|
||||||
|
->Timing.simTimeStep);
|
||||||
|
rtsiSetTPtr(&(&Model_M)->solverInfo, &rtmGetTPtr((&Model_M)));
|
||||||
|
rtsiSetStepSizePtr(&(&Model_M)->solverInfo, &(&Model_M)->Timing.stepSize0);
|
||||||
|
rtsiSetdXPtr(&(&Model_M)->solverInfo, &(&Model_M)->derivs);
|
||||||
|
rtsiSetContStatesPtr(&(&Model_M)->solverInfo, (real_T **) &(&Model_M)
|
||||||
|
->contStates);
|
||||||
|
rtsiSetNumContStatesPtr(&(&Model_M)->solverInfo, &(&Model_M)
|
||||||
|
->Sizes.numContStates);
|
||||||
|
rtsiSetNumPeriodicContStatesPtr(&(&Model_M)->solverInfo, &(&Model_M)
|
||||||
|
->Sizes.numPeriodicContStates);
|
||||||
|
rtsiSetPeriodicContStateIndicesPtr(&(&Model_M)->solverInfo, &(&Model_M)
|
||||||
|
->periodicContStateIndices);
|
||||||
|
rtsiSetPeriodicContStateRangesPtr(&(&Model_M)->solverInfo, &(&Model_M)
|
||||||
|
->periodicContStateRanges);
|
||||||
|
rtsiSetErrorStatusPtr(&(&Model_M)->solverInfo, (&rtmGetErrorStatus((&Model_M))));
|
||||||
|
rtsiSetRTModelPtr(&(&Model_M)->solverInfo, (&Model_M));
|
||||||
|
}
|
||||||
|
|
||||||
|
rtsiSetSimTimeStep(&(&Model_M)->solverInfo, MAJOR_TIME_STEP);
|
||||||
|
(&Model_M)->intgData.y = (&Model_M)->odeY;
|
||||||
|
(&Model_M)->intgData.f[0] = (&Model_M)->odeF[0];
|
||||||
|
(&Model_M)->intgData.f[1] = (&Model_M)->odeF[1];
|
||||||
|
(&Model_M)->intgData.f[2] = (&Model_M)->odeF[2];
|
||||||
|
(&Model_M)->contStates = ((X_Model_T *) &Model_X);
|
||||||
|
rtsiSetSolverData(&(&Model_M)->solverInfo, static_cast<void *>(&(&Model_M)
|
||||||
|
->intgData));
|
||||||
|
rtsiSetIsMinorTimeStepWithModeChange(&(&Model_M)->solverInfo, false);
|
||||||
|
rtsiSetSolverName(&(&Model_M)->solverInfo,"ode3");
|
||||||
|
rtmSetTPtr((&Model_M), &(&Model_M)->Timing.tArray[0]);
|
||||||
|
rtmSetTFinal((&Model_M), 10.0);
|
||||||
|
(&Model_M)->Timing.stepSize0 = 0.05;
|
||||||
|
|
||||||
|
/* Setup for data logging */
|
||||||
|
{
|
||||||
|
static RTWLogInfo rt_DataLoggingInfo;
|
||||||
|
rt_DataLoggingInfo.loggingInterval = (nullptr);
|
||||||
|
(&Model_M)->rtwLogInfo = &rt_DataLoggingInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Setup for data logging */
|
||||||
|
{
|
||||||
|
rtliSetLogXSignalInfo((&Model_M)->rtwLogInfo, (nullptr));
|
||||||
|
rtliSetLogXSignalPtrs((&Model_M)->rtwLogInfo, (nullptr));
|
||||||
|
rtliSetLogT((&Model_M)->rtwLogInfo, "tout");
|
||||||
|
rtliSetLogX((&Model_M)->rtwLogInfo, "");
|
||||||
|
rtliSetLogXFinal((&Model_M)->rtwLogInfo, "");
|
||||||
|
rtliSetLogVarNameModifier((&Model_M)->rtwLogInfo, "rt_");
|
||||||
|
rtliSetLogFormat((&Model_M)->rtwLogInfo, 4);
|
||||||
|
rtliSetLogMaxRows((&Model_M)->rtwLogInfo, 0);
|
||||||
|
rtliSetLogDecimation((&Model_M)->rtwLogInfo, 1);
|
||||||
|
rtliSetLogY((&Model_M)->rtwLogInfo, "");
|
||||||
|
rtliSetLogYSignalInfo((&Model_M)->rtwLogInfo, (nullptr));
|
||||||
|
rtliSetLogYSignalPtrs((&Model_M)->rtwLogInfo, (nullptr));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Matfile logging */
|
||||||
|
rt_StartDataLoggingWithStartTime((&Model_M)->rtwLogInfo, 0.0, rtmGetTFinal
|
||||||
|
((&Model_M)), (&Model_M)->Timing.stepSize0, (&rtmGetErrorStatus((&Model_M))));
|
||||||
|
|
||||||
|
/* InitializeConditions for Integrator: '<S1>/Integrator1' */
|
||||||
|
Model_X.Integrator1_CSTATE = Model_P.T_amb;
|
||||||
|
|
||||||
|
/* InitializeConditions for Integrator: '<S1>/Integrator' */
|
||||||
|
Model_X.Integrator_CSTATE = Model_P.T_amb;
|
||||||
|
|
||||||
|
/* InitializeConditions for Integrator: '<S1>/Integrator2' */
|
||||||
|
Model_X.Integrator2_CSTATE = Model_P.T_amb;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Model terminate function */
|
||||||
|
void Model::terminate()
|
||||||
|
{
|
||||||
|
/* (no terminate code required) */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Constructor */
|
||||||
|
Model::Model() :
|
||||||
|
Model_U(),
|
||||||
|
Model_Y(),
|
||||||
|
Model_B(),
|
||||||
|
Model_X(),
|
||||||
|
Model_M()
|
||||||
|
{
|
||||||
|
/* Currently there is no constructor body generated.*/
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Destructor */
|
||||||
|
Model::~Model()
|
||||||
|
{
|
||||||
|
/* Currently there is no destructor body generated.*/
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Real-Time Model get method */
|
||||||
|
RT_MODEL_Model_T * Model::getRTM()
|
||||||
|
{
|
||||||
|
return (&Model_M);
|
||||||
|
}
|
||||||
408
ks/Models/FP56/Model_grt_rtw/Model.h
Executable file
408
ks/Models/FP56/Model_grt_rtw/Model.h
Executable file
@@ -0,0 +1,408 @@
|
|||||||
|
/*
|
||||||
|
* Model.h
|
||||||
|
*
|
||||||
|
* Code generation for model "Model".
|
||||||
|
*
|
||||||
|
* Model version : 1.1
|
||||||
|
* Simulink Coder version : 9.7 (R2022a) 13-Nov-2021
|
||||||
|
* C++ source code generated on : Thu Mar 26 17:54:04 2026
|
||||||
|
*
|
||||||
|
* Target selection: grt.tlc
|
||||||
|
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
||||||
|
* Embedded hardware selection: Intel->x86-64 (Windows64)
|
||||||
|
* Code generation objectives: Unspecified
|
||||||
|
* Validation result: Not run
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef RTW_HEADER_Model_h_
|
||||||
|
#define RTW_HEADER_Model_h_
|
||||||
|
#include "rtwtypes.h"
|
||||||
|
#include "rtw_continuous.h"
|
||||||
|
#include "rtw_solver.h"
|
||||||
|
#include "rt_logging.h"
|
||||||
|
#include "Model_types.h"
|
||||||
|
#include <cfloat>
|
||||||
|
#include <cstring>
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
|
#include "rt_nonfinite.h"
|
||||||
|
|
||||||
|
}
|
||||||
|
/* Macros for accessing real-time model data structure */
|
||||||
|
#ifndef rtmGetContStateDisabled
|
||||||
|
#define rtmGetContStateDisabled(rtm) ((rtm)->contStateDisabled)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmSetContStateDisabled
|
||||||
|
#define rtmSetContStateDisabled(rtm, val) ((rtm)->contStateDisabled = (val))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmGetContStates
|
||||||
|
#define rtmGetContStates(rtm) ((rtm)->contStates)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmSetContStates
|
||||||
|
#define rtmSetContStates(rtm, val) ((rtm)->contStates = (val))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmGetContTimeOutputInconsistentWithStateAtMajorStepFlag
|
||||||
|
#define rtmGetContTimeOutputInconsistentWithStateAtMajorStepFlag(rtm) ((rtm)->CTOutputIncnstWithState)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmSetContTimeOutputInconsistentWithStateAtMajorStepFlag
|
||||||
|
#define rtmSetContTimeOutputInconsistentWithStateAtMajorStepFlag(rtm, val) ((rtm)->CTOutputIncnstWithState = (val))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmGetDerivCacheNeedsReset
|
||||||
|
#define rtmGetDerivCacheNeedsReset(rtm) ((rtm)->derivCacheNeedsReset)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmSetDerivCacheNeedsReset
|
||||||
|
#define rtmSetDerivCacheNeedsReset(rtm, val) ((rtm)->derivCacheNeedsReset = (val))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmGetFinalTime
|
||||||
|
#define rtmGetFinalTime(rtm) ((rtm)->Timing.tFinal)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmGetIntgData
|
||||||
|
#define rtmGetIntgData(rtm) ((rtm)->intgData)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmSetIntgData
|
||||||
|
#define rtmSetIntgData(rtm, val) ((rtm)->intgData = (val))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmGetOdeF
|
||||||
|
#define rtmGetOdeF(rtm) ((rtm)->odeF)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmSetOdeF
|
||||||
|
#define rtmSetOdeF(rtm, val) ((rtm)->odeF = (val))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmGetOdeY
|
||||||
|
#define rtmGetOdeY(rtm) ((rtm)->odeY)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmSetOdeY
|
||||||
|
#define rtmSetOdeY(rtm, val) ((rtm)->odeY = (val))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmGetPeriodicContStateIndices
|
||||||
|
#define rtmGetPeriodicContStateIndices(rtm) ((rtm)->periodicContStateIndices)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmSetPeriodicContStateIndices
|
||||||
|
#define rtmSetPeriodicContStateIndices(rtm, val) ((rtm)->periodicContStateIndices = (val))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmGetPeriodicContStateRanges
|
||||||
|
#define rtmGetPeriodicContStateRanges(rtm) ((rtm)->periodicContStateRanges)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmSetPeriodicContStateRanges
|
||||||
|
#define rtmSetPeriodicContStateRanges(rtm, val) ((rtm)->periodicContStateRanges = (val))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmGetRTWLogInfo
|
||||||
|
#define rtmGetRTWLogInfo(rtm) ((rtm)->rtwLogInfo)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmGetZCCacheNeedsReset
|
||||||
|
#define rtmGetZCCacheNeedsReset(rtm) ((rtm)->zCCacheNeedsReset)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmSetZCCacheNeedsReset
|
||||||
|
#define rtmSetZCCacheNeedsReset(rtm, val) ((rtm)->zCCacheNeedsReset = (val))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmGetdX
|
||||||
|
#define rtmGetdX(rtm) ((rtm)->derivs)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmSetdX
|
||||||
|
#define rtmSetdX(rtm, val) ((rtm)->derivs = (val))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmGetErrorStatus
|
||||||
|
#define rtmGetErrorStatus(rtm) ((rtm)->errorStatus)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmSetErrorStatus
|
||||||
|
#define rtmSetErrorStatus(rtm, val) ((rtm)->errorStatus = (val))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmGetStopRequested
|
||||||
|
#define rtmGetStopRequested(rtm) ((rtm)->Timing.stopRequestedFlag)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmSetStopRequested
|
||||||
|
#define rtmSetStopRequested(rtm, val) ((rtm)->Timing.stopRequestedFlag = (val))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmGetStopRequestedPtr
|
||||||
|
#define rtmGetStopRequestedPtr(rtm) (&((rtm)->Timing.stopRequestedFlag))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmGetT
|
||||||
|
#define rtmGetT(rtm) (rtmGetTPtr((rtm))[0])
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmGetTFinal
|
||||||
|
#define rtmGetTFinal(rtm) ((rtm)->Timing.tFinal)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmGetTPtr
|
||||||
|
#define rtmGetTPtr(rtm) ((rtm)->Timing.t)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Block signals (default storage) */
|
||||||
|
struct B_Model_T {
|
||||||
|
real_T Gain; /* '<S1>/Gain' */
|
||||||
|
real_T Gain2; /* '<S1>/Gain2' */
|
||||||
|
real_T Gain5; /* '<S1>/Gain5' */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Continuous states (default storage) */
|
||||||
|
struct X_Model_T {
|
||||||
|
real_T Integrator1_CSTATE; /* '<S1>/Integrator1' */
|
||||||
|
real_T Integrator_CSTATE; /* '<S1>/Integrator' */
|
||||||
|
real_T Integrator2_CSTATE; /* '<S1>/Integrator2' */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* State derivatives (default storage) */
|
||||||
|
struct XDot_Model_T {
|
||||||
|
real_T Integrator1_CSTATE; /* '<S1>/Integrator1' */
|
||||||
|
real_T Integrator_CSTATE; /* '<S1>/Integrator' */
|
||||||
|
real_T Integrator2_CSTATE; /* '<S1>/Integrator2' */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* State disabled */
|
||||||
|
struct XDis_Model_T {
|
||||||
|
boolean_T Integrator1_CSTATE; /* '<S1>/Integrator1' */
|
||||||
|
boolean_T Integrator_CSTATE; /* '<S1>/Integrator' */
|
||||||
|
boolean_T Integrator2_CSTATE; /* '<S1>/Integrator2' */
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifndef ODE3_INTG
|
||||||
|
#define ODE3_INTG
|
||||||
|
|
||||||
|
/* ODE3 Integration Data */
|
||||||
|
struct ODE3_IntgData {
|
||||||
|
real_T *y; /* output */
|
||||||
|
real_T *f[3]; /* derivatives */
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* External inputs (root inport signals with default storage) */
|
||||||
|
struct ExtU_Model_T {
|
||||||
|
real_T Stellgrad; /* '<Root>/Stellgrad' */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* External outputs (root outports fed by signals with default storage) */
|
||||||
|
struct ExtY_Model_T {
|
||||||
|
real_T Temperatur; /* '<Root>/Temperatur' */
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Parameters (default storage) */
|
||||||
|
struct P_Model_T_ {
|
||||||
|
real_T AHD; /* Variable: AHD
|
||||||
|
* Referenced by: '<S1>/Gain1'
|
||||||
|
*/
|
||||||
|
real_T A_Aussen; /* Variable: A_Aussen
|
||||||
|
* Referenced by: '<S1>/Gain7'
|
||||||
|
*/
|
||||||
|
real_T Ai; /* Variable: Ai
|
||||||
|
* Referenced by: '<S1>/Gain4'
|
||||||
|
*/
|
||||||
|
real_T CES; /* Variable: CES
|
||||||
|
* Referenced by: '<S1>/Gain2'
|
||||||
|
*/
|
||||||
|
real_T CHD; /* Variable: CHD
|
||||||
|
* Referenced by: '<S1>/Gain'
|
||||||
|
*/
|
||||||
|
real_T CSW; /* Variable: CSW
|
||||||
|
* Referenced by: '<S1>/Gain5'
|
||||||
|
*/
|
||||||
|
real_T Cl; /* Variable: Cl
|
||||||
|
* Referenced by: '<S1>/Gain2'
|
||||||
|
*/
|
||||||
|
real_T T_amb; /* Variable: T_amb
|
||||||
|
* Referenced by:
|
||||||
|
* '<S1>/Integrator'
|
||||||
|
* '<S1>/Integrator1'
|
||||||
|
* '<S1>/Integrator2'
|
||||||
|
*/
|
||||||
|
real_T alphaHD; /* Variable: alphaHD
|
||||||
|
* Referenced by: '<S1>/Gain1'
|
||||||
|
*/
|
||||||
|
real_T alphaSW; /* Variable: alphaSW
|
||||||
|
* Referenced by: '<S1>/Gain4'
|
||||||
|
*/
|
||||||
|
real_T alpha_aussen; /* Variable: alpha_aussen
|
||||||
|
* Referenced by: '<S1>/Gain7'
|
||||||
|
*/
|
||||||
|
real_T mES; /* Variable: mES
|
||||||
|
* Referenced by: '<S1>/Gain2'
|
||||||
|
*/
|
||||||
|
real_T mHD; /* Variable: mHD
|
||||||
|
* Referenced by: '<S1>/Gain'
|
||||||
|
*/
|
||||||
|
real_T mSW; /* Variable: mSW
|
||||||
|
* Referenced by: '<S1>/Gain5'
|
||||||
|
*/
|
||||||
|
real_T ml; /* Variable: ml
|
||||||
|
* Referenced by: '<S1>/Gain2'
|
||||||
|
*/
|
||||||
|
real_T Constant_Value; /* Expression: 0
|
||||||
|
* Referenced by: '<Root>/Constant'
|
||||||
|
*/
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Real-time Model Data Structure */
|
||||||
|
struct tag_RTM_Model_T {
|
||||||
|
const char_T *errorStatus;
|
||||||
|
RTWLogInfo *rtwLogInfo;
|
||||||
|
RTWSolverInfo solverInfo;
|
||||||
|
X_Model_T *contStates;
|
||||||
|
int_T *periodicContStateIndices;
|
||||||
|
real_T *periodicContStateRanges;
|
||||||
|
real_T *derivs;
|
||||||
|
boolean_T *contStateDisabled;
|
||||||
|
boolean_T zCCacheNeedsReset;
|
||||||
|
boolean_T derivCacheNeedsReset;
|
||||||
|
boolean_T CTOutputIncnstWithState;
|
||||||
|
real_T odeY[3];
|
||||||
|
real_T odeF[3][3];
|
||||||
|
ODE3_IntgData intgData;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Sizes:
|
||||||
|
* The following substructure contains sizes information
|
||||||
|
* for many of the model attributes such as inputs, outputs,
|
||||||
|
* dwork, sample times, etc.
|
||||||
|
*/
|
||||||
|
struct {
|
||||||
|
int_T numContStates;
|
||||||
|
int_T numPeriodicContStates;
|
||||||
|
int_T numSampTimes;
|
||||||
|
} Sizes;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Timing:
|
||||||
|
* The following substructure contains information regarding
|
||||||
|
* the timing information for the model.
|
||||||
|
*/
|
||||||
|
struct {
|
||||||
|
uint32_T clockTick0;
|
||||||
|
uint32_T clockTickH0;
|
||||||
|
time_T stepSize0;
|
||||||
|
uint32_T clockTick1;
|
||||||
|
uint32_T clockTickH1;
|
||||||
|
time_T tFinal;
|
||||||
|
SimTimeStep simTimeStep;
|
||||||
|
boolean_T stopRequestedFlag;
|
||||||
|
time_T *t;
|
||||||
|
time_T tArray[2];
|
||||||
|
} Timing;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Block parameters (default storage) */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern P_Model_T Model_P;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Block signals (default storage) */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern struct B_Model_T Model_B;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Continuous states (default storage) */
|
||||||
|
extern X_Model_T Model_X;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* External inputs (root inport signals with default storage) */
|
||||||
|
extern struct ExtU_Model_T Model_U;
|
||||||
|
|
||||||
|
/* External outputs (root outports fed by signals with default storage) */
|
||||||
|
extern struct ExtY_Model_T Model_Y;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Model entry point functions */
|
||||||
|
extern void Model_initialize(void);
|
||||||
|
extern void Model_step(void);
|
||||||
|
extern void Model_terminate(void);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Real-time Model object */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern RT_MODEL_Model_T *const Model_M;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*-
|
||||||
|
* The generated code includes comments that allow you to trace directly
|
||||||
|
* back to the appropriate location in the model. The basic format
|
||||||
|
* is <system>/block_name, where system is the system number (uniquely
|
||||||
|
* assigned by Simulink) and block_name is the name of the block.
|
||||||
|
*
|
||||||
|
* Use the MATLAB hilite_system command to trace the generated code back
|
||||||
|
* to the model. For example,
|
||||||
|
*
|
||||||
|
* hilite_system('<S3>') - opens system 3
|
||||||
|
* hilite_system('<S3>/Kp') - opens and selects block Kp which resides in S3
|
||||||
|
*
|
||||||
|
* Here is the system hierarchy for this model
|
||||||
|
*
|
||||||
|
* '<Root>' : 'Model'
|
||||||
|
* '<S1>' : 'Model/Subsystem3'
|
||||||
|
*/
|
||||||
|
#endif /* RTW_HEADER_Model_h_ */
|
||||||
426
ks/Models/FP56/Model_grt_rtw/Model.mk
Executable file
426
ks/Models/FP56/Model_grt_rtw/Model.mk
Executable file
@@ -0,0 +1,426 @@
|
|||||||
|
###########################################################################
|
||||||
|
## Makefile generated for component 'Model'.
|
||||||
|
##
|
||||||
|
## Makefile : Model.mk
|
||||||
|
## Generated on : Sat Mar 28 11:28:08 2026
|
||||||
|
## Final product: $(RELATIVE_PATH_TO_ANCHOR)\Model.exe
|
||||||
|
## Product type : executable
|
||||||
|
##
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
## MACROS
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
# Macro Descriptions:
|
||||||
|
# PRODUCT_NAME Name of the system to build
|
||||||
|
# MAKEFILE Name of this makefile
|
||||||
|
# COMPILER_COMMAND_FILE Compiler command listing model reference header paths
|
||||||
|
# CMD_FILE Command file
|
||||||
|
|
||||||
|
PRODUCT_NAME = Model
|
||||||
|
MAKEFILE = Model.mk
|
||||||
|
MATLAB_ROOT = C:\PROGRA~1\MATLAB\R2022a
|
||||||
|
MATLAB_BIN = C:\PROGRA~1\MATLAB\R2022a\bin
|
||||||
|
MATLAB_ARCH_BIN = $(MATLAB_BIN)\win64
|
||||||
|
START_DIR = E:\Repositories\Binder_Beispiel_ReglerBBR\Models\FP56
|
||||||
|
SOLVER =
|
||||||
|
SOLVER_OBJ =
|
||||||
|
CLASSIC_INTERFACE = 0
|
||||||
|
TGT_FCN_LIB = GNU
|
||||||
|
MODEL_HAS_DYNAMICALLY_LOADED_SFCNS = 0
|
||||||
|
RELATIVE_PATH_TO_ANCHOR = ..
|
||||||
|
COMPILER_COMMAND_FILE = Model_comp.rsp
|
||||||
|
CMD_FILE = Model.rsp
|
||||||
|
C_STANDARD_OPTS =
|
||||||
|
CPP_STANDARD_OPTS =
|
||||||
|
NODEBUG = 1
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
## TOOLCHAIN SPECIFICATIONS
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
# Toolchain Name: Microsoft Visual C++ 2019 v16.0 | nmake (64-bit Windows)
|
||||||
|
# Supported Version(s): 16.0
|
||||||
|
# ToolchainInfo Version: 2022a
|
||||||
|
# Specification Revision: 1.0
|
||||||
|
#
|
||||||
|
#-------------------------------------------
|
||||||
|
# Macros assumed to be defined elsewhere
|
||||||
|
#-------------------------------------------
|
||||||
|
|
||||||
|
# NODEBUG
|
||||||
|
# cvarsdll
|
||||||
|
# cvarsmt
|
||||||
|
# conlibsmt
|
||||||
|
# ldebug
|
||||||
|
# conflags
|
||||||
|
# cflags
|
||||||
|
|
||||||
|
#-----------
|
||||||
|
# MACROS
|
||||||
|
#-----------
|
||||||
|
|
||||||
|
MW_EXTERNLIB_DIR = $(MATLAB_ROOT)\extern\lib\win64\microsoft
|
||||||
|
MW_LIB_DIR = $(MATLAB_ROOT)\lib\win64
|
||||||
|
CPU = AMD64
|
||||||
|
APPVER = 5.02
|
||||||
|
CVARSFLAG = $(cvarsmt)
|
||||||
|
CFLAGS_ADDITIONAL = -D_CRT_SECURE_NO_WARNINGS
|
||||||
|
CPPFLAGS_ADDITIONAL = -EHs -D_CRT_SECURE_NO_WARNINGS /wd4251 /Zc:__cplusplus
|
||||||
|
LIBS_TOOLCHAIN = $(conlibs)
|
||||||
|
|
||||||
|
TOOLCHAIN_SRCS =
|
||||||
|
TOOLCHAIN_INCS =
|
||||||
|
TOOLCHAIN_LIBS =
|
||||||
|
|
||||||
|
#------------------------
|
||||||
|
# BUILD TOOL COMMANDS
|
||||||
|
#------------------------
|
||||||
|
|
||||||
|
# C Compiler: Microsoft Visual C Compiler
|
||||||
|
CC = cl
|
||||||
|
|
||||||
|
# Linker: Microsoft Visual C Linker
|
||||||
|
LD = link
|
||||||
|
|
||||||
|
# C++ Compiler: Microsoft Visual C++ Compiler
|
||||||
|
CPP = cl
|
||||||
|
|
||||||
|
# C++ Linker: Microsoft Visual C++ Linker
|
||||||
|
CPP_LD = link
|
||||||
|
|
||||||
|
# Archiver: Microsoft Visual C/C++ Archiver
|
||||||
|
AR = lib
|
||||||
|
|
||||||
|
# MEX Tool: MEX Tool
|
||||||
|
MEX_PATH = $(MATLAB_ARCH_BIN)
|
||||||
|
MEX = "$(MEX_PATH)\mex"
|
||||||
|
|
||||||
|
# Download: Download
|
||||||
|
DOWNLOAD =
|
||||||
|
|
||||||
|
# Execute: Execute
|
||||||
|
EXECUTE = $(PRODUCT)
|
||||||
|
|
||||||
|
# Builder: NMAKE Utility
|
||||||
|
MAKE = nmake
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------
|
||||||
|
# Directives/Utilities
|
||||||
|
#-------------------------
|
||||||
|
|
||||||
|
CDEBUG = -Zi
|
||||||
|
C_OUTPUT_FLAG = -Fo
|
||||||
|
LDDEBUG = /DEBUG
|
||||||
|
OUTPUT_FLAG = -out:
|
||||||
|
CPPDEBUG = -Zi
|
||||||
|
CPP_OUTPUT_FLAG = -Fo
|
||||||
|
CPPLDDEBUG = /DEBUG
|
||||||
|
OUTPUT_FLAG = -out:
|
||||||
|
ARDEBUG =
|
||||||
|
STATICLIB_OUTPUT_FLAG = -out:
|
||||||
|
MEX_DEBUG = -g
|
||||||
|
RM = @del
|
||||||
|
ECHO = @echo
|
||||||
|
MV = @ren
|
||||||
|
RUN = @cmd /C
|
||||||
|
|
||||||
|
#----------------------------------------
|
||||||
|
# "Faster Builds" Build Configuration
|
||||||
|
#----------------------------------------
|
||||||
|
|
||||||
|
ARFLAGS = /nologo
|
||||||
|
CFLAGS = $(cflags) $(CVARSFLAG) $(CFLAGS_ADDITIONAL) \
|
||||||
|
/Od /Oy-
|
||||||
|
CPPFLAGS = /TP $(cflags) $(CVARSFLAG) $(CPPFLAGS_ADDITIONAL) \
|
||||||
|
/Od /Oy-
|
||||||
|
CPP_LDFLAGS = $(ldebug) $(conflags) $(LIBS_TOOLCHAIN)
|
||||||
|
CPP_SHAREDLIB_LDFLAGS = $(ldebug) $(conflags) $(LIBS_TOOLCHAIN) \
|
||||||
|
-dll -def:$(DEF_FILE)
|
||||||
|
DOWNLOAD_FLAGS =
|
||||||
|
EXECUTE_FLAGS =
|
||||||
|
LDFLAGS = $(ldebug) $(conflags) $(LIBS_TOOLCHAIN)
|
||||||
|
MEX_CPPFLAGS =
|
||||||
|
MEX_CPPLDFLAGS =
|
||||||
|
MEX_CFLAGS =
|
||||||
|
MEX_LDFLAGS =
|
||||||
|
MAKE_FLAGS = -f $(MAKEFILE)
|
||||||
|
SHAREDLIB_LDFLAGS = $(ldebug) $(conflags) $(LIBS_TOOLCHAIN) \
|
||||||
|
-dll -def:$(DEF_FILE)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
## OUTPUT INFO
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
PRODUCT = $(RELATIVE_PATH_TO_ANCHOR)\Model.exe
|
||||||
|
PRODUCT_TYPE = "executable"
|
||||||
|
BUILD_TYPE = "Top-Level Standalone Executable"
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
## INCLUDE PATHS
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
INCLUDES_BUILDINFO =
|
||||||
|
|
||||||
|
INCLUDES = $(INCLUDES_BUILDINFO)
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
## DEFINES
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
DEFINES_BUILD_ARGS = -DCLASSIC_INTERFACE=0 -DALLOCATIONFCN=0 -DMAT_FILE=1 -DONESTEPFCN=1 -DTERMFCN=1 -DMULTI_INSTANCE_CODE=1 -DINTEGER_CODE=0 -DMT=0
|
||||||
|
DEFINES_CUSTOM =
|
||||||
|
DEFINES_OPTS = -DTID01EQ=1
|
||||||
|
DEFINES_STANDARD = -DMODEL=Model -DNUMST=2 -DNCSTATES=3 -DHAVESTDIO -DRT -DUSE_RTMODEL
|
||||||
|
|
||||||
|
DEFINES = $(DEFINES_BUILD_ARGS) $(DEFINES_CUSTOM) $(DEFINES_OPTS) $(DEFINES_STANDARD)
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
## SOURCE FILES
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
SRCS = $(MATLAB_ROOT)\rtw\c\src\rt_logging.c $(START_DIR)\Model_grt_rtw\Model.cpp $(START_DIR)\Model_grt_rtw\Model_data.cpp $(START_DIR)\Model_grt_rtw\rtGetInf.cpp $(START_DIR)\Model_grt_rtw\rtGetNaN.cpp $(START_DIR)\Model_grt_rtw\rt_nonfinite.cpp
|
||||||
|
|
||||||
|
MAIN_SRC = $(MATLAB_ROOT)\rtw\c\src\common\rt_cppclass_main.cpp
|
||||||
|
|
||||||
|
ALL_SRCS = $(SRCS) $(MAIN_SRC)
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
## OBJECTS
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
OBJS = rt_logging.obj Model.obj Model_data.obj rtGetInf.obj rtGetNaN.obj rt_nonfinite.obj
|
||||||
|
|
||||||
|
MAIN_OBJ = rt_cppclass_main.obj
|
||||||
|
|
||||||
|
ALL_OBJS = $(OBJS) $(MAIN_OBJ)
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
## PREBUILT OBJECT FILES
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
PREBUILT_OBJS =
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
## LIBRARIES
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
LIBS =
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
## SYSTEM LIBRARIES
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
SYSTEM_LIBS =
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
## ADDITIONAL TOOLCHAIN FLAGS
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
#---------------
|
||||||
|
# C Compiler
|
||||||
|
#---------------
|
||||||
|
|
||||||
|
CFLAGS_BASIC = $(DEFINES) @$(COMPILER_COMMAND_FILE)
|
||||||
|
|
||||||
|
CFLAGS = $(CFLAGS) $(CFLAGS_BASIC)
|
||||||
|
|
||||||
|
#-----------------
|
||||||
|
# C++ Compiler
|
||||||
|
#-----------------
|
||||||
|
|
||||||
|
CPPFLAGS_BASIC = $(DEFINES) @$(COMPILER_COMMAND_FILE)
|
||||||
|
|
||||||
|
CPPFLAGS = $(CPPFLAGS) $(CPPFLAGS_BASIC)
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
## INLINED COMMANDS
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
|
||||||
|
!include $(MATLAB_ROOT)\rtw\c\tools\vcdefs.mak
|
||||||
|
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
## PHONY TARGETS
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
.PHONY : all build buildobj clean info prebuild download execute set_environment_variables
|
||||||
|
|
||||||
|
|
||||||
|
all : build
|
||||||
|
@cmd /C "@echo ### Successfully generated all binary outputs."
|
||||||
|
|
||||||
|
|
||||||
|
build : set_environment_variables prebuild $(PRODUCT)
|
||||||
|
|
||||||
|
|
||||||
|
buildobj : set_environment_variables prebuild $(OBJS) $(PREBUILT_OBJS)
|
||||||
|
@cmd /C "@echo ### Successfully generated all binary outputs."
|
||||||
|
|
||||||
|
|
||||||
|
prebuild :
|
||||||
|
|
||||||
|
|
||||||
|
download : $(PRODUCT)
|
||||||
|
|
||||||
|
|
||||||
|
execute : download
|
||||||
|
@cmd /C "@echo ### Invoking postbuild tool "Execute" ..."
|
||||||
|
$(EXECUTE) $(EXECUTE_FLAGS)
|
||||||
|
@cmd /C "@echo ### Done invoking postbuild tool."
|
||||||
|
|
||||||
|
|
||||||
|
set_environment_variables :
|
||||||
|
@set INCLUDE=$(INCLUDES);$(INCLUDE)
|
||||||
|
@set LIB=$(LIB)
|
||||||
|
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
## FINAL TARGET
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
#-------------------------------------------
|
||||||
|
# Create a standalone executable
|
||||||
|
#-------------------------------------------
|
||||||
|
|
||||||
|
$(PRODUCT) : $(OBJS) $(PREBUILT_OBJS) $(MAIN_OBJ)
|
||||||
|
@cmd /C "@echo ### Creating standalone executable "$(PRODUCT)" ..."
|
||||||
|
$(CPP_LD) $(CPP_LDFLAGS) -out:$(PRODUCT) @$(CMD_FILE) $(SYSTEM_LIBS) $(TOOLCHAIN_LIBS)
|
||||||
|
@cmd /C "@echo ### Created: $(PRODUCT)"
|
||||||
|
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
## INTERMEDIATE TARGETS
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
#---------------------
|
||||||
|
# SOURCE-TO-OBJECT
|
||||||
|
#---------------------
|
||||||
|
|
||||||
|
.c.obj :
|
||||||
|
$(CC) $(CFLAGS) -Fo"$@" "$<"
|
||||||
|
|
||||||
|
|
||||||
|
.cpp.obj :
|
||||||
|
$(CPP) $(CPPFLAGS) -Fo"$@" "$<"
|
||||||
|
|
||||||
|
|
||||||
|
{$(RELATIVE_PATH_TO_ANCHOR)}.c.obj :
|
||||||
|
$(CC) $(CFLAGS) -Fo"$@" "$<"
|
||||||
|
|
||||||
|
|
||||||
|
{$(RELATIVE_PATH_TO_ANCHOR)}.cpp.obj :
|
||||||
|
$(CPP) $(CPPFLAGS) -Fo"$@" "$<"
|
||||||
|
|
||||||
|
|
||||||
|
{$(START_DIR)}.c.obj :
|
||||||
|
$(CC) $(CFLAGS) -Fo"$@" "$<"
|
||||||
|
|
||||||
|
|
||||||
|
{$(START_DIR)}.cpp.obj :
|
||||||
|
$(CPP) $(CPPFLAGS) -Fo"$@" "$<"
|
||||||
|
|
||||||
|
|
||||||
|
{$(START_DIR)\Model_grt_rtw}.c.obj :
|
||||||
|
$(CC) $(CFLAGS) -Fo"$@" "$<"
|
||||||
|
|
||||||
|
|
||||||
|
{$(START_DIR)\Model_grt_rtw}.cpp.obj :
|
||||||
|
$(CPP) $(CPPFLAGS) -Fo"$@" "$<"
|
||||||
|
|
||||||
|
|
||||||
|
{$(MATLAB_ROOT)\rtw\c\src}.c.obj :
|
||||||
|
$(CC) $(CFLAGS) -Fo"$@" "$<"
|
||||||
|
|
||||||
|
|
||||||
|
{$(MATLAB_ROOT)\rtw\c\src}.cpp.obj :
|
||||||
|
$(CPP) $(CPPFLAGS) -Fo"$@" "$<"
|
||||||
|
|
||||||
|
|
||||||
|
{$(MATLAB_ROOT)\simulink\src}.c.obj :
|
||||||
|
$(CC) $(CFLAGS) -Fo"$@" "$<"
|
||||||
|
|
||||||
|
|
||||||
|
{$(MATLAB_ROOT)\simulink\src}.cpp.obj :
|
||||||
|
$(CPP) $(CPPFLAGS) -Fo"$@" "$<"
|
||||||
|
|
||||||
|
|
||||||
|
rt_logging.obj : "$(MATLAB_ROOT)\rtw\c\src\rt_logging.c"
|
||||||
|
$(CC) $(CFLAGS) -Fo"$@" "$(MATLAB_ROOT)\rtw\c\src\rt_logging.c"
|
||||||
|
|
||||||
|
|
||||||
|
Model.obj : "$(START_DIR)\Model_grt_rtw\Model.cpp"
|
||||||
|
$(CPP) $(CPPFLAGS) -Fo"$@" "$(START_DIR)\Model_grt_rtw\Model.cpp"
|
||||||
|
|
||||||
|
|
||||||
|
Model_data.obj : "$(START_DIR)\Model_grt_rtw\Model_data.cpp"
|
||||||
|
$(CPP) $(CPPFLAGS) -Fo"$@" "$(START_DIR)\Model_grt_rtw\Model_data.cpp"
|
||||||
|
|
||||||
|
|
||||||
|
rtGetInf.obj : "$(START_DIR)\Model_grt_rtw\rtGetInf.cpp"
|
||||||
|
$(CPP) $(CPPFLAGS) -Fo"$@" "$(START_DIR)\Model_grt_rtw\rtGetInf.cpp"
|
||||||
|
|
||||||
|
|
||||||
|
rtGetNaN.obj : "$(START_DIR)\Model_grt_rtw\rtGetNaN.cpp"
|
||||||
|
$(CPP) $(CPPFLAGS) -Fo"$@" "$(START_DIR)\Model_grt_rtw\rtGetNaN.cpp"
|
||||||
|
|
||||||
|
|
||||||
|
rt_nonfinite.obj : "$(START_DIR)\Model_grt_rtw\rt_nonfinite.cpp"
|
||||||
|
$(CPP) $(CPPFLAGS) -Fo"$@" "$(START_DIR)\Model_grt_rtw\rt_nonfinite.cpp"
|
||||||
|
|
||||||
|
|
||||||
|
rt_cppclass_main.obj : "$(MATLAB_ROOT)\rtw\c\src\common\rt_cppclass_main.cpp"
|
||||||
|
$(CPP) $(CPPFLAGS) -Fo"$@" "$(MATLAB_ROOT)\rtw\c\src\common\rt_cppclass_main.cpp"
|
||||||
|
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
## DEPENDENCIES
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
$(ALL_OBJS) : rtw_proj.tmw $(COMPILER_COMMAND_FILE) $(MAKEFILE)
|
||||||
|
|
||||||
|
|
||||||
|
###########################################################################
|
||||||
|
## MISCELLANEOUS TARGETS
|
||||||
|
###########################################################################
|
||||||
|
|
||||||
|
info :
|
||||||
|
@cmd /C "@echo ### PRODUCT = $(PRODUCT)"
|
||||||
|
@cmd /C "@echo ### PRODUCT_TYPE = $(PRODUCT_TYPE)"
|
||||||
|
@cmd /C "@echo ### BUILD_TYPE = $(BUILD_TYPE)"
|
||||||
|
@cmd /C "@echo ### INCLUDES = $(INCLUDES)"
|
||||||
|
@cmd /C "@echo ### DEFINES = $(DEFINES)"
|
||||||
|
@cmd /C "@echo ### ALL_SRCS = $(ALL_SRCS)"
|
||||||
|
@cmd /C "@echo ### ALL_OBJS = $(ALL_OBJS)"
|
||||||
|
@cmd /C "@echo ### LIBS = $(LIBS)"
|
||||||
|
@cmd /C "@echo ### MODELREF_LIBS = $(MODELREF_LIBS)"
|
||||||
|
@cmd /C "@echo ### SYSTEM_LIBS = $(SYSTEM_LIBS)"
|
||||||
|
@cmd /C "@echo ### TOOLCHAIN_LIBS = $(TOOLCHAIN_LIBS)"
|
||||||
|
@cmd /C "@echo ### CFLAGS = $(CFLAGS)"
|
||||||
|
@cmd /C "@echo ### LDFLAGS = $(LDFLAGS)"
|
||||||
|
@cmd /C "@echo ### SHAREDLIB_LDFLAGS = $(SHAREDLIB_LDFLAGS)"
|
||||||
|
@cmd /C "@echo ### CPPFLAGS = $(CPPFLAGS)"
|
||||||
|
@cmd /C "@echo ### CPP_LDFLAGS = $(CPP_LDFLAGS)"
|
||||||
|
@cmd /C "@echo ### CPP_SHAREDLIB_LDFLAGS = $(CPP_SHAREDLIB_LDFLAGS)"
|
||||||
|
@cmd /C "@echo ### ARFLAGS = $(ARFLAGS)"
|
||||||
|
@cmd /C "@echo ### MEX_CFLAGS = $(MEX_CFLAGS)"
|
||||||
|
@cmd /C "@echo ### MEX_CPPFLAGS = $(MEX_CPPFLAGS)"
|
||||||
|
@cmd /C "@echo ### MEX_LDFLAGS = $(MEX_LDFLAGS)"
|
||||||
|
@cmd /C "@echo ### MEX_CPPLDFLAGS = $(MEX_CPPLDFLAGS)"
|
||||||
|
@cmd /C "@echo ### DOWNLOAD_FLAGS = $(DOWNLOAD_FLAGS)"
|
||||||
|
@cmd /C "@echo ### EXECUTE_FLAGS = $(EXECUTE_FLAGS)"
|
||||||
|
@cmd /C "@echo ### MAKE_FLAGS = $(MAKE_FLAGS)"
|
||||||
|
|
||||||
|
|
||||||
|
clean :
|
||||||
|
$(ECHO) "### Deleting all derived files..."
|
||||||
|
@if exist $(PRODUCT) $(RM) $(PRODUCT)
|
||||||
|
$(RM) $(ALL_OBJS)
|
||||||
|
$(ECHO) "### Deleted all derived files."
|
||||||
|
|
||||||
|
|
||||||
7
ks/Models/FP56/Model_grt_rtw/Model.rsp
Executable file
7
ks/Models/FP56/Model_grt_rtw/Model.rsp
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
rt_logging.obj
|
||||||
|
Model.obj
|
||||||
|
Model_data.obj
|
||||||
|
rtGetInf.obj
|
||||||
|
rtGetNaN.obj
|
||||||
|
rt_nonfinite.obj
|
||||||
|
rt_cppclass_main.obj
|
||||||
6
ks/Models/FP56/Model_grt_rtw/Model_comp.rsp
Executable file
6
ks/Models/FP56/Model_grt_rtw/Model_comp.rsp
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
-IE:\Repositories\Binder_Beispiel_ReglerBBR\Models\FP56
|
||||||
|
-IE:\Repositories\Binder_Beispiel_ReglerBBR\Models\FP56\Model_grt_rtw
|
||||||
|
-I"C:\Program Files\MATLAB\R2022a\extern\include"
|
||||||
|
-I"C:\Program Files\MATLAB\R2022a\simulink\include"
|
||||||
|
-I"C:\Program Files\MATLAB\R2022a\rtw\c\src"
|
||||||
|
-I"C:\Program Files\MATLAB\R2022a\rtw\c\src\ext_mode\common"
|
||||||
103
ks/Models/FP56/Model_grt_rtw/Model_data.cpp
Executable file
103
ks/Models/FP56/Model_grt_rtw/Model_data.cpp
Executable file
@@ -0,0 +1,103 @@
|
|||||||
|
/*
|
||||||
|
* Model_data.cpp
|
||||||
|
*
|
||||||
|
* Code generation for model "Model".
|
||||||
|
*
|
||||||
|
* Model version : 1.2
|
||||||
|
* Simulink Coder version : 9.7 (R2022a) 13-Nov-2021
|
||||||
|
* C++ source code generated on : Sat Mar 28 11:28:04 2026
|
||||||
|
*
|
||||||
|
* Target selection: grt.tlc
|
||||||
|
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
||||||
|
* Embedded hardware selection: Intel->x86-64 (Windows64)
|
||||||
|
* Code generation objectives: Unspecified
|
||||||
|
* Validation result: Not run
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "Model.h"
|
||||||
|
|
||||||
|
/* Block parameters (default storage) */
|
||||||
|
P_Model_T Model::Model_P{
|
||||||
|
/* Variable: AHD
|
||||||
|
* Referenced by: '<S1>/Gain1'
|
||||||
|
*/
|
||||||
|
0.0255,
|
||||||
|
|
||||||
|
/* Variable: A_Aussen
|
||||||
|
* Referenced by: '<S1>/Gain7'
|
||||||
|
*/
|
||||||
|
4.361516,
|
||||||
|
|
||||||
|
/* Variable: Ai
|
||||||
|
* Referenced by: '<S1>/Gain4'
|
||||||
|
*/
|
||||||
|
0.164002,
|
||||||
|
|
||||||
|
/* Variable: CES
|
||||||
|
* Referenced by: '<S1>/Gain2'
|
||||||
|
*/
|
||||||
|
520.5763,
|
||||||
|
|
||||||
|
/* Variable: CHD
|
||||||
|
* Referenced by: '<S1>/Gain'
|
||||||
|
*/
|
||||||
|
1002.4,
|
||||||
|
|
||||||
|
/* Variable: CSW
|
||||||
|
* Referenced by: '<S1>/Gain5'
|
||||||
|
*/
|
||||||
|
966.0,
|
||||||
|
|
||||||
|
/* Variable: Cl
|
||||||
|
* Referenced by: '<S1>/Gain2'
|
||||||
|
*/
|
||||||
|
900.0,
|
||||||
|
|
||||||
|
/* Variable: T_amb
|
||||||
|
* Referenced by:
|
||||||
|
* '<S1>/Integrator'
|
||||||
|
* '<S1>/Integrator1'
|
||||||
|
* '<S1>/Integrator2'
|
||||||
|
*/
|
||||||
|
25.0,
|
||||||
|
|
||||||
|
/* Variable: alphaHD
|
||||||
|
* Referenced by: '<S1>/Gain1'
|
||||||
|
*/
|
||||||
|
397.2681,
|
||||||
|
|
||||||
|
/* Variable: alphaSW
|
||||||
|
* Referenced by: '<S1>/Gain4'
|
||||||
|
*/
|
||||||
|
85.2918,
|
||||||
|
|
||||||
|
/* Variable: alpha_aussen
|
||||||
|
* Referenced by: '<S1>/Gain7'
|
||||||
|
*/
|
||||||
|
0.4507,
|
||||||
|
|
||||||
|
/* Variable: mES
|
||||||
|
* Referenced by: '<S1>/Gain2'
|
||||||
|
*/
|
||||||
|
5.914,
|
||||||
|
|
||||||
|
/* Variable: mHD
|
||||||
|
* Referenced by: '<S1>/Gain'
|
||||||
|
*/
|
||||||
|
0.12,
|
||||||
|
|
||||||
|
/* Variable: mSW
|
||||||
|
* Referenced by: '<S1>/Gain5'
|
||||||
|
*/
|
||||||
|
2.82,
|
||||||
|
|
||||||
|
/* Variable: ml
|
||||||
|
* Referenced by: '<S1>/Gain2'
|
||||||
|
*/
|
||||||
|
0.078321408,
|
||||||
|
|
||||||
|
/* Expression: 0
|
||||||
|
* Referenced by: '<Root>/Constant'
|
||||||
|
*/
|
||||||
|
0.0
|
||||||
|
};
|
||||||
43
ks/Models/FP56/Model_grt_rtw/Model_private.h
Executable file
43
ks/Models/FP56/Model_grt_rtw/Model_private.h
Executable file
@@ -0,0 +1,43 @@
|
|||||||
|
/*
|
||||||
|
* Model_private.h
|
||||||
|
*
|
||||||
|
* Code generation for model "Model".
|
||||||
|
*
|
||||||
|
* Model version : 1.1
|
||||||
|
* Simulink Coder version : 9.7 (R2022a) 13-Nov-2021
|
||||||
|
* C++ source code generated on : Thu Mar 26 17:54:04 2026
|
||||||
|
*
|
||||||
|
* Target selection: grt.tlc
|
||||||
|
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
||||||
|
* Embedded hardware selection: Intel->x86-64 (Windows64)
|
||||||
|
* Code generation objectives: Unspecified
|
||||||
|
* Validation result: Not run
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef RTW_HEADER_Model_private_h_
|
||||||
|
#define RTW_HEADER_Model_private_h_
|
||||||
|
#include "rtwtypes.h"
|
||||||
|
#include "builtin_typeid_types.h"
|
||||||
|
#include "multiword_types.h"
|
||||||
|
|
||||||
|
/* Private macros used by the generated code to access rtModel */
|
||||||
|
#ifndef rtmIsMajorTimeStep
|
||||||
|
#define rtmIsMajorTimeStep(rtm) (((rtm)->Timing.simTimeStep) == MAJOR_TIME_STEP)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmIsMinorTimeStep
|
||||||
|
#define rtmIsMinorTimeStep(rtm) (((rtm)->Timing.simTimeStep) == MINOR_TIME_STEP)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmSetTFinal
|
||||||
|
#define rtmSetTFinal(rtm, val) ((rtm)->Timing.tFinal = (val))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef rtmSetTPtr
|
||||||
|
#define rtmSetTPtr(rtm, val) ((rtm)->Timing.t = (val))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* private model entry point functions */
|
||||||
|
extern void Model_derivatives(void);
|
||||||
|
|
||||||
|
#endif /* RTW_HEADER_Model_private_h_ */
|
||||||
1
ks/Models/FP56/Model_grt_rtw/Model_ref.rsp
Executable file
1
ks/Models/FP56/Model_grt_rtw/Model_ref.rsp
Executable file
@@ -0,0 +1 @@
|
|||||||
|
|
||||||
28
ks/Models/FP56/Model_grt_rtw/Model_types.h
Executable file
28
ks/Models/FP56/Model_grt_rtw/Model_types.h
Executable file
@@ -0,0 +1,28 @@
|
|||||||
|
/*
|
||||||
|
* Model_types.h
|
||||||
|
*
|
||||||
|
* Code generation for model "Model".
|
||||||
|
*
|
||||||
|
* Model version : 1.1
|
||||||
|
* Simulink Coder version : 9.7 (R2022a) 13-Nov-2021
|
||||||
|
* C++ source code generated on : Thu Mar 26 17:54:04 2026
|
||||||
|
*
|
||||||
|
* Target selection: grt.tlc
|
||||||
|
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
||||||
|
* Embedded hardware selection: Intel->x86-64 (Windows64)
|
||||||
|
* Code generation objectives: Unspecified
|
||||||
|
* Validation result: Not run
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef RTW_HEADER_Model_types_h_
|
||||||
|
#define RTW_HEADER_Model_types_h_
|
||||||
|
|
||||||
|
/* Model Code Variants */
|
||||||
|
|
||||||
|
/* Parameters (default storage) */
|
||||||
|
typedef struct P_Model_T_ P_Model_T;
|
||||||
|
|
||||||
|
/* Forward declaration for rtModel */
|
||||||
|
typedef struct tag_RTM_Model_T RT_MODEL_Model_T;
|
||||||
|
|
||||||
|
#endif /* RTW_HEADER_Model_types_h_ */
|
||||||
BIN
ks/Models/FP56/Model_grt_rtw/buildInfo.mat
Executable file
BIN
ks/Models/FP56/Model_grt_rtw/buildInfo.mat
Executable file
Binary file not shown.
52
ks/Models/FP56/Model_grt_rtw/builtin_typeid_types.h
Executable file
52
ks/Models/FP56/Model_grt_rtw/builtin_typeid_types.h
Executable file
@@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
* builtin_typeid_types.h
|
||||||
|
*
|
||||||
|
* Code generation for model "Model".
|
||||||
|
*
|
||||||
|
* Model version : 1.1
|
||||||
|
* Simulink Coder version : 9.7 (R2022a) 13-Nov-2021
|
||||||
|
* C++ source code generated on : Thu Mar 26 17:54:04 2026
|
||||||
|
*
|
||||||
|
* Target selection: grt.tlc
|
||||||
|
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
||||||
|
* Embedded hardware selection: Intel->x86-64 (Windows64)
|
||||||
|
* Code generation objectives: Unspecified
|
||||||
|
* Validation result: Not run
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef BUILTIN_TYPEID_TYPES_H
|
||||||
|
#define BUILTIN_TYPEID_TYPES_H
|
||||||
|
#include "rtwtypes.h"
|
||||||
|
#ifndef BUILTIN_TYPEID_TYPES
|
||||||
|
#define BUILTIN_TYPEID_TYPES
|
||||||
|
|
||||||
|
/* Enumeration of built-in data types */
|
||||||
|
typedef enum {
|
||||||
|
SS_DOUBLE = 0, /* real_T */
|
||||||
|
SS_SINGLE = 1, /* real32_T */
|
||||||
|
SS_INT8 = 2, /* int8_T */
|
||||||
|
SS_UINT8 = 3, /* uint8_T */
|
||||||
|
SS_INT16 = 4, /* int16_T */
|
||||||
|
SS_UINT16 = 5, /* uint16_T */
|
||||||
|
SS_INT32 = 6, /* int32_T */
|
||||||
|
SS_UINT32 = 7, /* uint32_T */
|
||||||
|
SS_BOOLEAN = 8 /* boolean_T */
|
||||||
|
} BuiltInDTypeId;
|
||||||
|
|
||||||
|
#define SS_NUM_BUILT_IN_DTYPE ((int_T)SS_BOOLEAN+1)
|
||||||
|
|
||||||
|
/* Enumeration for MAT-file logging code */
|
||||||
|
typedef int_T DTypeId;
|
||||||
|
|
||||||
|
/* Enumeration of pre-defined data types */
|
||||||
|
typedef enum {
|
||||||
|
SS_FCN_CALL = 9,
|
||||||
|
SS_INTEGER = 10,
|
||||||
|
SS_POINTER = 11,
|
||||||
|
SS_INTERNAL_DTYPE2 = 12,
|
||||||
|
SS_TIMER_UINT32_PAIR = 13,
|
||||||
|
SS_CONNECTION_TYPE = 14
|
||||||
|
} PreDefinedDTypeId;
|
||||||
|
|
||||||
|
#endif /* BUILTIN_TYPEID_TYPES */
|
||||||
|
#endif /* BUILTIN_TYPEID_TYPES_H */
|
||||||
BIN
ks/Models/FP56/Model_grt_rtw/codeInfo.mat
Executable file
BIN
ks/Models/FP56/Model_grt_rtw/codeInfo.mat
Executable file
Binary file not shown.
BIN
ks/Models/FP56/Model_grt_rtw/codedescriptor.dmr
Executable file
BIN
ks/Models/FP56/Model_grt_rtw/codedescriptor.dmr
Executable file
Binary file not shown.
BIN
ks/Models/FP56/Model_grt_rtw/compileInfo.mat
Executable file
BIN
ks/Models/FP56/Model_grt_rtw/compileInfo.mat
Executable file
Binary file not shown.
1169
ks/Models/FP56/Model_grt_rtw/multiword_types.h
Executable file
1169
ks/Models/FP56/Model_grt_rtw/multiword_types.h
Executable file
File diff suppressed because it is too large
Load Diff
163
ks/Models/FP56/Model_grt_rtw/rtGetInf.cpp
Executable file
163
ks/Models/FP56/Model_grt_rtw/rtGetInf.cpp
Executable file
@@ -0,0 +1,163 @@
|
|||||||
|
/*
|
||||||
|
* rtGetInf.cpp
|
||||||
|
*
|
||||||
|
* Code generation for model "Model".
|
||||||
|
*
|
||||||
|
* Model version : 1.2
|
||||||
|
* Simulink Coder version : 9.7 (R2022a) 13-Nov-2021
|
||||||
|
* C++ source code generated on : Sat Mar 28 11:28:04 2026
|
||||||
|
*
|
||||||
|
* Target selection: grt.tlc
|
||||||
|
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
||||||
|
* Embedded hardware selection: Intel->x86-64 (Windows64)
|
||||||
|
* Code generation objectives: Unspecified
|
||||||
|
* Validation result: Not run
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "rtwtypes.h"
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
|
#include "rtGetInf.h"
|
||||||
|
|
||||||
|
}
|
||||||
|
#include <stddef.h>
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
|
#include "rt_nonfinite.h"
|
||||||
|
|
||||||
|
}
|
||||||
|
#define NumBitsPerChar 8U
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
/*
|
||||||
|
* Initialize rtInf needed by the generated code.
|
||||||
|
* Inf is initialized as non-signaling. Assumes IEEE.
|
||||||
|
*/
|
||||||
|
real_T rtGetInf(void)
|
||||||
|
{
|
||||||
|
size_t bitsPerReal{ sizeof(real_T) * (NumBitsPerChar) };
|
||||||
|
|
||||||
|
real_T inf{ 0.0 };
|
||||||
|
|
||||||
|
if (bitsPerReal == 32U) {
|
||||||
|
inf = rtGetInfF();
|
||||||
|
} else {
|
||||||
|
uint16_T one{ 1U };
|
||||||
|
|
||||||
|
enum {
|
||||||
|
LittleEndian,
|
||||||
|
BigEndian
|
||||||
|
} machByteOrder
|
||||||
|
{
|
||||||
|
(*((uint8_T *) &one) == 1U) ? LittleEndian : BigEndian
|
||||||
|
};
|
||||||
|
switch (machByteOrder) {
|
||||||
|
case LittleEndian:
|
||||||
|
{
|
||||||
|
union {
|
||||||
|
LittleEndianIEEEDouble bitVal;
|
||||||
|
real_T fltVal;
|
||||||
|
} tmpVal;
|
||||||
|
|
||||||
|
tmpVal.bitVal.words.wordH = 0x7FF00000U;
|
||||||
|
tmpVal.bitVal.words.wordL = 0x00000000U;
|
||||||
|
inf = tmpVal.fltVal;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case BigEndian:
|
||||||
|
{
|
||||||
|
union {
|
||||||
|
BigEndianIEEEDouble bitVal;
|
||||||
|
real_T fltVal;
|
||||||
|
} tmpVal;
|
||||||
|
|
||||||
|
tmpVal.bitVal.words.wordH = 0x7FF00000U;
|
||||||
|
tmpVal.bitVal.words.wordL = 0x00000000U;
|
||||||
|
inf = tmpVal.fltVal;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return inf;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initialize rtInfF needed by the generated code.
|
||||||
|
* Inf is initialized as non-signaling. Assumes IEEE.
|
||||||
|
*/
|
||||||
|
real32_T rtGetInfF(void)
|
||||||
|
{
|
||||||
|
IEEESingle infF;
|
||||||
|
infF.wordL.wordLuint = 0x7F800000U;
|
||||||
|
return infF.wordL.wordLreal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initialize rtMinusInf needed by the generated code.
|
||||||
|
* Inf is initialized as non-signaling. Assumes IEEE.
|
||||||
|
*/
|
||||||
|
real_T rtGetMinusInf(void)
|
||||||
|
{
|
||||||
|
size_t bitsPerReal{ sizeof(real_T) * (NumBitsPerChar) };
|
||||||
|
|
||||||
|
real_T minf{ 0.0 };
|
||||||
|
|
||||||
|
if (bitsPerReal == 32U) {
|
||||||
|
minf = rtGetMinusInfF();
|
||||||
|
} else {
|
||||||
|
uint16_T one{ 1U };
|
||||||
|
|
||||||
|
enum {
|
||||||
|
LittleEndian,
|
||||||
|
BigEndian
|
||||||
|
} machByteOrder
|
||||||
|
{
|
||||||
|
(*((uint8_T *) &one) == 1U) ? LittleEndian : BigEndian
|
||||||
|
};
|
||||||
|
switch (machByteOrder) {
|
||||||
|
case LittleEndian:
|
||||||
|
{
|
||||||
|
union {
|
||||||
|
LittleEndianIEEEDouble bitVal;
|
||||||
|
real_T fltVal;
|
||||||
|
} tmpVal;
|
||||||
|
|
||||||
|
tmpVal.bitVal.words.wordH = 0xFFF00000U;
|
||||||
|
tmpVal.bitVal.words.wordL = 0x00000000U;
|
||||||
|
minf = tmpVal.fltVal;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case BigEndian:
|
||||||
|
{
|
||||||
|
union {
|
||||||
|
BigEndianIEEEDouble bitVal;
|
||||||
|
real_T fltVal;
|
||||||
|
} tmpVal;
|
||||||
|
|
||||||
|
tmpVal.bitVal.words.wordH = 0xFFF00000U;
|
||||||
|
tmpVal.bitVal.words.wordL = 0x00000000U;
|
||||||
|
minf = tmpVal.fltVal;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return minf;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initialize rtMinusInfF needed by the generated code.
|
||||||
|
* Inf is initialized as non-signaling. Assumes IEEE.
|
||||||
|
*/
|
||||||
|
real32_T rtGetMinusInfF(void)
|
||||||
|
{
|
||||||
|
IEEESingle minfF;
|
||||||
|
minfF.wordL.wordLuint = 0xFF800000U;
|
||||||
|
return minfF.wordL.wordLreal;
|
||||||
|
}
|
||||||
|
}
|
||||||
36
ks/Models/FP56/Model_grt_rtw/rtGetInf.h
Executable file
36
ks/Models/FP56/Model_grt_rtw/rtGetInf.h
Executable file
@@ -0,0 +1,36 @@
|
|||||||
|
/*
|
||||||
|
* rtGetInf.h
|
||||||
|
*
|
||||||
|
* Code generation for model "Model".
|
||||||
|
*
|
||||||
|
* Model version : 1.1
|
||||||
|
* Simulink Coder version : 9.7 (R2022a) 13-Nov-2021
|
||||||
|
* C++ source code generated on : Thu Mar 26 17:54:04 2026
|
||||||
|
*
|
||||||
|
* Target selection: grt.tlc
|
||||||
|
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
||||||
|
* Embedded hardware selection: Intel->x86-64 (Windows64)
|
||||||
|
* Code generation objectives: Unspecified
|
||||||
|
* Validation result: Not run
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef RTW_HEADER_rtGetInf_h_
|
||||||
|
#define RTW_HEADER_rtGetInf_h_
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
#include "tmwtypes.h"
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern real_T rtGetInf(void);
|
||||||
|
extern real32_T rtGetInfF(void);
|
||||||
|
extern real_T rtGetMinusInf(void);
|
||||||
|
extern real32_T rtGetMinusInfF(void);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
#endif /* RTW_HEADER_rtGetInf_h_ */
|
||||||
120
ks/Models/FP56/Model_grt_rtw/rtGetNaN.cpp
Executable file
120
ks/Models/FP56/Model_grt_rtw/rtGetNaN.cpp
Executable file
@@ -0,0 +1,120 @@
|
|||||||
|
/*
|
||||||
|
* rtGetNaN.cpp
|
||||||
|
*
|
||||||
|
* Code generation for model "Model".
|
||||||
|
*
|
||||||
|
* Model version : 1.2
|
||||||
|
* Simulink Coder version : 9.7 (R2022a) 13-Nov-2021
|
||||||
|
* C++ source code generated on : Sat Mar 28 11:28:04 2026
|
||||||
|
*
|
||||||
|
* Target selection: grt.tlc
|
||||||
|
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
||||||
|
* Embedded hardware selection: Intel->x86-64 (Windows64)
|
||||||
|
* Code generation objectives: Unspecified
|
||||||
|
* Validation result: Not run
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "rtwtypes.h"
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
|
#include "rtGetNaN.h"
|
||||||
|
|
||||||
|
}
|
||||||
|
#include <stddef.h>
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
|
#include "rt_nonfinite.h"
|
||||||
|
|
||||||
|
}
|
||||||
|
#define NumBitsPerChar 8U
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
/*
|
||||||
|
* Initialize rtNaN needed by the generated code.
|
||||||
|
* NaN is initialized as non-signaling. Assumes IEEE.
|
||||||
|
*/
|
||||||
|
real_T rtGetNaN(void)
|
||||||
|
{
|
||||||
|
size_t bitsPerReal{ sizeof(real_T) * (NumBitsPerChar) };
|
||||||
|
|
||||||
|
real_T nan{ 0.0 };
|
||||||
|
|
||||||
|
if (bitsPerReal == 32U) {
|
||||||
|
nan = rtGetNaNF();
|
||||||
|
} else {
|
||||||
|
uint16_T one = 1U;
|
||||||
|
enum {
|
||||||
|
LittleEndian,
|
||||||
|
BigEndian
|
||||||
|
} machByteOrder
|
||||||
|
{
|
||||||
|
(*((uint8_T *) &one) == 1U) ? LittleEndian : BigEndian
|
||||||
|
};
|
||||||
|
switch (machByteOrder) {
|
||||||
|
case LittleEndian:
|
||||||
|
{
|
||||||
|
union {
|
||||||
|
LittleEndianIEEEDouble bitVal;
|
||||||
|
real_T fltVal;
|
||||||
|
} tmpVal;
|
||||||
|
|
||||||
|
tmpVal.bitVal.words.wordH = 0xFFF80000U;
|
||||||
|
tmpVal.bitVal.words.wordL = 0x00000000U;
|
||||||
|
nan = tmpVal.fltVal;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case BigEndian:
|
||||||
|
{
|
||||||
|
union {
|
||||||
|
BigEndianIEEEDouble bitVal;
|
||||||
|
real_T fltVal;
|
||||||
|
} tmpVal;
|
||||||
|
|
||||||
|
tmpVal.bitVal.words.wordH = 0x7FFFFFFFU;
|
||||||
|
tmpVal.bitVal.words.wordL = 0xFFFFFFFFU;
|
||||||
|
nan = tmpVal.fltVal;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nan;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initialize rtNaNF needed by the generated code.
|
||||||
|
* NaN is initialized as non-signaling. Assumes IEEE.
|
||||||
|
*/
|
||||||
|
real32_T rtGetNaNF(void)
|
||||||
|
{
|
||||||
|
IEEESingle nanF{ { 0.0F } };
|
||||||
|
|
||||||
|
uint16_T one{ 1U };
|
||||||
|
|
||||||
|
enum {
|
||||||
|
LittleEndian,
|
||||||
|
BigEndian
|
||||||
|
} machByteOrder
|
||||||
|
{
|
||||||
|
(*((uint8_T *) &one) == 1U) ? LittleEndian : BigEndian
|
||||||
|
};
|
||||||
|
switch (machByteOrder) {
|
||||||
|
case LittleEndian:
|
||||||
|
{
|
||||||
|
nanF.wordL.wordLuint = 0xFFC00000U;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case BigEndian:
|
||||||
|
{
|
||||||
|
nanF.wordL.wordLuint = 0x7FFFFFFFU;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nanF.wordL.wordLreal;
|
||||||
|
}
|
||||||
|
}
|
||||||
34
ks/Models/FP56/Model_grt_rtw/rtGetNaN.h
Executable file
34
ks/Models/FP56/Model_grt_rtw/rtGetNaN.h
Executable file
@@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
* rtGetNaN.h
|
||||||
|
*
|
||||||
|
* Code generation for model "Model".
|
||||||
|
*
|
||||||
|
* Model version : 1.1
|
||||||
|
* Simulink Coder version : 9.7 (R2022a) 13-Nov-2021
|
||||||
|
* C++ source code generated on : Thu Mar 26 17:54:04 2026
|
||||||
|
*
|
||||||
|
* Target selection: grt.tlc
|
||||||
|
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
||||||
|
* Embedded hardware selection: Intel->x86-64 (Windows64)
|
||||||
|
* Code generation objectives: Unspecified
|
||||||
|
* Validation result: Not run
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef RTW_HEADER_rtGetNaN_h_
|
||||||
|
#define RTW_HEADER_rtGetNaN_h_
|
||||||
|
|
||||||
|
#include "tmwtypes.h"
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern real_T rtGetNaN(void);
|
||||||
|
extern real32_T rtGetNaNF(void);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
#endif /* RTW_HEADER_rtGetNaN_h_ */
|
||||||
0
ks/Models/FP56/Model_grt_rtw/rt_logging.h
Executable file
0
ks/Models/FP56/Model_grt_rtw/rt_logging.h
Executable file
109
ks/Models/FP56/Model_grt_rtw/rt_nonfinite.cpp
Executable file
109
ks/Models/FP56/Model_grt_rtw/rt_nonfinite.cpp
Executable file
@@ -0,0 +1,109 @@
|
|||||||
|
/*
|
||||||
|
* rt_nonfinite.cpp
|
||||||
|
*
|
||||||
|
* Code generation for model "Model".
|
||||||
|
*
|
||||||
|
* Model version : 1.2
|
||||||
|
* Simulink Coder version : 9.7 (R2022a) 13-Nov-2021
|
||||||
|
* C++ source code generated on : Sat Mar 28 11:28:04 2026
|
||||||
|
*
|
||||||
|
* Target selection: grt.tlc
|
||||||
|
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
||||||
|
* Embedded hardware selection: Intel->x86-64 (Windows64)
|
||||||
|
* Code generation objectives: Unspecified
|
||||||
|
* Validation result: Not run
|
||||||
|
*/
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
|
#include "rtGetNaN.h"
|
||||||
|
|
||||||
|
}
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
|
|
||||||
|
#include "rtGetInf.h"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#include <stddef.h>
|
||||||
|
#include "rtwtypes.h"
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
|
#include "rt_nonfinite.h"
|
||||||
|
|
||||||
|
}
|
||||||
|
#define NumBitsPerChar 8U
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
real_T rtInf;
|
||||||
|
real_T rtMinusInf;
|
||||||
|
real_T rtNaN;
|
||||||
|
real32_T rtInfF;
|
||||||
|
real32_T rtMinusInfF;
|
||||||
|
real32_T rtNaNF;
|
||||||
|
}
|
||||||
|
extern "C"
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Initialize the rtInf, rtMinusInf, and rtNaN needed by the
|
||||||
|
* generated code. NaN is initialized as non-signaling. Assumes IEEE.
|
||||||
|
*/
|
||||||
|
void rt_InitInfAndNaN(size_t realSize)
|
||||||
|
{
|
||||||
|
(void) (realSize);
|
||||||
|
rtNaN = rtGetNaN();
|
||||||
|
rtNaNF = rtGetNaNF();
|
||||||
|
rtInf = rtGetInf();
|
||||||
|
rtInfF = rtGetInfF();
|
||||||
|
rtMinusInf = rtGetMinusInf();
|
||||||
|
rtMinusInfF = rtGetMinusInfF();
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Test if value is infinite */
|
||||||
|
boolean_T rtIsInf(real_T value)
|
||||||
|
{
|
||||||
|
return (boolean_T)((value==rtInf || value==rtMinusInf) ? 1U : 0U);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Test if single-precision value is infinite */
|
||||||
|
boolean_T rtIsInfF(real32_T value)
|
||||||
|
{
|
||||||
|
return (boolean_T)(((value)==rtInfF || (value)==rtMinusInfF) ? 1U : 0U);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Test if value is not a number */
|
||||||
|
boolean_T rtIsNaN(real_T value)
|
||||||
|
{
|
||||||
|
boolean_T result{ (boolean_T) 0 };
|
||||||
|
|
||||||
|
size_t bitsPerReal{ sizeof(real_T) * (NumBitsPerChar) };
|
||||||
|
|
||||||
|
if (bitsPerReal == 32U) {
|
||||||
|
result = rtIsNaNF((real32_T)value);
|
||||||
|
} else {
|
||||||
|
union {
|
||||||
|
LittleEndianIEEEDouble bitVal;
|
||||||
|
real_T fltVal;
|
||||||
|
} tmpVal;
|
||||||
|
|
||||||
|
tmpVal.fltVal = value;
|
||||||
|
result = (boolean_T)((tmpVal.bitVal.words.wordH & 0x7FF00000) ==
|
||||||
|
0x7FF00000 &&
|
||||||
|
( (tmpVal.bitVal.words.wordH & 0x000FFFFF) != 0 ||
|
||||||
|
(tmpVal.bitVal.words.wordL != 0) ));
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Test if single-precision value is not a number */
|
||||||
|
boolean_T rtIsNaNF(real32_T value)
|
||||||
|
{
|
||||||
|
IEEESingle tmp;
|
||||||
|
tmp.wordL.wordLreal = value;
|
||||||
|
return (boolean_T)( (tmp.wordL.wordLuint & 0x7F800000) == 0x7F800000 &&
|
||||||
|
(tmp.wordL.wordLuint & 0x007FFFFF) != 0 );
|
||||||
|
}
|
||||||
|
}
|
||||||
64
ks/Models/FP56/Model_grt_rtw/rt_nonfinite.h
Executable file
64
ks/Models/FP56/Model_grt_rtw/rt_nonfinite.h
Executable file
@@ -0,0 +1,64 @@
|
|||||||
|
/*
|
||||||
|
* rt_nonfinite.h
|
||||||
|
*
|
||||||
|
* Code generation for model "Model".
|
||||||
|
*
|
||||||
|
* Model version : 1.1
|
||||||
|
* Simulink Coder version : 9.7 (R2022a) 13-Nov-2021
|
||||||
|
* C++ source code generated on : Thu Mar 26 17:54:04 2026
|
||||||
|
*
|
||||||
|
* Target selection: grt.tlc
|
||||||
|
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
||||||
|
* Embedded hardware selection: Intel->x86-64 (Windows64)
|
||||||
|
* Code generation objectives: Unspecified
|
||||||
|
* Validation result: Not run
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef RTW_HEADER_rt_nonfinite_h_
|
||||||
|
#define RTW_HEADER_rt_nonfinite_h_
|
||||||
|
#include <stddef.h>
|
||||||
|
#include "tmwtypes.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern real_T rtInf;
|
||||||
|
extern real_T rtMinusInf;
|
||||||
|
extern real_T rtNaN;
|
||||||
|
extern real32_T rtInfF;
|
||||||
|
extern real32_T rtMinusInfF;
|
||||||
|
extern real32_T rtNaNF;
|
||||||
|
extern void rt_InitInfAndNaN(size_t realSize);
|
||||||
|
extern boolean_T rtIsInf(real_T value);
|
||||||
|
extern boolean_T rtIsInfF(real32_T value);
|
||||||
|
extern boolean_T rtIsNaN(real_T value);
|
||||||
|
extern boolean_T rtIsNaNF(real32_T value);
|
||||||
|
struct BigEndianIEEEDouble {
|
||||||
|
struct {
|
||||||
|
uint32_T wordH;
|
||||||
|
uint32_T wordL;
|
||||||
|
} words;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct LittleEndianIEEEDouble {
|
||||||
|
struct {
|
||||||
|
uint32_T wordL;
|
||||||
|
uint32_T wordH;
|
||||||
|
} words;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct IEEESingle {
|
||||||
|
union {
|
||||||
|
real32_T wordLreal;
|
||||||
|
uint32_T wordLuint;
|
||||||
|
} wordL;
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
#endif /* RTW_HEADER_rt_nonfinite_h_ */
|
||||||
21
ks/Models/FP56/Model_grt_rtw/rtmodel.h
Executable file
21
ks/Models/FP56/Model_grt_rtw/rtmodel.h
Executable file
@@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
* rtmodel.h:
|
||||||
|
*
|
||||||
|
* Code generation for model "Model".
|
||||||
|
*
|
||||||
|
* Model version : 1.1
|
||||||
|
* Simulink Coder version : 9.7 (R2022a) 13-Nov-2021
|
||||||
|
* C++ source code generated on : Thu Mar 26 17:54:04 2026
|
||||||
|
*
|
||||||
|
* Target selection: grt.tlc
|
||||||
|
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
||||||
|
* Embedded hardware selection: Intel->x86-64 (Windows64)
|
||||||
|
* Code generation objectives: Unspecified
|
||||||
|
* Validation result: Not run
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef RTW_HEADER_rtmodel_h_
|
||||||
|
#define RTW_HEADER_rtmodel_h_
|
||||||
|
#include "Model.h"
|
||||||
|
#define GRTINTERFACE 0
|
||||||
|
#endif /* RTW_HEADER_rtmodel_h_ */
|
||||||
0
ks/Models/FP56/Model_grt_rtw/rtw_continuous.h
Executable file
0
ks/Models/FP56/Model_grt_rtw/rtw_continuous.h
Executable file
4
ks/Models/FP56/Model_grt_rtw/rtw_proj.tmw
Executable file
4
ks/Models/FP56/Model_grt_rtw/rtw_proj.tmw
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
Simulink Coder project for Model using . MATLAB root = C:\Program Files\MATLAB\R2022a. SimStruct date: 13-Nov-2021 07:40:36
|
||||||
|
This file is generated by Simulink Coder for use by the make utility
|
||||||
|
to determine when to rebuild objects when the name of the current Simulink Coder project changes.
|
||||||
|
The rtwinfomat located at: ..\slprj\grt\Model\tmwinternal\binfo.mat
|
||||||
0
ks/Models/FP56/Model_grt_rtw/rtw_solver.h
Executable file
0
ks/Models/FP56/Model_grt_rtw/rtw_solver.h
Executable file
37
ks/Models/FP56/Model_grt_rtw/rtwtypes.h
Executable file
37
ks/Models/FP56/Model_grt_rtw/rtwtypes.h
Executable file
@@ -0,0 +1,37 @@
|
|||||||
|
/*
|
||||||
|
* rtwtypes.h
|
||||||
|
*
|
||||||
|
* Code generation for model "Model".
|
||||||
|
*
|
||||||
|
* Model version : 1.1
|
||||||
|
* Simulink Coder version : 9.7 (R2022a) 13-Nov-2021
|
||||||
|
* C++ source code generated on : Thu Mar 26 17:54:04 2026
|
||||||
|
*
|
||||||
|
* Target selection: grt.tlc
|
||||||
|
* Note: GRT includes extra infrastructure and instrumentation for prototyping
|
||||||
|
* Embedded hardware selection: Intel->x86-64 (Windows64)
|
||||||
|
* Code generation objectives: Unspecified
|
||||||
|
* Validation result: Not run
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef RTWTYPES_H
|
||||||
|
#define RTWTYPES_H
|
||||||
|
#ifndef POINTER_T
|
||||||
|
#define POINTER_T
|
||||||
|
|
||||||
|
|
||||||
|
typedef void * pointer_T;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Logical type definitions */
|
||||||
|
#if (!defined(__cplusplus))
|
||||||
|
#ifndef false
|
||||||
|
#define false (0U)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef true
|
||||||
|
#define true (1U)
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif /* RTWTYPES_H */
|
||||||
BIN
ks/Models/FP56/Model_grt_rtw/rtwtypeschksum.mat
Executable file
BIN
ks/Models/FP56/Model_grt_rtw/rtwtypeschksum.mat
Executable file
Binary file not shown.
2
ks/Models/FP56/Model_grt_rtw/setup_msvc.bat
Executable file
2
ks/Models/FP56/Model_grt_rtw/setup_msvc.bat
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
set "VSCMD_START_DIR=%CD%"
|
||||||
|
CALL "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\VCVARSALL.BAT " amd64
|
||||||
6
ks/Models/FP56/Model_grt_rtw/tmwinternal/simulink_cache.xml
Executable file
6
ks/Models/FP56/Model_grt_rtw/tmwinternal/simulink_cache.xml
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<MF0 version="1.1" packageUris="http://schema.mathworks.com/mf0/SlCache/19700101">
|
||||||
|
<slcache.FileAttributes type="slcache.FileAttributes" uuid="4627df2f-e397-46c6-ada1-b8556b8aa2bb">
|
||||||
|
<checksum>NTDKrwFlC2KuvSUsd+ruOI8Dyv3nMQrYVV99I0a14oaIUdnclSWEQvWIPl0hwuNNm1YfQasnRGmWFrGc9HOJzA==</checksum>
|
||||||
|
</slcache.FileAttributes>
|
||||||
|
</MF0>
|
||||||
888
ks/Models/FP56/Model_grt_rtw/tmwtypes.h
Executable file
888
ks/Models/FP56/Model_grt_rtw/tmwtypes.h
Executable file
@@ -0,0 +1,888 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 1984-2018 The MathWorks, Inc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
# pragma once
|
||||||
|
#endif
|
||||||
|
#if defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 3))
|
||||||
|
# pragma once
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef tmwtypes_h
|
||||||
|
#define tmwtypes_h
|
||||||
|
|
||||||
|
#ifndef __TMWTYPES__
|
||||||
|
#define __TMWTYPES__
|
||||||
|
/*
|
||||||
|
* File : tmwtypes.h
|
||||||
|
* Abstract:
|
||||||
|
* Data types for use with MATLAB/SIMULINK and the Real-Time Workshop.
|
||||||
|
*
|
||||||
|
* When compiling stand-alone model code, data types can be overridden
|
||||||
|
* via compiler switches.
|
||||||
|
*
|
||||||
|
* Define NO_FLOATS to eliminate reference to real_T, etc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef MW_LIBTOOLING
|
||||||
|
#include "mwstdint.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
|
/* __STDC_VERSION__ version check below means "check for a C99 compiler".
|
||||||
|
|
||||||
|
Visual Studio (checked on versions 2015 and 2017) does
|
||||||
|
not define __STDC_VERSION__, however it has stdbool.h available,
|
||||||
|
thus a separate check for _MSC_VER below.
|
||||||
|
*/
|
||||||
|
#if defined(__APPLE_CC__) \
|
||||||
|
|| (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) \
|
||||||
|
|| (defined(_MSC_VER) && (_MSC_VER >= 1900))
|
||||||
|
#ifndef tmwtypes_do_not_include_stdbool
|
||||||
|
#include <stdbool.h>
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define LOGICAL_IS_A_TYPE
|
||||||
|
#define SPARSE_GENERALIZATION
|
||||||
|
|
||||||
|
#ifdef NO_FLOATS
|
||||||
|
# define double double_not_allowed
|
||||||
|
# define float float_not_allowed
|
||||||
|
#endif /*NO_FLOATS*/
|
||||||
|
|
||||||
|
#ifndef NO_FLOATS
|
||||||
|
|
||||||
|
#ifndef __MWERKS__
|
||||||
|
# ifdef __STDC__
|
||||||
|
# include <float.h>
|
||||||
|
# else
|
||||||
|
# ifndef FLT_MANT_DIG
|
||||||
|
# define FLT_MANT_DIG 24
|
||||||
|
# endif
|
||||||
|
# ifndef DBL_MANT_DIG
|
||||||
|
# define DBL_MANT_DIG 53
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /*NO_FLOATS*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The following data types cannot be overridden when building MEX files.
|
||||||
|
*/
|
||||||
|
#ifdef MATLAB_MEX_FILE
|
||||||
|
# undef CHARACTER_T
|
||||||
|
# undef INTEGER_T
|
||||||
|
# undef BOOLEAN_T
|
||||||
|
# undef REAL_T
|
||||||
|
# undef TIME_T
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The uchar_T, ushort_T and ulong_T types are needed for compilers which do
|
||||||
|
* not allow defines to be specified, at the command line, with spaces in them.
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef unsigned char uchar_T;
|
||||||
|
typedef unsigned short ushort_T;
|
||||||
|
typedef unsigned long ulong_T;
|
||||||
|
|
||||||
|
#if (defined(_MSC_VER) && _MSC_VER >= 1500) \
|
||||||
|
|| defined(__x86_64__) || defined(__LP64__) \
|
||||||
|
|| defined(__LCC64__)
|
||||||
|
|
||||||
|
typedef unsigned long long ulonglong_T;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*=======================================================================*
|
||||||
|
* Fixed width word size data types: *
|
||||||
|
* int8_T, int16_T, int32_T - signed 8, 16, or 32 bit integers *
|
||||||
|
* uint8_T, uint16_T, uint32_T - unsigned 8, 16, or 32 bit integers *
|
||||||
|
* real32_T, real64_T - 32 and 64 bit floating point numbers *
|
||||||
|
*=======================================================================*/
|
||||||
|
|
||||||
|
/* When used with Real Time Workshop generated code, this
|
||||||
|
* header file can be used with a variety of compilers.
|
||||||
|
*
|
||||||
|
* The compiler could be for an 8 bit embedded processor that
|
||||||
|
* only had 8 bits per integer and 16 bits per long.
|
||||||
|
* In that example, a 32 bit integer size is not even available.
|
||||||
|
* This header file should be robust to that.
|
||||||
|
*
|
||||||
|
* For the case of an 8 bit processor, the preprocessor
|
||||||
|
* may be limited to 16 bit math like its target. That limitation
|
||||||
|
* would mean that 32 bit comparisons can't be done accurately.
|
||||||
|
* To increase robustness to this, comparisons are done against
|
||||||
|
* smaller values first. An inaccurate 32 bit comparison isn't
|
||||||
|
* attempted if the 16 bit comparison has already succeeded.
|
||||||
|
*
|
||||||
|
* Limitations on preprocessor math can also be stricter than
|
||||||
|
* for the target. There are known cases where a compiler
|
||||||
|
* targeting processors with 64 bit longs can't do accurate
|
||||||
|
* preprocessor comparisons on more than 32 bits.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Determine the number of bits for int, long, short, and char.
|
||||||
|
* If one fails to be determined, set the number of bits to -1
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef TMW_BITS_PER_INT
|
||||||
|
# if INT_MAX == 0x7FL
|
||||||
|
# define TMW_BITS_PER_INT 8
|
||||||
|
# elif INT_MAX == 0x7FFFL
|
||||||
|
# define TMW_BITS_PER_INT 16
|
||||||
|
# elif INT_MAX == 0x7FFFFFFFL
|
||||||
|
# define TMW_BITS_PER_INT 32
|
||||||
|
# else
|
||||||
|
# define TMW_BITS_PER_INT -1
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TMW_BITS_PER_LONG
|
||||||
|
# if LONG_MAX == 0x7FL
|
||||||
|
# define TMW_BITS_PER_LONG 8
|
||||||
|
# elif LONG_MAX == 0x7FFFL
|
||||||
|
# define TMW_BITS_PER_LONG 16
|
||||||
|
# elif LONG_MAX == 0x7FFFFFFFL
|
||||||
|
# define TMW_BITS_PER_LONG 32
|
||||||
|
# else
|
||||||
|
# define TMW_BITS_PER_LONG -1
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TMW_BITS_PER_SHRT
|
||||||
|
# if SHRT_MAX == 0x7FL
|
||||||
|
# define TMW_BITS_PER_SHRT 8
|
||||||
|
# elif SHRT_MAX == 0x7FFFL
|
||||||
|
# define TMW_BITS_PER_SHRT 16
|
||||||
|
# elif SHRT_MAX == 0x7FFFFFFFL
|
||||||
|
# define TMW_BITS_PER_SHRT 32
|
||||||
|
# else
|
||||||
|
# define TMW_BITS_PER_SHRT -1
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TMW_BITS_PER_SCHAR
|
||||||
|
# if SCHAR_MAX == 0x7FL
|
||||||
|
# define TMW_BITS_PER_SCHAR 8
|
||||||
|
# elif SCHAR_MAX == 0x7FFFL
|
||||||
|
# define TMW_BITS_PER_SCHAR 16
|
||||||
|
# elif SCHAR_MAX == 0x7FFFFFFFL
|
||||||
|
# define TMW_BITS_PER_SCHAR 32
|
||||||
|
# else
|
||||||
|
# define TMW_BITS_PER_SCHAR -1
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TMW_CHAR_SIGNED
|
||||||
|
# if SCHAR_MAX == CHAR_MAX
|
||||||
|
# define TMW_CHAR_SIGNED 1
|
||||||
|
# else
|
||||||
|
# define TMW_CHAR_SIGNED 0
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* It is common for one or more of the integer types
|
||||||
|
* to be the same size. For example, on many embedded
|
||||||
|
* processors, both shorts and ints are 16 bits. On
|
||||||
|
* processors used for workstations, it is quite common
|
||||||
|
* for both int and long to be 32 bits.
|
||||||
|
* When there is more than one choice for typdef'ing
|
||||||
|
* a portable type like int16_T or uint32_T, in
|
||||||
|
* concept, it should not matter which choice is made.
|
||||||
|
* However, some style guides and some code checking
|
||||||
|
* tools do identify and complain about seemingly
|
||||||
|
* irrelevant differences. For example, a code
|
||||||
|
* checking tool may complain about an implicit
|
||||||
|
* conversion from int to short even though both
|
||||||
|
* are 16 bits. To reduce these types of
|
||||||
|
* complaints, it is best to make int the
|
||||||
|
* preferred choice when more than one is available.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef INT8_T
|
||||||
|
# if defined(MW_LIBTOOLING)
|
||||||
|
# define INT8_T int8_t
|
||||||
|
# elif TMW_BITS_PER_INT == 8
|
||||||
|
# define INT8_T int
|
||||||
|
# elif TMW_BITS_PER_LONG == 8
|
||||||
|
# define INT8_T long
|
||||||
|
# elif TMW_BITS_PER_SCHAR == 8
|
||||||
|
# define INT8_T signed char
|
||||||
|
# elif TMW_BITS_PER_SHRT == 8
|
||||||
|
# define INT8_T short
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef INT8_T
|
||||||
|
typedef INT8_T int8_T;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef UINT8_T
|
||||||
|
# if defined(MW_LIBTOOLING)
|
||||||
|
# define UINT8_T uint8_t
|
||||||
|
# elif TMW_BITS_PER_INT == 8
|
||||||
|
# define UINT8_T unsigned int
|
||||||
|
# elif TMW_BITS_PER_LONG == 8
|
||||||
|
# define UINT8_T unsigned long
|
||||||
|
# elif TMW_BITS_PER_SCHAR == 8
|
||||||
|
# define UINT8_T unsigned char
|
||||||
|
# elif TMW_BITS_PER_SHRT == 8
|
||||||
|
# define UINT8_T unsigned short
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef UINT8_T
|
||||||
|
typedef UINT8_T uint8_T;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef INT16_T
|
||||||
|
# if defined(MW_LIBTOOLING)
|
||||||
|
# define INT16_T int16_t
|
||||||
|
# elif TMW_BITS_PER_INT == 16
|
||||||
|
# define INT16_T int
|
||||||
|
# elif TMW_BITS_PER_LONG == 16
|
||||||
|
# define INT16_T long
|
||||||
|
# elif TMW_BITS_PER_SCHAR == 16
|
||||||
|
# define INT16_T signed char
|
||||||
|
# elif TMW_BITS_PER_SHRT == 16
|
||||||
|
# define INT16_T short
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef INT16_T
|
||||||
|
typedef INT16_T int16_T;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef UINT16_T
|
||||||
|
# if defined(MW_LIBTOOLING)
|
||||||
|
# define UINT16_T uint16_t
|
||||||
|
# elif TMW_BITS_PER_INT == 16
|
||||||
|
# define UINT16_T unsigned int
|
||||||
|
# elif TMW_BITS_PER_LONG == 16
|
||||||
|
# define UINT16_T unsigned long
|
||||||
|
# elif TMW_BITS_PER_SCHAR == 16
|
||||||
|
# define UINT16_T unsigned char
|
||||||
|
# elif TMW_BITS_PER_SHRT == 16
|
||||||
|
# define UINT16_T unsigned short
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef UINT16_T
|
||||||
|
typedef UINT16_T uint16_T;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef INT32_T
|
||||||
|
# if defined(MW_LIBTOOLING)
|
||||||
|
# define INT32_T int32_t
|
||||||
|
# elif TMW_BITS_PER_INT == 32
|
||||||
|
# define INT32_T int
|
||||||
|
# elif TMW_BITS_PER_LONG == 32
|
||||||
|
# define INT32_T long
|
||||||
|
# elif TMW_BITS_PER_SCHAR == 32
|
||||||
|
# define INT32_T signed char
|
||||||
|
# elif TMW_BITS_PER_SHRT == 32
|
||||||
|
# define INT32_T short
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef INT32_T
|
||||||
|
typedef INT32_T int32_T;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef UINT32_T
|
||||||
|
# if defined(MW_LIBTOOLING)
|
||||||
|
# define UINT32_T uint32_t
|
||||||
|
# elif TMW_BITS_PER_INT == 32
|
||||||
|
# define UINT32_T unsigned int
|
||||||
|
# elif TMW_BITS_PER_LONG == 32
|
||||||
|
# define UINT32_T unsigned long
|
||||||
|
# elif TMW_BITS_PER_SCHAR == 32
|
||||||
|
# define UINT32_T unsigned char
|
||||||
|
# elif TMW_BITS_PER_SHRT == 32
|
||||||
|
# define UINT32_T unsigned short
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef UINT32_T
|
||||||
|
typedef UINT32_T uint32_T;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* The following is used to emulate smaller integer types when only
|
||||||
|
* larger types are available. For example, compilers for TI C3x/C4x DSPs
|
||||||
|
* define char and short to be 32 bits, so 8 and 16 bits are not directly
|
||||||
|
* available. This target is commonly used with RTW rapid prototyping.
|
||||||
|
* Other DSPs define char to be 16 bits, so 8 bits is not directly
|
||||||
|
* available.
|
||||||
|
*/
|
||||||
|
#ifndef INT8_T
|
||||||
|
# ifdef INT16_T
|
||||||
|
# define INT8_T INT16_T
|
||||||
|
typedef INT8_T int8_T;
|
||||||
|
# else
|
||||||
|
# ifdef INT32_T
|
||||||
|
# define INT8_T INT32_T
|
||||||
|
typedef INT8_T int8_T;
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef UINT8_T
|
||||||
|
# ifdef UINT16_T
|
||||||
|
# define UINT8_T UINT16_T
|
||||||
|
typedef UINT8_T uint8_T;
|
||||||
|
# else
|
||||||
|
# ifdef UINT32_T
|
||||||
|
# define UINT8_T UINT32_T
|
||||||
|
typedef UINT8_T uint8_T;
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef INT16_T
|
||||||
|
# ifdef INT32_T
|
||||||
|
# define INT16_T INT32_T
|
||||||
|
typedef INT16_T int16_T;
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef UINT16_T
|
||||||
|
# ifdef UINT32_T
|
||||||
|
# define UINT16_T UINT32_T
|
||||||
|
typedef UINT16_T uint16_T;
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef NO_FLOATS
|
||||||
|
|
||||||
|
#ifndef REAL32_T
|
||||||
|
# ifndef __MWERKS__
|
||||||
|
# if FLT_MANT_DIG >= 23
|
||||||
|
# define REAL32_T float
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
# define REAL32_T float
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef REAL32_T
|
||||||
|
typedef REAL32_T real32_T;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef REAL64_T
|
||||||
|
# ifndef __MWERKS__
|
||||||
|
# if DBL_MANT_DIG >= 52
|
||||||
|
# define REAL64_T double
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
# define REAL64_T double
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef REAL64_T
|
||||||
|
typedef REAL64_T real64_T;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* NO_FLOATS*/
|
||||||
|
|
||||||
|
/*=======================================================================*
|
||||||
|
* Fixed width word size data types: *
|
||||||
|
* int64_T - signed 64 bit integers *
|
||||||
|
* uint64_T - unsigned 64 bit integers *
|
||||||
|
*=======================================================================*/
|
||||||
|
|
||||||
|
# if defined(MW_LIBTOOLING)
|
||||||
|
# ifdef INT64_T
|
||||||
|
# undef INT64_T
|
||||||
|
# endif
|
||||||
|
# define INT64_T int64_t
|
||||||
|
# ifdef UINT64_T
|
||||||
|
# undef UINT64_T
|
||||||
|
# endif
|
||||||
|
# define UINT64_T uint64_t
|
||||||
|
# endif
|
||||||
|
#if !defined(INT64_T) || !defined(UINT64_T) || !defined(FMT64)
|
||||||
|
# if defined(__APPLE__) || defined(__clang__)
|
||||||
|
# ifndef INT64_T
|
||||||
|
# define INT64_T long long
|
||||||
|
# endif
|
||||||
|
# ifndef UINT64_T
|
||||||
|
# define UINT64_T unsigned long long
|
||||||
|
# endif
|
||||||
|
# ifndef FMT64
|
||||||
|
# define FMT64 "ll"
|
||||||
|
# endif
|
||||||
|
# if defined(__LP64__) && !defined(INT_TYPE_64_IS_LONG)
|
||||||
|
# define INT_TYPE_64_IS_LONG
|
||||||
|
# endif
|
||||||
|
# elif (defined(__x86_64__) || defined(__LP64__))&& !defined(__MINGW64__)
|
||||||
|
# ifndef INT64_T
|
||||||
|
# define INT64_T long
|
||||||
|
# endif
|
||||||
|
# ifndef UINT64_T
|
||||||
|
# define UINT64_T unsigned long
|
||||||
|
# endif
|
||||||
|
# ifndef FMT64
|
||||||
|
# define FMT64 "l"
|
||||||
|
# endif
|
||||||
|
# if !defined(INT_TYPE_64_IS_LONG)
|
||||||
|
# define INT_TYPE_64_IS_LONG
|
||||||
|
# endif
|
||||||
|
# elif defined(_MSC_VER) || (defined(__BORLANDC__) && __BORLANDC__ >= 0x530) \
|
||||||
|
|| (defined(__WATCOMC__) && __WATCOMC__ >= 1100)
|
||||||
|
# ifndef INT64_T
|
||||||
|
# define INT64_T __int64
|
||||||
|
# endif
|
||||||
|
# ifndef UINT64_T
|
||||||
|
# define UINT64_T unsigned __int64
|
||||||
|
# endif
|
||||||
|
# ifndef FMT64
|
||||||
|
# define FMT64 "I64"
|
||||||
|
# endif
|
||||||
|
# elif defined(__GNUC__) || defined(TMW_ENABLE_INT64) \
|
||||||
|
|| defined(__LCC64__)
|
||||||
|
# ifndef INT64_T
|
||||||
|
# define INT64_T long long
|
||||||
|
# endif
|
||||||
|
# ifndef UINT64_T
|
||||||
|
# define UINT64_T unsigned long long
|
||||||
|
# endif
|
||||||
|
# ifndef FMT64
|
||||||
|
# define FMT64 "ll"
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(INT64_T)
|
||||||
|
# if defined(__GNUC__) && \
|
||||||
|
((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >=9)))
|
||||||
|
__extension__
|
||||||
|
# endif
|
||||||
|
typedef INT64_T int64_T;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(_WIN64) || (defined(__APPLE__) && defined(__LP64__)) \
|
||||||
|
|| defined(__x86_64__) \
|
||||||
|
|| defined(__LP64__)
|
||||||
|
# define INT_TYPE_64_IS_SUPPORTED
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(UINT64_T)
|
||||||
|
# if defined(__GNUC__) && \
|
||||||
|
((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >=9)))
|
||||||
|
__extension__
|
||||||
|
# endif
|
||||||
|
typedef UINT64_T uint64_T;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*===========================================================================*
|
||||||
|
* Format string modifiers for using size_t variables in printf statements. *
|
||||||
|
*===========================================================================*/
|
||||||
|
|
||||||
|
#ifndef FMT_SIZE_T
|
||||||
|
# if (defined( __GNUC__ ) || defined(_STDC_C99))&& !defined(__MINGW64__)
|
||||||
|
# define FMT_SIZE_T "z"
|
||||||
|
# elif defined (__WATCOMC__)
|
||||||
|
# define FMT_SIZE_T "l"
|
||||||
|
# elif defined (_WIN32 )
|
||||||
|
# define FMT_SIZE_T "I"
|
||||||
|
# else
|
||||||
|
# define FMT_SIZE_T "l"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef FMT_PTRDIFF_T
|
||||||
|
# if defined(__APPLE__)
|
||||||
|
# define FMT_PTRDIFF_T "l"
|
||||||
|
# elif defined( __GNUC__ ) || defined(_STDC_C99)
|
||||||
|
# define FMT_PTRDIFF_T "t"
|
||||||
|
# elif defined (__WATCOMC__)
|
||||||
|
# define FMT_PTRDIFF_T "l"
|
||||||
|
# elif defined (_WIN32 )
|
||||||
|
# define FMT_PTRDIFF_T "I"
|
||||||
|
# else
|
||||||
|
# define FMT_PTRDIFF_T "l"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*===========================================================================*
|
||||||
|
* General or logical data types where the word size is not guaranteed. *
|
||||||
|
* real_T - possible settings include real32_T or real64_T *
|
||||||
|
* time_T - possible settings include real32_T or real64_T *
|
||||||
|
* boolean_T *
|
||||||
|
* char_T *
|
||||||
|
* int_T *
|
||||||
|
* uint_T *
|
||||||
|
* byte_T *
|
||||||
|
*===========================================================================*/
|
||||||
|
|
||||||
|
#ifndef NO_FLOATS
|
||||||
|
|
||||||
|
#ifndef REAL_T
|
||||||
|
# ifdef REAL64_T
|
||||||
|
# define REAL_T real64_T
|
||||||
|
# else
|
||||||
|
# ifdef REAL32_T
|
||||||
|
# define REAL_T real32_T
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef REAL_T
|
||||||
|
typedef REAL_T real_T;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef TIME_T
|
||||||
|
# ifdef REAL_T
|
||||||
|
# define TIME_T real_T
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TIME_T
|
||||||
|
typedef TIME_T time_T;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* NO_FLOATS */
|
||||||
|
|
||||||
|
#ifndef BOOLEAN_T
|
||||||
|
# if defined(UINT8_T)
|
||||||
|
# define BOOLEAN_T UINT8_T
|
||||||
|
# else
|
||||||
|
# define BOOLEAN_T unsigned int
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
typedef BOOLEAN_T boolean_T;
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef CHARACTER_T
|
||||||
|
# define CHARACTER_T char
|
||||||
|
#endif
|
||||||
|
typedef CHARACTER_T char_T;
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef INTEGER_T
|
||||||
|
# define INTEGER_T int
|
||||||
|
#endif
|
||||||
|
typedef INTEGER_T int_T;
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef UINTEGER_T
|
||||||
|
# define UINTEGER_T unsigned
|
||||||
|
#endif
|
||||||
|
typedef UINTEGER_T uint_T;
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef BYTE_T
|
||||||
|
# define BYTE_T unsigned char
|
||||||
|
#endif
|
||||||
|
typedef BYTE_T byte_T;
|
||||||
|
|
||||||
|
|
||||||
|
/*===========================================================================*
|
||||||
|
* Define Complex Structures *
|
||||||
|
*===========================================================================*/
|
||||||
|
#ifndef NO_FLOATS
|
||||||
|
|
||||||
|
#ifndef CREAL32_T
|
||||||
|
# ifdef REAL32_T
|
||||||
|
typedef struct {
|
||||||
|
real32_T re, im;
|
||||||
|
} creal32_T;
|
||||||
|
# define CREAL32_T creal32_T
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CREAL64_T
|
||||||
|
# ifdef REAL64_T
|
||||||
|
typedef struct {
|
||||||
|
real64_T re, im;
|
||||||
|
} creal64_T;
|
||||||
|
# define CREAL64_T creal64_T
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CREAL_T
|
||||||
|
# ifdef REAL_T
|
||||||
|
typedef struct {
|
||||||
|
real_T re, im;
|
||||||
|
} creal_T;
|
||||||
|
# define CREAL_T creal_T
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* NO_FLOATS */
|
||||||
|
|
||||||
|
#ifndef CINT8_T
|
||||||
|
# ifdef INT8_T
|
||||||
|
typedef struct {
|
||||||
|
int8_T re, im;
|
||||||
|
} cint8_T;
|
||||||
|
# define CINT8_T cint8_T
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CUINT8_T
|
||||||
|
# ifdef UINT8_T
|
||||||
|
typedef struct {
|
||||||
|
uint8_T re, im;
|
||||||
|
} cuint8_T;
|
||||||
|
# define CUINT8_T cuint8_T
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CINT16_T
|
||||||
|
# ifdef INT16_T
|
||||||
|
typedef struct {
|
||||||
|
int16_T re, im;
|
||||||
|
} cint16_T;
|
||||||
|
# define CINT16_T cint16_T
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CUINT16_T
|
||||||
|
# ifdef UINT16_T
|
||||||
|
typedef struct {
|
||||||
|
uint16_T re, im;
|
||||||
|
} cuint16_T;
|
||||||
|
# define CUINT16_T cuint16_T
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CINT32_T
|
||||||
|
# ifdef INT32_T
|
||||||
|
typedef struct {
|
||||||
|
int32_T re, im;
|
||||||
|
} cint32_T;
|
||||||
|
# define CINT32_T cint32_T
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CUINT32_T
|
||||||
|
# ifdef UINT32_T
|
||||||
|
typedef struct {
|
||||||
|
uint32_T re, im;
|
||||||
|
} cuint32_T;
|
||||||
|
# define CUINT32_T cuint32_T
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CINT64_T
|
||||||
|
# ifdef INT64_T
|
||||||
|
typedef struct {
|
||||||
|
int64_T re, im;
|
||||||
|
} cint64_T;
|
||||||
|
# define CINT64_T cint64_T
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CUINT64_T
|
||||||
|
# ifdef UINT64_T
|
||||||
|
typedef struct {
|
||||||
|
uint64_T re, im;
|
||||||
|
} cuint64_T;
|
||||||
|
# define CUINT64_T cuint64_T
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*=======================================================================*
|
||||||
|
* Min and Max: *
|
||||||
|
* int8_T, int16_T, int32_T - signed 8, 16, or 32 bit integers *
|
||||||
|
* uint8_T, uint16_T, uint32_T - unsigned 8, 16, or 32 bit integers *
|
||||||
|
*=======================================================================*/
|
||||||
|
|
||||||
|
#define MAX_int8_T ((int8_T)(127)) /* 127 */
|
||||||
|
#define MIN_int8_T ((int8_T)(-128)) /* -128 */
|
||||||
|
#define MAX_uint8_T ((uint8_T)(255)) /* 255 */
|
||||||
|
#define MIN_uint8_T ((uint8_T)(0))
|
||||||
|
|
||||||
|
#define MAX_int16_T ((int16_T)(32767)) /* 32767 */
|
||||||
|
#define MIN_int16_T ((int16_T)(-32768)) /* -32768 */
|
||||||
|
#define MAX_uint16_T ((uint16_T)(65535)) /* 65535 */
|
||||||
|
#define MIN_uint16_T ((uint16_T)(0))
|
||||||
|
|
||||||
|
#define MAX_int32_T ((int32_T)(2147483647)) /* 2147483647 */
|
||||||
|
#define MIN_int32_T ((int32_T)(-2147483647-1)) /* -2147483648 */
|
||||||
|
#define MAX_uint32_T ((uint32_T)(0xFFFFFFFFU)) /* 4294967295 */
|
||||||
|
#define MIN_uint32_T ((uint32_T)(0))
|
||||||
|
|
||||||
|
#if defined(_MSC_VER) || (defined(__BORLANDC__) && __BORLANDC__ >= 0x530) \
|
||||||
|
|| (defined(__WATCOMC__) && __WATCOMC__ >= 1100) \
|
||||||
|
|| defined(__LCC64__)
|
||||||
|
# ifdef INT64_T
|
||||||
|
# define MAX_int64_T ((int64_T)(9223372036854775807LL))
|
||||||
|
# define MIN_int64_T ((int64_T)(-9223372036854775807LL-1LL))
|
||||||
|
# endif
|
||||||
|
# ifdef UINT64_T
|
||||||
|
# define MAX_uint64_T ((uint64_T)(0xFFFFFFFFFFFFFFFFULL))
|
||||||
|
# define MIN_uint64_T ((uint64_T)(0))
|
||||||
|
# endif
|
||||||
|
#else
|
||||||
|
# ifdef INT64_T
|
||||||
|
# ifdef INT_TYPE_64_IS_LONG
|
||||||
|
# define MAX_int64_T ((int64_T)(9223372036854775807L))
|
||||||
|
# define MIN_int64_T ((int64_T)(-9223372036854775807L-1L))
|
||||||
|
# else
|
||||||
|
# define MAX_int64_T ((int64_T)(9223372036854775807LL))
|
||||||
|
# define MIN_int64_T ((int64_T)(-9223372036854775807LL-1LL))
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
# ifdef UINT64_T
|
||||||
|
# ifdef INT_TYPE_64_IS_LONG
|
||||||
|
# define MAX_uint64_T ((uint64_T)(0xFFFFFFFFFFFFFFFFUL))
|
||||||
|
# define MIN_uint64_T ((uint64_T)(0))
|
||||||
|
# else
|
||||||
|
# define MAX_uint64_T ((uint64_T)(0xFFFFFFFFFFFFFFFFULL))
|
||||||
|
# define MIN_uint64_T ((uint64_T)(0))
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (defined(_MSC_VER) && !defined(__clang__))
|
||||||
|
|
||||||
|
/* Conversion from unsigned __int64 to double is not implemented in Visual Studio
|
||||||
|
* and results in a compile error, thus the value must first be cast to
|
||||||
|
* signed __int64, and then to double.
|
||||||
|
*
|
||||||
|
* If the 64 bit int value is greater than 2^63-1, which is the signed int64 max,
|
||||||
|
* the macro below provides a workaround for casting a uint64 value to a double
|
||||||
|
* in windows.
|
||||||
|
*/
|
||||||
|
# define uint64_to_double(u) ( ((u) > _I64_MAX) ? \
|
||||||
|
(double)(__int64)((u) - _I64_MAX - 1) + (double)_I64_MAX + 1: \
|
||||||
|
(double)(__int64)(u) )
|
||||||
|
|
||||||
|
/* The following inline function should only be used in the macro double_to_uint64,
|
||||||
|
* as it only handles the specfic range of double between 2^63 and 2^64-1 */
|
||||||
|
__forceinline
|
||||||
|
uint64_T double_to_uint64_helper(double d) {
|
||||||
|
union double_to_uint64_union_type {
|
||||||
|
double dd;
|
||||||
|
uint64_T i64;
|
||||||
|
} di;
|
||||||
|
di.dd = d;
|
||||||
|
return (((di.i64 & 0x000fffffffffffff) | 0x0010000000000000) << 11);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* The largest double value that can be cast to uint64 in windows is the
|
||||||
|
* signed int64 max, which is 2^63-1. The macro below provides
|
||||||
|
* a workaround for casting large double values to uint64 in windows.
|
||||||
|
*/
|
||||||
|
/* The magic number 18446744073709551616.0 is 2^64 */
|
||||||
|
/* The magic number 9223372036854775808.0 is 2^63 */
|
||||||
|
# define double_to_uint64(d) ( ((d) >= 18446744073709551616.0) ? \
|
||||||
|
0xffffffffffffffffULL : \
|
||||||
|
((d) >= 0.0) ? \
|
||||||
|
((d) >= 9223372036854775808.0) ? \
|
||||||
|
double_to_uint64_helper(d) : \
|
||||||
|
(unsigned __int64)(d) : \
|
||||||
|
0ULL )
|
||||||
|
#else
|
||||||
|
# define uint64_to_double(u) ((double)(u))
|
||||||
|
# if defined(__BORLANDC__) || defined(__WATCOMC__) || defined(__TICCSC__)
|
||||||
|
/* double_to_uint64 defined only for MSVC and UNIX */
|
||||||
|
# else
|
||||||
|
# define double_to_uint64(d) ( ((d) >= 18446744073709551616.0) ? \
|
||||||
|
(unsigned long long) 0xffffffffffffffffULL : \
|
||||||
|
((d) >= 0) ? (unsigned long long)(d) : (unsigned long long) 0 )
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(__cplusplus) && !defined(__bool_true_false_are_defined)
|
||||||
|
|
||||||
|
#ifndef _bool_T
|
||||||
|
#define _bool_T
|
||||||
|
|
||||||
|
typedef boolean_T bool;
|
||||||
|
|
||||||
|
#ifndef false
|
||||||
|
#define false (0)
|
||||||
|
#endif
|
||||||
|
#ifndef true
|
||||||
|
#define true (1)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* _bool_T */
|
||||||
|
|
||||||
|
#endif /* !__cplusplus */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This software assumes that the code is being compiled on a target using a
|
||||||
|
* 2's complement representation for signed integer values.
|
||||||
|
*/
|
||||||
|
#if ((SCHAR_MIN + 1) != -SCHAR_MAX)
|
||||||
|
#error "This code must be compiled using a 2's complement representation for signed integer values"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Maximum length of a MATLAB identifier (function/variable/model)
|
||||||
|
* including the null-termination character.
|
||||||
|
*/
|
||||||
|
#define TMW_NAME_LENGTH_MAX 64
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Maximum values for indices and dimensions
|
||||||
|
*/
|
||||||
|
#include <stddef.h>
|
||||||
|
|
||||||
|
#ifdef MX_COMPAT_32
|
||||||
|
typedef int mwSize;
|
||||||
|
typedef int mwIndex;
|
||||||
|
typedef int mwSignedIndex;
|
||||||
|
#else
|
||||||
|
typedef size_t mwSize; /* unsigned pointer-width integer */
|
||||||
|
typedef size_t mwIndex; /* unsigned pointer-width integer */
|
||||||
|
typedef ptrdiff_t mwSignedIndex; /* a signed pointer-width integer */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* for the individual dim */
|
||||||
|
/* If updating SLSize or SLIndex, update defintions in sl_types_def.h
|
||||||
|
as well. */
|
||||||
|
#ifndef SLSIZE_SLINDEX
|
||||||
|
#define SLSIZE_SLINDEX
|
||||||
|
#ifdef INT_TYPE_64_IS_SUPPORTED
|
||||||
|
typedef int64_T SLIndex;
|
||||||
|
typedef int64_T SLSize;
|
||||||
|
#else
|
||||||
|
typedef int SLIndex;
|
||||||
|
typedef int SLSize;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* for the total size */
|
||||||
|
#define SLIndexType size_t
|
||||||
|
#define INVALID_SIZET_VALUE (std::numeric_limits<SLIndexType>::max())
|
||||||
|
#define MAX_VALID_SIZET_VALUE (std::numeric_limits<SLIndexType>::max() -1)
|
||||||
|
|
||||||
|
|
||||||
|
#if (defined(_LP64) || defined(_WIN64)) && !defined(MX_COMPAT_32)
|
||||||
|
/* Currently 2^48 based on hardware limitations */
|
||||||
|
# define MWSIZE_MAX 281474976710655UL
|
||||||
|
# define MWINDEX_MAX 281474976710655UL
|
||||||
|
# define MWSINDEX_MAX 281474976710655L
|
||||||
|
# define MWSINDEX_MIN -281474976710655L
|
||||||
|
#else
|
||||||
|
# define MWSIZE_MAX 2147483647UL
|
||||||
|
# define MWINDEX_MAX 2147483647UL
|
||||||
|
# define MWSINDEX_MAX 2147483647L
|
||||||
|
# define MWSINDEX_MIN -2147483647L
|
||||||
|
#endif
|
||||||
|
#define MWSIZE_MIN 0UL
|
||||||
|
#define MWINDEX_MIN 0UL
|
||||||
|
|
||||||
|
/** UTF-16 character type */
|
||||||
|
|
||||||
|
#if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_HAS_CHAR16_T_LANGUAGE_SUPPORT) && _HAS_CHAR16_T_LANGUAGE_SUPPORT)
|
||||||
|
typedef char16_t CHAR16_T;
|
||||||
|
#define U16_STRING_LITERAL_PREFIX u
|
||||||
|
#elif defined(_MSC_VER)
|
||||||
|
typedef wchar_t CHAR16_T;
|
||||||
|
#define U16_STRING_LITERAL_PREFIX L
|
||||||
|
#else
|
||||||
|
typedef UINT16_T CHAR16_T;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* __TMWTYPES__ */
|
||||||
|
|
||||||
|
#endif /* tmwtypes_h */
|
||||||
BIN
ks/Models/FP56/Modell.slxc
Executable file
BIN
ks/Models/FP56/Modell.slxc
Executable file
Binary file not shown.
BIN
ks/Models/FP56/slprj/grt/Model/tmwinternal/BlockTraceInfo.mat
Executable file
BIN
ks/Models/FP56/slprj/grt/Model/tmwinternal/BlockTraceInfo.mat
Executable file
Binary file not shown.
392
ks/Models/FP56/slprj/grt/Model/tmwinternal/CompileInfo.xml
Executable file
392
ks/Models/FP56/slprj/grt/Model/tmwinternal/CompileInfo.xml
Executable file
@@ -0,0 +1,392 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<MF0 version="1.1" packageUris="http://schema.mathworks.com/mf0/ci/19700101 http://schema.mathworks.com/mf0/sl_modelref_info/R2022a http://schema.mathworks.com/mf0/slexec_mm_sto/R2022a_202107291127">
|
||||||
|
<ModelRefInfoRepo.ModelRefInfoRoot type="ModelRefInfoRepo.ModelRefInfoRoot" uuid="45c12f31-9536-4847-bf5b-d0abfbf0af86">
|
||||||
|
<childModelRefInfo type="ModelRefInfoRepo.ChildModelRefInfo" uuid="7a28a420-e4e1-41ac-9ac5-1491fe1298aa">
|
||||||
|
<modelName>Model</modelName>
|
||||||
|
<modelPath>Model</modelPath>
|
||||||
|
</childModelRefInfo>
|
||||||
|
<dataTransferInfos>AAFJTQAAAAAOAAAAOAAAAAYAAAAIAAAAAgAAAAAAAAAFAAAACAAAAAAAAAABAAAAAQAAAAAAAAAFAAQAAQAAAAEAAAAAAAAA</dataTransferInfos>
|
||||||
|
<globalVariables>AHD</globalVariables>
|
||||||
|
<globalVariables>A_Aussen</globalVariables>
|
||||||
|
<globalVariables>Ai</globalVariables>
|
||||||
|
<globalVariables>CES</globalVariables>
|
||||||
|
<globalVariables>CHD</globalVariables>
|
||||||
|
<globalVariables>CSW</globalVariables>
|
||||||
|
<globalVariables>Cl</globalVariables>
|
||||||
|
<globalVariables>T_amb</globalVariables>
|
||||||
|
<globalVariables>alphaHD</globalVariables>
|
||||||
|
<globalVariables>alphaSW</globalVariables>
|
||||||
|
<globalVariables>alpha_aussen</globalVariables>
|
||||||
|
<globalVariables>mES</globalVariables>
|
||||||
|
<globalVariables>mHD</globalVariables>
|
||||||
|
<globalVariables>mSW</globalVariables>
|
||||||
|
<globalVariables>ml</globalVariables>
|
||||||
|
<hasBwsAccessed>true</hasBwsAccessed>
|
||||||
|
<hasBwsAccessedByAnyModel>true</hasBwsAccessedByAnyModel>
|
||||||
|
<hasContinuousSampleTime>true</hasContinuousSampleTime>
|
||||||
|
<inports type="ModelRefInfoRepo.InportInformation" uuid="9610b7aa-3883-47c0-99f0-d7492a5c23dc">
|
||||||
|
<designMax>Inf</designMax>
|
||||||
|
<designMin>-Inf</designMin>
|
||||||
|
<indexType>2</indexType>
|
||||||
|
<rateInfos type="ModelRefInfoRepo.RateInfo">
|
||||||
|
<compiled>true</compiled>
|
||||||
|
<period>0.0</period>
|
||||||
|
<priority>40</priority>
|
||||||
|
<rateIdx>0</rateIdx>
|
||||||
|
</rateInfos>
|
||||||
|
<resolvedSignalObject></resolvedSignalObject>
|
||||||
|
<executionInterface type="ModelRefInfoRepo.InputExecutionInterface" uuid="d94ccbd2-f715-4fce-9d22-a317b679d47b"/>
|
||||||
|
<sigNameToEMVCEMap type="ModelRefInfoRepo.SigNameEMVCEInfo" uuid="8600bc3b-0eab-406e-b533-e1f292ef49e3"/>
|
||||||
|
</inports>
|
||||||
|
<isBdInSimModeForSimCodegenVariants>false</isBdInSimModeForSimCodegenVariants>
|
||||||
|
<isOrigInportVirtualBus>false</isOrigInportVirtualBus>
|
||||||
|
<isOrigOutportVirtualBus>false</isOrigOutportVirtualBus>
|
||||||
|
<loggingSaveFormat>2</loggingSaveFormat>
|
||||||
|
<massMatrixNzMax>3</massMatrixNzMax>
|
||||||
|
<maxFreqHz>-1.0</maxFreqHz>
|
||||||
|
<numCStateRecs>3</numCStateRecs>
|
||||||
|
<numContinuousStates>3</numContinuousStates>
|
||||||
|
<numDataInputPorts>1</numDataInputPorts>
|
||||||
|
<numLoggableCStateRecs>3</numLoggableCStateRecs>
|
||||||
|
<numLoggableJacobianDStates>0</numLoggableJacobianDStates>
|
||||||
|
<origInportBusType></origInportBusType>
|
||||||
|
<origOutportBusOutputAsStruct>false</origOutportBusOutputAsStruct>
|
||||||
|
<origOutportBusType></origOutportBusType>
|
||||||
|
<outports type="ModelRefInfoRepo.OutportInformation" uuid="77990548-3279-4b80-bf28-f3b876e5667f">
|
||||||
|
<designMax>Inf</designMax>
|
||||||
|
<designMin>-Inf</designMin>
|
||||||
|
<rateInfos type="ModelRefInfoRepo.RateInfo">
|
||||||
|
<compiled>true</compiled>
|
||||||
|
<period>0.0</period>
|
||||||
|
<priority>40</priority>
|
||||||
|
<rateIdx>0</rateIdx>
|
||||||
|
</rateInfos>
|
||||||
|
<resolvedSignalObject></resolvedSignalObject>
|
||||||
|
<executionInterface type="ModelRefInfoRepo.OutputExecutionInterface" uuid="dd67143d-b9c8-4365-9b9a-e731c84cb805"/>
|
||||||
|
<sigNameToEMVCEMap type="ModelRefInfoRepo.SigNameEMVCEInfo" uuid="c6f5bc71-7a3f-4cf9-9b5c-a01c20e4bed1"/>
|
||||||
|
</outports>
|
||||||
|
<runtimeNonFcnCallRateInfos type="ModelRefInfoRepo.RateInfo">
|
||||||
|
<compiled>true</compiled>
|
||||||
|
<period>0.0</period>
|
||||||
|
<priority>40</priority>
|
||||||
|
<rateIdx>0</rateIdx>
|
||||||
|
</runtimeNonFcnCallRateInfos>
|
||||||
|
<runtimeNonFcnCallRateInfos type="ModelRefInfoRepo.RateInfo">
|
||||||
|
<compiled>true</compiled>
|
||||||
|
<isEmpty>true</isEmpty>
|
||||||
|
<nonFcnCallPartitionName>Cont</nonFcnCallPartitionName>
|
||||||
|
<period>.05</period>
|
||||||
|
<priority>40</priority>
|
||||||
|
<rateIdx>1</rateIdx>
|
||||||
|
</runtimeNonFcnCallRateInfos>
|
||||||
|
<sampleTimeInheritanceRule>2</sampleTimeInheritanceRule>
|
||||||
|
<solverStatusFlags>327</solverStatusFlags>
|
||||||
|
<timingAndTaskingRegistry><?xml version="1.0"?>
|
||||||
|
<slexec_sto version="1.1" packageUris="http://schema.mathworks.com/mf0/slexec_mm_sto/R2022a_202107291127">
|
||||||
|
<sto.Registry type="sto.Registry" uuid="bb50d8a1-42f1-4048-8a3a-35f2fd3f30fd">
|
||||||
|
<clocks type="sto.Timer" uuid="f5bed6c5-0a8f-4e1f-8e77-319416212ee8">
|
||||||
|
<computedFundamentalDiscretePeriod>.05</computedFundamentalDiscretePeriod>
|
||||||
|
<resolution>.05</resolution>
|
||||||
|
<clockTickConstraint>PeriodicWithFixedResolution</clockTickConstraint>
|
||||||
|
<rates type="sto.ContinuousRate" uuid="5c1afef0-06f1-4b2e-8657-34fdddc5bbfd">
|
||||||
|
<annotation>Cont</annotation>
|
||||||
|
<description>Continuous</description>
|
||||||
|
<taskId>_task0</taskId>
|
||||||
|
<rateSpec type="sto.RateSpec" uuid="6e6d6848-bde8-444d-9025-4ca60f2637b2"/>
|
||||||
|
</rates>
|
||||||
|
<rates type="sto.ClassicPeriodicDiscreteRate" uuid="6e67d6ff-8d57-46ff-8399-faa23430698f">
|
||||||
|
<annotation>D1</annotation>
|
||||||
|
<colorIndex>2</colorIndex>
|
||||||
|
<description>Discrete 1</description>
|
||||||
|
<rateIdx>1</rateIdx>
|
||||||
|
<taskId>_task0</taskId>
|
||||||
|
<rateSpec type="sto.RateSpec" uuid="dd6e73b8-19a4-4fcb-b01d-50659a0627df">
|
||||||
|
<period>.05</period>
|
||||||
|
<rateType>ClassicPeriodicDiscrete</rateType>
|
||||||
|
</rateSpec>
|
||||||
|
</rates>
|
||||||
|
<timeAdvanceMode>FixedStep</timeAdvanceMode>
|
||||||
|
<baseRate type="sto.ContinuousRate" uuid="3434c387-7d4f-4d79-a40a-fa4605633209">
|
||||||
|
<annotation>Cont</annotation>
|
||||||
|
<description>Continuous</description>
|
||||||
|
<taskId>_task0</taskId>
|
||||||
|
<rateSpec type="sto.RateSpec" uuid="dcb91da4-408d-4026-9c1f-23c122d8a84c"/>
|
||||||
|
</baseRate>
|
||||||
|
</clocks>
|
||||||
|
<clocks type="sto.Event" uuid="5f34f5e6-05b6-4121-b292-403595d8c8f2">
|
||||||
|
<eventType>PARAMETER_CHANGE_EVENT</eventType>
|
||||||
|
<cNum>1</cNum>
|
||||||
|
<clockType>Event</clockType>
|
||||||
|
<identifier>ParameterChangeEvent</identifier>
|
||||||
|
<rates type="sto.ModelWideEventRate" uuid="b7ece639-184b-44d7-a56a-1d9c82e20740">
|
||||||
|
<clockId>ParameterChangeEvent</clockId>
|
||||||
|
<rateIdx>-1</rateIdx>
|
||||||
|
<taskId>ModelWideParameterChangeEvent</taskId>
|
||||||
|
<useForExecution>NotForExecution</useForExecution>
|
||||||
|
<rateSpec type="sto.RateSpec" uuid="9af2c701-dc83-4f74-8585-d32564d9bf43">
|
||||||
|
<period>Inf</period>
|
||||||
|
<rateType>ModelWideParameterChangeEvent</rateType>
|
||||||
|
</rateSpec>
|
||||||
|
</rates>
|
||||||
|
<taskingMode>ExplicitTasking</taskingMode>
|
||||||
|
<timeAdvanceMode>None</timeAdvanceMode>
|
||||||
|
</clocks>
|
||||||
|
<executionSpec>Undetermined</executionSpec>
|
||||||
|
<taskPriorityDirection>HighNumberLast</taskPriorityDirection>
|
||||||
|
<timeAdvanceMode>FixedStep</timeAdvanceMode>
|
||||||
|
<taskRegistry type="sto.TaskRegistry" uuid="b1c3e180-f46a-4eca-8fad-1cbe120beb7e">
|
||||||
|
<rootTaskHierarchyElements type="sto.Task" uuid="95dd5883-45cf-4bb0-8c9c-a47289ba229a">
|
||||||
|
<isExplicit>true</isExplicit>
|
||||||
|
<rates type="sto.ModelWideEventRate" uuid="3bfb8c8e-711b-462d-b7ca-bb130a422cd5">
|
||||||
|
<clockId>ParameterChangeEvent</clockId>
|
||||||
|
<rateIdx>-1</rateIdx>
|
||||||
|
<taskId>ModelWideParameterChangeEvent</taskId>
|
||||||
|
<useForExecution>NotForExecution</useForExecution>
|
||||||
|
<rateSpec type="sto.RateSpec" uuid="94332274-d943-498f-a62c-669258e94020">
|
||||||
|
<period>Inf</period>
|
||||||
|
<rateType>ModelWideParameterChangeEvent</rateType>
|
||||||
|
</rateSpec>
|
||||||
|
</rates>
|
||||||
|
<elementType>Task</elementType>
|
||||||
|
<identifier>ModelWideParameterChangeEvent</identifier>
|
||||||
|
<priority>-1</priority>
|
||||||
|
<schedulingClockId>ParameterChangeEvent</schedulingClockId>
|
||||||
|
</rootTaskHierarchyElements>
|
||||||
|
<rootTaskHierarchyElements type="sto.Task" uuid="ec537706-4286-4fc1-8dc3-144701f6eedc">
|
||||||
|
<isExecutable>true</isExecutable>
|
||||||
|
<orderIndex>1</orderIndex>
|
||||||
|
<rates type="sto.ContinuousRate" uuid="5d949003-959e-40c0-b549-03a769334b03">
|
||||||
|
<annotation>Cont</annotation>
|
||||||
|
<description>Continuous</description>
|
||||||
|
<taskId>_task0</taskId>
|
||||||
|
<rateSpec type="sto.RateSpec" uuid="6120e363-1c84-4b69-a3c7-fa4e6e7c8a43"/>
|
||||||
|
</rates>
|
||||||
|
<rates type="sto.ClassicPeriodicDiscreteRate" uuid="dbaaa966-0a0c-4251-b1ce-2c4a948055f7">
|
||||||
|
<annotation>D1</annotation>
|
||||||
|
<colorIndex>2</colorIndex>
|
||||||
|
<description>Discrete 1</description>
|
||||||
|
<rateIdx>1</rateIdx>
|
||||||
|
<taskId>_task0</taskId>
|
||||||
|
<rateSpec type="sto.RateSpec" uuid="22331311-3e9d-4fb8-9e2d-6c8c46fed61c">
|
||||||
|
<period>.05</period>
|
||||||
|
<rateType>ClassicPeriodicDiscrete</rateType>
|
||||||
|
</rateSpec>
|
||||||
|
</rates>
|
||||||
|
<elementType>Task</elementType>
|
||||||
|
<identifier>_task0</identifier>
|
||||||
|
<priority>40</priority>
|
||||||
|
</rootTaskHierarchyElements>
|
||||||
|
<taskDependencyGraph type="sto.SerializedTaskConnectionList" uuid="2bd29f97-ba78-45a8-94ac-ff435ae73c67">
|
||||||
|
<taskIdentifier>_task0</taskIdentifier>
|
||||||
|
</taskDependencyGraph>
|
||||||
|
<taskDependencyGraph type="sto.SerializedTaskConnectionList" uuid="ce15d9f2-1775-47a8-acec-a91bd12af7b1">
|
||||||
|
<clockIdentifier>ParameterChangeEvent</clockIdentifier>
|
||||||
|
<taskIdentifier>ModelWideParameterChangeEvent</taskIdentifier>
|
||||||
|
</taskDependencyGraph>
|
||||||
|
</taskRegistry>
|
||||||
|
</sto.Registry>
|
||||||
|
</slexec_sto></timingAndTaskingRegistry>
|
||||||
|
<zeroInternalMemoryAtStartupUnchecked>true</zeroInternalMemoryAtStartupUnchecked>
|
||||||
|
<FMUBlockMap type="ModelRefInfoRepo.FMUBlockInfo" uuid="937685d7-feda-43fd-864b-cab65b3f2f82"/>
|
||||||
|
<codeGenInfo type="ModelRefInfoRepo.CodeGenInformation" uuid="f8a55f3d-0963-479d-8b7e-8d9f1e96456e"/>
|
||||||
|
<compiledVariantInfos type="ModelRefInfoRepo.CompiledVariantInfoMap" uuid="196f8dfa-2142-42b7-9006-8aa2ac2f56ca"/>
|
||||||
|
<configSettingsForConsistencyChecks type="ModelRefInfoRepo.ConfigSettingsForConsistencyChecks" uuid="ed9cf819-6cbe-429a-957b-544292522799">
|
||||||
|
<consistentOutportInitialization>true</consistentOutportInitialization>
|
||||||
|
<fixedStepSize>.05</fixedStepSize>
|
||||||
|
<frameDiagnosticSetting>2</frameDiagnosticSetting>
|
||||||
|
<hasHybridSampleTime>true</hasHybridSampleTime>
|
||||||
|
<signalLoggingSaveFormat>2</signalLoggingSaveFormat>
|
||||||
|
<simSIMDOptimization>1</simSIMDOptimization>
|
||||||
|
<solverName>ode3</solverName>
|
||||||
|
<solverType>SOLVER_TYPE_FIXEDSTEP</solverType>
|
||||||
|
<hardwareSettings type="ModelRefInfoRepo.HardwareSettings" uuid="750ca51f-2459-4361-bcaf-cf9717e84503">
|
||||||
|
<prodBitPerChar>8</prodBitPerChar>
|
||||||
|
<prodBitPerDouble>64</prodBitPerDouble>
|
||||||
|
<prodBitPerFloat>32</prodBitPerFloat>
|
||||||
|
<prodBitPerInt>32</prodBitPerInt>
|
||||||
|
<prodBitPerLong>32</prodBitPerLong>
|
||||||
|
<prodBitPerLongLong>64</prodBitPerLongLong>
|
||||||
|
<prodBitPerPointer>64</prodBitPerPointer>
|
||||||
|
<prodBitPerPtrDiffT>64</prodBitPerPtrDiffT>
|
||||||
|
<prodBitPerShort>16</prodBitPerShort>
|
||||||
|
<prodBitPerSizeT>64</prodBitPerSizeT>
|
||||||
|
<prodEndianess>1</prodEndianess>
|
||||||
|
<prodShiftRight>true</prodShiftRight>
|
||||||
|
<prodWordSize>64</prodWordSize>
|
||||||
|
</hardwareSettings>
|
||||||
|
</configSettingsForConsistencyChecks>
|
||||||
|
<controllableInputRatesMap type="ModelRefInfoRepo.VarTsUIDMap" uuid="1aa810bd-1862-4c3c-ab94-147b2a2d0d69"/>
|
||||||
|
<controllableOutputRatesMap type="ModelRefInfoRepo.VarTsUIDMap" uuid="626f6754-7b72-48b1-a6e3-023acaa676e2"/>
|
||||||
|
<dataPortGroup type="ModelRefInfoRepo.DataPortGroup" uuid="f9c9f395-da67-48ca-b2f7-c9c22a926098">
|
||||||
|
<compDataInputPorts>0</compDataInputPorts>
|
||||||
|
<compDataOutputPorts>0</compDataOutputPorts>
|
||||||
|
<dataInputPorts>0</dataInputPorts>
|
||||||
|
<dataOutputPorts>0</dataOutputPorts>
|
||||||
|
</dataPortGroup>
|
||||||
|
<expFcnUnconnectedDataPortGroup type="ModelRefInfoRepo.DataPortGroup" uuid="b1d2f99a-37aa-465b-9336-36399fdfa2c3"/>
|
||||||
|
<interfaceParameterInfo type="ModelRefInfoRepo.InterfaceParameterInfo" uuid="06a6dbcd-2ca2-4410-af48-8580dee72b9b">
|
||||||
|
<globalVariables type="ModelRefInfoRepo.BuiltinParameter" uuid="e733a764-8f74-4d78-bb31-eb4d76727905">
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<isUsed>true</isUsed>
|
||||||
|
<numDimensions>2</numDimensions>
|
||||||
|
<parameterName>AHD</parameterName>
|
||||||
|
</globalVariables>
|
||||||
|
<globalVariables type="ModelRefInfoRepo.BuiltinParameter" uuid="cfbdc02f-1e78-4fb4-a176-f272276d3e0c">
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<isUsed>true</isUsed>
|
||||||
|
<numDimensions>2</numDimensions>
|
||||||
|
<parameterName>A_Aussen</parameterName>
|
||||||
|
</globalVariables>
|
||||||
|
<globalVariables type="ModelRefInfoRepo.BuiltinParameter" uuid="24b808c4-0727-4b18-ad3c-b29960f79a6c">
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<isUsed>true</isUsed>
|
||||||
|
<numDimensions>2</numDimensions>
|
||||||
|
<parameterName>Ai</parameterName>
|
||||||
|
</globalVariables>
|
||||||
|
<globalVariables type="ModelRefInfoRepo.BuiltinParameter" uuid="05f47fbe-7ce8-4bc2-9f6f-f37d6bc67593">
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<isUsed>true</isUsed>
|
||||||
|
<numDimensions>2</numDimensions>
|
||||||
|
<parameterName>CES</parameterName>
|
||||||
|
</globalVariables>
|
||||||
|
<globalVariables type="ModelRefInfoRepo.BuiltinParameter" uuid="f6986762-6e8d-4cdd-b2d6-508778c737a6">
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<isUsed>true</isUsed>
|
||||||
|
<numDimensions>2</numDimensions>
|
||||||
|
<parameterName>CHD</parameterName>
|
||||||
|
</globalVariables>
|
||||||
|
<globalVariables type="ModelRefInfoRepo.BuiltinParameter" uuid="0e4a0f32-46aa-471a-9554-c60eb5c7902b">
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<isUsed>true</isUsed>
|
||||||
|
<numDimensions>2</numDimensions>
|
||||||
|
<parameterName>CSW</parameterName>
|
||||||
|
</globalVariables>
|
||||||
|
<globalVariables type="ModelRefInfoRepo.BuiltinParameter" uuid="8f777ec0-0eab-460e-bd50-160ecca20a34">
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<isUsed>true</isUsed>
|
||||||
|
<numDimensions>2</numDimensions>
|
||||||
|
<parameterName>Cl</parameterName>
|
||||||
|
</globalVariables>
|
||||||
|
<globalVariables type="ModelRefInfoRepo.BuiltinParameter" uuid="4b810750-38bb-4ea6-9998-8902720e8127">
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<isUsed>true</isUsed>
|
||||||
|
<numDimensions>2</numDimensions>
|
||||||
|
<parameterName>T_amb</parameterName>
|
||||||
|
</globalVariables>
|
||||||
|
<globalVariables type="ModelRefInfoRepo.BuiltinParameter" uuid="7f053e15-181c-4b2c-8128-e7f9266d86b4">
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<isUsed>true</isUsed>
|
||||||
|
<numDimensions>2</numDimensions>
|
||||||
|
<parameterName>alphaHD</parameterName>
|
||||||
|
</globalVariables>
|
||||||
|
<globalVariables type="ModelRefInfoRepo.BuiltinParameter" uuid="cf2f4d24-fd2d-4093-a0e3-64023f5e4f7d">
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<isUsed>true</isUsed>
|
||||||
|
<numDimensions>2</numDimensions>
|
||||||
|
<parameterName>alphaSW</parameterName>
|
||||||
|
</globalVariables>
|
||||||
|
<globalVariables type="ModelRefInfoRepo.BuiltinParameter" uuid="1c5f6a88-1284-4c30-a91c-06b84f66beae">
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<isUsed>true</isUsed>
|
||||||
|
<numDimensions>2</numDimensions>
|
||||||
|
<parameterName>alpha_aussen</parameterName>
|
||||||
|
</globalVariables>
|
||||||
|
<globalVariables type="ModelRefInfoRepo.BuiltinParameter" uuid="5c505056-100a-4d0e-a626-9b6592044d4e">
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<isUsed>true</isUsed>
|
||||||
|
<numDimensions>2</numDimensions>
|
||||||
|
<parameterName>mES</parameterName>
|
||||||
|
</globalVariables>
|
||||||
|
<globalVariables type="ModelRefInfoRepo.BuiltinParameter" uuid="225bd6a7-c42e-41c5-aa0d-a101b84b7eba">
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<isUsed>true</isUsed>
|
||||||
|
<numDimensions>2</numDimensions>
|
||||||
|
<parameterName>mHD</parameterName>
|
||||||
|
</globalVariables>
|
||||||
|
<globalVariables type="ModelRefInfoRepo.BuiltinParameter" uuid="91e237c5-c71e-45c5-9cca-a197500d4253">
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<isUsed>true</isUsed>
|
||||||
|
<numDimensions>2</numDimensions>
|
||||||
|
<parameterName>mSW</parameterName>
|
||||||
|
</globalVariables>
|
||||||
|
<globalVariables type="ModelRefInfoRepo.BuiltinParameter" uuid="4d3af21f-e2d5-41b6-ace3-4eae4d8e2370">
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<dimensions>1</dimensions>
|
||||||
|
<isUsed>true</isUsed>
|
||||||
|
<numDimensions>2</numDimensions>
|
||||||
|
<parameterName>ml</parameterName>
|
||||||
|
</globalVariables>
|
||||||
|
</interfaceParameterInfo>
|
||||||
|
<messageInfo type="ModelRefInfoRepo.MessageInformation" uuid="2abcd7d6-d927-4c3d-bb0f-afaae7cd4383"/>
|
||||||
|
<methodInfo type="ModelRefInfoRepo.MethodExistenceInfo" uuid="ad5da10c-5e75-4790-8a4a-76fd4b1eab0e">
|
||||||
|
<hasDerivMethod>true</hasDerivMethod>
|
||||||
|
<hasForcingFunctionMethod>true</hasForcingFunctionMethod>
|
||||||
|
<hasSystemInitializeMethod>true</hasSystemInitializeMethod>
|
||||||
|
<hasSystemResetMethod>true</hasSystemResetMethod>
|
||||||
|
<hasTerminateMethod>true</hasTerminateMethod>
|
||||||
|
<hasUpdateMethod>true</hasUpdateMethod>
|
||||||
|
</methodInfo>
|
||||||
|
<periodicEventPortUnsupportedBlockInfo type="ModelRefInfoRepo.PeriodicEventPortUnsupportedBlockInfo" uuid="b847310c-3295-4ae0-a105-628a891c04a6"/>
|
||||||
|
<portGroupsRequireSameRate type="ModelRefInfoRepo.PortGroupsRequireSameRate" uuid="0e9397aa-4409-438e-a67d-e38a243e3c28">
|
||||||
|
<DSMPortGroups type="ModelRefInfoRepo.NameToPortGroupIdxVectMap" uuid="a5da630d-0401-4482-a7a0-8ab58acc4769"/>
|
||||||
|
<GlobalDSMPortGroups type="ModelRefInfoRepo.NameToPortGroupIdxVectMap" uuid="ff546ced-ce35-4ace-ac9d-73d57ef05a1a"/>
|
||||||
|
<mergedPortGroups type="ModelRefInfoRepo.NameToPortGroupIdxVectMap" uuid="91f942e8-0dfd-49b0-854d-3d026726babd"/>
|
||||||
|
</portGroupsRequireSameRate>
|
||||||
|
<rateBasedMdlGlobalDSMRateSpec type="ModelRefInfoRepo.GlobalDSMRateSpecMap" uuid="c5ae3403-3ec9-4bc8-9a39-5bcf7beec79f"/>
|
||||||
|
<rateSpecOfGlobalDSMAccessedByDescExpFcnMdlMap type="ModelRefInfoRepo.GlobalDSMRateSpecMap" uuid="c9dfff1e-1998-4a29-a6cb-6ce4801cd5ee"/>
|
||||||
|
<rootBlockDiagramInterface type="ci.Model" uuid="b350726c-d0c8-417d-a1df-5a641a0a5585">
|
||||||
|
<p_RootComponentInterface type="ci.ComponentInterface" uuid="fcb80081-c3cc-4410-99cf-556853c0b253">
|
||||||
|
<p_InputPorts type="ci.SignalInterface" uuid="41702897-5035-4d56-93c1-38079b04bf13">
|
||||||
|
<p_ComputedNumericDimensions>1.0</p_ComputedNumericDimensions>
|
||||||
|
<p_ComputedSampleTime>0.0</p_ComputedSampleTime>
|
||||||
|
<p_ComputedSampleTime>0.0</p_ComputedSampleTime>
|
||||||
|
</p_InputPorts>
|
||||||
|
<p_Name>Model</p_Name>
|
||||||
|
<p_OutputPorts type="ci.SignalInterface" uuid="8340ff4b-17e3-4a58-ac3c-84884e920dc8">
|
||||||
|
<p_ComputedNumericDimensions>1.0</p_ComputedNumericDimensions>
|
||||||
|
<p_ComputedSampleTime>0.0</p_ComputedSampleTime>
|
||||||
|
<p_ComputedSampleTime>0.0</p_ComputedSampleTime>
|
||||||
|
</p_OutputPorts>
|
||||||
|
<p_Type>ROOT</p_Type>
|
||||||
|
</p_RootComponentInterface>
|
||||||
|
</rootBlockDiagramInterface>
|
||||||
|
<simulinkFunctions type="ModelRefInfoRepo.SimulinkFunctions" uuid="d73d69b3-0b2c-4e47-8320-d9fa374f3e28">
|
||||||
|
<compSimulinkFunctionCatalog></compSimulinkFunctionCatalog>
|
||||||
|
</simulinkFunctions>
|
||||||
|
<stateWriterToOwnerMap type="ModelRefInfoRepo.StateWriterInfo" uuid="a4ad432d-8842-45b2-a928-4d6fcdc75c87"/>
|
||||||
|
<stoClientDataRegistry type="sto.ClientDataRegistry" uuid="3db2b3c3-0c78-43f0-b2d0-4a901521e148">
|
||||||
|
<dataSets type="sto.ClientClockNamedDataSet" uuid="47d4a727-edea-4e76-9b32-495dc48c71f3">
|
||||||
|
<tag>sltpEvents</tag>
|
||||||
|
</dataSets>
|
||||||
|
<dataSets type="sto.ClientTaskHierarchyElementNamedDataSet" uuid="6c8c1561-136c-4d20-9797-1593e7703ed8">
|
||||||
|
<tag>sltpTaskGroups</tag>
|
||||||
|
</dataSets>
|
||||||
|
<dataSets type="sto.ClientTaskHierarchyElementNamedDataSet" uuid="92c27553-095b-4687-9fd9-4ecb15fdec64">
|
||||||
|
<dSet type="ModelRefInfoRepo.SltpTaskData" uuid="fd134e8e-6d03-40b3-a888-7f4276aedb7c"/>
|
||||||
|
<tSet type="ModelRefInfoRepo.SltpTaskData" uuid="fd134e8e-6d03-40b3-a888-7f4276aedb7c">
|
||||||
|
<dataName>Cont</dataName>
|
||||||
|
<linkedSet type="sto.ClientTaskHierarchyElementNamedDataSet" uuid="92c27553-095b-4687-9fd9-4ecb15fdec64"/>
|
||||||
|
<id type="sto.TaskHierarchyElementId">
|
||||||
|
<id>_task0</id>
|
||||||
|
</id>
|
||||||
|
</tSet>
|
||||||
|
<tag>sltpTasks</tag>
|
||||||
|
</dataSets>
|
||||||
|
</stoClientDataRegistry>
|
||||||
|
<varTsUIDMap type="ModelRefInfoRepo.VarTsUIDMap" uuid="cd8b8956-dac4-405d-a396-6bf3af87fbb7"/>
|
||||||
|
</ModelRefInfoRepo.ModelRefInfoRoot>
|
||||||
|
</MF0>
|
||||||
BIN
ks/Models/FP56/slprj/grt/Model/tmwinternal/binfo.mat
Executable file
BIN
ks/Models/FP56/slprj/grt/Model/tmwinternal/binfo.mat
Executable file
Binary file not shown.
BIN
ks/Models/FP56/slprj/grt/Model/tmwinternal/minfo.mat
Executable file
BIN
ks/Models/FP56/slprj/grt/Model/tmwinternal/minfo.mat
Executable file
Binary file not shown.
BIN
ks/Models/FP56/slprj/grt/_sharedutils/shared_file.dmr
Executable file
BIN
ks/Models/FP56/slprj/grt/_sharedutils/shared_file.dmr
Executable file
Binary file not shown.
Binary file not shown.
BIN
ks/Models/FP56/slprj/sim/varcache/Model/checksumOfCache.mat
Executable file
BIN
ks/Models/FP56/slprj/sim/varcache/Model/checksumOfCache.mat
Executable file
Binary file not shown.
BIN
ks/Models/FP56/slprj/sim/varcache/Model/varInfo.mat
Executable file
BIN
ks/Models/FP56/slprj/sim/varcache/Model/varInfo.mat
Executable file
Binary file not shown.
BIN
ks/Models/FP56/slprj/sim/varcache/Modell/checksumOfCache.mat
Executable file
BIN
ks/Models/FP56/slprj/sim/varcache/Modell/checksumOfCache.mat
Executable file
Binary file not shown.
6
ks/Models/FP56/slprj/sim/varcache/Modell/tmwinternal/simulink_cache.xml
Executable file
6
ks/Models/FP56/slprj/sim/varcache/Modell/tmwinternal/simulink_cache.xml
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<MF0 version="1.1" packageUris="http://schema.mathworks.com/mf0/SlCache/19700101">
|
||||||
|
<slcache.FileAttributes type="slcache.FileAttributes" uuid="7c781643-6a25-4b42-aef3-b3748dd146bc">
|
||||||
|
<checksum>sLonxaz63rcjE+Tfc73PVxZSx3RtBUteMVCh7EdgFqnx/LrVH5YIdBfAMR5tWaUJO0VfY6qRmpBEwBrM1loXHQ==</checksum>
|
||||||
|
</slcache.FileAttributes>
|
||||||
|
</MF0>
|
||||||
BIN
ks/Models/FP56/slprj/sim/varcache/Modell/varInfo.mat
Executable file
BIN
ks/Models/FP56/slprj/sim/varcache/Modell/varInfo.mat
Executable file
Binary file not shown.
2
ks/Models/FP56/slprj/sl_proj.tmw
Executable file
2
ks/Models/FP56/slprj/sl_proj.tmw
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
Simulink Coder project marker file. Please don't change it.
|
||||||
|
slprjVersion: 10.5_091
|
||||||
15
ks/main.cpp
Executable file
15
ks/main.cpp
Executable file
@@ -0,0 +1,15 @@
|
|||||||
|
/*
|
||||||
|
File: main.cpp
|
||||||
|
Description: This is a C++ source file containing implementation code for the 'ks' library component.
|
||||||
|
Rev: 0.1
|
||||||
|
Created: [29.03.26]
|
||||||
|
Author: Uwe Jakobeit
|
||||||
|
Copyright: Binder GmbH TUT
|
||||||
|
Purpose: Just a dummy to start the project structure
|
||||||
|
Notes: [Any relevant details, such as dependencies, usage examples, or known issues.]
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
// Entry point for the lib
|
||||||
|
int main(void)
|
||||||
|
{}
|
||||||
18
localbuild.sh
Executable file
18
localbuild.sh
Executable file
@@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Remove old cmake build contents to start fresh like ci would do
|
||||||
|
rm -r build
|
||||||
|
|
||||||
|
# project configuration
|
||||||
|
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DQt6_DIR=$HOME/Qt/6.10.2/gcc_64/lib/cmake/Qt6
|
||||||
|
#build executable
|
||||||
|
make -j$(nproc) --directory=build
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
echo "------------------------"
|
||||||
|
echo "run with './build/app/app'"
|
||||||
|
echo "------------------------"
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
|
||||||
9
tests/CMakeLists.txt
Executable file
9
tests/CMakeLists.txt
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
find_package(GTest REQUIRED)
|
||||||
|
|
||||||
|
add_executable(tests filter-test.cpp
|
||||||
|
util-test.cpp
|
||||||
|
)
|
||||||
|
target_link_libraries(tests GTest::gtest_main app_lib)
|
||||||
|
|
||||||
|
include(GoogleTest)
|
||||||
|
gtest_discover_tests(tests)
|
||||||
7
tests/CTestTestfile.cmake
Normal file
7
tests/CTestTestfile.cmake
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
# CMake generated Testfile for
|
||||||
|
# Source directory: /home/k4/tmp/bbr-algo/BinderBeispielRegler/tests
|
||||||
|
# Build directory: /home/k4/tmp/bbr-algo/BinderBeispielRegler/tests
|
||||||
|
#
|
||||||
|
# This file includes the relevant testing commands required for
|
||||||
|
# testing this directory and lists subdirectories to be tested as well.
|
||||||
|
include("/home/k4/tmp/bbr-algo/BinderBeispielRegler/tests/tests[1]_include.cmake")
|
||||||
50
tests/cmake_install.cmake
Normal file
50
tests/cmake_install.cmake
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
# Install script for directory: /home/k4/tmp/bbr-algo/BinderBeispielRegler/tests
|
||||||
|
|
||||||
|
# Set the install prefix
|
||||||
|
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
|
||||||
|
set(CMAKE_INSTALL_PREFIX "/tmp")
|
||||||
|
endif()
|
||||||
|
string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
|
||||||
|
|
||||||
|
# Set the install configuration name.
|
||||||
|
if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
|
||||||
|
if(BUILD_TYPE)
|
||||||
|
string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
|
||||||
|
CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
|
||||||
|
else()
|
||||||
|
set(CMAKE_INSTALL_CONFIG_NAME "Debug")
|
||||||
|
endif()
|
||||||
|
message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Set the component getting installed.
|
||||||
|
if(NOT CMAKE_INSTALL_COMPONENT)
|
||||||
|
if(COMPONENT)
|
||||||
|
message(STATUS "Install component: \"${COMPONENT}\"")
|
||||||
|
set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
|
||||||
|
else()
|
||||||
|
set(CMAKE_INSTALL_COMPONENT)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Install shared libraries without execute permission?
|
||||||
|
if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
|
||||||
|
set(CMAKE_INSTALL_SO_NO_EXE "1")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Is this installation the result of a crosscompile?
|
||||||
|
if(NOT DEFINED CMAKE_CROSSCOMPILING)
|
||||||
|
set(CMAKE_CROSSCOMPILING "FALSE")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Set path to fallback-tool for dependency-resolution.
|
||||||
|
if(NOT DEFINED CMAKE_OBJDUMP)
|
||||||
|
set(CMAKE_OBJDUMP "/bin/objdump")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
|
||||||
|
"${CMAKE_INSTALL_MANIFEST_FILES}")
|
||||||
|
if(CMAKE_INSTALL_LOCAL_ONLY)
|
||||||
|
file(WRITE "/home/k4/tmp/bbr-algo/BinderBeispielRegler/tests/install_local_manifest.txt"
|
||||||
|
"${CMAKE_INSTALL_MANIFEST_CONTENT}")
|
||||||
|
endif()
|
||||||
26
tests/filter-test.cpp
Executable file
26
tests/filter-test.cpp
Executable file
@@ -0,0 +1,26 @@
|
|||||||
|
#ifndef FILTER_TEST_CPP
|
||||||
|
#define FILTER_TEST_CPP
|
||||||
|
#include <gtest/gtest.h>
|
||||||
|
#include "filter.h"
|
||||||
|
|
||||||
|
TEST(PT1FilterTest, InitialOutputIsZero) {
|
||||||
|
PT1Filter filter(0.1, 0.01);
|
||||||
|
EXPECT_DOUBLE_EQ(filter.update(0.0), 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(PT1FilterTest, StepResponse) {
|
||||||
|
PT1Filter filter(0.1, 0.01);
|
||||||
|
double output = 0.0;
|
||||||
|
for (int i = 0; i < 100; ++i) {
|
||||||
|
output = filter.update(1.0);
|
||||||
|
}
|
||||||
|
EXPECT_NEAR(output, 1.0, 0.01);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(PT1FilterTest, FilterFactorEffect) {
|
||||||
|
PT1Filter fastFilter(0.01, 0.01);
|
||||||
|
PT1Filter slowFilter(0.5, 0.01);
|
||||||
|
EXPECT_GT(fastFilter.update(1.0), slowFilter.update(1.0));
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // FILTER_TEST_CPP
|
||||||
5
tests/tests[1]_include.cmake
Executable file
5
tests/tests[1]_include.cmake
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
if(EXISTS "/home/k4/tmp/bbr-algo/BinderBeispielRegler/tests/tests[1]_tests.cmake")
|
||||||
|
include("/home/k4/tmp/bbr-algo/BinderBeispielRegler/tests/tests[1]_tests.cmake")
|
||||||
|
else()
|
||||||
|
add_test(tests_NOT_BUILT tests_NOT_BUILT)
|
||||||
|
endif()
|
||||||
75
tests/util-test.cpp
Normal file
75
tests/util-test.cpp
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
/*
|
||||||
|
File: util-test.cpp
|
||||||
|
Description: This is a C++ source file containing unit tests for util.cpp.
|
||||||
|
Rev: 0.1
|
||||||
|
Created: 01.04.26
|
||||||
|
Author: Uwe Jakobeit
|
||||||
|
Copyright: Binder GmbH
|
||||||
|
Purpose: Testing utility functions
|
||||||
|
Notes: [Any relevant details, such as dependencies, usage examples, or known issues.]
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <gtest/gtest.h>
|
||||||
|
|
||||||
|
#include <limits>
|
||||||
|
|
||||||
|
#include "util.h"
|
||||||
|
|
||||||
|
using namespace UTILITY_FUNCTIONS;
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
//----------- Test of utility function 'max3' ---------
|
||||||
|
// Magic numbers for simplicity ( exceptionally allowed here )
|
||||||
|
|
||||||
|
// test if param 3 is max value
|
||||||
|
TEST(UtilityTest_max3, param_3_is_max) {
|
||||||
|
double ma = max3(1.0f, 2.0f, 3.0f);
|
||||||
|
EXPECT_DOUBLE_EQ(ma, 3.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
// test if param 2 is max value
|
||||||
|
TEST(UtilityTest_max3, param_2_is_max) {
|
||||||
|
double max = max3(1.0f, 3.0f, 2.0f);
|
||||||
|
EXPECT_DOUBLE_EQ(max, 3.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
// test if param 1 is max value
|
||||||
|
TEST(UtilityTest_max3, param_1_is_max) {
|
||||||
|
double max = max3( 3.0f, 1.0f, 2.0f);
|
||||||
|
EXPECT_DOUBLE_EQ(max, 3.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
// test all params are max value
|
||||||
|
TEST(UtilityTest_max3, all_params_equal) {
|
||||||
|
double max = max3( 3.0f, 3.0f, 3.0f);
|
||||||
|
EXPECT_DOUBLE_EQ(max, 3.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
// test all params are zero
|
||||||
|
TEST(UtilityTest_max3, all_params_zero) {
|
||||||
|
double max = max3( 0.0f, 0.0f, 0.0f);
|
||||||
|
EXPECT_DOUBLE_EQ(max, 0.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
// test 2 params negatve, one is zero
|
||||||
|
TEST(UtilityTest_max3, 2_params_negative_one_is_zero) {
|
||||||
|
double max = max3( -2.0f, -1.0f, 0.0f);
|
||||||
|
EXPECT_DOUBLE_EQ(max, 0.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
// test 2 params negatve, one is zero
|
||||||
|
TEST(UtilityTest_max3, all_params_negative_one_is_max) {
|
||||||
|
double max = max3( -2.0f, -1.0f, -3.0f);
|
||||||
|
EXPECT_DOUBLE_EQ(max, -1.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TEST(UtilityTest_max3, all_params_type_double) {
|
||||||
|
double max = max3( std::numeric_limits<double>::max(), 0.0f, 0.0f);
|
||||||
|
|
||||||
|
EXPECT_DOUBLE_EQ(max, std::numeric_limits<double>::max());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user