2 #include "message_set.hpp"
\r
6 message_set::message_set()
\r
8 , bit_numbering_inverted_{false}
\r
9 , max_message_frequency_{0}
\r
10 , raw_can_mode_{can_bus_mode::off}
\r
16 , diagnostic_messages_{}
\r
23 std::string message_set::name() const
\r
28 bool message_set::bit_numbering_inverted() const
\r
30 return bit_numbering_inverted_;
\r
33 float message_set::max_message_frequency() const
\r
35 return max_message_frequency_;
\r
38 can_bus_mode message_set::raw_can_mode() const
\r
40 return raw_can_mode_;
\r
43 const std::vector<std::string>& message_set::parents() const
\r
48 const std::vector<std::string>& message_set::initializers() const
\r
50 return initializers_;
\r
53 const std::vector<std::string>& message_set::loopers() const
\r
58 const std::map<std::string, can_bus>& message_set::buses() const
\r
63 const std::vector<can_message>& message_set::messages() const
\r
68 const std::vector<diagnostic_message>& message_set::diagnostic_messages() const
\r
70 return diagnostic_messages_;
\r
73 const std::vector<mapping>& message_set::mappings() const
\r
78 const std::vector<std::string>& message_set::extra_sources() const
\r
80 return extra_sources_;
\r
83 const std::vector<command>& message_set::commands() const
\r
88 void message_set::from_json(const nlohmann::json& j)
\r
90 name_ = j["name"].get<std::string>();
\r
91 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
92 max_message_frequency_ = j.count("max_message_frequency") ? j["max_message_frequency"].get<float>() : 0.0f;
\r
93 raw_can_mode_ = j.count("raw_can_mode") ? j["raw_can_mode"].get<can_bus_mode>() : can_bus_mode::off;
\r
94 parents_ = j.count("parents") ? j["parents"].get<std::vector<std::string>>() : std::vector<std::string>();
\r
95 initializers_ = j.count("initializers") ? j["initializers"].get<std::vector<std::string>>() : std::vector<std::string>();
\r
96 loopers_ = j.count("loopers") ? j["loopers"].get<std::vector<std::string>>() : std::vector<std::string>();
\r
97 buses_ = j.count("buses") ? j["buses"].get<std::map<std::string, can_bus>>() : std::map<std::string, can_bus>();
\r
98 //messages_ = j.count("messages") ? j["messages"].get<std::map<std::string, can_message>>() : std::map<std::string, can_message>();
\r
99 diagnostic_messages_ = j.count("diagnostic_messages") ? j["diagnostic_messages"].get<std::vector<diagnostic_message>>() : std::vector<diagnostic_message>();
\r
100 mappings_ = j.count("mappings") ? j["mappings"].get<std::vector<mapping>>() : std::vector<mapping>();
\r
101 extra_sources_ = j.count("extra_sources") ? j["extra_sources"].get<std::vector<std::string>>() : std::vector<std::string>();
\r
102 commands_ = j.count("commands") ? j["commands"].get<std::vector<command>>() : std::vector<command>();
\r
105 if (j.count("messages"))
\r
107 std::map<std::string, nlohmann::json> messages = j["messages"];
\r
108 for(const std::map<std::string, nlohmann::json>::value_type& m : messages)
\r
110 can_message cm = m.second.get<can_message>();
\r
112 messages_.push_back(cm);
\r
117 nlohmann::json message_set::to_json() const
\r
120 j["name_"] = name_;
\r
121 j["bit_numbering_inverted"] = bit_numbering_inverted_;
\r
122 j["max_message_frequency"] = max_message_frequency_;
\r
123 j["raw_can_mode"] = raw_can_mode_;
\r
124 j["parents"] = parents_;
\r
125 j["initializers"] = initializers_;
\r
126 j["loopers"] = loopers_;
\r
127 j["buses"] = buses_;
\r
128 j["messages"] = messages_;
\r
129 j["diagnostic_messages"] = diagnostic_messages_;
\r
130 j["mappings"] = mappings_;
\r
131 j["extra_sources"] = extra_sources_;
\r
132 j["commands"] = commands_;
\r
136 void to_json(nlohmann::json& j, const message_set& p)
\r
141 void from_json(const nlohmann::json& j, message_set& p)
\r