本文整理汇总了C++中yarp::os::Bottle::addDouble方法的典型用法代码示例。如果您正苦于以下问题:C++ Bottle::addDouble方法的具体用法?C++ Bottle::addDouble怎么用?C++ Bottle::addDouble使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类yarp::os::Bottle
的用法示例。
在下文中一共展示了Bottle::addDouble方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: parse_respond_vocab
/**
* Parser for VOCAB commands. It is called by virtual bool respond().
* @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
*/
bool parse_respond_vocab(const yarp::os::Bottle& command, yarp::os::Bottle& reply)
{
int request = command.get(1).asVocab();
if (request == VOCAB_NAV_GET_CURRENT_POS)
{
//plannerThread->setNewAbsTarget(loc);
reply.addVocab(VOCAB_OK);
reply.addString(m_localization_data.map_id);
reply.addDouble(m_localization_data.x);
reply.addDouble(m_localization_data.y);
reply.addDouble(m_localization_data.theta);
}
else if (request == VOCAB_NAV_SET_INITIAL_POS)
{
yarp::dev::Map2DLocation loc;
loc.map_id = command.get(2).asString();
loc.x = command.get(3).asDouble();
loc.y = command.get(4).asDouble();
loc.theta = command.get(5).asDouble();
initializeLocalization(loc);
reply.addVocab(VOCAB_OK);
}
else
{
reply.addVocab(VOCAB_ERR);
}
return true;
}
示例2: 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);
}
}
示例3:
void iCub::skinDynLib::vectorIntoBottle(const yarp::sig::Vector v, yarp::os::Bottle &b)
{
for (unsigned int i = 0; i < v.size(); i++)
{
b.addDouble(v[i]);
}
}
示例4: toVector
void iCub::skinDynLib::matrixIntoBottle(const yarp::sig::Matrix m, yarp::os::Bottle &b)
{
Vector v = toVector(m);
for (unsigned int i = 0; i < v.size(); i++)
{
b.addDouble(v[i]);
}
}
示例5:
void
DoubleArgumentDescriptor::addValueToBottle
(yarp::os::Bottle & container)
{
ODL_ENTER(); //####
ODL_P1("container = ", &container); //####
container.addDouble(_currentValue);
ODL_EXIT(); //####
} // DoubleArgumentDescriptor::addValueToBottle
示例6: getState
void WorldRpcInterface::getState( const yarp::os::Bottle& command, yarp::os::Bottle& reply, int& n )
{
KinematicModel::CompositeObject* object = getObject( command, reply, n );
if ( object )
{
const qreal* T = object->getT().data();
for ( int i = 0; i < 16; i++ )
{
reply.addDouble( T[i] );
}
//reply.addString("Set rotation (about x,y,z in degrees) of object.");
}
}
示例7: 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;
//.........这里部分代码省略.........
示例8: throw
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void iCub::skinForceControl::addToBottle(yarp::os::Bottle &b, const yarp::sig::Vector &v) throw()
{
for(unsigned int i=0; i<v.size(); i++)
b.addDouble(v[i]);
}
示例9: 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:
//.........这里部分代码省略.........
示例10: handleImpedanceMsg
void handleImpedanceMsg(IImpedanceControl *iimp, const yarp::os::Bottle& cmd,
yarp::os::Bottle& response, bool *rec, bool *ok)
{
fprintf(stderr, "Handling IImpedance messages\n");
if (!iimp)
{
fprintf(stderr, "Error, I do not have a valid IImpedance interface\n");
*ok=false;
return;
}
int controlledJoints;
iimp->getAxes(&controlledJoints);
int code = cmd.get(1).asVocab();
switch (code)
{
case VOCAB_SET:
{
*rec = true;
switch(cmd.get(2).asVocab())
{
case VOCAB_IMP_PARAM:
{
*ok = iimp->setImpedance(cmd.get(3).asInt(), cmd.get(4).asDouble(),cmd.get(5).asDouble());
}
break;
case VOCAB_IMP_OFFSET:
{
*ok = iimp->setImpedanceOffset (cmd.get(3).asInt(), cmd.get(4).asDouble());
}
break;
}
}
break;
case VOCAB_GET:
{
*rec = true;
int tmp = 0;
double dtmp0 = 0.0;
double dtmp1 = 0.0;
double dtmp2 = 0.0;
response.addVocab(VOCAB_IS);
response.add(cmd.get(1));
switch(cmd.get(2).asVocab())
{
case VOCAB_IMP_PARAM:
{
*ok = iimp->getImpedance(cmd.get(3).asInt(), &dtmp0, &dtmp1);
response.addDouble(dtmp0);
response.addDouble(dtmp1);
}
break;
case VOCAB_IMP_OFFSET:
{
*ok = iimp->getImpedanceOffset(cmd.get(3).asInt(), &dtmp0);
response.addDouble(dtmp0);
}
break;
}
}
break;
}
//rec --> true se il comando e' riconosciuto
//ok --> contiene il return value della chiamata all'interfaccia
// ...*ok=torque->setPid();
//torque->
}
示例11: handleTorqueMsg
//.........这里部分代码省略.........
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];
*ok = torque->getTorqueErrors(p);
Bottle& b = response.addList();
int i;
for (i = 0; i < controlledJoints; i++)
b.addDouble(p[i]);
delete[] p;
}
示例12: 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)
//.........这里部分代码省略.........
示例13: 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;
//.........这里部分代码省略.........
示例14: yError
//.........这里部分代码省略.........
} 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());
} break;
default:
{
yError() << "Unknown command 'SET " << Vocab::decode(param) << "' received on IFrameGrabber2 interface";
response.clear();
ok = false;
}
} break; // end switch (param)
} break; // end VOCAB_SET
case VOCAB_GET:
{
response.addVocab(VOCAB_FRAMEGRABBER_CONTROL2);
response.addVocab(param);
response.addVocab(VOCAB_IS);
switch (param)
{
case VOCAB_CAMERA_DESCRIPTION:
{
CameraDescriptor camera;
ok = fgCtrl2->getCameraDescription(&camera);
response.addInt(camera.busType);
response.addString(camera.deviceDescription);
yDebug() << "Response is " << response.toString();
} break;
case VOCAB_FEATURE:
{
double value;
ok = fgCtrl2->getFeature(cmd.get(3).asInt(), &value);
response.addDouble(value);
} break;
case VOCAB_FEATURE2:
{
double value1, value2;
ok = fgCtrl2->getFeature(cmd.get(3).asInt(), &value1, &value2);
response.addDouble(value1);
response.addDouble(value2);
} break;
case VOCAB_ACTIVE:
{
bool _isActive;
ok = fgCtrl2->getActive(cmd.get(3).asInt(), &_isActive);
response.addInt(_isActive);
} break;
case VOCAB_MODE:
{
FeatureMode _mode;
ok = fgCtrl2->getMode(cmd.get(3).asInt(), &_mode);
response.addInt(_mode);
} break;
default:
{
yError() << "Unknown command 'GET " << Vocab::decode(param) << "' received on IFrameGrabber2 interface";
response.clear();
ok = false;
}
} break; // end switch (param)
} break; // end VOCAB_GET
}
// yTrace() << "response is\n\t" << response.toString().c_str();
return ok;
}
示例15: 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);
//.........这里部分代码省略.........