本文整理汇总了C++中mrpt::utils::CConfigFileBase::read_double方法的典型用法代码示例。如果您正苦于以下问题:C++ CConfigFileBase::read_double方法的具体用法?C++ CConfigFileBase::read_double怎么用?C++ CConfigFileBase::read_double使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mrpt::utils::CConfigFileBase
的用法示例。
在下文中一共展示了CConfigFileBase::read_double方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: format
/*-------------------------------------------------------------
loadExclusionAreas
-------------------------------------------------------------*/
void C2DRangeFinderAbstract::loadCommonParams(
const mrpt::utils::CConfigFileBase &configSource,
const std::string &iniSection )
{
// Params:
m_showPreview = configSource.read_bool(iniSection, "preview", false );
// Load exclusion areas:
m_lstExclusionPolys.clear();
m_lstExclusionAngles.clear();
unsigned int N = 1;
for(;;)
{
vector<double> x,y, z_range;
configSource.read_vector( iniSection, format("exclusionZone%u_x",N), vector<double>(0), x);
configSource.read_vector( iniSection, format("exclusionZone%u_y",N), vector<double>(0), y);
configSource.read_vector( iniSection, format("exclusionZone%u_z",N++), vector<double>(0), z_range);
if (!x.empty() && !y.empty())
{
ASSERT_(x.size()==y.size())
CObservation2DRangeScan::TListExclusionAreasWithRanges::value_type dat;
dat.first.setAllVertices(x,y);
if (z_range.empty())
{
dat.second.first = -std::numeric_limits<double>::max();
dat.second.second = std::numeric_limits<double>::max();
}
else
{
ASSERTMSG_(z_range.size()==2,"exclusionZone%u_z must be a range [z_min z_max]");
ASSERT_(z_range[0]<=z_range[1]);
dat.second.first = z_range[0];
dat.second.second = z_range[1];
}
m_lstExclusionPolys.push_back(dat);
}
else break;
}
// Load forbiden angles;
N = 1;
for(;;)
{
const double ini = DEG2RAD( configSource.read_double( iniSection, format("exclusionAngles%u_ini",N), -1000 ) );
const double end = DEG2RAD( configSource.read_double( iniSection, format("exclusionAngles%u_end",N++), -1000 ) );
if (ini>-M_PI && end>-M_PI)
m_lstExclusionAngles.push_back(make_pair(ini,end));
else break;
}
}
示例2: loadConfig_sensorSpecific
/* -----------------------------------------------------
loadConfig_sensorSpecific
----------------------------------------------------- */
void CGPSInterface::loadConfig_sensorSpecific(
const mrpt::utils::CConfigFileBase &configSource,
const std::string &iniSection )
{
#ifdef MRPT_OS_WINDOWS
m_COMname = configSource.read_string(iniSection, "COM_port_WIN", m_COMname, true );
#else
m_COMname = configSource.read_string(iniSection, "COM_port_LIN", m_COMname, true );
#endif
m_COMbauds = configSource.read_int( iniSection, "baudRate",m_COMbauds, true );
m_customInit = configSource.read_string( iniSection, "customInit", m_customInit, false );
m_sensorPose.x( configSource.read_float( iniSection, "pose_x",0, false ) );
m_sensorPose.y( configSource.read_float( iniSection, "pose_y",0, false ) );
m_sensorPose.z( configSource.read_float( iniSection, "pose_z",0, false ) );
m_JAVAD_rtk_src_port = configSource.read_string(iniSection, "JAVAD_rtk_src_port",m_JAVAD_rtk_src_port );
m_JAVAD_rtk_src_baud = configSource.read_int(iniSection, "JAVAD_rtk_src_baud",m_JAVAD_rtk_src_baud );
m_JAVAD_rtk_format = configSource.read_string(iniSection,"JAVAD_rtk_format", m_JAVAD_rtk_format );
m_useAIMMode = configSource.read_bool( iniSection,"JAVAD_useAIMMode", m_useAIMMode );
m_data_period = 1.0/configSource.read_double( iniSection,"outputRate", m_data_period );
}
示例3: loadConfig_sensorSpecific
/* -----------------------------------------------------
loadConfig_sensorSpecific
----------------------------------------------------- */
void CGPSInterface::loadConfig_sensorSpecific(
const mrpt::utils::CConfigFileBase &configSource,
const std::string &iniSection )
{
m_parser = configSource.read_enum<CGPSInterface::PARSERS>(iniSection,"parser",m_parser,false /*Allow default values*/);
m_raw_dump_file_prefix = configSource.read_string(iniSection,"raw_dump_file_prefix",m_raw_dump_file_prefix,false /*Allow default values*/);
#ifdef MRPT_OS_WINDOWS
m_COMname = configSource.read_string(iniSection, "COM_port_WIN", m_COMname, true );
#else
m_COMname = configSource.read_string(iniSection, "COM_port_LIN", m_COMname, true );
#endif
m_COMbauds = configSource.read_int( iniSection, "baudRate",m_COMbauds, true );
// legacy custom cmds:
m_customInit = configSource.read_string( iniSection, "customInit", m_customInit, false );
// new custom cmds:
m_custom_cmds_delay = configSource.read_float( iniSection, "custom_cmds_delay",m_custom_cmds_delay );
m_custom_cmds_append_CRLF = configSource.read_bool( iniSection, "custom_cmds_append_CRLF",m_custom_cmds_append_CRLF);
// Load as many strings as found on the way:
m_setup_cmds.clear();
for (int i=1; true; i++)
{
std::string sLine = configSource.read_string(iniSection, mrpt::format("setup_cmd%i",i),std::string() );
sLine = mrpt::system::trim( sLine );
if (sLine.empty())
break;
m_setup_cmds.push_back(sLine);
}
m_shutdown_cmds.clear();
for (int i=1; true; i++)
{
std::string sLine = configSource.read_string(iniSection, mrpt::format("shutdown_cmd%i",i),std::string() );
sLine = mrpt::system::trim( sLine );
if (sLine.empty())
break;
m_shutdown_cmds.push_back(sLine);
}
m_sensorPose.setFromValues(
configSource.read_float(iniSection,"pose_x",0),
configSource.read_float(iniSection,"pose_y",0),
configSource.read_float(iniSection,"pose_z",0),
DEG2RAD( configSource.read_float(iniSection,"pose_yaw",0) ),
DEG2RAD( configSource.read_float(iniSection,"pose_pitch",0) ),
DEG2RAD( configSource.read_float(iniSection,"pose_roll",0) )
);
m_JAVAD_rtk_src_port = configSource.read_string(iniSection, "JAVAD_rtk_src_port",m_JAVAD_rtk_src_port );
m_JAVAD_rtk_src_baud = configSource.read_int(iniSection, "JAVAD_rtk_src_baud",m_JAVAD_rtk_src_baud );
m_JAVAD_rtk_format = configSource.read_string(iniSection,"JAVAD_rtk_format", m_JAVAD_rtk_format );
m_topcon_useAIMMode = configSource.read_bool( iniSection,"JAVAD_useAIMMode", m_topcon_useAIMMode );
m_topcon_data_period = 1.0/configSource.read_double( iniSection,"outputRate", m_topcon_data_period );
}
示例4: loadFromConfigFile
/** Load all the params from a config source, in the format described in saveToConfigFile()
*/
void TMultiResDescOptions::loadFromConfigFile( const mrpt::utils::CConfigFileBase &cfg, const std::string §ion )
{
basePSize = cfg.read_double(section,"basePSize", 23, false );
comLScl = cfg.read_int(section,"comLScl", 0, false );
comHScl = cfg.read_int(section,"comHScl", 6, false );
sg1 = cfg.read_double(section,"sg1", 0.5, false );
sg2 = cfg.read_double(section,"sg2", 7.5, false );
sg3 = cfg.read_double(section,"sg3", 8.0, false );
computeDepth = cfg.read_bool(section,"computeDepth", true, false );
blurImage = cfg.read_bool(section,"blurImage", true, false );
fx = cfg.read_double(section,"fx",0.0, false);
cx = cfg.read_double(section,"cx",0.0, false);
cy = cfg.read_double(section,"cy",0.0, false);
baseline = cfg.read_double(section,"baseline",0.0, false);
computeHashCoeffs = cfg.read_bool(section,"computeHashCoeffs", false, false );
cfg.read_vector(section,"scales",vector<double>(),scales,false);
if(scales.size() < 1)
{
scales.resize(7);
scales[0] = 0.5;
scales[1] = 0.8;
scales[2] = 1.0;
scales[3] = 1.2;
scales[4] = 1.5;
scales[5] = 1.8;
scales[6] = 2.0;
} // end-if
}
示例5: loadConfig
/** Loads the generic settings common to any sensor (See CGenericSensor), then call to "loadConfig_sensorSpecific"
* \exception This method throws an exception with a descriptive message if some critical parameter is missing or has an invalid value.
*/
void CGenericSensor::loadConfig(
const mrpt::utils::CConfigFileBase &cfg,
const std::string § )
{
MRPT_START
m_process_rate = cfg.read_double(sect,"process_rate",0 ); // Leave it to 0 so rawlog-grabber can detect if it's not set by the user.
m_max_queue_len = static_cast<size_t>(cfg.read_int(sect,"max_queue_len",int(m_max_queue_len)));
m_grab_decimation = static_cast<size_t>(cfg.read_int(sect,"grab_decimation",int(m_grab_decimation)));
m_sensorLabel = cfg.read_string( sect, "sensorLabel", m_sensorLabel );
m_grab_decimation_counter = 0;
loadConfig_sensorSpecific(cfg,sect);
MRPT_END
}
示例6: loadConfig_sensorSpecific
/*-------------------------------------------------------------
loadConfig
-------------------------------------------------------------*/
void CActivMediaRobotBase::loadConfig_sensorSpecific(
const mrpt::utils::CConfigFileBase &configSource,
const std::string &iniSection )
{
#ifdef MRPT_OS_WINDOWS
m_com_port = configSource.read_string(iniSection,"robotPort_WIN",m_com_port,true);
#else
m_com_port = configSource.read_string(iniSection,"robotPort_LIN",m_com_port,true);
#endif
m_robotBaud = configSource.read_int(iniSection, "robotBaud", m_robotBaud, true );
m_enableSonars = configSource.read_bool(iniSection, "enableSonars", m_enableSonars );
m_enableJoyControl = configSource.read_bool(iniSection, "joystick_control", m_enableJoyControl );
m_joy_max_v = configSource.read_float(iniSection, "joystick_max_v", m_joy_max_v );
m_joy_max_w = DEG2RAD( configSource.read_float(iniSection, "joystick_max_w_degps", RAD2DEG(m_joy_max_w) ) );
m_capture_rate = configSource.read_double(iniSection, "capture_rate", m_capture_rate );
}
示例7: init
void CCascadeClassifierDetection::init(const mrpt::utils::CConfigFileBase &config)
{
#if MRPT_HAS_OPENCV && MRPT_OPENCV_VERSION_NUM>=0x200
// load configuration values
m_options.cascadeFileName = config.read_string("CascadeClassifier","cascadeFilename","");
m_options.scaleFactor = config.read_double("DetectionOptions","scaleFactor",1.1);
m_options.minNeighbors = config.read_int("DetectionOptions","minNeighbors",3);
m_options.flags = config.read_int("DetectionOptions","flags",0);
m_options.minSize = config.read_int("DetectionOptions","minSize",30);
m_cascade = new CascadeClassifier();
// Load cascade classifier from file
CASCADE->load( m_options.cascadeFileName );
// Check if cascade is empty
if ( CASCADE->empty() )
throw std::runtime_error("Incorrect cascade file.");
#endif
}
示例8: loadConfig_sensorSpecific
void Camera::loadConfig_sensorSpecific(const mrpt::utils::CConfigFileBase & config, const std::string & sectionName) {
LOG_CAMERA(DEBUG3) << "Reading config file..." << endl;
GRID_SIZE = config.read_int(sectionName, "grid_size", 10);
PERCENT_FILLED = config.read_double(sectionName, "percent_filled", .3);
THRESHOLD = config.read_int(sectionName, "threshold", 20);
ERODE_AMOUNT = config.read_int(sectionName, "erode_amount", 2);
HSV_VECTOR = config.read_int(sectionName, "hsv_vector", 1);
LOG_CAMERA(DEBUG3) << "Grid size: " << GRID_SIZE << endl;
LOG_CAMERA(DEBUG3) << "Percent filled: " << PERCENT_FILLED << endl;
LOG_CAMERA(DEBUG3) << "Threshold: " << THRESHOLD << endl;
LOG_CAMERA(DEBUG3) << "Erode amount: " << ERODE_AMOUNT << endl;
LOG_CAMERA(DEBUG3) << "HSV vector: " << HSV_VECTOR << endl;
if(GRID_SIZE <= 0) LOG_CAMERA(FATAL) << "Grid size is negative or zero" << endl;
if(PERCENT_FILLED <= 0) LOG_CAMERA(FATAL) << "Percent filled is negative or 0" << endl;
if(PERCENT_FILLED > 1.0) LOG_CAMERA(FATAL) << "Percent filled is greater than 1" << endl;
if(THRESHOLD < 0) LOG_CAMERA(FATAL) << "Threshold is negative, must be between 0 and 255" << endl;
if(THRESHOLD > 255) LOG_CAMERA(FATAL) << "Threshold is too high, must be between 0 and 255" << endl;
if(ERODE_AMOUNT < 0) LOG_CAMERA(FATAL) << "Erode amount must be greater than 0" << endl;
if(HSV_VECTOR < 0) LOG_CAMERA(FATAL) << "hsv vector is negative, must be between 0 and 3" << endl;
if(HSV_VECTOR > 3) LOG_CAMERA(FATAL) << "hsv vector is too high, must be between 0 and 3" << endl;
}