From e494a1f4019109a9370a070f0bbeae812c08ba6b Mon Sep 17 00:00:00 2001 From: tempate Date: Fri, 13 Oct 2023 13:33:29 +0200 Subject: [PATCH 01/12] Use builtin topics for internal communication Signed-off-by: tempate --- .../src/cpp/recorder/YamlReaderConfiguration.cpp | 11 ++++++++++- .../src/cpp/replayer/YamlReaderConfiguration.cpp | 9 +++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/ddsrecorder_yaml/src/cpp/recorder/YamlReaderConfiguration.cpp b/ddsrecorder_yaml/src/cpp/recorder/YamlReaderConfiguration.cpp index 5588d6e10..031314c68 100644 --- a/ddsrecorder_yaml/src/cpp/recorder/YamlReaderConfiguration.cpp +++ b/ddsrecorder_yaml/src/cpp/recorder/YamlReaderConfiguration.cpp @@ -129,7 +129,10 @@ void RecorderConfiguration::load_ddsrecorder_configuration_( utils::Heritable::make_heritable(rpc_response_topic)); // The DDS Pipe should be enabled on start up. - ddspipe_configuration.init_enabled = true; + ddspipe_configuration.init_enabled = false; + + // The recorder's DdsPipe trigger is the discovery of a writer + ddspipe_configuration.entity_creation_trigger = EntityCreationTrigger::WRITER; // Initialize controller domain with the same as the one being recorded // WARNING: dds tag must have been parsed beforehand @@ -391,6 +394,12 @@ void RecorderConfiguration::load_dds_configuration_( ddspipe_configuration.builtin_topics = YamlReader::get_set>(yml, BUILTIN_TAG, version); } + + // Create the internal communication (built-in) topics + const auto& internal_topic = utils::Heritable::make_heritable( + ddspipe::core::types::type_object_topic()); + + ddspipe_configuration.builtin_topics.insert(internal_topic); } void RecorderConfiguration::load_ddsrecorder_configuration_from_file_( diff --git a/ddsrecorder_yaml/src/cpp/replayer/YamlReaderConfiguration.cpp b/ddsrecorder_yaml/src/cpp/replayer/YamlReaderConfiguration.cpp index 7966c9b7b..7fcf8fe86 100644 --- a/ddsrecorder_yaml/src/cpp/replayer/YamlReaderConfiguration.cpp +++ b/ddsrecorder_yaml/src/cpp/replayer/YamlReaderConfiguration.cpp @@ -134,6 +134,9 @@ void ReplayerConfiguration::load_ddsreplayer_configuration_( // The DDS Pipe should be enabled on start up. ddspipe_configuration.init_enabled = true; + + // The replayer's DdsPipe doesn't get triggered by the discovery of entities + ddspipe_configuration.entity_creation_trigger = EntityCreationTrigger::NONE; } catch (const std::exception& e) { @@ -289,6 +292,12 @@ void ReplayerConfiguration::load_dds_configuration_( ddspipe_configuration.manual_topics = std::vector(manual_topics.begin(), manual_topics.end()); } + + // Create the internal communication (built-in) topics + const auto& internal_topic = utils::Heritable::make_heritable( + ddspipe::core::types::type_object_topic()); + + ddspipe_configuration.builtin_topics.insert(internal_topic); } void ReplayerConfiguration::load_ddsreplayer_configuration_from_file_( From 817ac1793d15b45567cf434826e084d764ffe83c Mon Sep 17 00:00:00 2001 From: tempate Date: Mon, 16 Oct 2023 10:08:41 +0200 Subject: [PATCH 02/12] Add internal topics in the constructor Signed-off-by: tempate --- ddsrecorder/src/cpp/tool/DdsRecorder.cpp | 24 +++++++++++-------- ddsrecorder/src/cpp/tool/DdsRecorder.hpp | 2 +- .../cpp/replayer/YamlReaderConfiguration.cpp | 6 ----- ddsreplayer/src/cpp/tool/DdsReplayer.cpp | 6 +++++ 4 files changed, 21 insertions(+), 17 deletions(-) diff --git a/ddsrecorder/src/cpp/tool/DdsRecorder.cpp b/ddsrecorder/src/cpp/tool/DdsRecorder.cpp index 19483e89d..c3ae46266 100644 --- a/ddsrecorder/src/cpp/tool/DdsRecorder.cpp +++ b/ddsrecorder/src/cpp/tool/DdsRecorder.cpp @@ -15,6 +15,8 @@ #include #include +#include + #include "DdsRecorder.hpp" namespace eprosima { @@ -29,21 +31,18 @@ using namespace eprosima::ddsrecorder::participants; using namespace eprosima::utils; DdsRecorder::DdsRecorder( - const yaml::RecorderConfiguration& configuration, + yaml::RecorderConfiguration& configuration, const DdsRecorderStateCode& init_state, const std::string& file_name) { // Create Discovery Database - discovery_database_ = - std::make_shared(); + discovery_database_ = std::make_shared(); // Create Payload Pool - payload_pool_ = - std::make_shared(); + payload_pool_ = std::make_shared(); // Create Thread Pool - thread_pool_ = - std::make_shared(configuration.n_threads); + thread_pool_ = std::make_shared(configuration.n_threads); // Fill MCAP output file settings participants::McapOutputSettings mcap_output_settings; @@ -94,9 +93,14 @@ DdsRecorder::DdsRecorder( discovery_database_, mcap_handler_); - // Create and populate Participant Database - participants_database_ = - std::make_shared(); + // Create the internal communication (built-in) topics + const auto& internal_topic = utils::Heritable::make_heritable( + ddspipe::core::types::type_object_topic()); + + configuration.ddspipe_configuration.builtin_topics.insert(internal_topic); + + // Create Participant Database + participants_database_ = std::make_shared(); // Populate Participant Database participants_database_->add_participant( diff --git a/ddsrecorder/src/cpp/tool/DdsRecorder.hpp b/ddsrecorder/src/cpp/tool/DdsRecorder.hpp index 1d3d2c58c..6392b2a89 100644 --- a/ddsrecorder/src/cpp/tool/DdsRecorder.hpp +++ b/ddsrecorder/src/cpp/tool/DdsRecorder.hpp @@ -65,7 +65,7 @@ class DdsRecorder * @param file_name: Name of the mcap file where data is recorded. If not provided, the one from configuration is used instead. */ DdsRecorder( - const yaml::RecorderConfiguration& configuration, + yaml::RecorderConfiguration& configuration, const DdsRecorderStateCode& init_state, const std::string& file_name = ""); diff --git a/ddsrecorder_yaml/src/cpp/replayer/YamlReaderConfiguration.cpp b/ddsrecorder_yaml/src/cpp/replayer/YamlReaderConfiguration.cpp index 7fcf8fe86..a31afcd17 100644 --- a/ddsrecorder_yaml/src/cpp/replayer/YamlReaderConfiguration.cpp +++ b/ddsrecorder_yaml/src/cpp/replayer/YamlReaderConfiguration.cpp @@ -292,12 +292,6 @@ void ReplayerConfiguration::load_dds_configuration_( ddspipe_configuration.manual_topics = std::vector(manual_topics.begin(), manual_topics.end()); } - - // Create the internal communication (built-in) topics - const auto& internal_topic = utils::Heritable::make_heritable( - ddspipe::core::types::type_object_topic()); - - ddspipe_configuration.builtin_topics.insert(internal_topic); } void ReplayerConfiguration::load_ddsreplayer_configuration_from_file_( diff --git a/ddsreplayer/src/cpp/tool/DdsReplayer.cpp b/ddsreplayer/src/cpp/tool/DdsReplayer.cpp index 8bd209ec3..6b380e943 100644 --- a/ddsreplayer/src/cpp/tool/DdsReplayer.cpp +++ b/ddsreplayer/src/cpp/tool/DdsReplayer.cpp @@ -135,6 +135,12 @@ DdsReplayer::DdsReplayer( } } + // Create the internal communication (built-in) topics + const auto& internal_topic = utils::Heritable::make_heritable( + ddspipe::core::types::type_object_topic()); + + configuration.ddspipe_configuration.builtin_topics.insert(internal_topic); + // Generate builtin-topics list by combining information from YAML and MCAP files configuration.ddspipe_configuration.builtin_topics = generate_builtin_topics_(configuration, input_file); From c1a21f91ab5e4ad52bd47e51d0ddc8414534ebf3 Mon Sep 17 00:00:00 2001 From: tempate Date: Mon, 16 Oct 2023 10:09:03 +0200 Subject: [PATCH 03/12] Initialize the pipe enabled Signed-off-by: tempate --- .../src/cpp/recorder/YamlReaderConfiguration.cpp | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/ddsrecorder_yaml/src/cpp/recorder/YamlReaderConfiguration.cpp b/ddsrecorder_yaml/src/cpp/recorder/YamlReaderConfiguration.cpp index 031314c68..b58b6c6aa 100644 --- a/ddsrecorder_yaml/src/cpp/recorder/YamlReaderConfiguration.cpp +++ b/ddsrecorder_yaml/src/cpp/recorder/YamlReaderConfiguration.cpp @@ -129,7 +129,7 @@ void RecorderConfiguration::load_ddsrecorder_configuration_( utils::Heritable::make_heritable(rpc_response_topic)); // The DDS Pipe should be enabled on start up. - ddspipe_configuration.init_enabled = false; + ddspipe_configuration.init_enabled = true; // The recorder's DdsPipe trigger is the discovery of a writer ddspipe_configuration.entity_creation_trigger = EntityCreationTrigger::WRITER; @@ -394,12 +394,6 @@ void RecorderConfiguration::load_dds_configuration_( ddspipe_configuration.builtin_topics = YamlReader::get_set>(yml, BUILTIN_TAG, version); } - - // Create the internal communication (built-in) topics - const auto& internal_topic = utils::Heritable::make_heritable( - ddspipe::core::types::type_object_topic()); - - ddspipe_configuration.builtin_topics.insert(internal_topic); } void RecorderConfiguration::load_ddsrecorder_configuration_from_file_( From f7fc3b8007c65d36a87accaf7b47968f84d58576 Mon Sep 17 00:00:00 2001 From: tempate Date: Mon, 16 Oct 2023 10:18:22 +0200 Subject: [PATCH 04/12] Minor fix Signed-off-by: tempate --- ddsrecorder/src/cpp/tool/DdsRecorder.cpp | 3 +-- ddsreplayer/src/cpp/tool/DdsReplayer.cpp | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/ddsrecorder/src/cpp/tool/DdsRecorder.cpp b/ddsrecorder/src/cpp/tool/DdsRecorder.cpp index c3ae46266..799e91d9f 100644 --- a/ddsrecorder/src/cpp/tool/DdsRecorder.cpp +++ b/ddsrecorder/src/cpp/tool/DdsRecorder.cpp @@ -94,8 +94,7 @@ DdsRecorder::DdsRecorder( mcap_handler_); // Create the internal communication (built-in) topics - const auto& internal_topic = utils::Heritable::make_heritable( - ddspipe::core::types::type_object_topic()); + const auto& internal_topic = utils::Heritable::make_heritable(type_object_topic()); configuration.ddspipe_configuration.builtin_topics.insert(internal_topic); diff --git a/ddsreplayer/src/cpp/tool/DdsReplayer.cpp b/ddsreplayer/src/cpp/tool/DdsReplayer.cpp index 6b380e943..5965eed8c 100644 --- a/ddsreplayer/src/cpp/tool/DdsReplayer.cpp +++ b/ddsreplayer/src/cpp/tool/DdsReplayer.cpp @@ -33,6 +33,8 @@ #include #include +#include + #include #include #include @@ -136,9 +138,7 @@ DdsReplayer::DdsReplayer( } // Create the internal communication (built-in) topics - const auto& internal_topic = utils::Heritable::make_heritable( - ddspipe::core::types::type_object_topic()); - + const auto& internal_topic = utils::Heritable::make_heritable(type_object_topic()); configuration.ddspipe_configuration.builtin_topics.insert(internal_topic); // Generate builtin-topics list by combining information from YAML and MCAP files From eed156794dd80b709b917c4723a674a8e61f6d3f Mon Sep 17 00:00:00 2001 From: tempate Date: Tue, 24 Oct 2023 15:17:32 +0200 Subject: [PATCH 05/12] Rename entity_creation_trigger to discovery_trigger Signed-off-by: tempate --- ddsrecorder/src/cpp/tool/DdsRecorder.cpp | 1 - ddsrecorder_yaml/src/cpp/recorder/YamlReaderConfiguration.cpp | 2 +- ddsrecorder_yaml/src/cpp/replayer/YamlReaderConfiguration.cpp | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/ddsrecorder/src/cpp/tool/DdsRecorder.cpp b/ddsrecorder/src/cpp/tool/DdsRecorder.cpp index 799e91d9f..661901481 100644 --- a/ddsrecorder/src/cpp/tool/DdsRecorder.cpp +++ b/ddsrecorder/src/cpp/tool/DdsRecorder.cpp @@ -95,7 +95,6 @@ DdsRecorder::DdsRecorder( // Create the internal communication (built-in) topics const auto& internal_topic = utils::Heritable::make_heritable(type_object_topic()); - configuration.ddspipe_configuration.builtin_topics.insert(internal_topic); // Create Participant Database diff --git a/ddsrecorder_yaml/src/cpp/recorder/YamlReaderConfiguration.cpp b/ddsrecorder_yaml/src/cpp/recorder/YamlReaderConfiguration.cpp index b58b6c6aa..4059f25ba 100644 --- a/ddsrecorder_yaml/src/cpp/recorder/YamlReaderConfiguration.cpp +++ b/ddsrecorder_yaml/src/cpp/recorder/YamlReaderConfiguration.cpp @@ -132,7 +132,7 @@ void RecorderConfiguration::load_ddsrecorder_configuration_( ddspipe_configuration.init_enabled = true; // The recorder's DdsPipe trigger is the discovery of a writer - ddspipe_configuration.entity_creation_trigger = EntityCreationTrigger::WRITER; + ddspipe_configuration.discovery_trigger = DiscoveryTrigger::WRITER; // Initialize controller domain with the same as the one being recorded // WARNING: dds tag must have been parsed beforehand diff --git a/ddsrecorder_yaml/src/cpp/replayer/YamlReaderConfiguration.cpp b/ddsrecorder_yaml/src/cpp/replayer/YamlReaderConfiguration.cpp index a31afcd17..eaa7e7d13 100644 --- a/ddsrecorder_yaml/src/cpp/replayer/YamlReaderConfiguration.cpp +++ b/ddsrecorder_yaml/src/cpp/replayer/YamlReaderConfiguration.cpp @@ -136,7 +136,7 @@ void ReplayerConfiguration::load_ddsreplayer_configuration_( ddspipe_configuration.init_enabled = true; // The replayer's DdsPipe doesn't get triggered by the discovery of entities - ddspipe_configuration.entity_creation_trigger = EntityCreationTrigger::NONE; + ddspipe_configuration.discovery_trigger = DiscoveryTrigger::NONE; } catch (const std::exception& e) { From e7ccec05a2bb82095783e7069fe28c0c8cc6ef10 Mon Sep 17 00:00:00 2001 From: tempate Date: Tue, 14 Nov 2023 15:45:50 +0100 Subject: [PATCH 06/12] Apply suggestions Signed-off-by: tempate --- ddsrecorder/src/cpp/tool/DdsRecorder.cpp | 6 +++--- ddsreplayer/src/cpp/tool/DdsReplayer.cpp | 19 ++++++++----------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/ddsrecorder/src/cpp/tool/DdsRecorder.cpp b/ddsrecorder/src/cpp/tool/DdsRecorder.cpp index 661901481..16750fc27 100644 --- a/ddsrecorder/src/cpp/tool/DdsRecorder.cpp +++ b/ddsrecorder/src/cpp/tool/DdsRecorder.cpp @@ -93,9 +93,9 @@ DdsRecorder::DdsRecorder( discovery_database_, mcap_handler_); - // Create the internal communication (built-in) topics - const auto& internal_topic = utils::Heritable::make_heritable(type_object_topic()); - configuration.ddspipe_configuration.builtin_topics.insert(internal_topic); + // Create an internal topic to transmit the dynamic types + configuration.ddspipe_configuration.builtin_topics.insert( + utils::Heritable::make_heritable(type_object_topic())); // Create Participant Database participants_database_ = std::make_shared(); diff --git a/ddsreplayer/src/cpp/tool/DdsReplayer.cpp b/ddsreplayer/src/cpp/tool/DdsReplayer.cpp index 5965eed8c..64209f24c 100644 --- a/ddsreplayer/src/cpp/tool/DdsReplayer.cpp +++ b/ddsreplayer/src/cpp/tool/DdsReplayer.cpp @@ -59,16 +59,13 @@ DdsReplayer::DdsReplayer( , dyn_publisher_(nullptr) { // Create Discovery Database - discovery_database_ = - std::make_shared(); + discovery_database_ = std::make_shared(); // Create Payload Pool - payload_pool_ = - std::make_shared(); + payload_pool_ = std::make_shared(); // Create Thread Pool - thread_pool_ = - std::make_shared(configuration.n_threads); + thread_pool_ = std::make_shared(configuration.n_threads); // Create MCAP Reader Participant mcap_reader_participant_ = std::make_shared( @@ -137,13 +134,13 @@ DdsReplayer::DdsReplayer( } } - // Create the internal communication (built-in) topics - const auto& internal_topic = utils::Heritable::make_heritable(type_object_topic()); - configuration.ddspipe_configuration.builtin_topics.insert(internal_topic); - - // Generate builtin-topics list by combining information from YAML and MCAP files + // Generate builtin-topics from the topics in the MCAP file configuration.ddspipe_configuration.builtin_topics = generate_builtin_topics_(configuration, input_file); + // Create an internal topic to transmit the dynamic types + configuration.ddspipe_configuration.builtin_topics.insert( + utils::Heritable::make_heritable(type_object_topic())); + // Create DDS Pipe pipe_ = std::make_unique( configuration.ddspipe_configuration, From 0709d261909322e5e3ef4340da8ab9032d677140 Mon Sep 17 00:00:00 2001 From: tempate Date: Tue, 21 Nov 2023 08:33:36 +0100 Subject: [PATCH 07/12] Apply suggestions Signed-off-by: tempate --- ddsrecorder/src/cpp/tool/DdsRecorder.cpp | 47 ++++++++++++------- ddsrecorder/src/cpp/tool/DdsRecorder.hpp | 5 +- .../src/cpp/replayer/ReplayerParticipant.cpp | 4 -- .../cpp/recorder/YamlReaderConfiguration.cpp | 6 --- ddsreplayer/src/cpp/tool/DdsReplayer.cpp | 4 -- docs/rst/recording/usage/configuration.rst | 25 +++++----- docs/rst/replaying/usage/configuration.rst | 26 +++++----- 7 files changed, 58 insertions(+), 59 deletions(-) diff --git a/ddsrecorder/src/cpp/tool/DdsRecorder.cpp b/ddsrecorder/src/cpp/tool/DdsRecorder.cpp index 16750fc27..0139e825c 100644 --- a/ddsrecorder/src/cpp/tool/DdsRecorder.cpp +++ b/ddsrecorder/src/cpp/tool/DdsRecorder.cpp @@ -31,9 +31,10 @@ using namespace eprosima::ddsrecorder::participants; using namespace eprosima::utils; DdsRecorder::DdsRecorder( - yaml::RecorderConfiguration& configuration, + const yaml::RecorderConfiguration& configuration, const DdsRecorderStateCode& init_state, const std::string& file_name) + : configuration_(configuration) { // Create Discovery Database discovery_database_ = std::make_shared(); @@ -42,17 +43,17 @@ DdsRecorder::DdsRecorder( payload_pool_ = std::make_shared(); // Create Thread Pool - thread_pool_ = std::make_shared(configuration.n_threads); + thread_pool_ = std::make_shared(configuration_.n_threads); // Fill MCAP output file settings participants::McapOutputSettings mcap_output_settings; if (file_name == "") { - mcap_output_settings.output_filename = configuration.output_filename; - mcap_output_settings.output_filepath = configuration.output_filepath; + mcap_output_settings.output_filename = configuration_.output_filename; + mcap_output_settings.output_filepath = configuration_.output_filepath; mcap_output_settings.prepend_timestamp = true; - mcap_output_settings.output_timestamp_format = configuration.output_timestamp_format; - mcap_output_settings.output_local_timestamp = configuration.output_local_timestamp; + mcap_output_settings.output_timestamp_format = configuration_.output_timestamp_format; + mcap_output_settings.output_local_timestamp = configuration_.output_local_timestamp; } else { @@ -64,14 +65,14 @@ DdsRecorder::DdsRecorder( // Create MCAP Handler configuration participants::McapHandlerConfiguration handler_config( mcap_output_settings, - configuration.max_pending_samples, - configuration.buffer_size, - configuration.event_window, - configuration.cleanup_period, - configuration.log_publish_time, - configuration.only_with_type, - configuration.mcap_writer_options, - configuration.record_types); + configuration_.max_pending_samples, + configuration_.buffer_size, + configuration_.event_window, + configuration_.cleanup_period, + configuration_.log_publish_time, + configuration_.only_with_type, + configuration_.mcap_writer_options, + configuration_.record_types); // Create MCAP Handler mcap_handler_ = std::make_shared( @@ -81,22 +82,32 @@ DdsRecorder::DdsRecorder( // Create DynTypes Participant dyn_participant_ = std::make_shared( - configuration.simple_configuration, + configuration_.simple_configuration, payload_pool_, discovery_database_); dyn_participant_->init(); // Create Recorder Participant recorder_participant_ = std::make_shared( - configuration.recorder_configuration, + configuration_.recorder_configuration, payload_pool_, discovery_database_, mcap_handler_); // Create an internal topic to transmit the dynamic types - configuration.ddspipe_configuration.builtin_topics.insert( + configuration_.ddspipe_configuration.builtin_topics.insert( utils::Heritable::make_heritable(type_object_topic())); + if (!configuration_.ddspipe_configuration.allowlist.empty()) + { + // The allowlist is not empty. Add the internal topic. + WildcardDdsFilterTopic internal_topic; + internal_topic.topic_name.set_value(TYPE_OBJECT_TOPIC_NAME); + + configuration_.ddspipe_configuration.allowlist.insert( + utils::Heritable::make_heritable(internal_topic)); + } + // Create Participant Database participants_database_ = std::make_shared(); @@ -112,7 +123,7 @@ DdsRecorder::DdsRecorder( // Create DDS Pipe pipe_ = std::make_unique( - configuration.ddspipe_configuration, + configuration_.ddspipe_configuration, discovery_database_, payload_pool_, participants_database_, diff --git a/ddsrecorder/src/cpp/tool/DdsRecorder.hpp b/ddsrecorder/src/cpp/tool/DdsRecorder.hpp index 6392b2a89..0efa7cb4a 100644 --- a/ddsrecorder/src/cpp/tool/DdsRecorder.hpp +++ b/ddsrecorder/src/cpp/tool/DdsRecorder.hpp @@ -65,7 +65,7 @@ class DdsRecorder * @param file_name: Name of the mcap file where data is recorded. If not provided, the one from configuration is used instead. */ DdsRecorder( - yaml::RecorderConfiguration& configuration, + const yaml::RecorderConfiguration& configuration, const DdsRecorderStateCode& init_state, const std::string& file_name = ""); @@ -100,6 +100,9 @@ class DdsRecorder static participants::McapHandlerStateCode recorder_to_handler_state_( const DdsRecorderStateCode& recorder_state); + //! Configuration of the DDS Recorder + yaml::RecorderConfiguration configuration_; + //! Payload Pool std::shared_ptr payload_pool_; diff --git a/ddsrecorder_participants/src/cpp/replayer/ReplayerParticipant.cpp b/ddsrecorder_participants/src/cpp/replayer/ReplayerParticipant.cpp index 3e1fa10d7..e678f445b 100644 --- a/ddsrecorder_participants/src/cpp/replayer/ReplayerParticipant.cpp +++ b/ddsrecorder_participants/src/cpp/replayer/ReplayerParticipant.cpp @@ -33,10 +33,6 @@ ReplayerParticipant::ReplayerParticipant( payload_pool, discovery_database) { - // Delete endpoint discovery/removal callbacks inserted in DDS-Pipe core. - // This is to avoid the creation of useless bridges and tracks created when discovering endpoints in topics other - // than the ones present in MCAP. - discovery_database_->clear_all_callbacks(); } std::shared_ptr ReplayerParticipant::create_reader( diff --git a/ddsrecorder_yaml/src/cpp/recorder/YamlReaderConfiguration.cpp b/ddsrecorder_yaml/src/cpp/recorder/YamlReaderConfiguration.cpp index 4059f25ba..7972dc07c 100644 --- a/ddsrecorder_yaml/src/cpp/recorder/YamlReaderConfiguration.cpp +++ b/ddsrecorder_yaml/src/cpp/recorder/YamlReaderConfiguration.cpp @@ -361,12 +361,6 @@ void RecorderConfiguration::load_dds_configuration_( { ddspipe_configuration.allowlist = YamlReader::get_set>(yml, ALLOWLIST_TAG, version); - - // Add to allowlist always the type object topic - WildcardDdsFilterTopic internal_topic; - internal_topic.topic_name.set_value(TYPE_OBJECT_TOPIC_NAME); - ddspipe_configuration.allowlist.insert( - utils::Heritable::make_heritable(internal_topic)); } ///// diff --git a/ddsreplayer/src/cpp/tool/DdsReplayer.cpp b/ddsreplayer/src/cpp/tool/DdsReplayer.cpp index 64209f24c..765dd4244 100644 --- a/ddsreplayer/src/cpp/tool/DdsReplayer.cpp +++ b/ddsreplayer/src/cpp/tool/DdsReplayer.cpp @@ -137,10 +137,6 @@ DdsReplayer::DdsReplayer( // Generate builtin-topics from the topics in the MCAP file configuration.ddspipe_configuration.builtin_topics = generate_builtin_topics_(configuration, input_file); - // Create an internal topic to transmit the dynamic types - configuration.ddspipe_configuration.builtin_topics.insert( - utils::Heritable::make_heritable(type_object_topic())); - // Create DDS Pipe pipe_ = std::make_unique( configuration.ddspipe_configuration, diff --git a/docs/rst/recording/usage/configuration.rst b/docs/rst/recording/usage/configuration.rst index 37abdf448..f244a8e48 100644 --- a/docs/rst/recording/usage/configuration.rst +++ b/docs/rst/recording/usage/configuration.rst @@ -33,6 +33,17 @@ DDS Configuration Configuration related to DDS communication. +.. _recorder_usage_configuration_domain_id: + +DDS Domain +^^^^^^^^^^ + +Tag ``domain`` configures the :term:`Domain Id`. + +.. code-block:: yaml + + domain: 101 + .. _recorder_builtin_topics: Built-in Topics @@ -55,7 +66,7 @@ The ``builtin-topics`` must specify a ``name`` and ``type`` without wildcard cha .. _recorder_topic_filtering: Topic Filtering ---------------- +^^^^^^^^^^^^^^^ The |ddsrecorder| automatically detects the topics that are being used in a DDS Network. The |ddsrecorder| then creates internal DDS :term:`Readers` to record the data published on each topic. @@ -213,18 +224,6 @@ If a ``qos`` is not manually configured, it will get its value by discovery. The :ref:`Topic QoS ` configured in the Manual Topics take precedence over the :ref:`Specs Topic QoS `. -.. _recorder_usage_configuration_domain_id: - -DDS Domain -^^^^^^^^^^ - -Tag ``domain`` configures the :term:`Domain Id`. - -.. code-block:: yaml - - domain: 101 - - .. _recorder_ignore_participant_flags: Ignore Participant Flags diff --git a/docs/rst/replaying/usage/configuration.rst b/docs/rst/replaying/usage/configuration.rst index 799a5f23b..a0eda18fc 100644 --- a/docs/rst/replaying/usage/configuration.rst +++ b/docs/rst/replaying/usage/configuration.rst @@ -32,10 +32,21 @@ DDS Configuration Configuration related to DDS communication. +.. _replayer_usage_configuration_domain_id: + +DDS Domain +^^^^^^^^^^ + +Tag ``domain`` configures the :term:`Domain Id`. + +.. code-block:: yaml + + domain: 101 + .. _replayer_topic_filtering: Topic Filtering ---------------- +^^^^^^^^^^^^^^^ The |ddsreplayer| automatically detects the topics that are being used in a DDS Network. The |ddsreplayer| then creates internal DDS :term:`Writers` to replay the data published on each topic. @@ -156,7 +167,7 @@ By default it is set to ``0``; it sends samples at an unlimited transmission rat .. note:: - The ``max-tx-rate`` tag can be set (in order of precedence) for topics, for participants, and globally in specs. + The ``max-tx-rate`` tag can be set (in order of precedence) for topics and globally in specs. .. _replayer_manual_topics: @@ -182,17 +193,6 @@ If a ``qos`` is not manually configured, it will get its value by discovery. The :ref:`Topic QoS ` configured in the Manual Topics take precedence over the :ref:`Specs Topic QoS `. -.. _replayer_usage_configuration_domain_id: - -DDS Domain -^^^^^^^^^^ - -Tag ``domain`` configures the :term:`Domain Id`. - -.. code-block:: yaml - - domain: 101 - .. _replayer_ignore_participant_flags: From 82de9160e23bcfb2d3d8b3db4ca3f222b9a94733 Mon Sep 17 00:00:00 2001 From: tempate Date: Tue, 21 Nov 2023 10:39:29 +0100 Subject: [PATCH 08/12] Remove outdated warning Signed-off-by: tempate --- docs/rst/recording/usage/configuration.rst | 5 ----- docs/rst/replaying/usage/configuration.rst | 5 ----- 2 files changed, 10 deletions(-) diff --git a/docs/rst/recording/usage/configuration.rst b/docs/rst/recording/usage/configuration.rst index f244a8e48..b417234b9 100644 --- a/docs/rst/recording/usage/configuration.rst +++ b/docs/rst/recording/usage/configuration.rst @@ -285,11 +285,6 @@ Example: See `Interface Whitelist `_ for more information. -.. warning:: - - When providing an interface whitelist, external participants with which communication is desired must also be configured with interface whitelisting. - - Recorder Configuration ---------------------- diff --git a/docs/rst/replaying/usage/configuration.rst b/docs/rst/replaying/usage/configuration.rst index a0eda18fc..3ae16e668 100644 --- a/docs/rst/replaying/usage/configuration.rst +++ b/docs/rst/replaying/usage/configuration.rst @@ -255,11 +255,6 @@ Example: See `Interface Whitelist `_ for more information. -.. warning:: - - When providing an interface whitelist, external participants with which communication is desired must also be configured with interface whitelisting. - - Replay Configuration -------------------- From c0455311eb4f33aaa0e9608ac430cf4839cc617d Mon Sep 17 00:00:00 2001 From: tempate Date: Tue, 21 Nov 2023 12:38:54 +0100 Subject: [PATCH 09/12] Apply suggestions Signed-off-by: tempate --- docs/rst/replaying/usage/configuration.rst | 4 ---- 1 file changed, 4 deletions(-) diff --git a/docs/rst/replaying/usage/configuration.rst b/docs/rst/replaying/usage/configuration.rst index 3ae16e668..eb13aa515 100644 --- a/docs/rst/replaying/usage/configuration.rst +++ b/docs/rst/replaying/usage/configuration.rst @@ -165,10 +165,6 @@ The ``max-tx-rate`` tag limits the frequency [Hz] at which samples are sent by d It only accepts non-negative numbers. By default it is set to ``0``; it sends samples at an unlimited transmission rate. -.. note:: - - The ``max-tx-rate`` tag can be set (in order of precedence) for topics and globally in specs. - .. _replayer_manual_topics: Manual Topics From 796ee89cb41465d630df851802d51c4cb4182d1d Mon Sep 17 00:00:00 2001 From: tempate Date: Wed, 22 Nov 2023 08:58:46 +0100 Subject: [PATCH 10/12] Apply suggestions Signed-off-by: tempate --- docs/rst/replaying/usage/configuration.rst | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/docs/rst/replaying/usage/configuration.rst b/docs/rst/replaying/usage/configuration.rst index eb13aa515..76bc7a16e 100644 --- a/docs/rst/replaying/usage/configuration.rst +++ b/docs/rst/replaying/usage/configuration.rst @@ -165,6 +165,11 @@ The ``max-tx-rate`` tag limits the frequency [Hz] at which samples are sent by d It only accepts non-negative numbers. By default it is set to ``0``; it sends samples at an unlimited transmission rate. +.. note:: + + The ``max-tx-rate`` tag can be set for topics and globally under the ``replayer`` tag. + If both are set, the configuration under topics prevails. + .. _replayer_manual_topics: Manual Topics @@ -346,20 +351,6 @@ By default, data is replayed at the same rate it was published/received. However, a user might be interested in playing messages back at a rate different than the original one. This can be accomplished through the playback ``rate`` tag, which accepts positive float values (e.g. 0.5 <--> half speed || 2 <--> double speed). -.. _replayer_usage_configuration_max_tx_rate: - -Max Transmission Rate ---------------------- - -The ``max-tx-rate`` tag limits the frequency [Hz] at which samples are sent by discarding messages transmitted before :code:`1/max-tx-rate` seconds have passed since the last sent message. -It only accepts non-negative numbers. -By default it is set to ``0``; it sends samples at an unlimited transmission rate. - -.. note:: - - The ``max-tx-rate`` tag can be set for topics and globally under the ``replayer`` tag. - If both are set, the configuration under topics prevails. - .. _replayer_replay_configuration_replaytypes: Replay Types From e3381545649104b1ebee018bedf79946f11a7d87 Mon Sep 17 00:00:00 2001 From: tempate Date: Wed, 22 Nov 2023 09:07:44 +0100 Subject: [PATCH 11/12] Uncrustify Signed-off-by: tempate --- ddsrecorder/src/cpp/tool/DdsRecorder.cpp | 2 +- docs/rst/notes/forthcoming_version.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ddsrecorder/src/cpp/tool/DdsRecorder.cpp b/ddsrecorder/src/cpp/tool/DdsRecorder.cpp index 0139e825c..f25b95e48 100644 --- a/ddsrecorder/src/cpp/tool/DdsRecorder.cpp +++ b/ddsrecorder/src/cpp/tool/DdsRecorder.cpp @@ -34,7 +34,7 @@ DdsRecorder::DdsRecorder( const yaml::RecorderConfiguration& configuration, const DdsRecorderStateCode& init_state, const std::string& file_name) - : configuration_(configuration) + : configuration_(configuration) { // Create Discovery Database discovery_database_ = std::make_shared(); diff --git a/docs/rst/notes/forthcoming_version.rst b/docs/rst/notes/forthcoming_version.rst index 70c93c606..8f10f22d5 100644 --- a/docs/rst/notes/forthcoming_version.rst +++ b/docs/rst/notes/forthcoming_version.rst @@ -32,5 +32,5 @@ Next release will include the following **DDS Recorder tool configuration featur Next release will include the following **DDS Replayer tool configuration features**: * New configuration option (``topics``) to configure the :ref:`Manual Topics `. -* New configuration option (``max-tx-rate``) to configure the :ref:`Max transmission rate `. +* New configuration option (``max-tx-rate``) to configure the :ref:`Max transmission rate `. * Remove the support for `Built-in Topics `_. From c0cc609fdf9c32a98a8d8af4c05ee0a5a4b0d0fc Mon Sep 17 00:00:00 2001 From: tempate Date: Wed, 22 Nov 2023 10:07:21 +0100 Subject: [PATCH 12/12] Apply suggestions Signed-off-by: tempate --- docs/rst/replaying/usage/configuration.rst | 5 ----- 1 file changed, 5 deletions(-) diff --git a/docs/rst/replaying/usage/configuration.rst b/docs/rst/replaying/usage/configuration.rst index 76bc7a16e..704855568 100644 --- a/docs/rst/replaying/usage/configuration.rst +++ b/docs/rst/replaying/usage/configuration.rst @@ -165,11 +165,6 @@ The ``max-tx-rate`` tag limits the frequency [Hz] at which samples are sent by d It only accepts non-negative numbers. By default it is set to ``0``; it sends samples at an unlimited transmission rate. -.. note:: - - The ``max-tx-rate`` tag can be set for topics and globally under the ``replayer`` tag. - If both are set, the configuration under topics prevails. - .. _replayer_manual_topics: Manual Topics