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