    

 ## On this page

  

 

 # fmu\_base\_activity

 Last update: 16.07.2025 

<a name="l00001"></a> 1 

<a name="l00004"></a> 4 \#pragma once

<a name="l00005"></a> 5 

<a name="l00006"></a> 6 \#include "core/lifecycle/activity/base\_activity.h"

<a name="l00007"></a> 7 \#include "core/lifecycle/fmu\_activity/fmu\_config.h"

<a name="l00008"></a> 8 \#include "core/lifecycle/fmu\_activity/i\_fmu\_logic.h"

<a name="l00009"></a> 9 \#include "core/message/rtidds/fmu/fmu\_message.hpp"

<a name="l00010"></a> 10 \#include "core/scheduler/i\_scheduler\_client/i\_scheduler\_client.h"

<a name="l00011"></a> 11 \#include &lt;optional&gt;

<a name="l00012"></a> 12 

<a name="l00017"></a> 17 namespace [simulation\_framework](namespacesimulation__framework.xhtml)

<a name="l00018"></a> 18 {

<a name="l00019"></a> 19 namespace [core](namespacecore.xhtml)

<a name="l00020"></a> 20 {

<a name="l00021"></a> 21 

<a name="l00022"></a> 22 class CommunicationManager;

<a name="l00023"></a> 23 

<a name="l00024"></a> 24 namespace lifecycle

<a name="l00025"></a> 25 {

<a name="l00026"></a> 26 

<a name="l00030"></a>[ 30](classsimulation__framework_1_1core_1_1lifecycle_1_1FmuBaseActivity.xhtml) class [FmuBaseActivity](classsimulation__framework_1_1core_1_1lifecycle_1_1FmuBaseActivity.xhtml) : public [BaseActivity](classsimulation__framework_1_1core_1_1lifecycle_1_1BaseActivity.xhtml)

<a name="l00031"></a> 31 {

<a name="l00032"></a> 32 public:

<a name="l00041"></a> 41 [FmuBaseActivity](classsimulation__framework_1_1core_1_1lifecycle_1_1FmuBaseActivity.xhtml#adbe15957d5e1d89197264acc6f012656)(const std::string&amp; name,

<a name="l00042"></a> 42 std::shared_ptr&lt;CommunicationManager&gt; communication_manager,

<a name="l00043"></a> 43 std::unique_ptr&lt;scheduling::ISchedulerClient&gt; scheduler_client,

<a name="l00044"></a> 44 [FmuConfig](structsimulation__framework_1_1core_1_1lifecycle_1_1FmuConfig.xhtml) fmu_config,

<a name="l00045"></a> 45 std::unique_ptr&lt;IFmuLogic&gt; fmu_logic,

<a name="l00046"></a> 46 const std::optional&lt;double&gt; step_size = std::nullopt);

<a name="l00047"></a> 47 

<a name="l00049"></a> 49 virtual void [ExecuteStep](classsimulation__framework_1_1core_1_1lifecycle_1_1FmuBaseActivity.xhtml#a412b94d22b964d6762321464970c6d34)() override;

<a name="l00050"></a> 50 

<a name="l00052"></a> 52 virtual void [Init](classsimulation__framework_1_1core_1_1lifecycle_1_1FmuBaseActivity.xhtml#a7f2b0dba2e396cdd58cc414f3a52848c)() override;

<a name="l00053"></a> 53 

<a name="l00055"></a> 55 virtual void [AddPublisherAndSubscriber](classsimulation__framework_1_1core_1_1lifecycle_1_1FmuBaseActivity.xhtml#ab6db7c5859ed2d69aaa518545f6eaa30)() override;

<a name="l00056"></a> 56 

<a name="l00057"></a> 57 protected:

<a name="l00061"></a> 61 FmuInOutMap [DecodeMessage](classsimulation__framework_1_1core_1_1lifecycle_1_1FmuBaseActivity.xhtml#ad2d59ff1b25dda13e38e8ff79e6754b3)(const rtidds::FmuMessage&amp; message);

<a name="l00062"></a> 62 

<a name="l00066"></a> 66 rtidds::FmuMessage [EncodeMessage](classsimulation__framework_1_1core_1_1lifecycle_1_1FmuBaseActivity.xhtml#a94cc4be59c072972f9d1b7a7cc32cf06)(const FmuInOutMap&amp; outputs);

<a name="l00067"></a> 67 

<a name="l00071"></a> 71 FmuInOutMap [DecodeBytesMessage](classsimulation__framework_1_1core_1_1lifecycle_1_1FmuBaseActivity.xhtml#ac09b3c35be0ae2e971475cdf85732b3f)(const rtidds::GenericBytesMessage&amp; message);

<a name="l00072"></a> 72 

<a name="l00076"></a> 76 rtidds::GenericBytesMessage [EncodeBytesMessage](classsimulation__framework_1_1core_1_1lifecycle_1_1FmuBaseActivity.xhtml#ad95ccdd3c4e76d98bb68d1124ce4df71)(const FmuInOutMap&amp; outputs);

<a name="l00077"></a> 77 

<a name="l00079"></a>[ 79](classsimulation__framework_1_1core_1_1lifecycle_1_1FmuBaseActivity.xhtml#a55ba412be4a52a61cc7c68207b8f3d88) [FmuConfig](structsimulation__framework_1_1core_1_1lifecycle_1_1FmuConfig.xhtml) [fmu\_config\_](classsimulation__framework_1_1core_1_1lifecycle_1_1FmuBaseActivity.xhtml#a55ba412be4a52a61cc7c68207b8f3d88){};

<a name="l00080"></a> 80 

<a name="l00082"></a>[ 82](classsimulation__framework_1_1core_1_1lifecycle_1_1FmuBaseActivity.xhtml#a8c713dd64a2a30af59a6908caf3bc14b) std::unique_ptr&lt;IFmuLogic&gt; [fmu\_logic\_](classsimulation__framework_1_1core_1_1lifecycle_1_1FmuBaseActivity.xhtml#a8c713dd64a2a30af59a6908caf3bc14b);

<a name="l00083"></a> 83 

<a name="l00085"></a>[ 85](classsimulation__framework_1_1core_1_1lifecycle_1_1FmuBaseActivity.xhtml#a5645715270857e72b39cc22475cee6d3) std::optional&lt;double&gt; [step\_size\_](classsimulation__framework_1_1core_1_1lifecycle_1_1FmuBaseActivity.xhtml#a5645715270857e72b39cc22475cee6d3);

<a name="l00086"></a> 86 

<a name="l00088"></a>[ 88](classsimulation__framework_1_1core_1_1lifecycle_1_1FmuBaseActivity.xhtml#a9c5e9745f447f179dffaff037cb09338) FmuTopicToVarMap [input\_topics\_to\_var\_map\_](classsimulation__framework_1_1core_1_1lifecycle_1_1FmuBaseActivity.xhtml#a9c5e9745f447f179dffaff037cb09338){};

<a name="l00089"></a> 89 

<a name="l00091"></a>[ 91](classsimulation__framework_1_1core_1_1lifecycle_1_1FmuBaseActivity.xhtml#ab2ff48df96a66b5816e41c0a3c7f6194) FmuTopicToVarMap [output\_topics\_to\_var\_map\_](classsimulation__framework_1_1core_1_1lifecycle_1_1FmuBaseActivity.xhtml#ab2ff48df96a66b5816e41c0a3c7f6194){};

<a name="l00092"></a> 92 };

<a name="l00093"></a> 93 

<a name="l00094"></a> 94 } // namespace lifecycle

<a name="l00095"></a> 95 } // namespace core

<a name="l00096"></a> 96 } // namespace simulation\_framework