本文整理汇总了C++中yarp::os::Bottle::addInt方法的典型用法代码示例。如果您正苦于以下问题:C++ Bottle::addInt方法的具体用法?C++ Bottle::addInt怎么用?C++ Bottle::addInt使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类yarp::os::Bottle
的用法示例。
在下文中一共展示了Bottle::addInt方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: 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;
}
示例2: 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;
//.........这里部分代码省略.........
示例3: respond
bool ServerFrameGrabber::respond(const yarp::os::Bottle& cmd,
yarp::os::Bottle& response) {
int code = cmd.get(0).asVocab();
IFrameGrabberControlsDC1394* fgCtrlDC1394=dynamic_cast<IFrameGrabberControlsDC1394*>(fgCtrl);
//printf("%s\n",cmd.toString().c_str());
switch (code)
{
case VOCAB_SET:
printf("set command received\n");
switch(cmd.get(1).asVocab())
{
case VOCAB_BRIGHTNESS:
response.addInt(int(setBrightness(cmd.get(2).asDouble())));
return true;
case VOCAB_EXPOSURE:
response.addInt(int(setExposure(cmd.get(2).asDouble())));
return true;
case VOCAB_SHARPNESS:
response.addInt(int(setSharpness(cmd.get(2).asDouble())));
return true;
case VOCAB_WHITE:
response.addInt(int(setWhiteBalance(cmd.get(2).asDouble(),cmd.get(3).asDouble())));
return true;
case VOCAB_HUE:
response.addInt(int(setHue(cmd.get(2).asDouble())));
return true;
case VOCAB_SATURATION:
response.addInt(int(setSaturation(cmd.get(2).asDouble())));
return true;
case VOCAB_GAMMA:
response.addInt(int(setGamma(cmd.get(2).asDouble())));
return true;
case VOCAB_SHUTTER:
response.addInt(int(setShutter(cmd.get(2).asDouble())));
return true;
case VOCAB_GAIN:
response.addInt(int(setGain(cmd.get(2).asDouble())));
return true;
case VOCAB_IRIS:
response.addInt(int(setIris(cmd.get(2).asDouble())));
return true;
/*
case VOCAB_TEMPERATURE:
response.addInt(int(setTemperature(cmd.get(2).asDouble())));
return true;
case VOCAB_WHITE_SHADING:
response.addInt(int(setWhiteShading(cmd.get(2).asDouble(),cmd.get(3).asDouble(),cmd.get(4).asDouble())));
return true;
case VOCAB_OPTICAL_FILTER:
response.addInt(int(setOpticalFilter(cmd.get(2).asDouble())));
return true;
case VOCAB_CAPTURE_QUALITY:
response.addInt(int(setCaptureQuality(cmd.get(2).asDouble())));
return true;
*/
}
return DeviceResponder::respond(cmd,response);
case VOCAB_GET:
printf("get command received\n");
response.addVocab(VOCAB_IS);
response.add(cmd.get(1));
switch(cmd.get(1).asVocab())
{
case VOCAB_BRIGHTNESS:
response.addDouble(getBrightness());
return true;
case VOCAB_EXPOSURE:
response.addDouble(getExposure());
return true;
case VOCAB_SHARPNESS:
response.addDouble(getSharpness());
return true;
case VOCAB_WHITE:
{
double b=0.0;
double r=0.0;
getWhiteBalance(b,r);
response.addDouble(b);
response.addDouble(r);
}
return true;
case VOCAB_HUE:
response.addDouble(getHue());
return true;
case VOCAB_SATURATION:
response.addDouble(getSaturation());
return true;
case VOCAB_GAMMA:
response.addDouble(getGamma());
return true;
case VOCAB_SHUTTER:
//.........这里部分代码省略.........
示例4: handleInteractionModeMsg
void handleInteractionModeMsg(IInteractionMode *iInteract, const yarp::os::Bottle& cmd,
yarp::os::Bottle& response, bool *rec, bool *ok)
{
fprintf(stderr, "Handling IInteractionMode message %s\n", cmd.toString().c_str());
if (!iInteract)
{
fprintf(stderr, "Error I do not have a valid interface\n");
*ok=false;
return;
}
int code = cmd.get(1).asVocab();
*ok=true;
switch(code)
{
case VOCAB_SET:
{
int axis = cmd.get(3).asInt();
yarp::dev::InteractionModeEnum mode = (yarp::dev::InteractionModeEnum) cmd.get(2).asVocab();
*ok = iInteract->setInteractionMode(axis, mode);
*rec=true; //or false
}
break;
case VOCAB_GET:
{
int which = cmd.get(2).asVocab();
switch(which)
{
case VOCAB_INTERACTION_MODE:
{
int axis = cmd.get(3).asInt();
yarp::dev::InteractionModeEnum mode;
*ok = iInteract->getInteractionMode(axis, &mode);
// create response
if(*ok)
{
response.addVocab(VOCAB_IS);
response.addInt(axis);
response.addVocab(VOCAB_INTERACTION_MODE);
response.addVocab(mode);
*rec=true;
}
else
{
response.addVocab(VOCAB_FAILED);
*rec = false;
}
}
break;
case VOCAB_INTERACTION_MODES:
{
int axis = cmd.get(3).asInt();
yarp::dev::InteractionModeEnum *modes;
modes = new yarp::dev::InteractionModeEnum[jnts];
*ok = iInteract->getInteractionMode(axis, modes);
// create response
if(*ok)
{
response.addVocab(VOCAB_IS);
response.addVocab(VOCAB_INTERACTION_MODES);
for(int i=0; i<jnts; i++)
response.addVocab(modes[i]);
*rec=true;
}
else
{
response.addVocab(VOCAB_FAILED);
*rec = false;
}
}
break;
default:
{
fprintf(stderr, "get command not understood");
*rec=false;
break;
}
break;
}
}
break;
default:
{
fprintf(stderr, "type of command not understood");
*rec=false;
}
break;
}
}
示例5: handleTorqueMsg
//.........这里部分代码省略.........
break;
case VOCAB_ENABLE:
{
*ok = torque->enableTorquePid (cmd.get(3).asInt());
}
break;
case VOCAB_TORQUE_MODE:
{
*ok = torque->setTorqueMode();
}
break;
}
}
break;
case VOCAB_GET:
{
*rec = true;
int tmp = 0;
double dtmp = 0.0;
response.addVocab(VOCAB_IS);
response.add(cmd.get(1));
switch(cmd.get(2).asVocab())
{
case VOCAB_AXES:
{
int tmp;
*ok = torque->getAxes(&tmp);
response.addInt(tmp);
}
break;
case VOCAB_TRQ:
{
*ok = torque->getTorque(cmd.get(3).asInt(), &dtmp);
response.addDouble(dtmp);
}
break;
case VOCAB_TRQS:
{
double *p = new double[controlledJoints];
*ok = torque->getTorques(p);
Bottle& b = response.addList();
int i;
for (i = 0; i < controlledJoints; i++)
b.addDouble(p[i]);
delete[] p;
}
break;
case VOCAB_ERR:
{
*ok = torque->getTorqueError(cmd.get(3).asInt(), &dtmp);
response.addDouble(dtmp);
}
break;
case VOCAB_ERRS:
{
double *p = new double[controlledJoints];
示例6: asRootedValue
/*! @brief Fill a bottle with the contents of an object.
@param[in] jct The %JavaScript engine context.
@param[in,out] aBottle The bottle to be filled.
@param[in] theData The value to be sent.
@param[in] topLevel @c true if this is the outermost list of an object. */
static void
fillBottleFromValue(JSContext * jct,
yarp::os::Bottle & aBottle,
JS::Value theData,
const bool topLevel)
{
ODL_ENTER(); //####
ODL_P2("jct = ", jct, "aBottle = ", &aBottle); //####
ODL_B1("topLevel = ", topLevel); //####
JS::RootedValue asRootedValue(jct);
asRootedValue = theData;
if (theData.isBoolean())
{
aBottle.addInt(JS::ToBoolean(asRootedValue) ? 1 : 0);
}
else if (theData.isDouble())
{
double aValue;
if (JS::ToNumber(jct, asRootedValue, &aValue))
{
aBottle.addDouble(aValue);
}
}
else if (theData.isInt32())
{
int32_t aValue;
if (JS::ToInt32(jct, asRootedValue, &aValue))
{
aBottle.addInt(aValue);
}
}
else if (theData.isString())
{
JSString * asString = theData.toString();
char * asChars = JS_EncodeString(jct, asString);
aBottle.addString(asChars);
JS_free(jct, asChars);
}
else if (theData.isObject())
{
JS::RootedObject asObject(jct);
if (JS_ValueToObject(jct, asRootedValue, &asObject))
{
bool processed = false;
#if (47 <= MOZJS_MAJOR_VERSION)
bool isArray;
#endif // 47 <= MOZJS_MAJOR_VERSION
#if (47 <= MOZJS_MAJOR_VERSION)
if (JS_IsArrayObject(jct, asObject, &isArray))
#else // 47 > MOZJS_MAJOR_VERSION
if (JS_IsArrayObject(jct, asObject))
#endif // 47 > MOZJS_MAJOR_VERSION
{
uint32_t arrayLength;
if (JS_GetArrayLength(jct, asObject, &arrayLength))
{
// Treat as a list
if (topLevel)
{
for (uint32_t ii = 0; arrayLength > ii; ++ii)
{
JS::RootedValue anElement(jct);
if (JS_GetElement(jct, asObject, ii, &anElement))
{
fillBottleFromValue(jct, aBottle, anElement, false);
}
}
}
else
{
yarp::os::Bottle & innerList(aBottle.addList());
for (uint32_t ii = 0; arrayLength > ii; ++ii)
{
JS::RootedValue anElement(jct);
if (JS_GetElement(jct, asObject, ii, &anElement))
{
fillBottleFromValue(jct, innerList, anElement, false);
}
}
}
processed = true;
}
}
if (! processed)
//.........这里部分代码省略.........
示例7: handleControlModeMsg
void handleControlModeMsg(IControlMode2 *iMode, const yarp::os::Bottle& cmd,
yarp::os::Bottle& response, bool *rec, bool *ok)
{
fprintf(stderr, "Handling IControlMode message %s\n", cmd.toString().c_str());
if (!iMode)
{
fprintf(stderr, "Error I do not have a valid interface\n");
*ok=false;
return;
}
int code = cmd.get(1).asVocab();
*ok=true;
switch(code)
{
case VOCAB_SET:
{
int axis = cmd.get(3).asInt();
int mode=cmd.get(2).asVocab();
switch (mode)
{
case VOCAB_CM_POSITION:
*ok = iMode->setPositionMode(axis);
break;
case VOCAB_CM_POSITION_DIRECT:
*ok = iMode->setControlMode(axis, VOCAB_CM_POSITION_DIRECT);
break;
case VOCAB_CM_VELOCITY:
*ok = iMode->setVelocityMode(axis);
break;
case VOCAB_CM_MIXED:
*ok = iMode->setControlMode(axis, VOCAB_CM_MIXED);
break;
case VOCAB_CM_TORQUE:
*ok = iMode->setTorqueMode(axis);
break;
case VOCAB_CM_OPENLOOP:
*ok = iMode->setOpenLoopMode(axis);
break;
case VOCAB_CM_IDLE:
*ok = iMode->setControlMode(axis, VOCAB_CM_IDLE);
break;
case VOCAB_CM_FORCE_IDLE:
*ok = iMode->setControlMode(axis, VOCAB_CM_FORCE_IDLE);
break;
case VOCAB_CM_IMPEDANCE_POS:
*ok = iMode->setControlMode(axis, VOCAB_CM_IMPEDANCE_POS);
break;
case VOCAB_CM_IMPEDANCE_VEL:
*ok = iMode->setControlMode(axis, VOCAB_CM_IMPEDANCE_VEL);
break;
default:
*ok = false;
break;
}
*rec=true; //or false
}
break;
case VOCAB_GET:
{
if (cmd.get(2).asVocab()==VOCAB_CM_CONTROL_MODE)
{
int p=-1;
int axis = cmd.get(3).asInt();
fprintf(stderr, "Calling getControlMode\n");
*ok = iMode->getControlMode(axis, &p);
response.addVocab(VOCAB_IS);
response.addInt(axis);
response.addVocab(VOCAB_CM_CONTROL_MODE);
response.addVocab(p);
//fprintf(stderr, "Returning %d\n", p);
*rec=true;
}
}
break;
default:
{
*rec=false;
}
break;
}
}
示例8: 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;
}
示例9: respond
// Callback handler for RPC commands (?)
bool RpcMsgHandler::respond(const yarp::os::Bottle& cmd, yarp::os::Bottle& reply)
{
bool ok = true;
bool commandUnderstood = true; // is the command recognized?
if (caller->verbose())
printf("command received: %s\n", cmd.toString().c_str());
int code = cmd.get(0).asVocab();
switch (code)
{
case VOCAB_GET:
{
double dtmp = 0.0;
double dtmp2 = 0.0;
reply.addVocab(VOCAB_IS);
reply.add(cmd.get(1));
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;
//.........这里部分代码省略.........
示例10: parseIncomingMessage
void TaskYarpInterface::parseIncomingMessage(yarp::os::Bottle& input, yarp::os::Bottle& reply)
{
int btlSize = input.size();
for (auto i=0; i<btlSize; ++i) {
int msg;
int testInt = input.get(0).asInt();
std::string testStr = input.get(0).asString();
if ((testStr=="") && (testInt!=0)) {
msg = TASK_MESSAGE(testInt);
} else {
msg = TaskMessageHandler::stringToTaskManagerMessageTag(testStr);
}
switch (msg) {
case GET_TASK_STATE:
{
if (logMessages) {
yLog.info() << " ["<< this->task->getName() <<"]: " << "Processing request: GET_TASK_STATE";
}
TaskState state = this->task->getTaskState();
state.putIntoBottle(reply);
}break;
case GET_STIFFNESS:
{
if (logMessages) {
yLog.info() << " ["<< this->task->getName() <<"]: " << "Processing request: GET_STIFFNESS";
}
util::pourEigenMatrixIntoBottle(this->getStiffnessMatrix(), reply);
}break;
case GET_DAMPING:
{
if (logMessages) {
yLog.info() << " ["<< this->task->getName() <<"]: " << "Processing request: GET_DAMPING";
}
util::pourEigenMatrixIntoBottle(this->getDampingMatrix(), reply);
}break;
case GET_WEIGHTS:
{
if (logMessages) {
yLog.info() << " ["<< this->task->getName() <<"]: " << "Processing request: GET_WEIGHTS";
}
util::pourEigenVectorIntoBottle(this->getWeight(), reply);
}break;
case GET_DESIRED_TASK_STATE:
{
if (logMessages) {
yLog.info() << " ["<< this->task->getName() <<"]: " << "Processing request: GET_DESIRED_TASK_STATE";
}
TaskState state = this->task->getDesiredTaskState();
state.putIntoBottle(reply);
}break;
case GET_TASK_POSITION:
{
if (logMessages) {
yLog.info() << " ["<< this->task->getName() <<"]: " << "Processing request: GET_TASK_POSITION";
}
if ((this->task->getMetaTaskType()==Task::META_TASK_TYPE::POSITION) || (this->task->getMetaTaskType()==Task::META_TASK_TYPE::COM)) {
Eigen::Vector3d pos = this->task->getTaskState().getPosition().getTranslation();
util::pourEigenVectorIntoBottle(pos, reply);
}
}break;
case GET_DESIRED_TASK_POSITION:
{
if (logMessages) {
yLog.info() << " ["<< this->task->getName() <<"]: " << "Processing request: GET_DESIRED_TASK_POSITION";
}
if ((this->task->getMetaTaskType()==Task::META_TASK_TYPE::POSITION) || (this->task->getMetaTaskType()==Task::META_TASK_TYPE::COM)) {
Eigen::Vector3d pos = this->task->getDesiredTaskState().getPosition().getTranslation();
util::pourEigenVectorIntoBottle(pos, reply);
}
}break;
case GET_ACTIVITY_STATUS:
{
if (logMessages) {
yLog.info() << " ["<< this->task->getName() <<"]: " << "Processing request: GET_ACTIVITY_STATUS";
}
if (this->isActivated()) {
reply.addInt(TASK_IS_ACTIVATED);
} else {
reply.addInt(TASK_IS_DEACTIVATED);
}
}break;
case GET_DIMENSION:
{
if (logMessages) {
yLog.info() << " ["<< this->task->getName() <<"]: " << "Processing request: GET_DIMENSION";
}
OCRA_WARNING("this->task->getWeight() " << this->task->getWeight().size())
reply.addInt(this->task->getWeight().size());
}break;
//.........这里部分代码省略.........
示例11: yError
bool FrameGrabberControls2_Parser::respond(const yarp::os::Bottle& cmd, yarp::os::Bottle& response)
{
bool ok = false;
int action = cmd.get(1).asVocab();
int param = cmd.get(2).asVocab();
// yTrace() << "cmd received\n\t" << cmd.toString().c_str();
if(!fgCtrl2)
{
yError() << " Selected camera device has no IFrameGrabberControl2 interface";
return false;
}
response.clear();
switch (action)
{
case VOCAB_HAS:
{
response.addVocab(VOCAB_FRAMEGRABBER_CONTROL2);
response.addVocab(VOCAB_HAS);
response.addVocab(VOCAB_FEATURE);
response.addInt(param);
switch (param)
{
case VOCAB_FEATURE:
{
bool _hasFeat;
ok = fgCtrl2->hasFeature(cmd.get(3).asInt(), &_hasFeat);
response.addInt(_hasFeat);
} break;
case VOCAB_ONOFF:
{
bool _hasOnOff;
ok = fgCtrl2->hasOnOff(cmd.get(3).asInt(), &_hasOnOff);
response.addInt(_hasOnOff);
} break;
case VOCAB_AUTO:
{
bool _hasAuto;
ok = fgCtrl2->hasAuto(cmd.get(3).asInt(), &_hasAuto);
response.addInt(_hasAuto);
} break;
case VOCAB_MANUAL:
{
bool _hasManual;
ok = fgCtrl2->hasManual(cmd.get(3).asInt(), &_hasManual);
response.addInt(_hasManual);
} break;
case VOCAB_ONEPUSH:
{
bool _hasOnePush;
ok = fgCtrl2->hasOnePush(cmd.get(3).asInt(), &_hasOnePush);
response.addInt(_hasOnePush);
} break;
default:
{
yError() << "Unknown command 'HAS " << Vocab::decode(param) << "' received on IFrameGrabber2 interface";
response.clear();
ok = false;
} break;
} break; // end switch (param)
} break; // end VOCAB_HAS
case VOCAB_SET:
{
switch (param)
{
case VOCAB_FEATURE:
{
ok = fgCtrl2->setFeature(cmd.get(3).asInt(), cmd.get(4).asDouble());
} break;
case VOCAB_FEATURE2:
{
ok = fgCtrl2->setFeature(cmd.get(3).asInt(), cmd.get(4).asDouble(), cmd.get(5).asDouble());
} break;
case VOCAB_ACTIVE:
{
ok = fgCtrl2->setActive(cmd.get(3).asInt(), cmd.get(4).asInt());
} break;
case VOCAB_MODE:
{
ok = fgCtrl2->setMode(cmd.get(3).asInt(), (FeatureMode) cmd.get(4).asInt());
} break;
case VOCAB_ONEPUSH:
{
ok = fgCtrl2->setOnePush(cmd.get(3).asInt());
//.........这里部分代码省略.........
示例12: writeBottle
void IFixedSizeMatrixInputLearner::writeBottle(yarp::os::Bottle& bot) {
bot.addInt(this->getDomainRows());
bot.addInt(this->getDomainCols());
bot.addInt(this->getCoDomainSize());
}
开发者ID:helloxss,项目名称:online-inertial-parameter-estimation,代码行数:5,代码来源:IFixedSizeMatrixInputLearner.cpp
示例13: if
/*! @brief Fill a bottle with the contents of an object.
@param[in,out] aBottle The bottle to be filled.
@param[in] theData The value to be sent.
@param[in] hashMapFunction The function to be applied to hash tables to get values that can be
placed in a bottle.
@param[in] topLevel @c true if this is the outermost list of an object. */
static void
fillBottleFromValue(yarp::os::Bottle & aBottle,
cl_object theData,
cl_object hashMapFunction,
const bool topLevel)
{
ODL_ENTER(); //####
ODL_P3("aBottle = ", &aBottle, "theData = ", theData, "hashMapFunction = ", //####
hashMapFunction); //####
ODL_B1("topLevel = ", topLevel); //####
if (ECL_NIL != cl_integerp(theData))
{
ODL_LOG("(ECL_NIL != cl_integerp(theData))"); //####
aBottle.addInt(ecl_to_fixnum(theData));
}
else if (ECL_NIL != cl_realp(theData))
{
ODL_LOG("(ECL_NIL != cl_realp(theData))"); //####
aBottle.addDouble(ecl_to_double(theData));
}
else if (ECL_NIL != cl_stringp(theData))
{
ODL_LOG("(ECL_NIL != cl_stringp(theData))"); //####
cl_object aValue = si_coerce_to_base_string(theData);
if (ECL_NIL == aValue)
{
ODL_LOG("(ECL_NIL == aValue)"); //####
aBottle.addString("<unconvertible string>");
}
else
{
ODL_LOG("! (ECL_NIL == aValue)"); //####
aBottle.addString(reinterpret_cast<char *>(aValue->base_string.self));
}
}
else if (ECL_NIL != cl_symbolp(theData))
{
ODL_LOG("(ECL_NIL != cl_symbolp(theData))"); //####
cl_object aName = cl_symbol_name(theData);
if (ECL_NIL == aName)
{
ODL_LOG("(ECL_NIL == aName)"); //####
aBottle.addString("<problematic symbol>");
}
else
{
ODL_LOG("! (ECL_NIL == aName)"); //####
if (ECL_NIL == cl_stringp(aName))
{
ODL_LOG("(ECL_NIL == cl_stringp(aName))"); //####
aName = cl_string(aName);
}
aName = si_coerce_to_base_string(aName);
if (ECL_NIL == aName)
{
ODL_LOG("(ECL_NIL == aName)"); //####
aBottle.addString("<unconvertible symbol>");
}
else
{
ODL_LOG("! (ECL_NIL == aName)"); //####
aBottle.addString(reinterpret_cast<char *>(aName->base_string.self));
}
}
}
else if (ECL_NIL != cl_characterp(theData))
{
ODL_LOG("(ECL_NIL != cl_characterp(theData))"); //####
cl_object asString = cl_string(theData);
if (ECL_NIL == asString)
{
ODL_LOG("(ECL_NIL == asString)"); //####
aBottle.addString("<unconvertible character>");
}
else
{
ODL_LOG("! (ECL_NIL == asString)"); //####
aBottle.addString(reinterpret_cast<char *>(asString->base_string.self));
}
}
else if (ECL_NIL != cl_hash_table_p(theData))
{
ODL_LOG("(ECL_NIL != cl_hash_table_p(theData))"); //####
cl_env_ptr env = ecl_process_env();
cl_object aList;
cl_object errorSymbol = ecl_make_symbol("ERROR", "CL");
ECL_RESTART_CASE_BEGIN(env, ecl_list1(errorSymbol))
{
/* This form is evaluated with bound handlers. */
aList = cl_funcall(1, hashMapFunction, theData);
//.........这里部分代码省略.........
示例14: 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();
//.........这里部分代码省略.........