46 _subDevVerbose =
false;
123 if ((
iTorque==
nullptr) && (_subDevVerbose))
128 if ((
iImpedance==
nullptr) && (_subDevVerbose))
133 if ((
iInteract==
nullptr) && (_subDevVerbose))
138 if ((
iMotEnc==
nullptr) && (_subDevVerbose))
143 if ((
imotor==
nullptr) && (_subDevVerbose))
148 if ((
iVar ==
nullptr) && (_subDevVerbose))
153 if ((
info ==
nullptr) && (_subDevVerbose))
158 if ((
iPwm ==
nullptr) && (_subDevVerbose))
163 if ((
iCurr ==
nullptr) && (_subDevVerbose))
168 if ((
iFault ==
nullptr) && (_subDevVerbose))
207 if(deviceJoints <= 0)
234 for(
size_t ctrlBrd=0; ctrlBrd < nrOfSubControlBoards; ctrlBrd++)
246 int off=(int)remappedControlBoards.
lut[j].axisIndexInSubControlBoard;
247 size_t subIndex=remappedControlBoards.
lut[j].subControlBoardIndex;
254 for(
size_t ctrlBrd=0; ctrlBrd < nrOfSubControlBoards; ctrlBrd++)
277 size_t subIndex=remappedControlBoards.
lut[j].subControlBoardIndex;
292 size_t subIndex=remappedControlBoards.
lut[j].subControlBoardIndex;
307 size_t subIndex=remappedControlBoards.
lut[j].subControlBoardIndex;
322 size_t subIndex=remappedControlBoards.
lut[j].subControlBoardIndex;
337 size_t subIndex=remappedControlBoards.
lut[j].subControlBoardIndex;
352 size_t subIndex=remappedControlBoards.
lut[j].subControlBoardIndex;
371 for(
size_t ctrlBrd=0; ctrlBrd < nrOfSubControlBoards; ctrlBrd++)
383 size_t subIndex=remappedControlBoards.
lut[j].subControlBoardIndex;
389 for(
size_t ctrlBrd=0; ctrlBrd < nrOfSubControlBoards; ctrlBrd++)
414 for(
int j=0; j < n_joints; j++)
416 size_t subIndex=remappedControlBoards.
lut[joints[j]].subControlBoardIndex;
428 this->createListOfJointsDecomposition(n_joints,joints,remappedControlBoards);
435 for(
int j=0; j < n_joints; j++)
437 size_t subIndex=remappedControlBoards.
lut[joints[j]].subControlBoardIndex;
453 for(
int j=0; j < n_joints; j++)
455 size_t subIndex=remappedControlBoards.
lut[joints[j]].subControlBoardIndex;
467 this->createListOfJointsDecomposition(n_joints,joints,remappedControlBoards);
474 for(
int j=0; j < n_joints; j++)
476 size_t subIndex=remappedControlBoards.
lut[joints[j]].subControlBoardIndex;
492 for(
int j=0; j < n_joints; j++)
494 size_t subIndex=remappedControlBoards.
lut[joints[j]].subControlBoardIndex;
506 this->createListOfJointsDecomposition(n_joints,joints,remappedControlBoards);
513 for(
int j=0; j < n_joints; j++)
515 size_t subIndex=remappedControlBoards.
lut[joints[j]].subControlBoardIndex;
521void ControlBoardArbitraryAxesDecomposition::createListOfJointsDecomposition(
const int n_joints,
const int* joints,
const RemappedControlBoards & remappedControlBoards)
530 for(
int j=0; j < n_joints; j++)
532 int off=(int)remappedControlBoards.
lut[joints[j]].axisIndexInSubControlBoard;
533 size_t subIndex=remappedControlBoards.
lut[joints[j]].subControlBoardIndex;
544 createListOfJointsDecomposition(n_joints,joints,remappedControlBoards);
const yarp::os::LogComponent & CONTROLBOARDREMAPPER()
bool configure(const RemappedControlBoards &remappedControlBoards)
Resize the buffers using the information in the RemappedControlBoards.
std::vector< std::vector< double > > m_bufferForSubControlBoard
std::vector< std::vector< yarp::dev::InteractionModeEnum > > m_bufferForSubControlBoardInteractionModes
void fillSubControlBoardBuffersFromArbitraryJointVector(const double *arbitraryVec, const int n_joints, const int *joints, const RemappedControlBoards &remappedControlBoards)
Fill buffers for the SubControlBoard from a vector of joints of the RemappedControlBoards.
std::vector< std::vector< int > > m_jointsInSubControlBoard
void resizeSubControlBoardBuffers(const int n_joints, const int *joints, const RemappedControlBoards &remappedControlBoards)
Resize buffers to have the dimension of specified by the method (used for multi joint methods that re...
std::vector< std::vector< int > > m_bufferForSubControlBoardControlModes
std::vector< int > m_counterForControlBoard
void fillArbitraryJointVectorFromSubControlBoardBuffers(double *arbitraryVec, const int n_joints, const int *joints, const RemappedControlBoards &remappedControlBoards)
Fill a vector of joints of the ControlBoardRemapper from the buffers of the SubControlBoard .
std::vector< int > m_nJointsInSubControlBoard
std::vector< int > m_nJointsInSubControlBoard
bool configure(const RemappedControlBoards &remappedControlBoards)
Resize the buffers using the information in the RemappedControlBoards.
std::vector< int > m_counterForControlBoard
std::vector< std::vector< int > > m_jointsInSubControlBoard
int m_nrOfControlledAxesInRemappedCtrlBrd
void fillCompleteJointVectorFromSubControlBoardBuffers(double *full, const RemappedControlBoards &remappedControlBoards)
Fill a vector of joints of the ControlBoardRemapper from the buffers of the SubControlBoard .
void fillSubControlBoardBuffersFromCompleteJointVector(const double *full, const RemappedControlBoards &remappedControlBoards)
Fill buffers for the SubControlBoard from a vector of joints of the RemappedControlBoards.
std::vector< std::vector< double > > m_bufferForSubControlBoard
std::vector< std::vector< int > > m_bufferForSubControlBoardControlModes
std::vector< std::vector< yarp::dev::InteractionModeEnum > > m_bufferForSubControlBoardInteractionModes
size_t getNrOfSubControlBoards() const
std::vector< RemappedAxis > lut
Vector of dimension getNrOfRemappedAxes .
size_t getNrOfRemappedAxes() const
yarp::dev::IPositionControl * pos
yarp::dev::IImpedanceControl * iImpedance
RemappedSubControlBoard()
yarp::dev::IAmplifierControl * amp
yarp::dev::IEncodersTimed * iJntEnc
yarp::dev::IInteractionMode * iInteract
yarp::dev::IRemoteVariables * iVar
yarp::dev::ICurrentControl * iCurr
yarp::dev::ITorqueControl * iTorque
yarp::dev::IVelocityControl * vel
yarp::dev::IControlMode * iMode
yarp::dev::IJointFault * iFault
yarp::dev::IPositionDirect * posDir
yarp::dev::IRemoteCalibrator * remcalib
bool attach(yarp::dev::PolyDriver *d, const std::string &id)
yarp::dev::IPidControl * pid
yarp::dev::IAxisInfo * info
yarp::dev::IControlLimits * lim
yarp::dev::IMotor * imotor
yarp::dev::IPWMControl * iPwm
yarp::dev::IControlCalibration * calib
yarp::dev::PolyDriver * subdevice
yarp::dev::IMotorEncoders * iMotEnc
yarp::dev::IPreciselyTimed * iTimed
bool view(T *&x)
Get an interface to the device driver.
virtual bool getAxes(int *ax)=0
Get the number of controlled axes.
A container for a device driver.
bool isValid() const
Check if device is valid.
#define yCError(component,...)
#define yCAssert(component, x)
#define yCWarning(component,...)
For streams capable of holding different kinds of content, check what they actually have.
An interface to the operating system, including Port based communication.