{
can_bus_t& can_bus_manager = configuration_t::instance().get_can_bus_manager();
+ can_bus_manager.set_can_devices();
can_bus_manager.start_threads();
/// Initialize Diagnostic manager that will handle obd2 requests.
void can_bus_t::set_can_devices()
{
can_devices_ = conf_file_.get_devices_name();
+
+ if(can_devices_.empty())
+ {
+ ERROR(binder_interface, "%s: No mapping found in config file: '%s'. Check it that it have a CANbus-mapping section.",
+ __FUNCTION__, conf_file_.filepath().c_str());
+ }
}
-int can_bus_t::get_can_device_index(std::string bus_name) const
+int can_bus_t::get_can_device_index(const std::string& bus_name) const
{
int i = 0;
for(const auto& d: can_devices_)
return i;
}
-std::string can_bus_t::get_can_device_name(std::string id_name) const
+const std::string can_bus_t::get_can_device_name(const std::string& id_name) const
{
std::string ret;
for(const auto& d: can_devices_)
can_bus_t(can_bus_t&&);
void set_can_devices();
- int get_can_device_index(std::string bus_name) const;
- std::string get_can_device_name(std::string id_name) const;
+ int get_can_device_index(const std::string& bus_name) const;
+ const std::string get_can_device_name(const std::string& id_name) const;
void start_threads();
void stop_threads();
{
/// @brief constructor using path to file
config_parser_t::config_parser_t(std::string conf_file)
- : config_content_{}
+ : filepath_{conf_file}, config_content_{}
{
config_content_.read_file(conf_file);
}
+ const std::string& config_parser_t::filepath() const
+ {
+ return filepath_;
+ }
+
/// @brief read the conf_file_ and parse it into an INIReader object
/// to search into later.
bool config_parser_t::check_conf()
class config_parser_t
{
private:
+ const std::string filepath_; /*!< filepath_ - Path to the config file*/
ini_config config_content_; /*!< config_content_ - Parsed content of INI file.*/
public:
config_parser_t(const config_parser_t&) = default;
config_parser_t(std::string conf_file);
+ const std::string& filepath() const;
bool check_conf();
const std::vector<std::pair<std::string, std::string> > get_devices_name();
};