本文整理汇总了C++中Bottle::find方法的典型用法代码示例。如果您正苦于以下问题:C++ Bottle::find方法的具体用法?C++ Bottle::find怎么用?C++ Bottle::find使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Bottle
的用法示例。
在下文中一共展示了Bottle::find方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: configureGestures
void AdaptiveLayer::configureGestures(yarp::os::ResourceFinder &rf)
{
//Initialise the gestures response
Bottle grpGesture = rf.findGroup("GESTURES");
Bottle *gestureStimulus = grpGesture.find("stimuli").asList();
if (gestureStimulus)
{
for(int d=0; d<gestureStimulus->size(); d++)
{
string gestureStimulusName = gestureStimulus->get(d).asString().c_str();
StimulusEmotionalResponse response;
Bottle * bSentences = grpGesture.find((gestureStimulusName + "-sentence").c_str()).asList();
for(int s=0;s<bSentences->size();s++)
{
response.m_sentences.push_back(bSentences->get(s).asString().c_str());
}
std::string sGroupTemp = gestureStimulusName;
sGroupTemp += "-effect";
Bottle *bEffects = grpGesture.find( sGroupTemp.c_str()).asList();
for(int i=0; bEffects && i<bEffects->size(); i += 2)
{
response.m_emotionalEffect[bEffects->get(i).asString().c_str()] = bEffects->get(i+1).asDouble();
}
gestureEffects[gestureStimulusName] = response;
}
}
}
示例2: configureTactile
void ReactiveLayer::configureTactile(yarp::os::ResourceFinder &rf)
{
//Initialise the tactile response
Bottle grpTactile = rf.findGroup("TACTILE");
Bottle *tactileStimulus = grpTactile.find("stimuli").asList();
if (tactileStimulus)
{
for (int d = 0; d<tactileStimulus->size(); d++)
{
string tactileStimulusName = tactileStimulus->get(d).asString().c_str();
StimulusEmotionalResponse response;
Bottle * bSentences = grpTactile.find((tactileStimulusName + "-sentence").c_str()).asList();
for (int s = 0; s<bSentences->size(); s++)
{
response.m_sentences.push_back(bSentences->get(s).asString().c_str());
}
//choregraphies
Bottle *bChore = grpTactile.find((tactileStimulusName + "-chore").c_str()).asList();
for (int sC = 0; bChore && sC<bChore->size(); sC++)
{
response.m_choregraphies.push_back(bChore->get(sC).asString().c_str());
}
std::string sGroupTemp = tactileStimulusName;
sGroupTemp += "-effect";
Bottle *bEffects = grpTactile.find(sGroupTemp.c_str()).asList();
for (int i = 0; bEffects && i<bEffects->size(); i += 2)
{
response.m_emotionalEffect[bEffects->get(i).asString().c_str()] = bEffects->get(i + 1).asDouble();
}
tactileEffects[tactileStimulusName] = response;
}
}
}
示例3: LoadChoregraphies
void ICubClient::LoadChoregraphies(yarp::os::ResourceFinder &rf)
{
choregraphiesKnown.clear();
int posCount = rf.check("choregraphiesCount", yarp::os::Value(0)).asInt();
cout<<"Loading Choregraphies: "<<endl;
for (int i = 0; i < posCount; i++)
{
std::stringstream ss;
ss<<"chore_" << i;
Bottle postureGroup = rf.findGroup(ss.str().c_str());
std::string name = postureGroup.find("name").asString().c_str();
std::cout<<"\t"<<name<<std::endl;
Bottle* sequence = postureGroup.find("sequence").asList();
std::list< std::pair<std::string, double> > seq;
for(int s=0; s<sequence->size(); s++)
{
Bottle* element = sequence->get(s).asList();
std::string elementName = element->get(0).asString().c_str();
double elementTime = element->get(1).asDouble();
seq.push_back(std::pair<std::string,double>(elementName,elementTime));
//std::cout<<"\t \t"<<elementName<< "\t" << elementTime << std::endl;
}
choregraphiesKnown[name] = seq;
}
}
示例4: fromBottle
bool Action::fromBottle(const Bottle &b)
{
if (!this->Entity::fromBottle(b))
return false;
if (!b.check("description")||!b.check("subactions"))
return false;
Bottle* bDesc = b.find("description").asList();
initialDescription.fromBottle(*bDesc);
this->subActions.clear();
Bottle* bSub = b.find("subactions").asList();
for(int i=0; i<bSub->size(); i++)
{
Action a;
a.fromBottle(*bSub->get(i).asList());
this->subActions.push_back(a);
}
this->estimatedDriveEffects.clear();
bSub = b.find("estimatedDriveEffects").asList();
for(int i=0; i<bSub->size(); i++)
{
string driveName = bSub->get(i).asList()->get(0).asString().c_str();
double driveEffect = bSub->get(i).asList()->get(1).asDouble();
this->estimatedDriveEffects[driveName] = driveEffect;
}
return true;
}
示例5: LoadPostures
void ICubClient::LoadPostures(yarp::os::ResourceFinder &rf)
{
posturesKnown.clear();
int posCount = rf.check("posturesCount", yarp::os::Value(0)).asInt();
//cout<<"Loading posture: "<<endl;
for (int i = 0; i < posCount; i++)
{
std::stringstream ss;
ss<<"posture_" << i;
Bottle postureGroup = rf.findGroup(ss.str().c_str());
BodyPosture p;
std::string name = postureGroup.find("name").asString().c_str();
//std::cout<<"\t"<<name<<std::endl;
Bottle* bHead = postureGroup.find("head").asList();
Bottle* bLArm = postureGroup.find("left_arm").asList();
Bottle* bRArm = postureGroup.find("right_arm").asList();
Bottle* bTorso = postureGroup.find("torso").asList();
p.head.resize(6);
for(int i=0;i<6;i++)
p.head[i] = bHead->get(i).asDouble();
p.left_arm.resize(16);
for(int i=0;i<16;i++)
p.left_arm[i] = bLArm->get(i).asDouble();
p.right_arm.resize(16);
for(int i=0;i<16;i++)
p.right_arm[i] = bRArm->get(i).asDouble();
p.torso.resize(3);
for(int i=0;i<3;i++)
p.torso[i] = bTorso->get(i).asDouble();
posturesKnown[name] = p;
}
}
示例6: configureSalutation
void ReactiveLayer::configureSalutation(yarp::os::ResourceFinder &rf)
{
;
//Initialise the gestures response
Bottle grpSocial = rf.findGroup("SOCIAL");
salutationLifetime = grpSocial.check("salutationLifetime", Value(15.0)).asDouble();
Bottle *socialStimulus = grpSocial.find("stimuli").asList();
if (socialStimulus)
{
for (int d = 0; d<socialStimulus->size(); d++)
{
string socialStimulusName = socialStimulus->get(d).asString().c_str();
StimulusEmotionalResponse response;
Bottle * bSentences = grpSocial.find((socialStimulusName + "-sentence").c_str()).asList();
for (int s = 0; s<bSentences->size(); s++)
{
response.m_sentences.push_back(bSentences->get(s).asString().c_str());
}
std::string sGroupTemp = socialStimulusName;
sGroupTemp += "-effect";
Bottle *bEffects = grpSocial.find(sGroupTemp.c_str()).asList();
for (int i = 0; bEffects && i<bEffects->size(); i += 2)
{
response.m_emotionalEffect[bEffects->get(i).asString().c_str()] = bEffects->get(i + 1).asDouble();
}
salutationEffects[socialStimulusName] = response;
}
}
//Add the relevant Entities for handling salutation
iCub->opc->addOrRetrieveAction("is");
iCub->opc->addOrRetrieveAdjective("saluted");
}
示例7: yError
bool MapGrid2D::loadROSParams(string ros_yaml_filename, string& pgm_occ_filename, double& resolution, double& orig_x, double& orig_y, double& orig_t )
{
std::string file_string;
std::ifstream file;
file.open(ros_yaml_filename.c_str());
if (!file.is_open())
{
yError() << "failed to open file" << ros_yaml_filename;
return false;
}
string line;
while (getline(file, line))
{
if (line.find("origin") != std::string::npos)
{
std::replace(line.begin(), line.end(), ',', ' ');
std::replace(line.begin(), line.end(), '[', '(');
std::replace(line.begin(), line.end(), ']', ')');
/*
auto it = line.find('[');
if (it != string::npos) line.replace(it, 1, "(");
it = line.find(']');
if(it != string::npos) line.replace(it, 1, ")");*/
}
file_string += (line + '\n');
}
file.close();
bool ret = true;
Bottle bbb;
bbb.fromString(file_string);
string debug_s = bbb.toString();
if (bbb.check("image:") == false) { yError() << "missing image"; ret = false; }
pgm_occ_filename = bbb.find("image:").asString();
//ppm_flg_filename = (pgm_occ_filename.substr(0, pgm_occ_filename.size()-4))+"_yarpflags"+".ppm";
if (bbb.check("resolution:") == false) { yError() << "missing resolution"; ret = false; }
resolution = bbb.find("resolution:").asDouble();
if (bbb.check("origin:") == false) { yError() << "missing origin"; ret = false; }
Bottle* b = bbb.find("origin:").asList();
if (b)
{
orig_x = b->get(0).asDouble();
orig_y = b->get(1).asDouble();
orig_t = b->get(2).asDouble();
}
if (bbb.check("occupied_thresh:"))
{m_occupied_thresh = bbb.find("occupied_thresh:").asDouble();}
if (bbb.check("free_thresh:"))
{m_free_thresh = bbb.find("free_thresh:").asDouble();}
return ret;
}
示例8: getArmDependentOptions
void getArmDependentOptions(Bottle &b, Vector &_gOrien, Vector &_gDisp,
Vector &_dOffs, Vector &_dLift, Vector &_home_x)
{
if (Bottle *pB=b.find("grasp_orientation").asList())
{
int sz=pB->size();
int len=_gOrien.length();
int l=len<sz?len:sz;
for (int i=0; i<l; i++)
_gOrien[i]=pB->get(i).asDouble();
}
if (Bottle *pB=b.find("grasp_displacement").asList())
{
int sz=pB->size();
int len=_gDisp.length();
int l=len<sz?len:sz;
for (int i=0; i<l; i++)
_gDisp[i]=pB->get(i).asDouble();
}
if (Bottle *pB=b.find("systematic_error_displacement").asList())
{
int sz=pB->size();
int len=_dOffs.length();
int l=len<sz?len:sz;
for (int i=0; i<l; i++)
_dOffs[i]=pB->get(i).asDouble();
}
if (Bottle *pB=b.find("lifting_displacement").asList())
{
int sz=pB->size();
int len=_dLift.length();
int l=len<sz?len:sz;
for (int i=0; i<l; i++)
_dLift[i]=pB->get(i).asDouble();
}
if (Bottle *pB=b.find("home_position").asList())
{
int sz=pB->size();
int len=_home_x.length();
int l=len<sz?len:sz;
for (int i=0; i<l; i++)
_home_x[i]=pB->get(i).asDouble();
}
}
示例9: configure
bool homeostaticModule::configure(yarp::os::ResourceFinder &rf)
{
manager = homeostasisManager();
moduleName = rf.check("name",Value("homeostasis")).asString().c_str();
setName(moduleName.c_str());
cout<<moduleName<<": finding configuration files..."<<endl;
period = rf.check("period",Value(0.1)).asDouble();
cout << "Initializing drives";
Bottle grpHomeostatic = rf.findGroup("HOMEOSTATIC");
Bottle *drivesList = grpHomeostatic.find("drives").asList();
cout << "Initializing Drives... " << endl;
if (drivesList)
{
cout << "Configuration: Found " << drivesList->size() << " drives. " << endl;
for (int d = 0; d<drivesList->size(); d++)
{
cout << d << endl;
//Read Drive Configuration
string driveName = drivesList->get(d).asString().c_str();
addNewDrive(driveName, grpHomeostatic);
}
}
cout << "Opening RPC..."<< endl;
rpc.open ( ("/"+moduleName+"/rpc").c_str());
attach(rpc);
cout<<"Configuration done."<<endl;
return true;
}
示例10: readBool
//---------------------------------------------------------
void readBool(Bottle &rf, string name, bool &v, bool vdefault)
{
if(rf.check(name.c_str()))
{
if((rf.find(name.c_str()).asString()=="true")||(rf.find(name.c_str()).asString()=="on"))
v = true;
else
v = false;
}
else
{
v = vdefault;
cout<<"Could not find value true/false for "<<name<<". "
<<"Setting default "<<((vdefault==true)?"true":"false")<<endl;
}
displayNameValue(name,((v==true)?"true":"false"));
}
示例11: fromBottle
bool Agent::fromBottle(Bottle b)
{
if (!this->Object::fromBottle(b))
return false;
if (!b.check("belief")||!b.check("emotions"))
return false;
m_belief.clear();
Bottle* beliefs = b.find("belief").asList();
for(int i=0; i<beliefs->size() ; i++)
{
Bottle* bRelation = beliefs->get(i).asList();
Relation r(*bRelation);
m_belief.push_back(r);
}
m_emotions_intrinsic.clear();
Bottle* emotions = b.find("emotions").asList();
for(int i=0; i<emotions->size() ; i++)
{
Bottle* bEmo = emotions->get(i).asList();
string emotionName = bEmo->get(0).asString().c_str();
double emotionValue = bEmo->get(1).asDouble();
m_emotions_intrinsic[emotionName.c_str()] = emotionValue;
}
m_drives.clear();
Bottle* drivesProperty = b.find("drives").asList();
string drivesDebug = drivesProperty->toString().c_str();
for(int i=0; i<drivesProperty->size() ; i++)
{
Bottle* bD = drivesProperty->get(i).asList();
string drivesDebug1 = bD->toString().c_str();
Drive currentDrive;
currentDrive.fromBottle(*bD);
m_drives[currentDrive.name] = currentDrive;
}
Bottle* bodyProperty = b.find("body").asList();
m_body.fromBottle(*bodyProperty);
return true;
}
示例12: fromBottle
bool Adjective::fromBottle(Bottle b)
{
if (!this->Entity::fromBottle(b))
return false;
if (!b.check("qualityType"))
return false;
m_quality = b.find("qualityType").asString().c_str();
return true;
}
示例13: getProjectionMatrix
bool getProjectionMatrix(Bottle b, Matrix &P)
{
double fx,fy,cx,cy;
if(b.check("fx"))
fx = b.find("fx").asDouble();
else
return 0;
if(b.check("fy"))
fy = b.find("fy").asDouble();
else
return 0;
// we suppose that the center distorsion is already compensated
if(b.check("w"))
cx = b.find("w").asDouble()/2.0;
else
return 0;
if(b.check("h"))
cy = b.find("h").asDouble()/2.0;
else
return 0;
double sth= 0.0; double sx = fx; double sy = fy;
double ox = cx; double oy = cy;
double f = 1.0;
Matrix K = eye(3,3);
K(0,0)=sx*f; K(1,1)=sy*f; K(0,1)=sth*f; K(0,2)=ox; K(1,2)=oy;
Matrix Pi = zeros(3,4);
Pi(0,0)=1.0; Pi(1,1)=1.0; Pi(2,2)=1.0;
P = K*Pi;
//fprintf(stderr, "Working with Projection %s\n", P.toString().c_str());
return 1;
}
示例14: setPidOptions
void Localizer::setPidOptions(const Bottle &options)
{
mutex.lock();
pid->setOptions(options);
if (options.check("dominantEye"))
{
string domEye=options.find("dominantEye").asString().c_str();
if ((domEye=="left") || (domEye=="right"))
dominantEye=domEye;
}
mutex.unlock();
}
示例15: readInt
//---------------------------------------------------------
void readInt(Bottle &rf, string name, int &v, int vdefault)
{
if(rf.check(name.c_str()))
{
v = rf.find(name.c_str()).asInt();
}
else
{
v = vdefault;
cout<<"Could not find value for "<<name<<". "
<<"Setting default "<<vdefault<<endl;
}
displayNameValue(name,v);
}