MRPT  2.0.1
Classes | Namespaces | Macros | Functions
config/CConfigFileBase.h File Reference
#include <mrpt/core/bits_math.h>
#include <mrpt/core/exceptions.h>
#include <mrpt/system/string_utils.h>
#include <string>
#include <type_traits>
#include <vector>
Include dependency graph for config/CConfigFileBase.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  mrpt::typemeta::TEnumType< ENUMTYPE >
 A helper class that can convert an enum value into its textual representation, and viceversa. More...
 
class  mrpt::config::CConfigFileBase
 This class allows loading and storing values and vectors of different types from a configuration text, which can be implemented as a ".ini" file, a memory-stored string, etc... More...
 

Namespaces

 mrpt
 This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
 
 mrpt::typemeta
 
 mrpt::config
 

Macros

#define MRPT_LOAD_CONFIG_VAR( variableName, variableType, configFileObject, sectionNameStr)
 An useful macro for loading variables stored in a INI-like file under a key with the same name that the variable, and assigning the variable the current value if not found in the config file. More...
 
#define MRPT_LOAD_CONFIG_VAR_CS(variableName, variableType)   MRPT_LOAD_CONFIG_VAR(variableName, variableType, c, s)
 Shortcut for MRPT_LOAD_CONFIG_VAR() for config file object named c and section string named s More...
 
#define MRPT_LOAD_CONFIG_VAR_DEGREES( variableName, configFileObject, sectionNameStr)
 Loads a double variable, stored as radians but entered in the INI-file as degrees. More...
 
#define MRPT_LOAD_CONFIG_VAR_DEGREESf( variableName, configFileObject, sectionNameStr)
 
#define MRPT_LOAD_CONFIG_VAR_DEGREES_NO_DEFAULT( variableName, configFileObject, sectionNameStr)
 Loads a double, required, variable, stored as radians but entered in the INI-file as degrees. More...
 
#define MRPT_LOAD_CONFIG_VAR_CAST( variableName, variableType, variableTypeCast, configFileObject, sectionNameStr)
 
#define MRPT_LOAD_HERE_CONFIG_VAR( variableName, variableType, targetVariable, configFileObject, sectionNameStr)
 
#define MRPT_LOAD_HERE_CONFIG_VAR_NO_DEFAULT( variableName, variableType, targetVariable, configFileObject, sectionNameStr)
 
#define MRPT_LOAD_HERE_CONFIG_VAR_DEGREES( variableName, variableType, targetVariable, configFileObject, sectionNameStr)
 
#define MRPT_LOAD_HERE_CONFIG_VAR_DEGREES_NO_DEFAULT( variableName, variableType, targetVariable, configFileObject, sectionNameStr)
 
#define MRPT_LOAD_CONFIG_VAR_NO_DEFAULT( variableName, variableType, configFileObject, sectionNameStr)
 
#define MRPT_LOAD_CONFIG_VAR_REQUIRED_CS(variableName, variableType)   MRPT_LOAD_CONFIG_VAR_NO_DEFAULT(variableName, variableType, c, s)
 Shortcut for MRPT_LOAD_CONFIG_VAR_NO_DEFAULT() for REQUIRED variables config file object named c and section string named s More...
 
#define MRPT_LOAD_CONFIG_VAR_CAST_NO_DEFAULT( variableName, variableType, variableTypeCast, configFileObject, sectionNameStr)
 
#define MRPT_LOAD_HERE_CONFIG_VAR_CAST( variableName, variableType, variableTypeCast, targetVariable, configFileObject, sectionNameStr)
 
#define MRPT_LOAD_HERE_CONFIG_VAR_CAST_NO_DEFAULT( variableName, variableType, variableTypeCast, targetVariable, configFileObject, sectionNameStr)
 
#define MRPT_SAVE_CONFIG_VAR(variableName, configFileObject, sectionNameStr)
 
#define MRPT_SAVE_CONFIG_VAR_DEGREES( variableName, configFileObject, sectionNameStr)
 
#define MRPT_SAVE_CONFIG_VAR_COMMENT(variableName, __comment)
 
#define MRPT_SAVE_CONFIG_VAR_DEGREES_COMMENT( __entryName, __variable, __comment)
 

Functions

int mrpt::config::MRPT_SAVE_NAME_PADDING ()
 Default padding sizes for macros MRPT_SAVE_CONFIG_VAR_COMMENT(), etc. More...
 
int mrpt::config::MRPT_SAVE_VALUE_PADDING ()
 

Macro Definition Documentation

◆ MRPT_LOAD_CONFIG_VAR

#define MRPT_LOAD_CONFIG_VAR (   variableName,
  variableType,
  configFileObject,
  sectionNameStr 
)
Value:
{ \
variableName = configFileObject.read_##variableType( \
sectionNameStr, #variableName, variableName); \
}

An useful macro for loading variables stored in a INI-like file under a key with the same name that the variable, and assigning the variable the current value if not found in the config file.

The variableType must be the suffix of "read_XXX" functions, i.e. int, bool,...

Definition at line 306 of file config/CConfigFileBase.h.

Referenced by mrpt::apps::MonteCarloLocalization_Base::do_pf_localization(), mrpt::maps::CRandomFieldGridMap2D::TInsertionOptionsCommon::internal_loadFromConfigFile_common(), mrpt::hwdrivers::CVelodyneScanner::loadConfig_sensorSpecific(), mrpt::kinematics::CVehicleVelCmd::TVelCmdParams::loadConfigFile(), mrpt::slam::TKLDParams::loadFromConfigFile(), mrpt::nav::CPTG_Holo_Blend::loadFromConfigFile(), mrpt::slam::CMetricMapBuilderICP::TConfigParams::loadFromConfigFile(), mrpt::hmtslam::CTopLCDetector_FabMap::TOptions::loadFromConfigFile(), mrpt::maps::CPointCloudFilterByDistance::TOptions::loadFromConfigFile(), mrpt::slam::CGridMapAligner::TConfigParams::loadFromConfigFile(), mrpt::bayes::TKF_options::loadFromConfigFile(), mrpt::slam::CIncrementalMapPartitioner::TOptions::loadFromConfigFile(), mrpt::slam::CICP::TConfigParams::loadFromConfigFile(), mrpt::nav::CHolonomicVFF::TOptions::loadFromConfigFile(), mrpt::maps::CReflectivityGridMap2D::TInsertionOptions::loadFromConfigFile(), mrpt::slam::CMetricMapBuilderRBPF::TConstructionOptions::loadFromConfigFile(), mrpt::maps::TMapGenericParams::loadFromConfigFile(), mrpt::vision::CFeatureExtraction::TOptions::loadFromConfigFile(), mrpt::maps::COctoMapBase< octree_t, octree_node_t >::TInsertionOptions::loadFromConfigFile(), mrpt::maps::CHeightGridMap2D::TInsertionOptions::loadFromConfigFile(), mrpt::nav::CHolonomicND::TOptions::loadFromConfigFile(), mrpt::bayes::CParticleFilter::TParticleFilterOptions::loadFromConfigFile(), mrpt::nav::CHolonomicFullEval::TOptions::loadFromConfigFile(), mrpt::slam::CRangeBearingKFSLAM2D::TOptions::loadFromConfigFile(), mrpt::maps::CMultiMetricMapPDF::TPredictionParams::loadFromConfigFile(), mrpt::nav::CWaypointsNavigator::TWaypointsNavigatorParams::loadFromConfigFile(), mrpt::maps::CBeaconMap::TInsertionOptions::loadFromConfigFile(), mrpt::nav::CPTG_DiffDrive_CollisionGridBased::loadFromConfigFile(), mrpt::slam::CRangeBearingKFSLAM::TOptions::loadFromConfigFile(), mrpt::maps::CColouredPointsMap::TColourOptions::loadFromConfigFile(), mrpt::maps::COccupancyGridMap3D::TInsertionOptions::loadFromConfigFile(), mrpt::maps::CPointsMap::TInsertionOptions::loadFromConfigFile(), mrpt::maps::COctoMapBase< octree_t, octree_node_t >::TLikelihoodOptions::loadFromConfigFile(), mrpt::maps::COccupancyGridMap3D::TLikelihoodOptions::loadFromConfigFile(), mrpt::maps::CPointsMap::TLikelihoodOptions::loadFromConfigFile(), mrpt::maps::CPointsMap::TRenderOptions::loadFromConfigFile(), mrpt::hmtslam::CHMTSLAM::TOptions::loadFromConfigFile(), mrpt::maps::COccupancyGridMap2D::TInsertionOptions::loadFromConfigFile(), mrpt::maps::COctoMap::TMapDefinition::loadFromConfigFile_map_specific(), mrpt::maps::CWirelessPowerGridMap2D::TMapDefinition::loadFromConfigFile_map_specific(), mrpt::maps::CColouredOctoMap::TMapDefinition::loadFromConfigFile_map_specific(), mrpt::maps::CHeightGridMap2D_MRF::TMapDefinition::loadFromConfigFile_map_specific(), mrpt::maps::CReflectivityGridMap2D::TMapDefinition::loadFromConfigFile_map_specific(), mrpt::maps::CHeightGridMap2D::TMapDefinition::loadFromConfigFile_map_specific(), mrpt::maps::CGasConcentrationGridMap2D::TMapDefinition::loadFromConfigFile_map_specific(), mrpt::maps::COccupancyGridMap3D::TMapDefinition::loadFromConfigFile_map_specific(), mrpt::maps::COccupancyGridMap2D::TMapDefinition::loadFromConfigFile_map_specific(), mrpt::apps::RawlogGrabberApp::run(), and mrpt::apps::ICP_SLAM_App_Base::run().

◆ MRPT_LOAD_CONFIG_VAR_CAST

#define MRPT_LOAD_CONFIG_VAR_CAST (   variableName,
  variableType,
  variableTypeCast,
  configFileObject,
  sectionNameStr 
)
Value:
{ \
variableName = static_cast<variableTypeCast>( \
configFileObject.read_##variableType( \
sectionNameStr, #variableName, variableName)); \
}

Definition at line 343 of file config/CConfigFileBase.h.

Referenced by mrpt::vision::CFeatureExtraction::TOptions::loadFromConfigFile().

◆ MRPT_LOAD_CONFIG_VAR_CAST_NO_DEFAULT

#define MRPT_LOAD_CONFIG_VAR_CAST_NO_DEFAULT (   variableName,
  variableType,
  variableTypeCast,
  configFileObject,
  sectionNameStr 
)
Value:
{ \
try \
{ \
variableName = static_cast<variableTypeCast>( \
configFileObject.read_##variableType( \
sectionNameStr, #variableName, variableName, true)); \
} \
catch (std::exception&) \
{ \
THROW_EXCEPTION(mrpt::format( \
"Value for '%s' not found in config file in section '%s'", \
static_cast<const char*>(#variableName), \
std::string(sectionNameStr).c_str())); \
} \
}
std::string std::string format(std::string_view fmt, ARGS &&... args)
Definition: format.h:26

Definition at line 423 of file config/CConfigFileBase.h.

Referenced by mrpt::hmtslam::CHMTSLAM::TOptions::loadFromConfigFile().

◆ MRPT_LOAD_CONFIG_VAR_CS

#define MRPT_LOAD_CONFIG_VAR_CS (   variableName,
  variableType 
)    MRPT_LOAD_CONFIG_VAR(variableName, variableType, c, s)

◆ MRPT_LOAD_CONFIG_VAR_DEGREES

#define MRPT_LOAD_CONFIG_VAR_DEGREES (   variableName,
  configFileObject,
  sectionNameStr 
)
Value:
{ \
variableName = mrpt::DEG2RAD(configFileObject.read_double( \
sectionNameStr, #variableName, mrpt::RAD2DEG(variableName))); \
}
constexpr double DEG2RAD(const double x)
Degrees to radians.
constexpr double RAD2DEG(const double x)
Radians to degrees.

Loads a double variable, stored as radians but entered in the INI-file as degrees.

Definition at line 320 of file config/CConfigFileBase.h.

Referenced by mrpt::slam::TKLDParams::loadFromConfigFile(), mrpt::slam::CMetricMapBuilderICP::TConfigParams::loadFromConfigFile(), mrpt::maps::CPointCloudFilterByDistance::TOptions::loadFromConfigFile(), mrpt::nav::CWaypointsNavigator::TWaypointsNavigatorParams::loadFromConfigFile(), mrpt::maps::CPointsMap::TInsertionOptions::loadFromConfigFile(), and mrpt::hmtslam::CHMTSLAM::TOptions::loadFromConfigFile().

◆ MRPT_LOAD_CONFIG_VAR_DEGREES_NO_DEFAULT

#define MRPT_LOAD_CONFIG_VAR_DEGREES_NO_DEFAULT (   variableName,
  configFileObject,
  sectionNameStr 
)
Value:
{ \
variableName = mrpt::DEG2RAD(configFileObject.read_double( \
sectionNameStr, #variableName, mrpt::RAD2DEG(variableName), \
true)); \
}
constexpr double DEG2RAD(const double x)
Degrees to radians.
constexpr double RAD2DEG(const double x)
Radians to degrees.

Loads a double, required, variable, stored as radians but entered in the INI-file as degrees.

Definition at line 335 of file config/CConfigFileBase.h.

◆ MRPT_LOAD_CONFIG_VAR_DEGREESf

#define MRPT_LOAD_CONFIG_VAR_DEGREESf (   variableName,
  configFileObject,
  sectionNameStr 
)
Value:
{ \
variableName = mrpt::DEG2RAD(configFileObject.read_float( \
sectionNameStr, #variableName, mrpt::RAD2DEG(variableName))); \
}
constexpr double DEG2RAD(const double x)
Degrees to radians.
constexpr double RAD2DEG(const double x)
Radians to degrees.

Definition at line 326 of file config/CConfigFileBase.h.

Referenced by mrpt::maps::COccupancyGridMap2D::TInsertionOptions::loadFromConfigFile().

◆ MRPT_LOAD_CONFIG_VAR_NO_DEFAULT

#define MRPT_LOAD_CONFIG_VAR_NO_DEFAULT (   variableName,
  variableType,
  configFileObject,
  sectionNameStr 
)
Value:
{ \
try \
{ \
variableName = configFileObject.read_##variableType( \
sectionNameStr, #variableName, variableName, true); \
} \
catch (std::exception&) \
{ \
THROW_EXCEPTION(mrpt::format( \
"Value for '%s' not found in config file in section '%s'", \
static_cast<const char*>(#variableName), \
std::string(sectionNameStr).c_str())); \
} \
}
std::string std::string format(std::string_view fmt, ARGS &&... args)
Definition: format.h:26

Definition at line 401 of file config/CConfigFileBase.h.

Referenced by IMPLEMENTS_SERIALIZABLE(), mrpt::kinematics::CVehicleVelCmd::TVelCmdParams::loadConfigFile(), mrpt::slam::CGridMapAligner::TConfigParams::loadFromConfigFile(), mrpt::bayes::CParticleFilter::TParticleFilterOptions::loadFromConfigFile(), mrpt::nav::CHolonomicFullEval::TOptions::loadFromConfigFile(), and mrpt::nav::CParameterizedTrajectoryGenerator::loadFromConfigFile().

◆ MRPT_LOAD_CONFIG_VAR_REQUIRED_CS

#define MRPT_LOAD_CONFIG_VAR_REQUIRED_CS (   variableName,
  variableType 
)    MRPT_LOAD_CONFIG_VAR_NO_DEFAULT(variableName, variableType, c, s)

◆ MRPT_LOAD_HERE_CONFIG_VAR

#define MRPT_LOAD_HERE_CONFIG_VAR (   variableName,
  variableType,
  targetVariable,
  configFileObject,
  sectionNameStr 
)

◆ MRPT_LOAD_HERE_CONFIG_VAR_CAST

#define MRPT_LOAD_HERE_CONFIG_VAR_CAST (   variableName,
  variableType,
  variableTypeCast,
  targetVariable,
  configFileObject,
  sectionNameStr 
)
Value:
targetVariable = \
static_cast<variableTypeCast>(configFileObject.read_##variableType( \
sectionNameStr, #variableName, targetVariable));

Definition at line 442 of file config/CConfigFileBase.h.

◆ MRPT_LOAD_HERE_CONFIG_VAR_CAST_NO_DEFAULT

#define MRPT_LOAD_HERE_CONFIG_VAR_CAST_NO_DEFAULT (   variableName,
  variableType,
  variableTypeCast,
  targetVariable,
  configFileObject,
  sectionNameStr 
)
Value:
{ \
try \
{ \
targetVariable = static_cast<variableTypeCast>( \
configFileObject.read_##variableType( \
sectionNameStr, #variableName, targetVariable, true)); \
} \
catch (std::exception&) \
{ \
THROW_EXCEPTION(mrpt::format( \
"Value for '%s' not found in config file in section '%s'", \
static_cast<const char*>(#variableName), \
std::string(sectionNameStr).c_str())); \
} \
}
std::string std::string format(std::string_view fmt, ARGS &&... args)
Definition: format.h:26

Definition at line 449 of file config/CConfigFileBase.h.

◆ MRPT_LOAD_HERE_CONFIG_VAR_DEGREES

#define MRPT_LOAD_HERE_CONFIG_VAR_DEGREES (   variableName,
  variableType,
  targetVariable,
  configFileObject,
  sectionNameStr 
)
Value:
targetVariable = mrpt::DEG2RAD(configFileObject.read_##variableType( \
sectionNameStr, #variableName, mrpt::RAD2DEG(targetVariable), false));
constexpr double DEG2RAD(const double x)
Degrees to radians.
constexpr double RAD2DEG(const double x)
Radians to degrees.

Definition at line 376 of file config/CConfigFileBase.h.

Referenced by mrpt::nav::CParameterizedTrajectoryGenerator::loadFromConfigFile().

◆ MRPT_LOAD_HERE_CONFIG_VAR_DEGREES_NO_DEFAULT

#define MRPT_LOAD_HERE_CONFIG_VAR_DEGREES_NO_DEFAULT (   variableName,
  variableType,
  targetVariable,
  configFileObject,
  sectionNameStr 
)
Value:
{ \
try \
{ \
targetVariable = \
mrpt::DEG2RAD(configFileObject.read_##variableType( \
sectionNameStr, #variableName, targetVariable, true)); \
} \
catch (std::exception&) \
{ \
THROW_EXCEPTION(mrpt::format( \
"Value for '%s' not found in config file in section '%s'", \
static_cast<const char*>(#variableName), \
std::string(sectionNameStr).c_str())); \
} \
}
std::string std::string format(std::string_view fmt, ARGS &&... args)
Definition: format.h:26

Definition at line 382 of file config/CConfigFileBase.h.

Referenced by IMPLEMENTS_SERIALIZABLE(), mrpt::kinematics::CVehicleVelCmd::TVelCmdParams::loadConfigFile(), mrpt::nav::CPTG_Holo_Blend::loadFromConfigFile(), mrpt::slam::CMetricMapBuilderRBPF::TConstructionOptions::loadFromConfigFile(), and mrpt::nav::CPTG_DiffDrive_CollisionGridBased::loadFromConfigFile().

◆ MRPT_LOAD_HERE_CONFIG_VAR_NO_DEFAULT

#define MRPT_LOAD_HERE_CONFIG_VAR_NO_DEFAULT (   variableName,
  variableType,
  targetVariable,
  configFileObject,
  sectionNameStr 
)
Value:
{ \
try \
{ \
targetVariable = configFileObject.read_##variableType( \
sectionNameStr, #variableName, targetVariable, true); \
} \
catch (std::exception&) \
{ \
THROW_EXCEPTION(mrpt::format( \
"Value for '%s' not found in config file in section '%s'", \
static_cast<const char*>(#variableName), \
std::string(sectionNameStr).c_str())); \
} \
}
std::string std::string format(std::string_view fmt, ARGS &&... args)
Definition: format.h:26

Definition at line 358 of file config/CConfigFileBase.h.

Referenced by mrpt::nav::CPTG_Holo_Blend::loadFromConfigFile(), mrpt::nav::CPTG_DiffDrive_CollisionGridBased::loadFromConfigFile(), and mrpt::nav::CParameterizedTrajectoryGenerator::loadFromConfigFile().

◆ MRPT_SAVE_CONFIG_VAR

#define MRPT_SAVE_CONFIG_VAR (   variableName,
  configFileObject,
  sectionNameStr 
)
Value:
{ \
configFileObject.write(sectionNameStr, #variableName, variableName); \
}

Definition at line 468 of file config/CConfigFileBase.h.

◆ MRPT_SAVE_CONFIG_VAR_COMMENT

#define MRPT_SAVE_CONFIG_VAR_COMMENT (   variableName,
  __comment 
)
Value:
{ \
c.write( \
s, #variableName, variableName, \
}
int MRPT_SAVE_NAME_PADDING()
Default padding sizes for macros MRPT_SAVE_CONFIG_VAR_COMMENT(), etc.
int MRPT_SAVE_VALUE_PADDING()

Definition at line 480 of file config/CConfigFileBase.h.

Referenced by mrpt::nav::CReactiveNavigationSystem::saveConfigFile(), mrpt::nav::CReactiveNavigationSystem3D::saveConfigFile(), mrpt::nav::CMultiObjMotionOpt_Scalarization::TParams::saveToConfigFile(), mrpt::maps::CPointCloudFilterByDistance::TOptions::saveToConfigFile(), mrpt::kinematics::CVehicleVelCmd::TVelCmdParams::saveToConfigFile(), mrpt::slam::CIncrementalMapPartitioner::TOptions::saveToConfigFile(), mrpt::slam::CICP::TConfigParams::saveToConfigFile(), mrpt::nav::CHolonomicVFF::TOptions::saveToConfigFile(), mrpt::maps::TMapGenericParams::saveToConfigFile(), mrpt::nav::CReactiveNavigationSystem::TReactiveNavigatorParams::saveToConfigFile(), mrpt::nav::CHolonomicND::TOptions::saveToConfigFile(), mrpt::bayes::CParticleFilter::TParticleFilterOptions::saveToConfigFile(), mrpt::nav::CHolonomicFullEval::TOptions::saveToConfigFile(), mrpt::nav::CWaypointsNavigator::TWaypointsNavigatorParams::saveToConfigFile(), mrpt::maps::COccupancyGridMap3D::TInsertionOptions::saveToConfigFile(), mrpt::nav::CAbstractPTGBasedReactive::TAbstractPTGNavigatorParams::saveToConfigFile(), mrpt::nav::CAbstractNavigator::TAbstractNavigatorParams::saveToConfigFile(), and mrpt::maps::COccupancyGridMap3D::TLikelihoodOptions::saveToConfigFile().

◆ MRPT_SAVE_CONFIG_VAR_DEGREES

#define MRPT_SAVE_CONFIG_VAR_DEGREES (   variableName,
  configFileObject,
  sectionNameStr 
)
Value:
{ \
configFileObject.write( \
sectionNameStr, #variableName, mrpt::RAD2DEG(variableName)); \
}
constexpr double RAD2DEG(const double x)
Radians to degrees.

Definition at line 473 of file config/CConfigFileBase.h.

◆ MRPT_SAVE_CONFIG_VAR_DEGREES_COMMENT

#define MRPT_SAVE_CONFIG_VAR_DEGREES_COMMENT (   __entryName,
  __variable,
  __comment 
)
Value:
{ \
c.write( \
s, __entryName, mrpt::RAD2DEG(__variable), \
}
int MRPT_SAVE_NAME_PADDING()
Default padding sizes for macros MRPT_SAVE_CONFIG_VAR_COMMENT(), etc.
int MRPT_SAVE_VALUE_PADDING()
constexpr double RAD2DEG(const double x)
Radians to degrees.

Definition at line 487 of file config/CConfigFileBase.h.

Referenced by mrpt::maps::CPointCloudFilterByDistance::TOptions::saveToConfigFile(), mrpt::kinematics::CVehicleVelCmd::TVelCmdParams::saveToConfigFile(), and mrpt::nav::CWaypointsNavigator::TWaypointsNavigatorParams::saveToConfigFile().




Page generated by Doxygen 1.8.14 for MRPT 2.0.1 Git: 0fef1a6d7 Fri Apr 3 23:00:21 2020 +0200 at vie abr 3 23:20:28 CEST 2020