52 #ifndef DOXYGEN_OMIT_INTERNAL 53 FloatField(HebiInfoPtr
internal, HebiInfoFloatField field);
54 #endif // DOXYGEN_OMIT_INTERNAL 55 explicit operator bool()
const;
75 HebiInfoPtr
const internal_;
76 HebiInfoFloatField
const field_;
84 #ifndef DOXYGEN_OMIT_INTERNAL 85 BoolField(HebiInfoPtr
internal, HebiInfoBoolField field);
86 #endif // DOXYGEN_OMIT_INTERNAL 94 HebiInfoPtr
const internal_;
95 HebiInfoBoolField
const field_;
104 #ifndef DOXYGEN_OMIT_INTERNAL 105 StringField(HebiInfoPtr
internal, HebiInfoStringField field);
106 #endif // DOXYGEN_OMIT_INTERNAL 107 explicit operator bool()
const;
124 std::string
get()
const;
127 HebiInfoPtr
const internal_;
128 HebiInfoStringField
const field_;
137 #ifndef DOXYGEN_OMIT_INTERNAL 138 FlagField(HebiInfoPtr
internal, HebiInfoFlagField field);
139 #endif // DOXYGEN_OMIT_INTERNAL 140 explicit operator bool()
const;
157 HebiInfoPtr
const internal_;
158 HebiInfoFlagField
const field_;
164 template <
typename T>
168 #ifndef DOXYGEN_OMIT_INTERNAL 169 EnumField(HebiInfoPtr
internal, HebiInfoEnumField field)
170 : internal_(
internal), field_(field) {}
171 #endif // DOXYGEN_OMIT_INTERNAL 172 explicit operator bool()
const {
return has(); }
186 bool has()
const {
return (hebiInfoGetEnum(internal_, field_,
nullptr) == HebiStatusSuccess); }
189 T
get()
const { int32_t ret{}; hebiInfoGetEnum(internal_, field_, &ret);
return static_cast<T
>(ret); }
192 HebiInfoPtr
const internal_;
193 HebiInfoEnumField
const field_;
202 #ifndef DOXYGEN_OMIT_INTERNAL 203 LedField(HebiInfoPtr
internal, HebiInfoLedField field);
204 #endif // DOXYGEN_OMIT_INTERNAL 205 explicit operator bool()
const {
return hasColor(); }
219 bool hasColor()
const;
221 Color getColor()
const;
224 HebiInfoPtr
const internal_;
225 HebiInfoLedField
const field_;
241 #ifndef DOXYGEN_OMIT_INTERNAL 243 : internal_(
internal),
244 position_gains_(
internal, HebiInfoFloatPositionKp, HebiInfoBoolPositionDOnError),
245 velocity_gains_(
internal, HebiInfoFloatVelocityKp, HebiInfoBoolVelocityDOnError),
246 effort_gains_(
internal, HebiInfoFloatEffortKp, HebiInfoBoolEffortDOnError),
247 spring_constant_(
internal, HebiInfoFloatSpringConstant),
248 control_strategy_(
internal, HebiInfoEnumControlStrategy)
251 #endif // DOXYGEN_OMIT_INTERNAL 273 HebiInfoPtr
const internal_;
286 #ifndef DOXYGEN_OMIT_INTERNAL 288 : internal_(
internal),
290 name_(
internal, HebiInfoStringName),
291 family_(
internal, HebiInfoStringFamily),
292 save_current_settings_(
internal, HebiInfoFlagSaveCurrentSettings)
295 #endif // DOXYGEN_OMIT_INTERNAL 315 HebiInfoPtr
const internal_;
331 HebiInfoPtr internal_;
334 #ifndef DOXYGEN_OMIT_INTERNAL 340 #endif // DOXYGEN_OMIT_INTERNAL 379 Info& operator= (
const Info&& other) =
delete;
const FlagField & saveCurrentSettings() const
Indicates if the module should save the current values of all of its settings.
Definition: info.hpp:312
Module settings that are typically changed at a slower rate.
Definition: info.hpp:233
#define HEBI_DISABLE_COPY(Class)
Definition: util.hpp:17
Actuator-specific settings, such as controller gains.
Definition: info.hpp:238
A message field representable by a bool value.
Definition: info.hpp:81
const Settings & settings() const
Module settings that are typically changed at a slower rate.
Definition: info.hpp:356
const StringField & name() const
Gets the name for this module.
Definition: info.hpp:308
~Info() noexcept
Cleans up info object as necessary.
Definition: info.cpp:126
const Actuator & actuator() const
Actuator-specific settings, such as controller gains.
Definition: info.hpp:303
Info objects have various fields representing the module state; which fields are populated depends on...
Definition: info.hpp:30
#define HEBI_DISABLE_COPY_MOVE(Class)
Definition: util.hpp:7
A two-state message field (either set/true or cleared/false).
Definition: info.hpp:134
const FloatField & springConstant() const
The spring constant of the module.
Definition: info.hpp:268
A message field for interfacing with an LED.
Definition: info.hpp:199
const InfoGains & effortGains() const
Controller gains for the effort PID loop.
Definition: info.hpp:263
A combination of the position, velocity, and effort loops with P and V feeding to T; documented on do...
const LedField & led() const
The module's LED.
Definition: info.cpp:140
const InfoGains & velocityGains() const
Controller gains for the velocity PID loop.
Definition: info.hpp:261
A direct PWM value (-1 to 1) can be sent to the motor (subject to onboard safety limiting).
bool has() const
True if (and only if) the field has a value.
Definition: info.hpp:186
const StringField & family() const
Gets the family for this module.
Definition: info.hpp:310
The motor is not given power (equivalent to a 0 PWM value)
ControlStrategy
Definition: info.hpp:33
Info(Info &&other)
Move constructor (necessary for containment in STL template classes)
Definition: info.cpp:119
A message field representable by a std::string.
Definition: info.hpp:101
const EnumField< ControlStrategy > & controlStrategy() const
How the position, velocity, and effort PID loops are connected in order to control motor PWM...
Definition: info.hpp:270
A combination of the position, velocity, and effort loops with P feeding to T and V feeding to PWM; d...
const StringField & serial() const
Gets the serial number for this module (e.g., X5-0001).
Definition: info.hpp:364
A combination of the position, velocity, and effort loops with P, V, and T feeding to PWM; documented...
A message field representable by an enum of a given type.
Definition: info.hpp:165
Structure to describe an RGB color.
Definition: color.hpp:8
A message field representable by a single-precision floating point value.
Definition: info.hpp:49
A message field representable by an enum of a given type.
Definition: command.hpp:287
const InfoGains & positionGains() const
Controller gains for the position PID loop.
Definition: info.hpp:259