dbc  ..
message.hpp
1 #ifndef MESSAGE_HPP
2 #define MESSAGE_HPP
3 
4 #include <cstdint>
5 #include <iostream>
6 #include <libdbc/signal.hpp>
7 #include <string>
8 #include <vector>
9 
10 namespace Libdbc {
11 struct Message {
12  Message() = delete;
13  virtual ~Message() = default;
14  explicit Message(uint32_t message_id, const std::string& name, uint8_t size, const std::string& node);
15 
16  enum class ParseSignalsStatus {
17  Success,
18  ErrorMessageToLong,
19  ErrorBigEndian,
20  ErrorUnknownID,
21  ErrorInvalidConversion,
22  };
23 
24  ParseSignalsStatus parse_signals(const std::vector<uint8_t>& data, std::vector<double>& values) const;
25 
26  void append_signal(const Signal& signal);
27  std::vector<Signal> get_signals() const;
28  uint32_t id() const;
29  uint8_t size() const;
30  const std::string& name() const;
31  void add_value_description(const std::string& signal_name, const std::vector<Signal::ValueDescription>&);
32 
33  virtual bool operator==(const Message& rhs) const;
34 
35 private:
36  uint32_t m_id;
37  std::string m_name;
38  uint8_t m_size;
39  std::string m_node;
40  std::vector<Signal> m_signals;
41 
42  friend std::ostream& operator<<(std::ostream& out, const Message& msg);
43 };
44 
45 std::ostream& operator<<(std::ostream& out, const Message& msg);
46 
47 }
48 
49 #endif // MESSAGE_HPP
Definition: message.hpp:11
Definition: signal.hpp:11