Import CAN generator from low-level-can-service
[src/low-level-can-generator.git] / src / openxc / diagnostic_message.cpp
1 #include "diagnostic_message.hpp"\r
2 \r
3 namespace openxc\r
4 {\r
5         std::string diagnostic_message::bus() const\r
6         {\r
7                 return bus_;\r
8         }\r
9         \r
10         std::uint32_t diagnostic_message::id() const\r
11         {\r
12                 return id_;\r
13         }\r
14         \r
15         std::uint32_t diagnostic_message::mode() const\r
16         {\r
17                 return mode_;\r
18         }\r
19         \r
20         float diagnostic_message::frequency() const\r
21         {\r
22                 return frequency_;\r
23         }\r
24         \r
25         std::uint32_t diagnostic_message::pid() const\r
26         {\r
27                 return pid_;\r
28         }\r
29         \r
30         std::string diagnostic_message::name() const\r
31         {\r
32                 return name_;\r
33         }\r
34         \r
35         std::string diagnostic_message::decoder() const\r
36         {\r
37                 return decoder_;\r
38         }\r
39         \r
40         std::string diagnostic_message::callback() const\r
41         {\r
42                 return callback_;\r
43         }\r
44         \r
45         void diagnostic_message::from_json(const nlohmann::json& j)\r
46         {\r
47                 bus_ = j.count("bus") ? j["bus"].get<std::string>() : "";\r
48                 id_ = j.count("id") ? j["id"].get<std::uint32_t>() : 0;\r
49                 mode_ = j.count("mode") ? j["mode"].get<std::uint32_t>() : 1;\r
50                 frequency_ = j.count("frequency") ? j["frequency"].get<float>() : 0;\r
51                 pid_ = j.count("pid") ? j["pid"].get<std::uint32_t>() : 0;\r
52                 name_ = j.count("name") ? j["name"].get<std::string>() : "";\r
53                 decoder_ = j.count("decoder") ? j["decoder"].get<std::string>() : "";\r
54                 callback_ = j.count("callback") ? j["callback"].get<std::string>() : "";\r
55         }\r
56 \r
57         nlohmann::json diagnostic_message::to_json() const\r
58         {\r
59                 nlohmann::json j;\r
60                 j["bus"] = bus_;\r
61                 j["id"] = id_;\r
62                 j["mode"] = mode_;\r
63                 j["frequency"] = frequency_;\r
64                 j["pid"] = pid_;\r
65                 j["name"] = name_;\r
66                 j["decoder"] = decoder_;\r
67                 j["callback"] = callback_;\r
68                 return j;\r
69         }\r
70 \r
71         void to_json(nlohmann::json& j, const diagnostic_message& p)\r
72         {\r
73                 j = p.to_json();\r
74         }\r
75 \r
76         void from_json(const nlohmann::json& j, diagnostic_message& p)\r
77         {\r
78                 p.from_json(j);\r
79         }\r
80 }\r