2 #include "message_set.hpp"
\r
6 message_set::message_set()
\r
9 , bit_numbering_inverted_{false}
\r
10 , max_message_frequency_{0}
\r
11 , raw_can_mode_{can_bus_mode::off}
\r
17 , diagnostic_messages_{}
\r
24 std::string message_set::name() const
\r
29 std::string message_set::version() const
\r
34 bool message_set::bit_numbering_inverted() const
\r
36 return bit_numbering_inverted_;
\r
39 float message_set::max_message_frequency() const
\r
41 return max_message_frequency_;
\r
44 can_bus_mode message_set::raw_can_mode() const
\r
46 return raw_can_mode_;
\r
49 const std::vector<std::string>& message_set::parents() const
\r
54 const std::vector<std::string>& message_set::initializers() const
\r
56 return initializers_;
\r
59 const std::vector<std::string>& message_set::loopers() const
\r
64 const std::map<std::string, can_bus>& message_set::buses() const
\r
69 const std::vector<can_message>& message_set::messages() const
\r
74 const std::vector<diagnostic_message>& message_set::diagnostic_messages() const
\r
76 return diagnostic_messages_;
\r
79 const std::vector<mapping>& message_set::mappings() const
\r
84 const std::vector<std::string>& message_set::extra_sources() const
\r
86 return extra_sources_;
\r
89 const std::vector<command>& message_set::commands() const
\r
94 void message_set::from_json(const nlohmann::json& j)
\r
96 name_ = j["name"].get<std::string>();
\r
97 version_ = j["version"].get<std::string>();
\r
98 bit_numbering_inverted_ = j.count("bit_numbering_inverted") ? j["bit_numbering_inverted"].get<bool>() : false; // TODO: should be true by default if database-backed.
\r
99 max_message_frequency_ = j.count("max_message_frequency") ? j["max_message_frequency"].get<float>() : 0.0f;
\r
100 raw_can_mode_ = j.count("raw_can_mode") ? j["raw_can_mode"].get<can_bus_mode>() : can_bus_mode::off;
\r
101 parents_ = j.count("parents") ? j["parents"].get<std::vector<std::string>>() : std::vector<std::string>();
\r
102 initializers_ = j.count("initializers") ? j["initializers"].get<std::vector<std::string>>() : std::vector<std::string>();
\r
103 loopers_ = j.count("loopers") ? j["loopers"].get<std::vector<std::string>>() : std::vector<std::string>();
\r
104 buses_ = j.count("buses") ? j["buses"].get<std::map<std::string, can_bus>>() : std::map<std::string, can_bus>();
\r
105 //messages_ = j.count("messages") ? j["messages"].get<std::map<std::string, can_message>>() : std::map<std::string, can_message>();
\r
106 diagnostic_messages_ = j.count("diagnostic_messages") ? j["diagnostic_messages"].get<std::vector<diagnostic_message>>() : std::vector<diagnostic_message>();
\r
107 mappings_ = j.count("mappings") ? j["mappings"].get<std::vector<mapping>>() : std::vector<mapping>();
\r
108 extra_sources_ = j.count("extra_sources") ? j["extra_sources"].get<std::vector<std::string>>() : std::vector<std::string>();
\r
109 commands_ = j.count("commands") ? j["commands"].get<std::vector<command>>() : std::vector<command>();
\r
112 if (j.count("messages"))
\r
114 std::map<std::string, nlohmann::json> messages = j["messages"];
\r
115 for(const std::map<std::string, nlohmann::json>::value_type& m : messages)
\r
117 can_message cm = m.second.get<can_message>();
\r
119 messages_.push_back(cm);
\r
124 nlohmann::json message_set::to_json() const
\r
128 j["version"] = version_;
\r
129 j["bit_numbering_inverted"] = bit_numbering_inverted_;
\r
130 j["max_message_frequency"] = max_message_frequency_;
\r
131 j["raw_can_mode"] = raw_can_mode_;
\r
132 j["parents"] = parents_;
\r
133 j["initializers"] = initializers_;
\r
134 j["loopers"] = loopers_;
\r
135 j["buses"] = buses_;
\r
136 j["messages"] = messages_;
\r
137 j["diagnostic_messages"] = diagnostic_messages_;
\r
138 j["mappings"] = mappings_;
\r
139 j["extra_sources"] = extra_sources_;
\r
140 j["commands"] = commands_;
\r
144 void to_json(nlohmann::json& j, const message_set& p)
\r
149 void from_json(const nlohmann::json& j, message_set& p)
\r