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> signals() const;
33  uint32_t id() const;
34 
35  virtual bool operator==(const Message& rhs) const;
36 
37 private:
38  uint32_t m_id;
39  std::string m_name;
40  uint8_t m_size;
41  std::string m_node;
42  std::vector<Signal> m_signals;
43 
44  friend std::ostream& operator<<(std::ostream& os, const Message& dt);
45 };
46 
47 std::ostream& operator<<(std::ostream& out, const Message& msg);
48 
49 }
50 
51 #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