本文整理汇总了C++中yarp::os::Bottle::clear方法的典型用法代码示例。如果您正苦于以下问题:C++ Bottle::clear方法的具体用法?C++ Bottle::clear怎么用?C++ Bottle::clear使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类yarp::os::Bottle
的用法示例。
在下文中一共展示了Bottle::clear方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: worked
bool yarp::dev::ServerInertial::getInertial(yarp::os::Bottle &bot)
{
if (IMU==NULL)
{
return false;
}
else
{
int nchannels;
IMU->getChannels (&nchannels);
yarp::sig::Vector indata(nchannels);
bool worked(false);
worked=IMU->read(indata);
if (worked)
{
bot.clear();
// Euler+accel+gyro+magn orientation values
for (int i = 0; i < nchannels; i++)
bot.addDouble (indata[i]);
}
else
{
bot.clear(); //dummy info.
}
return(worked);
}
}
示例2: respond
bool GuiUpdaterModule::respond(const yarp::os::Bottle& command, yarp::os::Bottle& reply)
{
string helpMessage = string(getName().c_str()) +
" commands are: \n" +
"reset \n" +
"help \n" +
"quit \n" ;
reply.clear();
if (command.get(0).asString()=="quit") {
reply.addString("quitting");
return false;
}
else if (command.get(0).asString()=="help") {
cout << helpMessage;
reply.addString("ok");
}
else if (command.get(0).asString()=="reset") {
cout << "Reset"<<endl;
resetGUI();
reply.addString("ok");
}
return true;
}
示例3: respond
/* Respond function */
bool opcManager::respond(const yarp::os::Bottle& bCommand, yarp::os::Bottle& bReply)
{
string helpMessage = string(getName().c_str()) +
" commands are: \n" +
"help \n" +
"connect + name\n" +
"quit \n";
bReply.clear();
string keyWord = bCommand.get(0).asString().c_str();
if (keyWord == "quit") {
bReply.addString("quitting");
return false;
}
else if (keyWord == "help") {
cout << helpMessage;
bReply.addString("ok");
}
else if (keyWord == "connect") {
bReply = connect(bCommand);
}
else if (keyWord == "updateBeliefs") {
bReply.addString("nack");
if (bCommand.size() == 2)
{
if (bCommand.get(1).isString())
{
bReply.addList() = updateBelief(bCommand.get(1).toString().c_str());
}
}
}
else if (keyWord == "synchronise")
{
bReply.addString("ack");
bReply.addList() = synchoniseOPCs();
}
else if (keyWord == "executeActivity")
{
bReply.addString("ack");
bReply.addList() = simulateActivity(bCommand);
}
else if (keyWord == "diffOPC")
{
bReply.addString("ack");
bReply.addList() = diffOPC();
}
return true;
}
示例4: respond
bool ThreeDModule::respond(const yarp::os::Bottle& in, yarp::os::Bottle& out, yarp::os::Stamp stamp) {
//? Stamp stamp;
std::cout << "responding: " << in.toString() << std::endl;
//TODO sanity check
//...
out.clear();
// process data "in", prepare "out"
out.append(in);
out.addList() = calculatePosition(in, stamp);
// reply
return true;
}
示例5: respond
virtual bool respond(const yarp::os::Bottle &command, yarp::os::Bottle &reply)
{
reply.clear();
if (command.get(0).isString())
{
if (command.get(0).asString()=="help")
{
reply.addVocab(Vocab::encode("many"));
reply.addString("Available commands:");
reply.addString("currently nothing");
return true;
}
else if (command.get(0).asString()=="***")
{
return true;
}
}
reply.addString("Unknown command");
return true;
}
示例6: respond
/**
* Handles command line commands to interact with the motors and run procedures
* @return true unless quit is called
*/
bool SarsaLearner::respond(const yarp::os::Bottle& command, yarp::os::Bottle& reply)
{
string helpMessage = string(getName().c_str()) +
" commands are: \n" +
"help \n" +
"quit \n" ;
reply.clear();
if (command.get(0).asString()=="quit") {
reply.addString("quitting");
return false;
}
else if (command.get(0).asString()=="help") {
cout << helpMessage;
reply.addString("ok");
}
return true;
}
示例7: respond
/**
* Parser for user command received from the RPC port
* @param command the bottle containing the user command
* @param reply the bottle which will be returned to the RPC client
* @return true if the command was successfully parsed
*/
virtual bool respond(const yarp::os::Bottle& command,yarp::os::Bottle& reply)
{
yarp::os::LockGuard lock(m_mutex);
reply.clear();
//parser for VOCAB commands
if (command.get(0).isVocab())
{
if(command.get(0).asVocab() == VOCAB_INAVIGATION && command.get(1).isVocab())
{
parse_respond_vocab(command,reply);
}
else
{
yError() << "Invalid vocab received";
reply.addVocab(VOCAB_ERR);
}
}
//parser for string commands
else if (command.get(0).isString())
{
if (command.get(0).asString()=="help")
{
reply.addVocab(Vocab::encode("many"));
reply.addString("Available commands are:");
reply.addString("getLoc");
reply.addString("initLoc <map_name> <x> <y> <angle in degrees>");
}
else if (command.get(0).isString())
{
parse_respond_string(command, reply);
}
}
//unknown/invalid command received
else
{
yError() << "Invalid command type";
reply.addVocab(VOCAB_ERR);
}
return true;
}
示例8: respond
/* Respond function */
bool babbler::respond(const yarp::os::Bottle& bCommand, yarp::os::Bottle& bReply)
{
std::string helpMessage = std::string(getName().c_str()) +
" commands are: \n" +
"help \n" +
"F + (int)Frequency\n" +
"RF \n" +
"quit \n";
bReply.clear();
std::string keyWord = bCommand.get(0).asString().c_str();
if (keyWord == "quit") {
bReply.addString("quitting");
return false;
}
else if (keyWord == "help") {
cout << helpMessage;
bReply.addString("ok");
}
else if (keyWord == "F") {
if (bCommand.size() == 2)
{
if (bCommand.get(1).isInt())
{
setNewFrequency(bCommand.get(1).asInt());
bReply.addInt(f);
}
}
}
else if (keyWord == "RF") {
bReply.addInt(newRandomFrequency());
}
return true;
}
示例9: apply
virtual bool apply(yarp::os::Bottle& cmd,
yarp::os::Bottle& reply,
yarp::os::Bottle& event,
yarp::os::Contact& remote) {
bool ok = false;
mutex.wait();
printf(" + %s\n", cmd.toString().c_str());
reply.clear();
ConstString tag = cmd.get(0).asString();
if (tag=="register") {
ok = cmdRegister(cmd,reply,remote);
} else if (tag=="unregister") {
ok = cmdUnregister(cmd,reply,remote);
} else if (tag=="query") {
ok = cmdQuery(cmd,reply,remote);
} else if (tag=="list") {
ok = cmdList(cmd,reply,remote);
} else {
reply.addString("old");
reply.addString("I have no idea what you are talking about");
}
mutex.post();
return ok;
}
示例10: respond
virtual bool respond(const yarp::os::Bottle& command,
yarp::os::Bottle& reply) {
mutex.wait();
switch (command.get(0).asVocab()) {
case VOCAB3('a','d','d'):
{
string name = command.get(1).asString().c_str();
if (name!="") {
removeName(name.c_str());
Entry entry;
entry.name = name;
q.push_back(entry);
reply.clear();
reply.add(Value::makeVocab("add"));
reply.addString(name.c_str());
addQueue(reply);
}
}
break;
case VOCAB3('d','e','l'):
{
if (command.get(1).isInt()) {
int idx = command.get(1).asInt();
bool acted = removeName(idx);
if (acted) {
reply.clear();
reply.add(Value::makeVocab("del"));
reply.addInt(idx);
} else {
reply.clear();
reply.add(Value::makeVocab("no"));
reply.addInt(idx);
}
addQueue(reply);
} else {
string name = command.get(1).asString().c_str();
if (name!="") {
bool acted = removeName(name.c_str());
if (acted) {
reply.clear();
reply.add(Value::makeVocab("del"));
reply.addString(name.c_str());
} else {
reply.clear();
reply.add(Value::makeVocab("no"));
reply.addString(name.c_str());
}
addQueue(reply);
}
}
}
break;
case VOCAB4('l','i','s','t'):
{
reply.clear();
addQueue(reply);
}
break;
default:
updateHelp();
mutex.post();
return DeviceResponder::respond(command,reply);
}
mutex.post();
printf("%s\n", reply.toString().c_str());
return true;
}
示例11: respond
/*
* Message handler. RPC and from the terminal
*/
bool CoreModule::respond(const yarp::os::Bottle& command, yarp::os::Bottle& reply)
{
printDebug("Message Received: (echo is on)");
// debug
printf("GOT MESSAGE: %s\n", command.toString().c_str());
// QUIT
if( command.get(0).asString() == "quit" ||
command.get(0).asString() == "exit" ||
command.get(0).asString() == "stop" )
{
isRunning = false;
return false;
}
reply.clear();
reply.addString("The command is not valid! Try: quit|list|add|del");
// nothing there
if( command.size() < 1 ) return true;
if( command.size() == 1 && command.get(0).asString() == "") return true;
// LIST
if( command.get(0).asString() == "list" || command.get(0).asString() == "ls" ){
reply.clear();
reply.addString("list");
std::vector<ModuleInfo>::iterator itr;
for ( itr = listOfModules.begin(); itr != listOfModules.end(); ++itr ) {
std::cout << (*itr).toStdString() << std::endl;
Bottle b;
(*itr).toBottle(b);
reply.addList() = b;
}
}
// ADDING A MODULE
if( command.get(0).asString() == "add" || command.get(0).asString() == "launch" ){
reply.clear();
if( command.size() < 2 ) {
reply.addString("ERROR: The syntax should be:");
reply.addString("add <name>");
return true;
}
int thisModuleID = nextModuleID++;
ModuleInfo i;
i.set(thisModuleID, command);
listOfModules.push_back(i);
reply.addString("OK");
reply.addInt(thisModuleID);
}
// DELETING A MODULE
if(command.get(0).asString() == "del" ||
command.get(0).asString() == "rm" ||
command.get(0).asString() == "delete") {
reply.clear();
if( command.size() < 2 ) {
reply.addString("ERROR: The syntax should be:");
reply.addString("del <moduleID>");
return true;
}
if( command.get(1).isInt() ) {
int thisModuleID = command.get(1).asInt();
reply.addString("OK");
// delete from vector
std::vector<ModuleInfo>::iterator itr;
for ( itr = listOfModules.begin(); itr != listOfModules.end(); ++itr ) {
if(thisModuleID == (*itr).ID) {
listOfModules.erase(itr);
break;
}
}
} else {
reply.addString("ERROR: Could not parse integer! the syntax should be: del <moduleID as integer>");
}
}
// if( command.get(0).asString() == "set"){
//
// if( command.get(1).asString() == "tgt" || command.get(1).asString() == "target" ) {
// userSetTargetName = command.get(2).asString();
// reply.clear();
//.........这里部分代码省略.........
示例12: clearAppNames
bool clearAppNames() {
apps.clear();
return true;
}
示例13: respond
//.........这里部分代码省略.........
switch(cmd.get(1).asVocab())
{
case VOCAB_AXES:
{
int axes;
caller->getAxes(axes);
reply.addInt(axes);
}
break;
case VOCAB_DEBUG_PARAMETER:
{
int j = cmd.get(2).asInt();
int index = cmd.get(3).asInt();
ok = caller->getDebugParameter(j, index, &dtmp);
reply.addInt(j);
reply.addInt(index);
reply.addDouble(dtmp);
}
break;
case VOCAB_GENERIC_PARAMETER:
{
int j = cmd.get(2).asInt();
int param = cmd.get(3).asInt();
ok = caller->getParameter(j, param, &dtmp);
reply.addInt(j);
reply.addInt(param);
reply.addDouble(dtmp);
}
break;
default:
{
commandUnderstood = false;
std::cout << "Debug Interface 1: command not understood! received " << cmd.toString().c_str() << std::endl;
}
break;
}
}
break; // case VOCAB_GET
case VOCAB_SET:
{
switch(cmd.get(1).asVocab())
{
case VOCAB_GENERIC_PARAMETER:
{
int j = cmd.get(2).asInt();
int param = cmd.get(3).asInt();
double val = cmd.get(4).asDouble();
ok = caller->setParameter(j, param, val);
}
break;
case VOCAB_DEBUG_PARAMETER:
{
int j = cmd.get(2).asInt();
int index = cmd.get(3).asInt();
double val = cmd.get(4).asDouble();
ok = caller->setDebugParameter(j, index, val);
}
break;
default:
{
commandUnderstood = false;
std::cout << "Debug Interface 2: command not understood! received " << cmd.toString().c_str() << std::endl;
}
break;
}
}
break; // case VOCAB_SET
default:
{
commandUnderstood = false;
std::cout << "Debug Interface 3: command not understood! received " << cmd.toString().c_str() << std::endl;
}
break;
} //switch code
if (!commandUnderstood)
{
ok = DeviceResponder::respond(cmd,reply);
}
if (!ok)
{
// failed thus send only a VOCAB back.
reply.clear();
reply.addVocab(VOCAB_FAILED);
}
else
reply.addVocab(VOCAB_OK);
return ok;
}
示例14: respond
virtual bool respond(const yarp::os::Bottle& command,yarp::os::Bottle& reply)
{
reply.clear();
gotoThread->mutex.wait();
if (command.get(0).asString()=="quit")
{
gotoThread->mutex.post();
return false;
}
else if (command.get(0).asString()=="help")
{
reply.addVocab(Vocab::encode("many"));
reply.addString("Available commands are:");
reply.addString("gotoAbs <x> <y> <angle>");
reply.addString("gotoRel <x> <y> <angle>");
reply.addString("stop");
reply.addString("pause");
reply.addString("resume");
reply.addString("quit");
reply.addString("set linear_tol <m>");
reply.addString("set linear_ang <deg>");
reply.addString("set max_lin_speed <m/s>");
reply.addString("set max_ang_speed <deg/s>");
reply.addString("set min_lin_speed <m/s>");
reply.addString("set min_ang_speed <deg/s>");
reply.addString("set obstacle_stop");
reply.addString("set obstacle_avoidance");
}
else if (command.get(0).asString()=="gotoAbs")
{
yarp::sig::Vector v;
v.push_back(command.get(1).asDouble());
v.push_back(command.get(2).asDouble());
if (command.size()==4) v.push_back(command.get(3).asDouble());
gotoThread->setNewAbsTarget(v);
reply.addString("new absolute target received");
}
else if (command.get(0).asString()=="gotoRel")
{
yarp::sig::Vector v;
v.push_back(command.get(1).asDouble());
v.push_back(command.get(2).asDouble());
if (command.size()==4) v.push_back(command.get(3).asDouble());
gotoThread->setNewRelTarget(v);
reply.addString("new relative target received");
}
else if (command.get(0).asString()=="set")
{
if (command.get(1).asString()=="linear_tol")
{
gotoThread->goal_tolerance_lin=command.get(2).asDouble();
reply.addString("linear_tol set.");
}
else if (command.get(1).asString()=="angular_tol")
{
gotoThread->goal_tolerance_ang=command.get(2).asDouble();
reply.addString("angular_tol set.");
}
else if (command.get(1).asString()=="max_lin_speed")
{
gotoThread->max_lin_speed=command.get(2).asDouble();
reply.addString("max_lin_speed set.");
}
else if (command.get(1).asString()=="max_ang_speed")
{
gotoThread->max_ang_speed=command.get(2).asDouble();
reply.addString("max_ang_speed set.");
}
else if (command.get(1).asString()=="min_lin_speed")
{
gotoThread->min_lin_speed=command.get(2).asDouble();
reply.addString("min_lin_speed set.");
}
else if (command.get(1).asString()=="min_ang_speed")
{
gotoThread->min_ang_speed=command.get(2).asDouble();
reply.addString("min_ang_speed set.");
}
else if (command.get(1).asString()=="obstacle_avoidance")
{
if (gotoThread->enable_obstacles_avoidance)
{
reply.addString("enable_obstacles_avoidance=false");
gotoThread->enable_obstacles_avoidance=false;
}
else
{
gotoThread->enable_obstacles_avoidance=true;
reply.addString("enable_obstacles_avoidance=true");
}
}
else if (command.get(1).asString()=="obstacle_stop")
{
if (gotoThread->enable_obstacles_avoidance)
{
reply.addString("enable_obstacle_stop=false");
//.........这里部分代码省略.........
示例15: respond
bool Implement_DepthVisualParams_Parser::respond(const yarp::os::Bottle& cmd, yarp::os::Bottle& response)
{
bool ret = false;
response.clear();
if(!iDepthVisual)
{
yError() << "Depth Visual parameter Parser has not been correctly configured. IDepthVisualParams interface is not valid";
response.addVocab(VOCAB_FAILED);
return false;
}
int code = cmd.get(0).asVocab();
if(code != VOCAB_DEPTH_VISUAL_PARAMS)
{
yError() << "Depth Visual Params Parser received a command not belonging to this interface. Required interface was " << yarp::os::Vocab::decode(code);
response.addVocab(VOCAB_FAILED);
return false;
}
switch (cmd.get(1).asVocab())
{
case VOCAB_GET:
{
switch(cmd.get(2).asVocab())
{
case VOCAB_HEIGHT:
{
response.addVocab(VOCAB_DEPTH_VISUAL_PARAMS);
response.addVocab(VOCAB_HEIGHT);
response.addVocab(VOCAB_IS);
response.addInt(iDepthVisual->getDepthHeight());
}
break;
case VOCAB_WIDTH:
{
response.addVocab(VOCAB_DEPTH_VISUAL_PARAMS);
response.addVocab(VOCAB_WIDTH);
response.addVocab(VOCAB_IS);
response.addInt(iDepthVisual->getDepthWidth());
}
break;
case VOCAB_FOV:
{
double hFov, vFov;
ret = iDepthVisual->getDepthFOV(hFov, vFov);
if(ret)
{
response.addVocab(VOCAB_DEPTH_VISUAL_PARAMS);
response.addVocab(VOCAB_FOV);
response.addVocab(VOCAB_IS);
response.addDouble(hFov);
response.addDouble(vFov);
}
else
response.addVocab(VOCAB_FAILED);
}
break;
case VOCAB_INTRINSIC_PARAM:
{
yarp::os::Property params;
ret = iDepthVisual->getDepthIntrinsicParam(params);
if(ret)
{
yarp::os::Bottle params_b;
response.addVocab(VOCAB_DEPTH_VISUAL_PARAMS);
response.addVocab(VOCAB_INTRINSIC_PARAM);
response.addVocab(VOCAB_IS);
Property::copyPortable(params, params_b); // will it really work??
response.append(params_b);
}
else
{
response.addVocab(VOCAB_FAILED);
}
}
break;
case VOCAB_ACCURACY:
{
response.addVocab(VOCAB_DEPTH_VISUAL_PARAMS);
response.addVocab(VOCAB_ACCURACY);
response.addVocab(VOCAB_IS);
response.addDouble(iDepthVisual->getDepthAccuracy());
}
break;
case VOCAB_CLIP_PLANES:
{
double nearPlane, farPlane;
iDepthVisual->getDepthClipPlanes(nearPlane, farPlane);
response.addVocab(VOCAB_DEPTH_VISUAL_PARAMS);
response.addVocab(VOCAB_CLIP_PLANES);
response.addVocab(VOCAB_IS);
response.addDouble(nearPlane);
response.addDouble(farPlane);
}
break;
//.........这里部分代码省略.........