dbc  ..
message.hpp
1 #ifndef __MESSAGE_HPP__
2 #define __MESSAGE_HPP__
3 
4 #include <array>
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  explicit Message(uint32_t id, const std::string& name, uint8_t size, const std::string& node);
14 
15  enum class ParseSignalsStatus {
16  Success,
17  ErrorMessageToLong,
18  ErrorBigEndian,
19  ErrorUnknownID,
20  ErrorInvalidConversion,
21  };
22 
29  ParseSignalsStatus parseSignals(const std::vector<uint8_t>& data, std::vector<double>& values) const;
30 
31  void appendSignal(const Signal& signal);
32  const std::vector<Signal>& getSignals() const;
33  uint32_t id() const;
34  const std::string& name() const {
35  return m_name;
36  }
37  void addValueDescription(const std::string& signal_name, const std::vector<Signal::SignalValueDescriptions>&);
38 
39  virtual bool operator==(const Message& rhs) const;
40 
41 private:
42  uint32_t m_id;
43  std::string m_name;
44  uint8_t m_size;
45  std::string m_node;
46  std::vector<Signal> m_signals;
47 
48  friend std::ostream& operator<<(std::ostream& os, const Message& dt);
49 };
50 
51 std::ostream& operator<<(std::ostream& out, const Message& msg);
52 
53 }
54 
55 #endif // __MESSAGE_HPP__
Definition: message.hpp:11
ParseSignalsStatus parseSignals(const std::vector< uint8_t > &data, std::vector< double > &values) const
parseSignals
Definition: signal.hpp:10