Skip to content

Commit 7bb0d5d

Browse files
committed
* getLimits() renamed to getPosLimits()
* all methods of iControlLimits.h and IPidControl.h now use yarp::dev::ReturnValue * improved ControlBoardMsgs
1 parent 4ac3816 commit 7bb0d5d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+8485
-1254
lines changed

src/devices/controlBoardRemapper/ControlBoardRemapper.cpp

Lines changed: 63 additions & 63 deletions
Large diffs are not rendered by default.

src/devices/controlBoardRemapper/ControlBoardRemapper.h

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -211,21 +211,21 @@ class ControlBoardRemapper :
211211

212212
yarp::dev::ReturnValue setPids(const yarp::dev::PidControlTypeEnum& pidtype,const yarp::dev::Pid *ps) override;
213213

214-
bool setPidReference(const yarp::dev::PidControlTypeEnum& pidtype,int j, double ref) override;
214+
yarp::dev::ReturnValue setPidReference(const yarp::dev::PidControlTypeEnum& pidtype,int j, double ref) override;
215215

216-
bool setPidReferences(const yarp::dev::PidControlTypeEnum& pidtype,const double *refs) override;
216+
yarp::dev::ReturnValue setPidReferences(const yarp::dev::PidControlTypeEnum& pidtype,const double *refs) override;
217217

218-
bool setPidErrorLimit(const yarp::dev::PidControlTypeEnum& pidtype,int j, double limit) override;
218+
yarp::dev::ReturnValue setPidErrorLimit(const yarp::dev::PidControlTypeEnum& pidtype,int j, double limit) override;
219219

220-
bool setPidErrorLimits(const yarp::dev::PidControlTypeEnum& pidtype,const double *limits) override;
220+
yarp::dev::ReturnValue setPidErrorLimits(const yarp::dev::PidControlTypeEnum& pidtype,const double *limits) override;
221221

222-
bool getPidError(const yarp::dev::PidControlTypeEnum& pidtype,int j, double *err) override;
222+
yarp::dev::ReturnValue getPidError(const yarp::dev::PidControlTypeEnum& pidtype,int j, double *err) override;
223223

224-
bool getPidErrors(const yarp::dev::PidControlTypeEnum& pidtype,double *errs) override;
224+
yarp::dev::ReturnValue getPidErrors(const yarp::dev::PidControlTypeEnum& pidtype,double *errs) override;
225225

226-
bool getPidOutput(const yarp::dev::PidControlTypeEnum& pidtype,int j, double *out) override;
226+
yarp::dev::ReturnValue getPidOutput(const yarp::dev::PidControlTypeEnum& pidtype,int j, double *out) override;
227227

228-
bool getPidOutputs(const yarp::dev::PidControlTypeEnum& pidtype,double *outs) override;
228+
yarp::dev::ReturnValue getPidOutputs(const yarp::dev::PidControlTypeEnum& pidtype,double *outs) override;
229229

230230
yarp::dev::ReturnValue setPidOffset(const yarp::dev::PidControlTypeEnum& pidtype,int j, double v) override;
231231

@@ -239,13 +239,13 @@ class ControlBoardRemapper :
239239

240240
yarp::dev::ReturnValue getPids(const yarp::dev::PidControlTypeEnum& pidtype,yarp::dev::Pid *pids) override;
241241

242-
bool getPidReference(const yarp::dev::PidControlTypeEnum& pidtype,int j, double *ref) override;
242+
yarp::dev::ReturnValue getPidReference(const yarp::dev::PidControlTypeEnum& pidtype,int j, double *ref) override;
243243

244-
bool getPidReferences(const yarp::dev::PidControlTypeEnum& pidtype,double *refs) override;
244+
yarp::dev::ReturnValue getPidReferences(const yarp::dev::PidControlTypeEnum& pidtype,double *refs) override;
245245

246-
bool getPidErrorLimit(const yarp::dev::PidControlTypeEnum& pidtype,int j, double *limit) override;
246+
yarp::dev::ReturnValue getPidErrorLimit(const yarp::dev::PidControlTypeEnum& pidtype,int j, double *limit) override;
247247

248-
bool getPidErrorLimits(const yarp::dev::PidControlTypeEnum& pidtype,double *limits) override;
248+
yarp::dev::ReturnValue getPidErrorLimits(const yarp::dev::PidControlTypeEnum& pidtype,double *limits) override;
249249

250250
yarp::dev::ReturnValue resetPid(const yarp::dev::PidControlTypeEnum& pidtype,int j) override;
251251

@@ -412,13 +412,13 @@ class ControlBoardRemapper :
412412
bool getPowerSupplyVoltage(int m, double *val) override;
413413

414414
/* IControlLimits */
415-
bool setLimits(int j, double min, double max) override;
415+
yarp::dev::ReturnValue setPosLimits(int j, double min, double max) override;
416416

417-
bool getLimits(int j, double *min, double *max) override;
417+
yarp::dev::ReturnValue getPosLimits(int j, double *min, double *max) override;
418418

419-
bool setVelLimits(int j, double min, double max) override;
419+
yarp::dev::ReturnValue setVelLimits(int j, double min, double max) override;
420420

421-
bool getVelLimits(int j, double *min, double *max) override;
421+
yarp::dev::ReturnValue getVelLimits(int j, double *min, double *max) override;
422422

423423
/* IRemoteVariables */
424424

src/devices/fake/fakeMotionControl/FakeMotionControl.cpp

Lines changed: 46 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,7 @@ void FakeMotionControl::setInfoMPids(int j)
328328
_torqueSensorChan= allocAndCheck<int>(nj);
329329
_maxTorque=allocAndCheck<double>(nj);
330330
_torques = allocAndCheck<double>(nj);
331+
_minJntCmdVelocity = allocAndCheck<double>(nj);
331332
_maxJntCmdVelocity = allocAndCheck<double>(nj);
332333
_maxMotorVelocity = allocAndCheck<double>(nj);
333334
_newtonsToSensor=allocAndCheck<double>(nj);
@@ -454,6 +455,7 @@ bool FakeMotionControl::dealloc()
454455
checkAndDestroy(_braked);
455456
checkAndDestroy(_autobraked);
456457
checkAndDestroy(_maxTorque);
458+
checkAndDestroy(_minJntCmdVelocity);
457459
checkAndDestroy(_maxJntCmdVelocity);
458460
checkAndDestroy(_maxMotorVelocity);
459461
checkAndDestroy(_newtonsToSensor);
@@ -597,7 +599,6 @@ FakeMotionControl::FakeMotionControl() :
597599
_limitsMin (nullptr),
598600
_limitsMax (nullptr),
599601
_kinematic_mj (nullptr),
600-
_maxJntCmdVelocity (nullptr),
601602
_maxMotorVelocity (nullptr),
602603
_velocityShifts (nullptr),
603604
_velocityTimeout (nullptr),
@@ -660,6 +661,7 @@ bool FakeMotionControl::threadInit()
660661
last_velocity_command[i] = -1;
661662
last_pwm_command[i] = -1;
662663
_controlModes[i] = VOCAB_CM_POSITION;
664+
_minJntCmdVelocity[i]=-50.0;
663665
_maxJntCmdVelocity[i]=50.0;
664666
}
665667
prev_time = yarp::os::Time::now();
@@ -1009,7 +1011,7 @@ ReturnValue FakeMotionControl::setPidsRaw(const PidControlTypeEnum& pidtype, con
10091011
return ret;
10101012
}
10111013

1012-
bool FakeMotionControl::setPidReferenceRaw(const PidControlTypeEnum& pidtype, int j, double ref)
1014+
ReturnValue FakeMotionControl::setPidReferenceRaw(const PidControlTypeEnum& pidtype, int j, double ref)
10131015
{
10141016
size_t index = PidControlTypeEnum2Index(pidtype);
10151017
switch (pidtype)
@@ -1051,23 +1053,23 @@ bool FakeMotionControl::setPidReferenceRaw(const PidControlTypeEnum& pidtype, in
10511053
break;
10521054
default:
10531055
yCError(FAKEMOTIONCONTROL) << "Invalid pid type";
1054-
return false;
1056+
return ReturnValue::return_code::return_value_error_method_failed;
10551057
break;
10561058
}
1057-
return true;
1059+
return ReturnValue_ok;
10581060
}
10591061

1060-
bool FakeMotionControl::setPidReferencesRaw(const PidControlTypeEnum& pidtype, const double *refs)
1062+
ReturnValue FakeMotionControl::setPidReferencesRaw(const PidControlTypeEnum& pidtype, const double *refs)
10611063
{
1062-
bool ret = true;
1064+
ReturnValue ret = ReturnValue_ok;
10631065
for(int j=0, index=0; j< _njoints; j++, index++)
10641066
{
10651067
ret &= setPidReferenceRaw(pidtype, j, refs[index]);
10661068
}
10671069
return ret;
10681070
}
10691071

1070-
bool FakeMotionControl::setPidErrorLimitRaw(const PidControlTypeEnum& pidtype, int j, double limit)
1072+
ReturnValue FakeMotionControl::setPidErrorLimitRaw(const PidControlTypeEnum& pidtype, int j, double limit)
10711073
{
10721074
size_t index = PidControlTypeEnum2Index(pidtype);
10731075
switch (pidtype)
@@ -1109,23 +1111,23 @@ bool FakeMotionControl::setPidErrorLimitRaw(const PidControlTypeEnum& pidtype, i
11091111
break;
11101112
default:
11111113
yCError(FAKEMOTIONCONTROL) << "Invalid pid type";
1112-
return false;
1114+
return ReturnValue::return_code::return_value_error_method_failed;
11131115
break;
11141116
}
1115-
return true;
1117+
return ReturnValue_ok;
11161118
}
11171119

1118-
bool FakeMotionControl::setPidErrorLimitsRaw(const PidControlTypeEnum& pidtype, const double *limits)
1120+
ReturnValue FakeMotionControl::setPidErrorLimitsRaw(const PidControlTypeEnum& pidtype, const double *limits)
11191121
{
1120-
bool ret = true;
1122+
ReturnValue ret = ReturnValue_ok;
11211123
for(int j=0, index=0; j< _njoints; j++, index++)
11221124
{
11231125
ret &= setPidErrorLimitRaw(pidtype, j, limits[index]);
11241126
}
11251127
return ret;
11261128
}
11271129

1128-
bool FakeMotionControl::getPidErrorRaw(const PidControlTypeEnum& pidtype, int j, double *err)
1130+
ReturnValue FakeMotionControl::getPidErrorRaw(const PidControlTypeEnum& pidtype, int j, double *err)
11291131
{
11301132
switch (pidtype)
11311133
{
@@ -1166,15 +1168,15 @@ bool FakeMotionControl::getPidErrorRaw(const PidControlTypeEnum& pidtype, int j,
11661168
break;
11671169
default:
11681170
yCError(FAKEMOTIONCONTROL) << "Invalid pid type";
1169-
return false;
1171+
return ReturnValue::return_code::return_value_error_method_failed;
11701172
break;
11711173
}
1172-
return true;
1174+
return ReturnValue_ok;
11731175
}
11741176

1175-
bool FakeMotionControl::getPidErrorsRaw(const PidControlTypeEnum& pidtype, double *errs)
1177+
ReturnValue FakeMotionControl::getPidErrorsRaw(const PidControlTypeEnum& pidtype, double *errs)
11761178
{
1177-
bool ret = true;
1179+
ReturnValue ret = ReturnValue_ok;
11781180
for(int j=0; j< _njoints; j++)
11791181
{
11801182
ret &= getPidErrorRaw(pidtype, j, &errs[j]);
@@ -1242,7 +1244,7 @@ ReturnValue FakeMotionControl::getPidsRaw(const PidControlTypeEnum& pidtype, Pid
12421244
return ret;
12431245
}
12441246

1245-
bool FakeMotionControl::getPidReferenceRaw(const PidControlTypeEnum& pidtype, int j, double *ref)
1247+
ReturnValue FakeMotionControl::getPidReferenceRaw(const PidControlTypeEnum& pidtype, int j, double *ref)
12461248
{
12471249
size_t index = PidControlTypeEnum2Index(pidtype);
12481250
switch (pidtype)
@@ -1284,15 +1286,15 @@ bool FakeMotionControl::getPidReferenceRaw(const PidControlTypeEnum& pidtype, in
12841286
break;
12851287
default:
12861288
yCError(FAKEMOTIONCONTROL) << "Invalid pid type";
1287-
return false;
1289+
return ReturnValue::return_code::return_value_error_method_failed;
12881290
break;
12891291
}
1290-
return true;
1292+
return ReturnValue_ok;
12911293
}
12921294

1293-
bool FakeMotionControl::getPidReferencesRaw(const PidControlTypeEnum& pidtype, double *refs)
1295+
ReturnValue FakeMotionControl::getPidReferencesRaw(const PidControlTypeEnum& pidtype, double *refs)
12941296
{
1295-
bool ret = true;
1297+
ReturnValue ret = ReturnValue_ok;
12961298

12971299
// just one joint at time, wait answer before getting to the next.
12981300
// This is because otherwise too many msg will be placed into can queue
@@ -1303,7 +1305,7 @@ bool FakeMotionControl::getPidReferencesRaw(const PidControlTypeEnum& pidtype, d
13031305
return ret;
13041306
}
13051307

1306-
bool FakeMotionControl::getPidErrorLimitRaw(const PidControlTypeEnum& pidtype, int j, double *limit)
1308+
ReturnValue FakeMotionControl::getPidErrorLimitRaw(const PidControlTypeEnum& pidtype, int j, double *limit)
13071309
{
13081310
size_t index = PidControlTypeEnum2Index(pidtype);
13091311
switch (pidtype)
@@ -1345,15 +1347,15 @@ bool FakeMotionControl::getPidErrorLimitRaw(const PidControlTypeEnum& pidtype, i
13451347
break;
13461348
default:
13471349
yCError(FAKEMOTIONCONTROL) << "Invalid pid type";
1348-
return false;
1350+
return ReturnValue::return_code::return_value_error_method_failed;
13491351
break;
13501352
}
1351-
return true;
1353+
return ReturnValue_ok;
13521354
}
13531355

1354-
bool FakeMotionControl::getPidErrorLimitsRaw(const PidControlTypeEnum& pidtype, double *limits)
1356+
ReturnValue FakeMotionControl::getPidErrorLimitsRaw(const PidControlTypeEnum& pidtype, double *limits)
13551357
{
1356-
bool ret = true;
1358+
ReturnValue ret = ReturnValue_ok;
13571359
for(int j=0, index=0; j<_njoints; j++, index++)
13581360
{
13591361
ret &=getPidErrorLimitRaw(pidtype, j, &limits[j]);
@@ -1706,7 +1708,7 @@ ReturnValue FakeMotionControl::isPidEnabledRaw(const PidControlTypeEnum& pidtype
17061708
return ReturnValue_ok;
17071709
}
17081710

1709-
bool FakeMotionControl::getPidOutputRaw(const PidControlTypeEnum& pidtype, int j, double *out)
1711+
ReturnValue FakeMotionControl::getPidOutputRaw(const PidControlTypeEnum& pidtype, int j, double *out)
17101712
{
17111713
size_t index = PidControlTypeEnum2Index(pidtype);
17121714
switch (pidtype)
@@ -1748,16 +1750,16 @@ bool FakeMotionControl::getPidOutputRaw(const PidControlTypeEnum& pidtype, int j
17481750
break;
17491751
default:
17501752
yCError(FAKEMOTIONCONTROL) << "Invalid pid type";
1751-
return false;
1753+
return ReturnValue::return_code::return_value_error_method_failed;
17521754
break;
17531755
}
17541756
yCDebug(FAKEMOTIONCONTROL) << "getPidOutputRaw" << (yarp::conf::vocab32_t)(pidtype) << j << *out;
1755-
return true;
1757+
return ReturnValue_ok;
17561758
}
17571759

1758-
bool FakeMotionControl::getPidOutputsRaw(const PidControlTypeEnum& pidtype, double *outs)
1760+
ReturnValue FakeMotionControl::getPidOutputsRaw(const PidControlTypeEnum& pidtype, double *outs)
17591761
{
1760-
bool ret = true;
1762+
ReturnValue ret = ReturnValue_ok;
17611763
for(int j=0; j< _njoints; j++)
17621764
{
17631765
ret &= getPidOutputRaw(pidtype, j, &outs[j]);
@@ -2569,17 +2571,18 @@ bool FakeMotionControl::getPowerSupplyVoltageRaw(int m, double* val)
25692571

25702572

25712573
// Limit interface
2572-
bool FakeMotionControl::setLimitsRaw(int j, double min, double max)
2574+
ReturnValue FakeMotionControl::setPosLimitsRaw(int j, double min, double max)
25732575
{
2574-
bool ret = true;
2575-
return ret;
2576+
_limitsMin[j] = min;
2577+
_limitsMax[j] = max;
2578+
return ReturnValue_ok;
25762579
}
25772580

2578-
bool FakeMotionControl::getLimitsRaw(int j, double *min, double *max)
2581+
ReturnValue FakeMotionControl::getPosLimitsRaw(int j, double *min, double *max)
25792582
{
25802583
*min = _limitsMin[j];
25812584
*max = _limitsMax[j];
2582-
return true;
2585+
return ReturnValue_ok;
25832586
}
25842587

25852588
bool FakeMotionControl::getGearboxRatioRaw(int j, double *gearbox)
@@ -2680,16 +2683,18 @@ bool FakeMotionControl::getJointTypeRaw(int axis, yarp::dev::JointTypeEnum& type
26802683
}
26812684

26822685
// IControlLimits
2683-
bool FakeMotionControl::setVelLimitsRaw(int axis, double min, double max)
2686+
ReturnValue FakeMotionControl::setVelLimitsRaw(int axis, double min, double max)
26842687
{
2685-
return NOT_YET_IMPLEMENTED("setVelLimitsRaw");
2688+
_minJntCmdVelocity[axis] = min;
2689+
_maxJntCmdVelocity[axis] = max;
2690+
return ReturnValue_ok;
26862691
}
26872692

2688-
bool FakeMotionControl::getVelLimitsRaw(int axis, double *min, double *max)
2693+
ReturnValue FakeMotionControl::getVelLimitsRaw(int axis, double *min, double *max)
26892694
{
2690-
*min = 0.0;
2695+
*min = _minJntCmdVelocity[axis];
26912696
*max = _maxJntCmdVelocity[axis];
2692-
return true;
2697+
return ReturnValue_ok;
26932698
}
26942699

26952700

0 commit comments

Comments
 (0)