yarp-devices
Loading...
Searching...
No Matches
TechnosoftIpos.hpp
1// -*- mode:C++; tab-width:4; c-basic-offset:4; indent-tabs-mode:nil -*-
2
3#ifndef __TECHNOSOFT_IPOS_HPP__
4#define __TECHNOSOFT_IPOS_HPP__
5
6#include "TechnosoftIposBase.hpp"
7
8#include "TechnosoftIpos_ParamsParser.h"
9
20class TechnosoftIpos : public yarp::dev::DeviceDriver,
21 public yarp::dev::IAxisInfoRaw,
22 public yarp::dev::IControlLimitsRaw,
23 public yarp::dev::IControlModeRaw,
24 public yarp::dev::ICurrentControlRaw,
25 public yarp::dev::IEncodersTimedRaw,
26 public yarp::dev::IImpedanceControlRaw,
27 public yarp::dev::IInteractionModeRaw,
28 public yarp::dev::IJointFaultRaw,
29 public yarp::dev::IMotorRaw,
30 public yarp::dev::IMotorEncodersRaw,
31 public yarp::dev::IPidControlRaw,
32 public yarp::dev::IPositionControlRaw,
33 public yarp::dev::IPositionDirectRaw,
34 public yarp::dev::IRemoteVariablesRaw,
35 public yarp::dev::ITorqueControlRaw,
36 public yarp::dev::IVelocityControlRaw,
39{
40public:
41
42#if YARP_VERSION_COMPARE(>=, 4, 0, 0)
43 using return_t = yarp::dev::ReturnValue;
44#else
45 using return_t = bool;
46#endif
47
48 // --------- DeviceDriver declarations. Implementation in DeviceDriverImpl.cpp ---------
49
50 bool open(yarp::os::Searchable & config) override;
51 bool close() override;
52
53 std::string id() const override
54 { return impl->id(); }
55
56 // --------- ICanBusSharer declarations. Implementation in ICanBusSharerImpl.cpp ---------
57
58 unsigned int getId() override
59 { return impl->getId(); }
60
61 std::vector<unsigned int> getAdditionalIds() override
62 { return impl->getAdditionalIds(); }
63
64 bool notifyMessage(const roboticslab::can_message & message) override
65 { return impl->notifyMessage(message); }
66
67 bool initialize() override
68 { return impl->initialize(); }
69
70 bool finalize() override
71 { return impl->finalize(); }
72
74 { return impl->registerSender(sender); }
75
76 bool synchronize(double timestamp) override
77 { return impl->synchronize(timestamp); }
78
79 // --------- IAxisInfoRaw declarations. Implementation in IAxisInfoRawImpl.cpp ---------
80
81 return_t getAxisNameRaw(int axis, std::string & name) override
82 { return impl->getAxisNameRaw(axis, name); }
83
84 return_t getJointTypeRaw(int axis, yarp::dev::JointTypeEnum & type) override
85 { return impl->getJointTypeRaw(axis, type); }
86
87 // --------- IControlLimitsRaw declarations. Implementation in IControlLimitsRawImpl.cpp ---------
88
89#if YARP_VERSION_COMPARE(>=, 4, 0, 0)
90 return_t setPosLimitsRaw(int axis, double min, double max) override
91 { return impl->setPosLimitsRaw(axis, min, max); }
92
93 return_t getPosLimitsRaw(int axis, double * min, double * max) override
94 { return impl->getPosLimitsRaw(axis, min, max); }
95#else
96 return_t setLimitsRaw(int axis, double min, double max) override
97 { return impl->setLimitsRaw(axis, min, max); }
98
99 return_t getLimitsRaw(int axis, double * min, double * max) override
100 { return impl->getLimitsRaw(axis, min, max); }
101#endif
102
103 return_t setVelLimitsRaw(int axis, double min, double max) override
104 { return impl->setVelLimitsRaw(axis, min, max); }
105
106 return_t getVelLimitsRaw(int axis, double * min, double * max) override
107 { return impl->getVelLimitsRaw(axis, min, max); }
108
109 // --------- IControlModeRaw declarations. Implementation in IControlModeRawImpl.cpp ---------
110
111#if YARP_VERSION_COMPARE(>=, 4, 0, 0)
112 return_t getAvailableControlModesRaw(int j, std::vector<yarp::dev::SelectableControlModeEnum> & avail) override
113 { return impl->getAvailableControlModesRaw(j, avail); }
114
115 return_t getControlModeRaw(int j, yarp::dev::ControlModeEnum & mode) override
116 { return impl->getControlModeRaw(j, mode); }
117
118 return_t getControlModesRaw(std::vector<yarp::dev::ControlModeEnum> & modes) override
119 { return impl->getControlModesRaw(modes); }
120
121 return_t getControlModesRaw(const std::vector<int> & joints, std::vector<yarp::dev::ControlModeEnum> & modes) override
122 { return impl->getControlModesRaw(joints, modes); }
123
124 return_t setControlModeRaw(int j, yarp::dev::SelectableControlModeEnum mode) override
125 { return impl->setControlModeRaw(j, mode); }
126
127 return_t setControlModesRaw(const std::vector<yarp::dev::SelectableControlModeEnum> & modes) override
128 { return impl->setControlModesRaw(modes); }
129
130 return_t setControlModesRaw(const std::vector<int> & joints, const std::vector<yarp::dev::SelectableControlModeEnum> & modes) override
131 { return impl->setControlModesRaw(joints, modes); }
132#else
133 return_t getControlModeRaw(int j, int * mode) override
134 { return impl->getControlModeRaw(j, mode); }
135
136 return_t getControlModesRaw(int * modes) override
137 { return impl->getControlModesRaw(modes); }
138
139 return_t getControlModesRaw(int n_joint, const int * joints, int * modes) override
140 { return impl->getControlModesRaw(n_joint, joints, modes); }
141
142 return_t setControlModeRaw(int j, int mode) override
143 { return impl->setControlModeRaw(j, mode); }
144
145 return_t setControlModesRaw(int * modes) override
146 { return impl->setControlModesRaw(modes); }
147
148 return_t setControlModesRaw(int n_joint, const int * joints, int * modes) override
149 { return impl->setControlModesRaw(n_joint, joints, modes); }
150#endif
151
152 // --------- ICurrentControlRaw declarations. Implementation in ICurrentControlRawImpl.cpp ---------
153
154 //bool getNumberOfMotorsRaw(int * number) override;
155
156 return_t getCurrentRaw(int m, double * curr) override
157 { return impl->getCurrentRaw(m, curr); }
158
159 return_t getCurrentsRaw(double * currs) override
160 { return impl->getCurrentsRaw(currs); }
161
162 return_t getCurrentRangeRaw(int m, double * min, double * max) override
163 { return impl->getCurrentRangeRaw(m, min, max); }
164
165 return_t getCurrentRangesRaw(double * min, double * max) override
166 { return impl->getCurrentRangesRaw(min, max); }
167
168 return_t setRefCurrentRaw(int m, double curr) override
169 { return impl->setRefCurrentRaw(m, curr); }
170
171 return_t setRefCurrentsRaw(const double * currs) override
172 { return impl->setRefCurrentsRaw(currs); }
173
174 return_t setRefCurrentsRaw(int n_motor, const int * motors, const double * currs) override
175 { return impl->setRefCurrentsRaw(n_motor, motors, currs); }
176
177 return_t getRefCurrentRaw(int m, double * curr) override
178 { return impl->getRefCurrentRaw(m, curr); }
179
180 return_t getRefCurrentsRaw(double * currs) override
181 { return impl->getRefCurrentsRaw(currs); }
182
183 // ---------- IEncodersRaw declarations. Implementation in IEncodersRawImpl.cpp ----------
184
185#if YARP_VERSION_COMPARE(>=, 4, 0, 0)
186 return_t getAxes(std::size_t & ax) override
187 { return impl->getAxes(ax); }
188#else
189 return_t getAxes(int * ax) override
190 { return impl->getAxes(ax); }
191#endif
192
193 return_t resetEncoderRaw(int j) override
194 { return impl->resetEncoderRaw(j); }
195
196 return_t resetEncodersRaw() override
197 { return impl->resetEncodersRaw(); }
198
199 return_t setEncoderRaw(int j, double val) override
200 { return impl->setEncoderRaw(j, val); }
201
202 return_t setEncodersRaw(const double * vals) override
203 { return impl->setEncodersRaw(vals); }
204
205 return_t getEncoderRaw(int j, double * v) override
206 { return impl->getEncoderRaw(j, v); }
207
208 return_t getEncodersRaw(double * encs) override
209 { return impl->getEncodersRaw(encs); }
210
211 return_t getEncoderSpeedRaw(int j, double * sp) override
212 { return impl->getEncoderSpeedRaw(j, sp); }
213
214 return_t getEncoderSpeedsRaw(double * spds) override
215 { return impl->getEncoderSpeedsRaw(spds); }
216
217 return_t getEncoderAccelerationRaw(int j, double * spds) override
218 { return impl->getEncoderAccelerationRaw(j, spds); }
219
220 return_t getEncoderAccelerationsRaw(double * accs) override
221 { return impl->getEncoderAccelerationsRaw(accs); }
222
223 // ---------- IEncodersTimedRaw declarations. Implementation in IEncodersRawImpl.cpp ----------
224
225 return_t getEncoderTimedRaw(int j, double * encs, double * time) override
226 { return impl->getEncoderTimedRaw(j, encs, time); }
227
228 return_t getEncodersTimedRaw(double * encs, double * time) override
229 { return impl->getEncodersTimedRaw(encs, time); }
230
231 // ---------- IImpedanceControlRaw declarations. Implementation in IImpedanceControlRawImpl.cpp ----------
232
233 //bool getAxes(int * ax) override;
234
235 return_t getImpedanceRaw(int j, double * stiffness, double * damping) override
236 { return impl->getImpedanceRaw(j, stiffness, damping); }
237
238 return_t setImpedanceRaw(int j, double stiffness, double damping) override
239 { return impl->setImpedanceRaw(j, stiffness, damping); }
240
241 return_t setImpedanceOffsetRaw(int j, double offset) override
242 { return impl->setImpedanceOffsetRaw(j, offset); }
243
244 return_t getImpedanceOffsetRaw(int j, double * offset) override
245 { return impl->getImpedanceOffsetRaw(j, offset); }
246
247 return_t getCurrentImpedanceLimitRaw(int j, double * min_stiff, double * max_stiff, double * min_damp, double * max_damp) override
248 { return impl->getCurrentImpedanceLimitRaw(j, min_stiff, max_stiff, min_damp, max_damp); }
249
250 // ---------- IInteractionModeRaw declarations. Implementation in IInteractionModeRawImpl.cpp ----------
251
252#if YARP_VERSION_COMPARE(>=, 4, 0, 0)
253 return_t getInteractionModeRaw(int axis, yarp::dev::InteractionModeEnum & mode) override
254 { return impl->getInteractionModeRaw(axis, mode); }
255
256 return_t getInteractionModesRaw(std::vector<yarp::dev::InteractionModeEnum> & modes) override
257 { return impl->getInteractionModesRaw(modes); }
258
259 return_t getInteractionModesRaw(const std::vector<int> & joints, std::vector<yarp::dev::InteractionModeEnum> & modes) override
260 { return impl->getInteractionModesRaw(joints, modes); }
261
262 return_t setInteractionModeRaw(int axis, yarp::dev::InteractionModeEnum mode) override
263 { return impl->setInteractionModeRaw(axis, mode); }
264
265 return_t setInteractionModesRaw(const std::vector<yarp::dev::InteractionModeEnum> & modes) override
266 { return impl->setInteractionModesRaw(modes); }
267
268 return_t setInteractionModesRaw(const std::vector<int> & joints, const std::vector<yarp::dev::InteractionModeEnum> & modes) override
269 { return impl->setInteractionModesRaw(joints, modes); }
270#else
271 return_t getInteractionModeRaw(int axis, yarp::dev::InteractionModeEnum * mode) override
272 { return impl->getInteractionModeRaw(axis, mode); }
273
274 return_t getInteractionModesRaw(int n_joints, int * joints, yarp::dev::InteractionModeEnum * modes) override
275 { return impl->getInteractionModesRaw(n_joints, joints, modes); }
276
277 return_t getInteractionModesRaw(yarp::dev::InteractionModeEnum * modes) override
278 { return impl->getInteractionModesRaw(modes); }
279
280 return_t setInteractionModeRaw(int axis, yarp::dev::InteractionModeEnum mode) override
281 { return impl->setInteractionModeRaw(axis, mode); }
282
283 return_t setInteractionModesRaw(int n_joints, int * joints, yarp::dev::InteractionModeEnum * modes) override
284 { return impl->setInteractionModesRaw(n_joints, joints, modes); }
285
286 return_t setInteractionModesRaw(yarp::dev::InteractionModeEnum * modes) override
287 { return impl->setInteractionModesRaw(modes); }
288#endif
289
290 // ---------- IJointFaultRaw declarations. Implementation in IJointFaultRawImpl.cpp ----------
291
292 return_t getLastJointFaultRaw(int j, int & fault, std::string & message) override
293 { return impl->getLastJointFaultRaw(j, fault, message); }
294
295 // --------- IMotorRaw declarations. Implementation in IMotorRawImpl.cpp ---------
296
297 return_t getNumberOfMotorsRaw(int * num) override
298 { return impl->getNumberOfMotorsRaw(num); }
299
300 return_t getTemperatureRaw(int m, double * val) override
301 { return impl->getTemperatureRaw(m, val); }
302
303 return_t getTemperaturesRaw(double * vals) override
304 { return impl->getTemperaturesRaw(vals); }
305
306 return_t getTemperatureLimitRaw(int m, double * temp) override
307 { return impl->getTemperatureLimitRaw(m, temp); }
308
309 return_t setTemperatureLimitRaw(int m, double temp) override
310 { return impl->setTemperatureLimitRaw(m, temp); }
311
312 return_t getGearboxRatioRaw(int m, double * val) override
313 { return impl->getGearboxRatioRaw(m, val); }
314
315 return_t setGearboxRatioRaw(int m, double val) override
316 { return impl->setGearboxRatioRaw(m, val); }
317
318 // --------- IMotorEncodersRaw declarations. Implementation in IMotorEncodersRawImpl.cpp ---------
319
320 return_t getNumberOfMotorEncodersRaw(int * num) override
321 { return impl->getNumberOfMotorEncodersRaw(num); }
322
323 return_t resetMotorEncoderRaw(int m) override
324 { return impl->resetMotorEncoderRaw(m); }
325
326 return_t resetMotorEncodersRaw() override
327 { return impl->resetMotorEncodersRaw(); }
328
329 return_t setMotorEncoderCountsPerRevolutionRaw(int m, double cpr) override
330 { return impl->setMotorEncoderCountsPerRevolutionRaw(m, cpr); }
331
332 return_t getMotorEncoderCountsPerRevolutionRaw(int m, double * cpr) override
333 { return impl->getMotorEncoderCountsPerRevolutionRaw(m, cpr); }
334
335 return_t setMotorEncoderRaw(int m, double val) override
336 { return impl->setMotorEncoderRaw(m, val); }
337
338 return_t setMotorEncodersRaw(const double * vals) override
339 { return impl->setMotorEncodersRaw(vals); }
340
341 return_t getMotorEncoderRaw(int m, double * v) override
342 { return impl->getMotorEncoderRaw(m, v); }
343
344 return_t getMotorEncodersRaw(double * encs) override
345 { return impl->getMotorEncodersRaw(encs); }
346
347 return_t getMotorEncoderTimedRaw(int m, double * encs, double * stamp) override
348 { return impl->getMotorEncoderTimedRaw(m, encs, stamp); }
349
350 return_t getMotorEncodersTimedRaw(double * encs, double * stamps) override
351 { return impl->getMotorEncodersTimedRaw(encs, stamps); }
352
353 return_t getMotorEncoderSpeedRaw(int m, double * sp) override
354 { return impl->getMotorEncoderSpeedRaw(m, sp); }
355
356 return_t getMotorEncoderSpeedsRaw(double * spds) override
357 { return impl->getMotorEncoderSpeedsRaw(spds); }
358
359 return_t getMotorEncoderAccelerationRaw(int m, double * spds) override
360 { return impl->getMotorEncoderAccelerationRaw(m, spds); }
361
362 return_t getMotorEncoderAccelerationsRaw(double * vaccs) override
363 { return impl->getMotorEncoderAccelerationsRaw(vaccs); }
364
365 // --------- IPidControlRaw declarations. Implementation in IPidControlRawImpl.cpp ---------
366
367#if YARP_VERSION_COMPARE(>=, 4, 0, 0)
368 return_t getAvailablePidsRaw(int j, std::vector<yarp::dev::PidControlTypeEnum> & avail) override
369 { return impl->getAvailablePidsRaw(j, avail); }
370#endif
371
372 return_t setPidRaw(const yarp::dev::PidControlTypeEnum & pidtype, int j, const yarp::dev::Pid & pid) override
373 { return impl->setPidRaw(pidtype, j, pid); }
374
375 return_t setPidsRaw(const yarp::dev::PidControlTypeEnum & pidtype, const yarp::dev::Pid * pids) override
376 { return impl->setPidsRaw(pidtype, pids); }
377
378 return_t setPidReferenceRaw(const yarp::dev::PidControlTypeEnum & pidtype, int j, double ref) override
379 { return impl->setPidReferenceRaw(pidtype, j, ref); }
380
381 return_t setPidReferencesRaw(const yarp::dev::PidControlTypeEnum & pidtype, const double * refs) override
382 { return impl->setPidReferencesRaw(pidtype, refs); }
383
384 return_t setPidErrorLimitRaw(const yarp::dev::PidControlTypeEnum & pidtype, int j, double limit) override
385 { return impl->setPidErrorLimitRaw(pidtype, j, limit); }
386
387 return_t setPidErrorLimitsRaw(const yarp::dev::PidControlTypeEnum & pidtype, const double * limits) override
388 { return impl->setPidErrorLimitsRaw(pidtype, limits); }
389
390 return_t getPidErrorRaw(const yarp::dev::PidControlTypeEnum & pidtype, int j, double * err) override
391 { return impl->getPidErrorRaw(pidtype, j, err); }
392
393 return_t getPidErrorsRaw(const yarp::dev::PidControlTypeEnum & pidtype, double * errs) override
394 { return impl->getPidErrorsRaw(pidtype, errs); }
395
396 return_t getPidOutputRaw(const yarp::dev::PidControlTypeEnum & pidtype, int j, double * out) override
397 { return impl->getPidOutputRaw(pidtype, j, out); }
398
399 return_t getPidOutputsRaw(const yarp::dev::PidControlTypeEnum & pidtype, double * outs) override
400 { return impl->getPidOutputsRaw(pidtype, outs); }
401
402 return_t getPidRaw(const yarp::dev::PidControlTypeEnum & pidtype, int j, yarp::dev::Pid * pid) override
403 { return impl->getPidRaw(pidtype, j, pid); }
404
405 return_t getPidsRaw(const yarp::dev::PidControlTypeEnum & pidtype, yarp::dev::Pid * pids) override
406 { return impl->getPidsRaw(pidtype, pids); }
407
408#if YARP_VERSION_COMPARE(>=, 4, 0, 0)
409 return_t getPidOffsetRaw(const yarp::dev::PidControlTypeEnum & pidtype, int j, double & v) override
410 { return impl->getPidOffsetRaw(pidtype, j, v); }
411
412 return_t getPidFeedforwardRaw(const yarp::dev::PidControlTypeEnum & pidtype, int j, double & v) override
413 { return impl->getPidFeedforwardRaw(pidtype, j, v); }
414
415 return_t getPidExtraInfoRaw(const yarp::dev::PidControlTypeEnum & pidtype, int j, yarp::dev::PidExtraInfo & info) override
416 { return impl->getPidExtraInfoRaw(pidtype, j, info); }
417
418 return_t getPidExtraInfosRaw(const yarp::dev::PidControlTypeEnum & pidtype, std::vector<yarp::dev::PidExtraInfo> & info) override
419 { return impl->getPidExtraInfosRaw(pidtype, info); }
420#endif
421
422 return_t getPidReferenceRaw(const yarp::dev::PidControlTypeEnum & pidtype, int j, double * ref) override
423 { return impl->getPidReferenceRaw(pidtype, j, ref); }
424
425 return_t getPidReferencesRaw(const yarp::dev::PidControlTypeEnum & pidtype, double * refs) override
426 { return impl->getPidReferencesRaw(pidtype, refs); }
427
428 return_t getPidErrorLimitRaw(const yarp::dev::PidControlTypeEnum & pidtype, int j, double * limit) override
429 { return impl->getPidErrorLimitRaw(pidtype, j, limit); }
430
431 return_t getPidErrorLimitsRaw(const yarp::dev::PidControlTypeEnum & pidtype, double * limits) override
432 { return impl->getPidErrorLimitsRaw(pidtype, limits); }
433
434 return_t resetPidRaw(const yarp::dev::PidControlTypeEnum & pidtype, int j) override
435 { return impl->resetPidRaw(pidtype, j); }
436
437 return_t disablePidRaw(const yarp::dev::PidControlTypeEnum & pidtype, int j) override
438 { return impl->disablePidRaw(pidtype, j); }
439
440 return_t enablePidRaw(const yarp::dev::PidControlTypeEnum & pidtype, int j) override
441 { return impl->enablePidRaw(pidtype, j); }
442
443 return_t setPidOffsetRaw(const yarp::dev::PidControlTypeEnum & pidtype, int j, double v) override
444 { return impl->setPidOffsetRaw(pidtype, j, v); }
445
446#if YARP_VERSION_COMPARE(>=, 4, 0, 0)
447 return_t setPidFeedforwardRaw(const yarp::dev::PidControlTypeEnum & pidtype, int j, double v) override
448 { return impl->setPidFeedforwardRaw(pidtype, j, v); }
449
450 return_t isPidEnabledRaw(const yarp::dev::PidControlTypeEnum & pidtype, int j, bool & enabled) override
451 { return impl->isPidEnabledRaw(pidtype, j, enabled); }
452#else
453 return_t isPidEnabledRaw(const yarp::dev::PidControlTypeEnum & pidtype, int j, bool * enabled) override
454 { return impl->isPidEnabledRaw(pidtype, j, enabled); }
455#endif
456
457 // ------- IPositionControlRaw declarations. Implementation in IPositionControlRawImpl.cpp -------
458
459 return_t positionMoveRaw(int j, double ref) override
460 { return impl->positionMoveRaw(j, ref); }
461
462 return_t positionMoveRaw(const double * refs) override
463 { return impl->positionMoveRaw(refs); }
464
465 return_t positionMoveRaw(int n_joint, const int * joints, const double * refs) override
466 { return impl->positionMoveRaw(n_joint, joints, refs); }
467
468 return_t relativeMoveRaw(int j, double delta) override
469 { return impl->relativeMoveRaw(j, delta); }
470
471 return_t relativeMoveRaw(const double * deltas) override
472 { return impl->relativeMoveRaw(deltas); }
473
474 return_t relativeMoveRaw(int n_joint, const int * joints, const double * deltas) override
475 { return impl->relativeMoveRaw(n_joint, joints, deltas); }
476
477#if YARP_VERSION_COMPARE(>=, 4, 0, 0)
478 return_t checkMotionDoneRaw(int j, bool & flag) override
479 { return impl->checkMotionDoneRaw(j, flag); }
480
481 return_t checkMotionDoneRaw(bool & flag) override
482 { return impl->checkMotionDoneRaw(flag); }
483
484 return_t checkMotionDoneRaw(const std::vector<int> & joints, bool & flag) override
485 { return impl->checkMotionDoneRaw(joints, flag); }
486
487 return_t setTrajSpeedRaw(int j, double sp) override
488 { return impl->setTrajSpeedRaw(j, sp); }
489
490 return_t setTrajSpeedsRaw(const double * spds) override
491 { return impl->setTrajSpeedsRaw(spds); }
492
493 return_t setTrajSpeedsRaw(int n_joint, const int * joints, const double * spds) override
494 { return impl->setTrajSpeedsRaw(n_joint, joints, spds); }
495
496 return_t setTrajAccelerationRaw(int j, double acc) override
497 { return impl->setTrajAccelerationRaw(j, acc); }
498
499 return_t setTrajAccelerationsRaw(const double * accs) override
500 { return impl->setTrajAccelerationsRaw(accs); }
501
502 return_t setTrajAccelerationsRaw(int n_joint, const int * joints, const double * accs) override
503 { return impl->setTrajAccelerationsRaw(n_joint, joints, accs); }
504
505 return_t getTrajSpeedRaw(int j, double * spds) override
506 { return impl->getTrajSpeedRaw(j, spds); }
507
508 return_t getTrajSpeedsRaw(double * spds) override
509 { return impl->getTrajSpeedsRaw(spds); }
510
511 return_t getTrajSpeedsRaw(int n_joint, const int * joints, double * spds) override
512 { return impl->getTrajSpeedsRaw(n_joint, joints, spds); }
513
514 return_t getTrajAccelerationRaw(int j, double * acc) override
515 { return impl->getTrajAccelerationRaw(j, acc); }
516
517 return_t getTrajAccelerationsRaw(double * accs) override
518 { return impl->getTrajAccelerationsRaw(accs); }
519
520 return_t getTrajAccelerationsRaw(int n_joint, const int * joints, double * accs) override
521 { return impl->getTrajAccelerationsRaw(n_joint, joints, accs); }
522#else
523 return_t checkMotionDoneRaw(int j, bool * flag) override
524 { return impl->checkMotionDoneRaw(j, flag); }
525
526 return_t checkMotionDoneRaw(bool * flag) override
527 { return impl->checkMotionDoneRaw(flag); }
528
529 return_t checkMotionDoneRaw(int n_joint, const int * joints, bool * flag) override
530 { return impl->checkMotionDoneRaw(n_joint, joints, flag); }
531
532 return_t setRefSpeedRaw(int j, double sp) override
533 { return impl->setRefSpeedRaw(j, sp); }
534
535 return_t setRefSpeedsRaw(const double * spds) override
536 { return impl->setRefSpeedsRaw(spds); }
537
538 return_t setRefSpeedsRaw(int n_joint, const int * joints, const double * spds) override
539 { return impl->setRefSpeedsRaw(n_joint, joints, spds); }
540
541 return_t setRefAccelerationRaw(int j, double acc) override
542 { return impl->setRefAccelerationRaw(j, acc); }
543
544 return_t setRefAccelerationsRaw(const double * accs) override
545 { return impl->setRefAccelerationsRaw(accs); }
546
547 return_t setRefAccelerationsRaw(int n_joint, const int * joints, const double * accs) override
548 { return impl->setRefAccelerationsRaw(n_joint, joints, accs); }
549
550 return_t getRefSpeedRaw(int j, double * ref) override
551 { return impl->getRefSpeedRaw(j, ref); }
552
553 return_t getRefSpeedsRaw(double * spds) override
554 { return impl->getRefSpeedsRaw(spds); }
555
556 return_t getRefSpeedsRaw(int n_joint, const int * joints, double * spds) override
557 { return impl->getRefSpeedsRaw(n_joint, joints, spds); }
558
559 return_t getRefAccelerationRaw(int j, double * acc) override
560 { return impl->getRefAccelerationRaw(j, acc); }
561
562 return_t getRefAccelerationsRaw(double * accs) override
563 { return impl->getRefAccelerationsRaw(accs); }
564
565 return_t getRefAccelerationsRaw(int n_joint, const int * joints, double * accs) override
566 { return impl->getRefAccelerationsRaw(n_joint, joints, accs); }
567#endif
568
569 return_t stopRaw(int j) override
570 { return impl->stopRaw(j); }
571
572 return_t stopRaw() override
573 { return impl->stopRaw(); }
574
575 return_t stopRaw(int n_joint, const int * joints) override
576 { return impl->stopRaw(n_joint, joints); }
577
578 return_t getTargetPositionRaw(int joint, double * ref) override
579 { return impl->getTargetPositionRaw(joint, ref); }
580
581 return_t getTargetPositionsRaw(double * refs) override
582 { return impl->getTargetPositionsRaw(refs); }
583
584 return_t getTargetPositionsRaw(int n_joint, const int * joints, double * refs) override
585 { return impl->getTargetPositionsRaw(n_joint, joints, refs); }
586
587 // ------- IPositionDirectRaw declarations. Implementation in IPositionDirectRawImpl.cpp -------
588
589 return_t setPositionRaw(int j, double ref) override
590 { return impl->setPositionRaw(j, ref); }
591
592 return_t setPositionsRaw(const double * refs) override
593 { return impl->setPositionsRaw(refs); }
594
595 return_t setPositionsRaw(int n_joint, const int * joints, const double * refs) override
596 { return impl->setPositionsRaw(n_joint, joints, refs); }
597
598 return_t getRefPositionRaw(int joint, double * ref) override
599 { return impl->getRefPositionRaw(joint, ref); }
600
601 return_t getRefPositionsRaw(double * refs) override
602 { return impl->getRefPositionsRaw(refs); }
603
604 return_t getRefPositionsRaw(int n_joint, const int * joints, double * refs) override
605 { return impl->getRefPositionsRaw(n_joint, joints, refs); }
606
607 // ------- IRemoteVariablesRaw declarations. Implementation in IRemoteVariablesRawImpl.cpp -------
608
609 return_t getRemoteVariableRaw(std::string key, yarp::os::Bottle & val) override
610 { return impl->getRemoteVariableRaw(key, val); }
611
612 return_t setRemoteVariableRaw(std::string key, const yarp::os::Bottle & val) override
613 { return impl->setRemoteVariableRaw(key, val); }
614
615 return_t getRemoteVariablesListRaw(yarp::os::Bottle * listOfKeys) override
616 { return impl->getRemoteVariablesListRaw(listOfKeys); }
617
618 // -------- ITorqueControlRaw declarations. Implementation in ITorqueControlRawImpl.cpp --------
619
620 return_t getRefTorqueRaw(int j, double * t) override
621 { return impl->getRefTorqueRaw(j, t); }
622
623 return_t getRefTorquesRaw(double * t) override
624 { return impl->getRefTorquesRaw(t); }
625
626 return_t setRefTorqueRaw(int j, double t) override
627 { return impl->setRefTorqueRaw(j, t); }
628
629 return_t setRefTorquesRaw(int n_joint, const int * joints, const double * t) override
630 { return impl->setRefTorquesRaw(n_joint, joints, t); }
631
632 return_t setRefTorquesRaw(const double * t) override
633 { return impl->setRefTorquesRaw(t); }
634
635 return_t getTorqueRaw(int j, double * t) override
636 { return impl->getTorqueRaw(j, t); }
637
638 return_t getTorquesRaw(double * t) override
639 { return impl->getTorquesRaw(t); }
640
641 return_t getTorqueRangeRaw(int j, double * min, double * max) override
642 { return impl->getTorqueRangeRaw(j, min, max); }
643
644 return_t getTorqueRangesRaw(double * min, double * max) override
645 { return impl->getTorqueRangesRaw(min, max); }
646
647 return_t getMotorTorqueParamsRaw(int j, yarp::dev::MotorTorqueParameters * params) override
648 { return impl->getMotorTorqueParamsRaw(j, params); }
649
650 return_t setMotorTorqueParamsRaw(int j, const yarp::dev::MotorTorqueParameters params) override
651 { return impl->setMotorTorqueParamsRaw(j, params); }
652
653 // --------- IVelocityControlRaw declarations. Implementation in IVelocityControlRawImpl.cpp ---------
654
655 return_t velocityMoveRaw(int j, double sp) override
656 { return impl->velocityMoveRaw(j, sp); }
657
658 return_t velocityMoveRaw(const double * sp) override
659 { return impl->velocityMoveRaw(sp); }
660
661 return_t velocityMoveRaw(int n_joint, const int * joints, const double * spds) override
662 { return impl->velocityMoveRaw(n_joint, joints, spds); }
663
664#if YARP_VERSION_COMPARE(>=, 4, 0, 0)
665 return_t getTargetVelocityRaw(int joint, double * vel) override
666 { return impl->getTargetVelocityRaw(joint, vel); }
667
668 return_t getTargetVelocitiesRaw(double * vels) override
669 { return impl->getTargetVelocitiesRaw(vels); }
670
671 return_t getTargetVelocitiesRaw(int n_joint, const int * joints, double * vels) override
672 { return impl->getTargetVelocitiesRaw(n_joint, joints, vels); }
673#else
674 return_t getRefVelocityRaw(int joint, double * vel) override
675 { return impl->getRefVelocityRaw(joint, vel); }
676
677 return_t getRefVelocitiesRaw(double * vels) override
678 { return impl->getRefVelocitiesRaw(vels); }
679
680 return_t getRefVelocitiesRaw(int n_joint, const int * joints, double * vels) override
681 { return impl->getRefVelocitiesRaw(n_joint, joints, vels); }
682#endif
683
684private:
685
686 roboticslab::TechnosoftIposBase * impl {nullptr};
687};
688
689#endif // __TECHNOSOFT_IPOS_HPP__
Definition TechnosoftIpos_ParamsParser.h:90
Implementation for the Technosoft iPOS as a single CAN bus joint (control board raw interfaces).
Definition TechnosoftIpos.hpp:39
bool initialize() override
Perform CAN node initialization.
Definition TechnosoftIpos.hpp:67
bool registerSender(roboticslab::ICanSenderDelegate *sender) override
Pass a handle to a CAN sender delegate instance.
Definition TechnosoftIpos.hpp:73
bool finalize() override
Finalize CAN node communications.
Definition TechnosoftIpos.hpp:70
bool synchronize(double timestamp) override
Perform synchronized action on CAN master's request.
Definition TechnosoftIpos.hpp:76
unsigned int getId() override
Retrieve CAN node ID.
Definition TechnosoftIpos.hpp:58
bool notifyMessage(const roboticslab::can_message &message) override
Notify observers that a new CAN message has arrived.
Definition TechnosoftIpos.hpp:64
std::vector< unsigned int > getAdditionalIds() override
Retrieve more associated CAN node IDs, if any.
Definition TechnosoftIpos.hpp:61
Abstract base for a CAN bus sharer.
Definition ICanBusSharer.hpp:25
virtual bool synchronize(double timestamp)=0
Perform synchronized action on CAN master's request.
Implementation-agnostic consumer for TX CAN transfers.
Definition ICanSenderDelegate.hpp:22
Base class for all proxied TechnosoftIpos implementations.
Definition TechnosoftIposBase.hpp:79
unsigned int getId() override
Retrieve CAN node ID.
Definition ICanBusSharerImpl.cpp:39
bool initialize() override
Perform CAN node initialization.
Definition ICanBusSharerImpl.cpp:67
std::vector< unsigned int > getAdditionalIds() override
Retrieve more associated CAN node IDs, if any.
Definition ICanBusSharerImpl.cpp:46
bool notifyMessage(const can_message &message) override
Notify observers that a new CAN message has arrived.
Definition ICanBusSharerImpl.cpp:186
bool registerSender(ICanSenderDelegate *sender) override
Pass a handle to a CAN sender delegate instance.
Definition ICanBusSharerImpl.cpp:58
bool finalize() override
Finalize CAN node communications.
Definition ICanBusSharerImpl.cpp:144
Proxy CAN message structure.
Definition CanMessage.hpp:20