Adds CAN FD flag on message object.
[src/low-level-can-generator.git] / src / openxc / can_message.hpp
1 #pragma once\r
2 \r
3 #include <string>\r
4 #include <vector>\r
5 #include <json.hpp>\r
6 \r
7 #include "signal.hpp"\r
8 \r
9 namespace openxc\r
10 {\r
11         class can_message\r
12         {\r
13         private:\r
14                 std::string                                             id_;\r
15                 std::string                                             bus_;\r
16                 bool                                                    bit_numbering_inverted_;\r
17                 std::vector<signal>                             signals_;\r
18                 std::string                                             name_;\r
19                 std::vector<std::string>                handlers_;\r
20                 bool                                                    enabled_;\r
21                 float                                                   max_frequency_;\r
22                 float                                                   max_signal_frequency_;\r
23                 bool                                                    force_send_changed_;\r
24                 bool                                                    force_send_changed_signals_;\r
25                 bool                            is_fd_;\r
26 \r
27         public:\r
28                 std::string id() const;\r
29                 void id(const std::string& id);\r
30                 void is_fd(const bool is_fd);\r
31                 bool is_fd() const;\r
32                 std::string     bus() const;\r
33                 bool bit_numbering_inverted() const;\r
34                 const std::vector<signal>& signals() const;\r
35                 std::string name() const;\r
36                 std::vector<std::string> handlers() const;\r
37                 bool enabled() const;\r
38                 float max_frequency() const;\r
39                 float max_signal_frequency() const;\r
40                 bool force_send_changed() const;\r
41                 bool force_send_changed_signals() const;\r
42                 \r
43                 void from_json(const nlohmann::json& j);\r
44                 nlohmann::json to_json() const;\r
45                 \r
46                 std::uint32_t get_signals_count() const;\r
47         };\r
48 \r
49         void to_json(nlohmann::json& j, const can_message& p);\r
50         void from_json(const nlohmann::json& j, can_message& p);\r
51         void from_json(const nlohmann::json& j, can_message& p, const std::string& id);\r
52 }\r