ros1_parser.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <PlotJuggler/plotdata.h>
6 #include "parser_configuration.h"
7 //----------------------------------
8 
9 using namespace PJ;
10 
11 
12 template <typename T>
14 {
15  public:
16  BuiltinMessageParser(const std::string& topic_name, PJ::PlotDataMapRef& plot_data)
17  : RosMessageParser(topic_name, plot_data)
18  {
19  }
20 
21  bool parseMessage(MessageRef serialized_msg, double& timestamp) override
22  {
23  T msg;
24  ros::serialization::IStream is(const_cast<uint8_t*>(serialized_msg.data()), serialized_msg.size());
26  parseMessageImpl(msg, timestamp);
27  return true;
28  }
29 
30  virtual void parseMessageImpl(const T& msg, double& timestamp) = 0;
31 
32  protected:
33 };
34 
36 {
37  public:
38  IntrospectionParser(const std::string& topic_name,
39  const std::string& topic_type,
40  const std::string& definition,
41  PJ::PlotDataMapRef& plot_data)
42  : RosMessageParser(topic_name, plot_data)
43  {
44  auto type = RosIntrospection::ROSType(topic_type);
45  _parser.registerMessageDefinition(topic_name, type, definition);
46  }
47 
48  virtual bool parseMessage(MessageRef serialized_msg, double& timestamp) override;
49 
50  private:
54 
55 };
56 
58 {
59  public:
60 
62 
63  void registerMessageType(const std::string& topic_name,
64  const std::string& topic_type,
65  const std::string& definition);
66 };
67 
68 
69 
RosIntrospection::Parser _parser
Definition: ros1_parser.h:51
RosIntrospection::RenamedValues _renamed
Definition: ros1_parser.h:53
size_t size() const
type
IntrospectionParser(const std::string &topic_name, const std::string &topic_type, const std::string &definition, PJ::PlotDataMapRef &plot_data)
Definition: ros1_parser.h:38
RosIntrospection::FlatMessage _flat_msg
Definition: ros1_parser.h:52
BuiltinMessageParser(const std::string &topic_name, PJ::PlotDataMapRef &plot_data)
Definition: ros1_parser.h:16
RosCompositeParser(PlotDataMapRef &plot_data)
Definition: ros1_parser.h:61
std::vector< std::pair< std::string, Variant > > RenamedValues
const uint8_t * data() const
bool parseMessage(MessageRef serialized_msg, double &timestamp) override
Definition: ros1_parser.h:21
const char * definition()
void deserialize(Stream &stream, T &t)
msg


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