Import CAN generator from low-level-can-service
[src/low-level-can-generator.git] / src / openxc / diagnostic_message.hpp
1 #pragma once\r
2 \r
3 #include <string>\r
4 #include <json.hpp>\r
5 \r
6 namespace openxc\r
7 {\r
8         class diagnostic_message\r
9         {\r
10         private:\r
11                 std::string             bus_;\r
12                 std::uint32_t   id_;\r
13                 std::uint32_t   mode_;\r
14                 float                   frequency_;\r
15                 std::uint32_t   pid_;\r
16                 std::string             name_;\r
17                 std::string             decoder_;\r
18                 std::string             callback_;\r
19         public:\r
20                 std::string bus() const;\r
21                 std::uint32_t id() const;\r
22                 std::uint32_t mode() const;\r
23                 float frequency() const;\r
24                 std::uint32_t pid() const;\r
25                 std::string name() const;\r
26                 std::string decoder() const;\r
27                 std::string callback() const;\r
28                 \r
29                 void from_json(const nlohmann::json& j);\r
30                 nlohmann::json to_json() const;\r
31         };\r
32 \r
33         void to_json(nlohmann::json& j, const diagnostic_message& p);\r
34         void from_json(const nlohmann::json& j, diagnostic_message& p);\r
35 }\r