#include "can-message-set.hpp"
+#include "../can/can-message-definition.hpp"
+
can_message_set_t::can_message_set_t(
uint8_t index,
- const std::string& name,
- uint8_t can_bus_count,
- unsigned short can_message_count,
- unsigned short can_signal_count,
- unsigned short can_command_count,
- unsigned short obd2_signal_count,
- std::vector<std::shared_ptr<can_message_definition_t> > can_messages_definition)
+ const std::string name,
+ const std::vector<std::shared_ptr<can_message_definition_t> >& can_messages_definition,
+ const std::vector<std::shared_ptr<diagnostic_message_t> >& diagnostic_messages)
: index_{index}
, name_{name}
- , can_bus_count_{can_bus_count}
- , can_message_count_{can_message_count}
- , can_signal_count_{can_signal_count}
- , can_command_count_{can_command_count}
- , obd2_signal_count_{obd2_signal_count}
- , can_messages_definition_{can_messages_definition}
-{
- for(auto& cmd : can_messages_definition_)
- {
- cmd->set_parent(std::make_shared<can_message_set_t>(*this));
- }
-}
+ , can_messages_definition_{std::move(can_messages_definition)}
+ , diagnostic_messages_{std::move(diagnostic_messages)}
+{}
/// @brief Return vector holding all message definition handled by this message set.
-std::vector<std::shared_ptr<can_message_definition_t> > can_message_set_t::get_can_message_definition()
+std::vector<std::shared_ptr<can_message_definition_t> >& can_message_set_t::get_can_message_definition()
{
return can_messages_definition_;
}
-std::vector<std::shared_ptr<can_signal_t> > can_message_set_t::get_can_signals() const
+std::vector<std::shared_ptr<can_signal_t> > can_message_set_t::get_all_can_signals() const
{
std::vector<std::shared_ptr<can_signal_t> > can_signals;
for(const auto& cmd: can_messages_definition_)
{
- std::vector<std::shared_ptr<can_signal_t> > cmd_signals = cmd->get_can_signals();
+ std::vector<std::shared_ptr<can_signal_t> >& cmd_signals = cmd->get_can_signals();
can_signals.insert( can_signals.end(),
cmd_signals.begin(),
cmd_signals.end()
}
return can_signals;
+}
+
+std::vector<std::shared_ptr<diagnostic_message_t> >& can_message_set_t::get_diagnostic_messages()
+{
+ return diagnostic_messages_;
}
\ No newline at end of file