@@ -46,7 +46,7 @@ namespace transmission_interface
4646 * \brief Handle for propagating a single map (position, velocity, or effort) on a single transmission
4747 * (eg. actuator to joint effort for a simple reducer).
4848 */
49- template <class ActuatorDataType = ActuatorData> // extends ActuatorBase
49+ template <class ActuatorDataType = ActuatorData> // extends ActuatorDataBase
5050class TransmissionHandle
5151{
5252public:
@@ -69,10 +69,10 @@ class TransmissionHandle
6969 * data and their size should be consistent with the number of transmission actuators and joints.
7070 * Data vectors not used by this handle can remain empty.
7171 */
72- TransmissionHandle (const std::string& name,
73- Transmission* transmission,
74- const ActuatorData & actuator_data,
75- const JointData& joint_data)
72+ TransmissionHandle (const std::string& name,
73+ Transmission* transmission,
74+ const ActuatorDataType & actuator_data,
75+ const JointData& joint_data)
7676 : name_(name),
7777 transmission_ (transmission),
7878 actuator_data_(actuator_data),
@@ -85,24 +85,16 @@ class TransmissionHandle
8585 }
8686
8787 // Catch trivial error: All data vectors are empty (handle can't do anything without data)
88- if (actuator_data.position . empty () && actuator_data. velocity . empty () && actuator_data. effort . empty () &&
88+ if (actuator_data.empty () &&
8989 joint_data.position .empty () && joint_data.velocity .empty () && joint_data.effort .empty ())
9090 {
9191 throw TransmissionInterfaceException (" All data vectors are empty. Transmission instance can't do anything!." );
9292 }
9393
9494 // Precondition: All non-empty data vectors must have sizes consistent with the transmission
95- if (!actuator_data.position . empty () && actuator_data. position . size () != transmission_->numActuators ())
95+ if (!actuator_data.hasSize ( transmission_->numActuators () ))
9696 {
97- throw TransmissionInterfaceException (" Actuator position data size does not match transmission." );
98- }
99- if (!actuator_data.velocity .empty () && actuator_data.velocity .size () != transmission_->numActuators ())
100- {
101- throw TransmissionInterfaceException (" Actuator velocity data size does not match transmission." );
102- }
103- if (!actuator_data.effort .empty () && actuator_data.effort .size () != transmission_->numActuators ())
104- {
105- throw TransmissionInterfaceException (" Actuator effort data size does not match transmission." );
97+ throw TransmissionInterfaceException (" Actuator data size does not match transmission." );
10698 }
10799
108100 if (!joint_data.position .empty () && joint_data.position .size () != transmission_->numJoints ())
@@ -119,17 +111,9 @@ class TransmissionHandle
119111 }
120112
121113 // Precondition: Valid pointers to raw data
122- if (!hasValidPointers (actuator_data.position ))
123- {
124- throw TransmissionInterfaceException (" Actuator position data contains null pointers." );
125- }
126- if (!hasValidPointers (actuator_data.velocity ))
127- {
128- throw TransmissionInterfaceException (" Actuator velocity data contains null pointers." );
129- }
130- if (!hasValidPointers (actuator_data.effort ))
114+ if (!actuator_data.valid ())
131115 {
132- throw TransmissionInterfaceException (" Actuator effort data contains null pointers." );
116+ throw TransmissionInterfaceException (" Actuator data contains null pointers." );
133117 }
134118
135119 if (!hasValidPointers (joint_data.position ))
0 commit comments