31 #define make_ControlTarget1DoFActuator(type, invalid, name, varname, cmode) \
32 class name : public ControlTargetBase \
35 type varname = ControllerConstants::ValueNotSetNaN; \
37 name(const name&) = default; \
38 name(name&&) = default; \
39 name(type val) : varname{val} \
42 name& operator=(const name&) = default; \
43 name& operator=(name&&) = default; \
50 virtual const std::string& \
51 getControlMode() const override \
61 isValid() const override \
63 return std::isfinite(varname); \
65 DETAIL_ControlTargetBase_DEFAULT_METHOD_IMPLEMENTATION static ControlTargetInfo<name> \
66 GetClassMemberInfo() \
68 ControlTargetInfo<name> cti; \
69 cti.addMemberVariable(&name::varname, #varname); \
75 ControllerConstants::ValueNotSetNaN,
76 ControlTarget1DoFActuatorPosition,
78 ControlModes::Position1DoF);
80 ControllerConstants::ValueNotSetNaN,
81 ControlTarget1DoFActuatorVelocity,
83 ControlModes::Velocity1DoF);
85 ControllerConstants::ValueNotSetNaN,
86 ControlTarget1DoFActuatorTorque,
88 ControlModes::Torque1DoF);
90 ControllerConstants::ValueNotSetNaN,
91 ControlTarget1DoFActuatorZeroTorque,
93 ControlModes::ZeroTorque1DoF);
95 ControllerConstants::ValueNotSetNaN,
96 ControlTarget1DoFActuatorCurrent,
98 ControlModes::Current1DoF);
99 #undef make_ControlTarget1DoFActuator
109 return ControlModes::VelocityTorque;
115 ControlTarget1DoFActuatorVelocity::reset();
125 static ControlTargetInfo<ControlTarget1DoFActuatorTorqueVelocity>
128 ControlTargetInfo<ControlTarget1DoFActuatorTorqueVelocity> cti;
129 cti.addBaseClass<ControlTarget1DoFActuatorVelocity>();
147 return ControlModes::ActiveImpedance;
164 static ControlTargetInfo<ActiveImpedanceControlTarget>
186 return ControlModes::PWM1DoF;
201 static ControlTargetInfo<ControlTarget1DoFActuatorPWM>
225 return ControlModes::PositionWithPwmLimit1DoF;
232 ControlTarget1DoFActuatorPosition::reset();
241 static ControlTargetInfo<ControlTarget1DoFActuatorPositionWithPWMLimit>
244 ControlTargetInfo<ControlTarget1DoFActuatorPositionWithPWMLimit> cti;
245 cti.addBaseClass<ControlTarget1DoFActuatorPosition>();
253 setPWMLimits(std::int16_t hard, std::int16_t def, ControlDeviceAccessToken)
275 return ControlModes::VelocityWithPwmLimit1DoF;
282 ControlTarget1DoFActuatorVelocity::reset();
291 static ControlTargetInfo<ControlTarget1DoFActuatorVelocityWithPWMLimit>
294 ControlTargetInfo<ControlTarget1DoFActuatorVelocityWithPWMLimit> cti;
295 cti.addBaseClass<ControlTarget1DoFActuatorVelocity>();
303 setPWMLimits(std::int16_t hard, std::int16_t def, ControlDeviceAccessToken)