本文整理汇总了C++中yarp::os::Searchable::check方法的典型用法代码示例。如果您正苦于以下问题:C++ Searchable::check方法的具体用法?C++ Searchable::check怎么用?C++ Searchable::check使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类yarp::os::Searchable
的用法示例。
在下文中一共展示了Searchable::check方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: printf
bool yarp::dev::OpenNI2DeviceDriverClient::open(yarp::os::Searchable& config){
string localPortPrefix,remotePortPrefix;
inUserSkeletonPort = outPort = NULL;
skeletonData = new OpenNI2SkeletonData();
if(config.check("localName")) localPortPrefix = config.find("localName").asString();
else {
printf("\t- Error: localName element not found in PolyDriver.\n");
return false;
}
if(config.check("remoteName")) remotePortPrefix = config.find("remoteName").asString();
else {
printf("\t- Error: remoteName element not found in PolyDriver.\n");
return false;
}
string remotePortIn = remotePortPrefix+":i";
if(!NetworkBase::exists(remotePortIn.c_str())){
printf("\t- Error: remote port not found. (%s)\n\t Check if OpenNI2DeviceDriverServer is running.\n",remotePortIn.c_str());
return false;
}
if(!connectPorts(remotePortPrefix,localPortPrefix)) {
printf("\t- Error: Could not connect or create ports.\n");
return false;
}
inUserSkeletonPort->useCallback(*this);
inDepthFramePort->useCallback(*this);
inImageFramePort->useCallback(*this);
return true;
}
示例2: sensorScopedName
bool yarp::dev::GazeboYarpMultiCameraDriver::open(yarp::os::Searchable& config)
{
//Get gazebo pointers
std::string sensorScopedName(config.find(YarpScopedName.c_str()).asString().c_str());
m_parentSensor = (gazebo::sensors::MultiCameraSensor*)GazeboYarpPlugins::Handler::getHandler()->getSensor(sensorScopedName);
if (!m_parentSensor) {
yError() << "GazeboYarpMultiCameraDriver Error: camera sensor was not found";
return false;
}
m_vertical_flip = config.check("vertical_flip");
m_horizontal_flip = config.check("horizontal_flip");
m_display_timestamp = config.check("display_timestamp");
m_display_time_box = config.check("display_time_box");
m_vertical = config.check("vertical");
#if GAZEBO_MAJOR_VERSION >= 7
m_camera_count = this->m_parentSensor->CameraCount();
#else
m_camera_count = this->m_parentSensor->GetCameraCount();
#endif
for (unsigned int i = 0; i < m_camera_count; ++i) {
#if GAZEBO_MAJOR_VERSION >= 7
m_camera.push_back(m_parentSensor->Camera(i));
#else
m_camera.push_back(m_parentSensor->GetCamera(i));
#endif
if(m_camera[i] == NULL) {
yError() << "GazeboYarpMultiCameraDriver: camera" << i << "pointer is not valid";
return false;
}
#if GAZEBO_MAJOR_VERSION >= 7
m_width.push_back(m_camera[i]->ImageWidth());
m_height.push_back(m_camera[i]->ImageHeight());
#else
m_width.push_back(m_camera[i]->GetImageWidth());
m_height.push_back(m_camera[i]->GetImageHeight());
#endif
m_max_width = std::max(m_max_width, m_width[i]);
m_max_height = std::max(m_max_height, m_height[i]);
m_bufferSize.push_back(3 * m_width[i] * m_height[i]);
m_dataMutex.push_back(new yarp::os::Semaphore());
m_dataMutex[i]->wait();
m_imageBuffer.push_back(new unsigned char[m_bufferSize[i]]);
memset(m_imageBuffer[i], 0x00, m_bufferSize[i]);
m_dataMutex[i]->post();
m_lastTimestamp.push_back(yarp::os::Stamp());
}
// Connect all the cameras only when everything is set up
for (unsigned int i = 0; i < m_camera_count; ++i) {
this->m_updateConnection.push_back(this->m_camera[i]->ConnectNewImageFrame(boost::bind(&yarp::dev::GazeboYarpMultiCameraDriver::captureImage, this, i, _1, _2, _3, _4, _5)));
}
return true;
}
示例3: open
bool BatteryWrapper::open(yarp::os::Searchable &config)
{
Property params;
params.fromString(config.toString().c_str());
if (!config.check("period"))
{
yError() << "BatteryWrapper: missing 'period' parameter. Check you configuration file\n";
return false;
}
else
_rate = config.find("period").asInt();
if (!config.check("name"))
{
yError() << "BatteryWrapper: missing 'name' parameter. Check you configuration file; it must be like:";
yError() << " name: full name of the port, like /robotName/deviceId/sensorType:o";
return false;
}
else
{
streamingPortName = config.find("name").asString().c_str();
rpcPortName = streamingPortName + "/rpc:i";
setId("batteryWrapper");
}
if(!initialize_YARP(config) )
{
yError() << sensorId << "Error initializing YARP ports";
return false;
}
return true;
}
示例4: open
bool PortAudioDeviceDriver::open(yarp::os::Searchable& config)
{
driverConfig.rate = config.check("rate",Value(0),"audio sample rate (0=automatic)").asInt32();
driverConfig.samples = config.check("samples",Value(0),"number of samples per network packet (0=automatic). For chunks of 1 second of recording set samples=rate. Channels number is handled internally.").asInt32();
driverConfig.channels = config.check("channels",Value(0),"number of audio channels (0=automatic, max is 2)").asInt32();
driverConfig.wantRead = (bool)config.check("read","if present, just deal with reading audio (microphone)");
driverConfig.wantWrite = (bool)config.check("write","if present, just deal with writing audio (speaker)");
driverConfig.deviceNumber = config.check("id",Value(-1),"which portaudio index to use (-1=automatic)").asInt32();
if (!(driverConfig.wantRead||driverConfig.wantWrite))
{
driverConfig.wantRead = driverConfig.wantWrite = true;
}
if (config.check("loopback","if present, send audio read from microphone immediately back to speaker"))
{
printf ("WARN: loopback not yet implemented\n");
loopBack = true;
}
if (config.check("render_mode_append"))
{
renderMode = RENDER_APPEND;
}
if (config.check("render_mode_immediate"))
{
renderMode = RENDER_IMMEDIATE;
}
return open(driverConfig);
}
示例5: yError
bool yarp::dev::LocationsServer::open(yarp::os::Searchable &config)
{
m_local_name.clear();
m_local_name = config.find("local").asString().c_str();
m_ros_enabled = false;
if (m_local_name == "")
{
yError("LocationsServer::open() error you have to provide valid local name");
return false;
}
if (config.check("ROS_enabled"))
{
m_ros_enabled = true;
m_rosNode = new yarp::os::Node("/LocationServer");
m_rosPublisherPort.topic("/locationServerMarkers");
}
if (config.check("locations_file"))
{
std::string location_file = config.find("locations_file").asString();
bool ret = load_locations(location_file);
if (ret) { yInfo() << "Location file" << location_file << "successfully loaded."; }
else { yError() << "Problems opening file" << location_file; }
}
if (config.check("period"))
{
m_period = config.find("period").asInt();
}
else
{
m_period = 10;
yWarning("LocationsServer: using default period of %d ms" , m_period);
}
ConstString local_rpc = m_local_name;
local_rpc += "/rpc";
if (!m_rpc_port.open(local_rpc.c_str()))
{
yError("LocationsServer::open() error could not open rpc port %s, check network", local_rpc.c_str());
return false;
}
m_rpc_port.setReader(*this);
return true;
}
示例6: open
bool JoypadControlClient::open(yarp::os::Searchable& config)
{
if(config.check("help"))
{
yInfo() << "parameter:\n\n" <<
"local - prefix of the local port\n" <<
"remote - prefix of the port provided to and opened by JoypadControlServer\n";
}
if(!config.check("local"))
{
yError() << "JoypadControlClient: unable to 'local' parameter.. check configuration file";
return false;
}
m_local = config.find("local").asString();
if(!m_rpcPort.open(m_local + "/rpc:o"))
{
yError() << "JoypadControlClient: unable to open rpc port..";
return false;
}
yInfo() << "rpc port opened.. starting the handshake";
if(!config.check("remote"))
{
yError() << "JoypadControlClient: unable to find the 'remote' parameter.. check configuration file";
return false;
}
m_remote = config.find("remote").asString();
if(!yarp::os::NetworkBase::connect(m_local + "/rpc:o", m_remote + "/rpc:i"))
{
yError() << "handshake failed.. unable to connect to remote port" << m_remote + "/rpc:i";
return false;
}
yInfo() << "handshake succeded! retrieving info";
if(!getJoypadInfo())
{
yError() << "unable to get joypad info..";
return false;
}
watchdog.start();
return true;
}
示例7: open
bool DeviceGroup::open(yarp::os::Searchable& config) {
if (implementation==NULL) {
implementation = new DeviceGroupHelper;
}
if (implementation==NULL) {
printf("Out of memory\n");
return false;
}
if (config.check("part","a list of section names, with each section containing a device")) {
Bottle bot = config.findGroup("part").tail();
printf("Assembly of: %s\n", bot.toString().c_str());
for (int i=0; i<bot.size(); i++) {
ConstString name = bot.get(i).asString();
printf(" %s -> %s\n", name.c_str(),
config.findGroup(name).toString().c_str());
bool result = HELPER(implementation).add(name,
config.findGroup(name));
if (!result) {
HELPER(implementation).close();
return false;
}
}
return true;
}
return false;
}
示例8: open
bool FakeLaser::open(yarp::os::Searchable& config)
{
bool correct=true;
info = "Fake Laser device for test/debugging";
device_status = DEVICE_OK_STANBY;
#if LASER_DEBUG
yDebug("%s\n", config.toString().c_str());
#endif
bool br = config.check("GENERAL");
if (br != false)
{
yarp::os::Searchable& general_config = config.findGroup("GENERAL");
period = general_config.check("Period", Value(50), "Period of the sampling thread").asInt();
}
min_distance = 0.1; //m
max_distance = 2.5; //m
min_angle = 0; //degrees
max_angle = 359; //degrees
resolution = 1.0; //degrees
sensorsNum = (int)((max_angle-min_angle)/resolution);
laser_data.resize(sensorsNum);
yInfo("Starting debug mode");
yInfo("max_dist %f, min_dist %f", max_distance, min_distance);
yInfo("max_angle %f, min_angle %f", max_angle, min_angle);
yInfo("resolution %f", resolution);
yInfo("sensors %d", sensorsNum);
Time::turboBoost();
RateThread::start();
return true;
}
示例9: loadGains
bool JointTorqueControl::loadGains(yarp::os::Searchable& config)
{
if( !config.check("TRQ_PIDS") )
{
yError("No TRQ_PIDS group find, initialization failed");
return false;
}
yarp::os::Bottle & bot = config.findGroup("TRQ_PIDS");
bool gains_ok = true;
gains_ok = gains_ok && checkVectorExistInConfiguration(bot,"kff",this->axes);
gains_ok = gains_ok && checkVectorExistInConfiguration(bot,"kp",this->axes);
gains_ok = gains_ok && checkVectorExistInConfiguration(bot,"ki",this->axes);
gains_ok = gains_ok && checkVectorExistInConfiguration(bot,"maxPwm",this->axes);
gains_ok = gains_ok && checkVectorExistInConfiguration(bot,"maxInt",this->axes);
gains_ok = gains_ok && checkVectorExistInConfiguration(bot,"stictionUp",this->axes);
gains_ok = gains_ok && checkVectorExistInConfiguration(bot,"stictionDown",this->axes);
gains_ok = gains_ok && checkVectorExistInConfiguration(bot,"bemf",this->axes);
gains_ok = gains_ok && checkVectorExistInConfiguration(bot,"coulombVelThr",this->axes);
gains_ok = gains_ok && checkVectorExistInConfiguration(bot,"frictionCompensation",this->axes);
if( !gains_ok )
{
yError("TRQ_PIDS group is missing some information, initialization failed");
return false;
}
for(int j=0; j < this->axes; j++)
{
jointTorqueLoopGains[j].reset();
motorParameters[j].reset();
jointTorqueLoopGains[j].kp = bot.find("kp").asList()->get(j).asDouble();
jointTorqueLoopGains[j].ki = bot.find("ki").asList()->get(j).asDouble();
jointTorqueLoopGains[j].max_pwm = bot.find("maxPwm").asList()->get(j).asDouble();
jointTorqueLoopGains[j].max_int = bot.find("maxInt").asList()->get(j).asDouble();
motorParameters[j].kff = bot.find("kff").asList()->get(j).asDouble();
motorParameters[j].kcp = bot.find("stictionUp").asList()->get(j).asDouble();
motorParameters[j].kcn = bot.find("stictionDown").asList()->get(j).asDouble();
motorParameters[j].kv = bot.find("bemf").asList()->get(j).asDouble();
motorParameters[j].coulombVelThr = bot.find("coulombVelThr").asList()->get(j).asDouble();
motorParameters[j].frictionCompensation = bot.find("frictionCompensation").asList()->get(j).asDouble();
if (motorParameters[j].frictionCompensation > 1 || motorParameters[j].frictionCompensation < 0) {
motorParameters[j].frictionCompensation = 0;
yWarning("[TRQ_PIDS] frictionCompensation parameter is outside the admissible range [0, 1]. FrictionCompensation reset to 0.0");
}
}
return true;
}
示例10: myInfo
bool yarp::dev::IJoypadController::parseActions(const yarp::os::Searchable& cfg, int* count)
{
int dummy;
size_t i;
int& actCount = count ? *count : dummy;
if(!cfg.check(buttActionGroupName))
{
myInfo() << "no actions found in the configuration file (no" << buttActionGroupName << "group found)";
actCount = 0;
return true;
}
Bottle& actionsGroup = cfg.findGroup(buttActionGroupName);
if(!actionsGroup.size())
{
myError() << "no action found under" << buttActionGroupName << "group";
actCount = 0;
return false;
}
for(i = 1; i < actionsGroup.size(); i++)
{
if(!actionsGroup.get(i).isList())
{
yDebug() << "error parsing cfg";
return false;
}
Bottle& keyvalue = *actionsGroup.get(i).asList();
yDebug() << keyvalue.toString();
unsigned int buttonCount;
if(!this->getButtonCount(buttonCount))
{
myError() << "unable to get button count while parsing the actions";
actCount = 0;
return false;
}
if(!keyvalue.get(0).isInt32() ||
keyvalue.get(0).asInt32() < 0 ||
(unsigned int) keyvalue.get(0).asInt32() > buttonCount-1 ||
!keyvalue.get(1).isString())
{
myError() << "Button's actions parameters must be in the format 'unsigned int string' and the button id must be in range";
actCount = 0;
return false;
}
myInfo() << "assigning actions" << keyvalue.get(1).asString() << "to button" << keyvalue.get(0).asInt32();
m_actions[keyvalue.get(0).asInt32()] = keyvalue.get(1).asString();
}
actCount = i;
myInfo() << actCount << "action parsed succesfully";
return true;
}
示例11: configure
bool OptFlowEMD::configure (yarp::os::Searchable &config){
// configuration
_alpha = (float)config.check("alpha",
yarp::os::Value(0.28),
"EMD delay parameter (double)").asDouble();
_threshold =(float)config.check("threshold",
yarp::os::Value(80.0),
"EMD motion threshold (double)").asDouble();
_thresholdSquared = pow(_threshold,2.0f);
_constrain = config.check("constrain", yarp::os::Value(0),
"Constrain salience values to <=constrainValue? (1/0)").asInt()!=0;
_constrainValue = (float)config.check("constrainValue", yarp::os::Value(255.0),
"Constrain salience values to this value if constrain = 1 (double)").asDouble();
_constrainValueSquared = pow(_constrainValue,2.0f);
_scale = (float)config.check("scale",yarp::os::Value(1.0),
"Scale salience values (double).").asDouble();
// TODO reimplement distortion for cv version
//if (config.check("distortion", "2x2 distortion matrix in list format: topLeft, "
// "topRight, bottomLeft, bottomRight. Default = 1 0 0 1.")){
// //cout << "distortion" << endl;
// yarp::os::Bottle &bot = config.findGroup("distortion");
// if (bot != NULL){
// //cout << "bottle != NULL" << endl;
// if (bot.size() == 5){
// //cout << "bottle of size 5" << endl;
// for (int i = 1; i < 5; i++){
// //cout << "value: " << bot.get(i).asDouble() << endl;
// _matrix[i-1] = (float)(bot.get(i).asDouble());
// }
// }
// }
//}
_oldImgSize.width = -1;
_oldImgSize.height = -1;
return true;
}
示例12: openFirewire
bool FfmpegGrabber::openFirewire(yarp::os::Searchable & config,
AVFormatContext **ppFormatCtx) {
AVInputFormat *iformat;
ConstString devname = config.check("devname",
Value("/dev/dv1394"),
"firewire device name").asString();
iformat = av_find_input_format("dv1394");
printf("Checking for digital video in %s\n", devname.c_str());
m_uri = devname;
return avformat_open_input(ppFormatCtx, strdup(devname.c_str()), iformat, 0) == 0;
}
示例13: open
bool VfwGrabber::open(yarp::os::Searchable& config) {
system_resource = new CvCaptureCAM_VFW;
if (system_resource!=NULL) {
int index = config.check("index",
yarp::os::Value(0),
"VFW device index").asInt();
int result = icvOpenCAM_VFW(&HELPER(system_resource),index);
if (!result) {
printf("failed to find camera\n");
close();
}
}
return system_resource!=NULL;
}
示例14: KinectSkeletonData
bool yarp::dev::KinectDeviceDriverClient::open(yarp::os::Searchable& config){
string localPortPrefix,remotePortPrefix;
_inUserSkeletonPort = _outPort = NULL;
_skeletonData = new KinectSkeletonData();
if(config.check("localPortPrefix")) localPortPrefix = config.find("localPortPrefix").asString();
else {
printf("\t- Error: localPortPrefix element not found in PolyDriver.\n");
return false;
}
if(config.check("remotePortPrefix")) remotePortPrefix = config.find("remotePortPrefix").asString();
else {
printf("\t- Error: remotePortPrefix element not found in PolyDriver.\n");
return false;
}
Network yarp;
string remotePortIn = remotePortPrefix+":i";
if(!yarp.exists(remotePortIn.c_str())){
printf("\t- Error: remote port not found. (%s)\n\t Check if KinectDeviceDriverServer is running.\n",remotePortIn.c_str());
return false;
}
if(!connectPorts(remotePortPrefix,localPortPrefix)) {
printf("\t- Error: Could not connect or create ports.\n");
return false;
}
//_portMod = new PortCtrlMod();
//_portMod->setInterfaceDriver(this);
_inUserSkeletonPort->useCallback(*this);
_inDepthMapPort->useCallback(*this);
_inImageMapPort->useCallback(*this);
return true;
}
示例15: checkRequiredParamIsInt
bool checkRequiredParamIsInt(yarp::os::Searchable& config,
const std::string& paramName)
{
bool correct = config.check(paramName);
if( correct )
{
correct = config.find(paramName).isInt();
}
if( !correct )
{
yError("CanBusInertialMTB: problem loading parameter %s as int",paramName.c_str());
}
return correct;
}