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