ros2_parsers/header_msg.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <std_msgs/msg/header.hpp>
4 #include "ros2_parser.h"
5 
6 class HeaderMsgParser
7 {
8 
9  public:
10  HeaderMsgParser(const std::string& topic_name, PJ::PlotDataMapRef& plot_data)
11  : _topic_name( topic_name )
12  , _plot_data( plot_data )
13  {
14  }
15 
16  void parse(const std_msgs::msg::Header& msg,
17  double& timestamp,
18  bool use_header_stamp)
19  {
20  if( !_initialized )
21  {
22  _initialized = true;
25  }
26 
27  double header_stamp = double(msg.stamp.sec) +
28  double(msg.stamp.nanosec) * 1e-9;
29 
30  timestamp = (use_header_stamp && header_stamp > 0) ? header_stamp : timestamp;
31 
32  _stamp->pushBack({ timestamp, header_stamp });
33  _frame_id->pushBack({ timestamp, msg.frame_id });
34  }
35 
36  private:
37  const std::string _topic_name;
39  bool _initialized = false;
40 
43 
44 };
HeaderMsgParser(const std::string &topic_name, PJ::PlotDataMapRef &plot_data)
PlotData & getOrCreateNumeric(const std::string &name, PlotGroup::Ptr group={})
PJ::PlotDataMapRef & _plot_data
StringSeries & getOrCreateStringSeries(const std::string &name, PlotGroup::Ptr group={})
const std::string _topic_name
PJ::StringSeries * _frame_id
void pushBack(const Point &p) override
void pushBack(const Point &p) override
void parse(const std_msgs::msg::Header &msg, double &timestamp, bool use_header_stamp)


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