statepublisher_rostopic.h
Go to the documentation of this file.
1 #ifndef STATE_PUBLISHER_ROSTOPIC_H
2 #define STATE_PUBLISHER_ROSTOPIC_H
3 
4 #include <QObject>
5 #include <QtPlugin>
6 #include <map>
7 #include <ros/ros.h>
13 #include <rosbag/bag.h>
14 
16 {
17  Q_OBJECT
18  Q_PLUGIN_METADATA(IID "facontidavide.PlotJuggler3.StatePublisher")
19  Q_INTERFACES(PJ::StatePublisher)
20 
21 public:
23 
24  virtual ~TopicPublisherROS() override;
25 
26  virtual void updateState(double current_time) override;
27 
28  virtual const char* name() const override
29  {
30  return "ROS Topic Re-Publisher";
31  }
32 
33  virtual bool enabled() const override
34  {
35  return _enabled;
36  }
37 
38  virtual void play(double interval) override;
39 
40  const std::vector<QAction*>& availableActions() override;
41 
42 public slots:
43  virtual void setEnabled(bool enabled) override;
44 
45  void filterDialog(bool autoconfirm);
46 
47 private:
48  void broadcastTF(double current_time);
49 
50  std::map<std::string, ros::Publisher> _publishers;
51 
52  bool _enabled;
53 
55 
57 
58  std::shared_ptr<tf2_ros::TransformBroadcaster> _tf_broadcaster;
59  std::shared_ptr<tf2_ros::StaticTransformBroadcaster> _tf_static_broadcaster;
60 
62 
64 
65  std::unordered_map<std::string, bool> _topics_to_publish;
66 
67  bool toPublish(const std::string& topic_name);
68 
69  double previous_time;
70 
72 
73  std::vector<QAction*> _available_actions;
74 
75  void publishAnyMsg(const rosbag::MessageInstance& msg_instance);
76 };
77 
78 #endif // DATALOAD_CSV_H
bool toPublish(const std::string &topic_name)
void filterDialog(bool autoconfirm)
const std::vector< QAction * > & availableActions() override
std::shared_ptr< tf2_ros::TransformBroadcaster > _tf_broadcaster
virtual bool enabled() const override
virtual const char * name() const override
void broadcastTF(double current_time)
ros::Publisher _clock_publisher
ros::NodeHandlePtr _node
std::shared_ptr< tf2_ros::StaticTransformBroadcaster > _tf_static_broadcaster
virtual ~TopicPublisherROS() override
virtual void updateState(double current_time) override
std::unordered_map< std::string, bool > _topics_to_publish
std::map< std::string, ros::Publisher > _publishers
virtual void setEnabled(bool enabled) override
virtual void play(double interval) override
void publishAnyMsg(const rosbag::MessageInstance &msg_instance)
std::vector< QAction * > _available_actions


plotjuggler_ros
Author(s): Davide Faconti
autogenerated on Fri Jun 23 2023 02:28:04