datastream_ros2.h
Go to the documentation of this file.
1 #ifndef DATASTREAM_ROS2_TOPIC_H
2 #define DATASTREAM_ROS2_TOPIC_H
3 
4 #include <QtPlugin>
5 #include <QTimer>
6 
8 
11 #include "rclcpp/generic_subscription.hpp"
12 
14 {
15  Q_OBJECT
16  Q_PLUGIN_METADATA(IID "facontidavide.PlotJuggler3.ROS2DataStreamer")
17  Q_INTERFACES(PJ::DataStreamer)
18 
19 public:
21 
22  bool start(QStringList* selected_datasources) override;
23 
24  void shutdown() override;
25 
26  bool isRunning() const override;
27 
28  ~DataStreamROS2() override;
29 
30  const char* name() const override
31  {
32  return "ROS2 Topic Subscriber";
33  }
34 
35  bool xmlSaveState(QDomDocument& doc, QDomElement& parent_element) const override;
36 
37  bool xmlLoadState(const QDomElement& parent_element) override;
38 
39  const std::vector<QAction*>& availableActions() override;
40 
41 private:
42  void messageCallback(const std::string& topic_name, std::shared_ptr<rclcpp::SerializedMessage> msg);
43 
44 private:
45  std::shared_ptr<rclcpp::Context> _context;
46  std::unique_ptr<rclcpp::executors::MultiThreadedExecutor> _executor;
47  std::shared_ptr<rclcpp::Node> _node;
48 
50 
51  bool _running;
53 
54  std::thread _spinner;
55 
57 
58  rclcpp::Clock _clock;
59 
60  rcl_time_point_value_t _start_time;
61 
62  void saveDefaultSettings();
63 
64  void loadDefaultSettings();
65 
66  std::unordered_map<std::string, rclcpp::GenericSubscription::SharedPtr> _subscriptions;
67 
68  void subscribeToTopic(const std::string& topic_name, const std::string& topic_type);
69  void waitOneSecond();
70 };
71 
72 #endif
DataStreamROS2::_context
std::shared_ptr< rclcpp::Context > _context
Definition: datastream_ros2.h:45
DataStreamROS2::start
bool start(QStringList *selected_datasources) override
Definition: datastream_ros2.cpp:60
DataStreamROS2::isRunning
bool isRunning() const override
Definition: datastream_ros2.cpp:147
DataStreamROS2::messageCallback
void messageCallback(const std::string &topic_name, std::shared_ptr< rclcpp::SerializedMessage > msg)
Definition: datastream_ros2.cpp:206
DataStreamROS2::DataStreamROS2
DataStreamROS2()
Definition: datastream_ros2.cpp:12
DataStreamROS2::_start_time
rcl_time_point_value_t _start_time
Definition: datastream_ros2.h:60
DataStreamROS2::xmlSaveState
bool xmlSaveState(QDomDocument &doc, QDomElement &parent_element) const override
Definition: datastream_ros2.cpp:249
PJ::RosParserConfig
Definition: parser_configuration.h:14
DataStreamROS2::_spinner
std::thread _spinner
Definition: datastream_ros2.h:54
DataStreamROS2::_subscriptions
std::unordered_map< std::string, rclcpp::GenericSubscription::SharedPtr > _subscriptions
Definition: datastream_ros2.h:66
DataStreamROS2::~DataStreamROS2
~DataStreamROS2() override
Definition: datastream_ros2.cpp:168
dialog_select_ros_topics.h
DataStreamROS2::loadDefaultSettings
void loadDefaultSettings()
Definition: datastream_ros2.cpp:237
DataStreamROS2::_clock
rclcpp::Clock _clock
Definition: datastream_ros2.h:58
PJ::DataStreamer
DataStreamROS2::xmlLoadState
bool xmlLoadState(const QDomElement &parent_element) override
Definition: datastream_ros2.cpp:243
DataStreamROS2::_first_warning
bool _first_warning
Definition: datastream_ros2.h:52
DataStreamROS2::name
const char * name() const override
Definition: datastream_ros2.h:30
DataStreamROS2::_node
std::shared_ptr< rclcpp::Node > _node
Definition: datastream_ros2.h:47
DataStreamROS2::availableActions
const std::vector< QAction * > & availableActions() override
Definition: datastream_ros2.cpp:173
PJ::CompositeParser
Definition: parser_configuration.h:32
ros2_parser.h
DataStreamROS2::waitOneSecond
void waitOneSecond()
Definition: datastream_ros2.cpp:29
DataStreamROS2::_parser
PJ::CompositeParser _parser
Definition: datastream_ros2.h:49
datastreamer_base.h
DataStreamROS2::saveDefaultSettings
void saveDefaultSettings()
Definition: datastream_ros2.cpp:231
DataStreamROS2::shutdown
void shutdown() override
Definition: datastream_ros2.cpp:152
DataStreamROS2::_running
bool _running
Definition: datastream_ros2.h:51
DataStreamROS2::_executor
std::unique_ptr< rclcpp::executors::MultiThreadedExecutor > _executor
Definition: datastream_ros2.h:46
DataStreamROS2::_config
PJ::RosParserConfig _config
Definition: datastream_ros2.h:56
DataStreamROS2::subscribeToTopic
void subscribeToTopic(const std::string &topic_name, const std::string &topic_type)
Definition: datastream_ros2.cpp:180
DataStreamROS2
Definition: datastream_ros2.h:13


plotjuggler_ros
Author(s): Davide Faconti
autogenerated on Wed Feb 21 2024 03:22:55