diff --git a/system_metrics_collector/CMakeLists.txt b/system_metrics_collector/CMakeLists.txt
index 4dd37c8c..792abfc1 100644
--- a/system_metrics_collector/CMakeLists.txt
+++ b/system_metrics_collector/CMakeLists.txt
@@ -127,6 +127,11 @@ if(BUILD_TESTING)
test/system_metrics_collector/test_utilities.cpp)
target_link_libraries(test_utilities system_metrics_collector)
ament_target_dependencies(test_utilities rclcpp)
+
+ ament_add_gtest(test_subscriber_topic_statistics
+ test/topic_statistics_collector/test_subscriber_topic_statistics.cpp)
+ target_link_libraries(test_subscriber_topic_statistics system_metrics_collector)
+ ament_target_dependencies(test_subscriber_topic_statistics rcl rclcpp sensor_msgs)
endif()
# Install launch files
diff --git a/system_metrics_collector/package.xml b/system_metrics_collector/package.xml
index 96c24914..a3dd195c 100644
--- a/system_metrics_collector/package.xml
+++ b/system_metrics_collector/package.xml
@@ -27,6 +27,7 @@
ament_lint_common
class_loader
lifecycle_msgs
+ sensor_msgs
python3-retrying
diff --git a/system_metrics_collector/src/topic_statistics_collector/subscriber_topic_statistics.hpp b/system_metrics_collector/src/topic_statistics_collector/subscriber_topic_statistics.hpp
index 2ed506f5..191e5e85 100644
--- a/system_metrics_collector/src/topic_statistics_collector/subscriber_topic_statistics.hpp
+++ b/system_metrics_collector/src/topic_statistics_collector/subscriber_topic_statistics.hpp
@@ -26,16 +26,22 @@
#include "rclcpp/rclcpp.hpp"
#include "rcpputils/asserts.hpp"
-#include "received_message_age.hpp"
-#include "received_message_period.hpp"
+#include "libstatistics_collector/topic_statistics_collector/received_message_age.hpp"
+#include "libstatistics_collector/topic_statistics_collector/received_message_period.hpp"
+#include "libstatistics_collector/topic_statistics_collector/topic_statistics_collector.hpp"
#include "system_metrics_collector/constants.hpp"
#include "system_metrics_collector/metrics_message_publisher.hpp"
-#include "topic_statistics_collector.hpp"
namespace topic_statistics_collector
{
+using libstatistics_collector::topic_statistics_collector::TopicStatisticsCollector;
+using libstatistics_collector::topic_statistics_collector::ReceivedMessageAgeCollector;
+using libstatistics_collector::topic_statistics_collector::ReceivedMessagePeriodCollector;
+namespace constants =
+ libstatistics_collector::topic_statistics_collector::topic_statistics_constants;
+
/**
* Build a positive integer range to use in parameter descriptors.
*
@@ -147,17 +153,17 @@ class SubscriberTopicStatisticsNode : public system_metrics_collector::MetricsMe
const auto collect_topic_desc = buildTopicParameterDescriptor(
"The topic to subscribe to, for calculating topic statistics.");
collect_topic_name_ = declare_parameter(
- topic_statistics_constants::kCollectStatsTopicNameParam,
+ constants::kCollectStatsTopicNameParam,
std::string(),
collect_topic_desc);
validateStringParam(
- topic_statistics_constants::kCollectStatsTopicNameParam,
+ constants::kCollectStatsTopicNameParam,
collect_topic_name_);
const auto publish_topic_desc = buildTopicParameterDescriptor(
"The topic to publish topic statistics to.");
publish_topic_name_ = declare_parameter(
- topic_statistics_constants::kPublishStatsTopicNameParam,
+ constants::kPublishStatsTopicNameParam,
system_metrics_collector::collector_node_constants::kStatisticsTopicName,
publish_topic_desc);
diff --git a/system_metrics_collector/test/topic_statistics_collector/test_subscriber_topic_statistics.cpp b/system_metrics_collector/test/topic_statistics_collector/test_subscriber_topic_statistics.cpp
index 3e19f2d3..be61796a 100644
--- a/system_metrics_collector/test/topic_statistics_collector/test_subscriber_topic_statistics.cpp
+++ b/system_metrics_collector/test/topic_statistics_collector/test_subscriber_topic_statistics.cpp
@@ -22,13 +22,16 @@
#include "lifecycle_msgs/msg/state.hpp"
#include "sensor_msgs/msg/imu.hpp"
+#include "libstatistics_collector/topic_statistics_collector/constants.hpp"
+#include "libstatistics_collector/topic_statistics_collector/topic_statistics_collector.hpp"
#include "system_metrics_collector/constants.hpp"
-#include "topic_statistics_collector/constants.hpp"
#include "topic_statistics_collector/subscriber_topic_statistics.hpp"
-#include "topic_statistics_collector/topic_statistics_collector.hpp"
#include "../system_metrics_collector/test_functions.hpp"
using lifecycle_msgs::msg::State;
+using libstatistics_collector::moving_average_statistics::StatisticData;
+namespace constants =
+ libstatistics_collector::topic_statistics_collector::topic_statistics_constants;
namespace
{
@@ -98,9 +101,9 @@ class TestSubscriberTopicStatisticsNode
*
* @return statistic data collected by all collectors
*/
- std::vector GetCollectorData() const
+ std::vector GetCollectorData() const
{
- std::vector data;
+ std::vector data;
for (const auto & collector : statistics_collectors_) {
data.push_back(collector->GetStatisticsResults());
}
@@ -185,9 +188,7 @@ class SubscriberTopicStatisticsNodeTestFixture : public testing::Test
options.append_parameter_override(
system_metrics_collector::collector_node_constants::kPublishPeriodParam,
kVeryLongPublishPeriod.count());
- options.append_parameter_override(
- topic_statistics_collector::topic_statistics_constants::kCollectStatsTopicNameParam,
- kTestTopicName);
+ options.append_parameter_override(constants::kCollectStatsTopicNameParam, kTestTopicName);
imu_publisher_ = std::make_shared();
EXPECT_EQ(imu_publisher_->getSubscriptionCount(), 0);
@@ -363,9 +364,7 @@ TEST_F(RclcppFixture, TestConstructorPublishPeriodValidation) {
TEST_F(RclcppFixture, TestConstructorTopicNameValidation) {
rclcpp::NodeOptions options;
- options.append_parameter_override(
- topic_statistics_collector::topic_statistics_constants::kCollectStatsTopicNameParam,
- std::string());
+ options.append_parameter_override(constants::kCollectStatsTopicNameParam, std::string());
ASSERT_THROW(
TestSubscriberTopicStatisticsNode("throw", options),
@@ -377,9 +376,7 @@ TEST_F(RclcppFixture, TestMetricsMessagePublisher) {
options.append_parameter_override(
system_metrics_collector::collector_node_constants::kPublishPeriodParam,
std::chrono::milliseconds{kTestDuration}.count());
- options.append_parameter_override(
- topic_statistics_collector::topic_statistics_constants::kCollectStatsTopicNameParam,
- kTestTopicName);
+ options.append_parameter_override(constants::kCollectStatsTopicNameParam, kTestTopicName);
auto test_node = std::make_shared(
"TestMetricsMessagePublisher",