dbc ..
Loading...
Searching...
No Matches
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
10namespace Libdbc {
11struct 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
35private:
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
45std::ostream& operator<<(std::ostream& out, const Message& msg);
46
47}
48
49#endif // MESSAGE_HPP
Definition message.hpp:11
Definition signal.hpp:11