16#ifndef CONFIGURATION_MANAGER_HPP
17#define CONFIGURATION_MANAGER_HPP
22#include <rclcpp/rclcpp.hpp>
25#include "yaml-cpp/yaml.h"
43 std::map<std::string, YAML::Node> devices_;
57 std::optional<T>
get_entry(std::string device_name, std::string entry_name)
61 auto config = devices_.at(device_name);
62 return std::optional<T>(config[entry_name.c_str()].as<T>());
64 catch (
const std::exception & e)
67 rclcpp::get_logger(
"yaml-cpp"),
"Failed to load entry \"%s\" for device \"%s\" ",
68 entry_name.c_str(), device_name.c_str());
85 auto config = devices_.at(device_name);
86 result = YAML::Dump(config);
88 catch (
const std::exception & e)
90 std::cerr << e.what() <<
'\n';
Manager for Bus Configuration.
Definition configuration_manager.hpp:39
ConfigurationManager(std::string &file)
Definition configuration_manager.hpp:46
void init_config()
Initialises the configuration.
std::string dump_device(std::string device_name)
Dump device string.
Definition configuration_manager.hpp:80
uint32_t get_all_devices(std::vector< std::string > &devices)
Returns all device names.
std::optional< T > get_entry(std::string device_name, std::string entry_name)
Gets a configuration entry for a specific device.
Definition configuration_manager.hpp:57
Definition configuration_manager.hpp:28