Classes | Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
hebi::Feedback Class Referencefinal

Feedback objects have various fields representing feedback from modules; which fields are populated depends on the module type and various other settings. More...

#include <feedback.hpp>

Classes

class  Actuator
 Actuator-specific feedback. More...
 
class  EnumField
 A message field representable by an enum of a given type. More...
 
class  FloatField
 A message field representable by a single-precision floating point value. More...
 
class  HighResAngleField
 A message field for an angle measurement which does not lose precision at very high angles. More...
 
class  Imu
 Inertial measurement unit feedback (accelerometers and gyros). More...
 
class  Io
 Feedback from any available I/O pins on the device. More...
 
class  IoBank
 A message field for interfacing with a bank of I/O pins. More...
 
class  LedField
 A message field for interfacing with an LED. More...
 
class  NumberedFloatField
 A message field containing a numbered set of single-precision floating point values. More...
 
class  QuaternionfField
 A message field representable by a 3-D vector of single-precision floating point values. More...
 
class  UInt64Field
 A message field representable by an unsigned 64 bit integer value. More...
 
class  Vector3fField
 A message field representable by a 3-D vector of single-precision floating point values. More...
 

Public Types

enum  CommandLifetimeState { CommandLifetimeState::Unlocked, CommandLifetimeState::LockedByOther, CommandLifetimeState::LockedBySender }
 
enum  EffortLimitState {
  EffortLimitState::Below, EffortLimitState::AtLower, EffortLimitState::Inside, EffortLimitState::AtUpper,
  EffortLimitState::Above, EffortLimitState::Uninitialized
}
 
enum  MstopState { MstopState::Triggered, MstopState::NotTriggered }
 
enum  PositionLimitState {
  PositionLimitState::Below, PositionLimitState::AtLower, PositionLimitState::Inside, PositionLimitState::AtUpper,
  PositionLimitState::Above, PositionLimitState::Uninitialized
}
 
enum  TemperatureState { TemperatureState::Normal, TemperatureState::Critical, TemperatureState::ExceedMaxMotor, TemperatureState::ExceedMaxBoard }
 
enum  VelocityLimitState {
  VelocityLimitState::Below, VelocityLimitState::AtLower, VelocityLimitState::Inside, VelocityLimitState::AtUpper,
  VelocityLimitState::Above, VelocityLimitState::Uninitialized
}
 

Public Member Functions

const Actuatoractuator () const
 Actuator-specific feedback. More...
 
const FloatFieldboardTemperature () const
 Ambient temperature inside the module (measured at the IMU chip), in degrees Celsius. More...
 
const NumberedFloatFielddebug () const
 Values for internal debug functions (channel 1-9 available). More...
 
 Feedback (HebiFeedbackPtr)
 Wraps an existing C-style object that is managed by its parent. NOTE: this should not be used except by internal library functions! More...
 
 Feedback (Feedback &&other)
 Move constructor (necessary for containment in STL template classes) More...
 
const Imuimu () const
 Inertial measurement unit feedback (accelerometers and gyros). More...
 
const Ioio () const
 Feedback from any available I/O pins on the device. More...
 
const LedFieldled () const
 The module's LED. More...
 
const FloatFieldprocessorTemperature () const
 Temperature of the processor chip, in degrees Celsius. More...
 
const FloatFieldvoltage () const
 Bus voltage that the module is running at (in Volts). More...
 
 ~Feedback () noexcept
 Cleans up feedback object as necessary. More...
 

Private Member Functions

Feedbackoperator= (const Feedback &&other)=delete
 

Private Attributes

Actuator actuator_
 
FloatField board_temperature_
 
NumberedFloatField debug_
 
Imu imu_
 
HebiFeedbackPtr internal_
 
Io io_
 
LedField led_
 
FloatField processor_temperature_
 
FloatField voltage_
 

Detailed Description

Feedback objects have various fields representing feedback from modules; which fields are populated depends on the module type and various other settings.

This object has a hierarchical structure – there are some direct general-purpose fields at the top level, and many more specific fields contained in different nested subobjects.

The subobjects contain references to the parent feedback object, and so should not be used after the parent object has been destroyed.

The fields in the feedback object are typed; generally, these are optional-style read-only fields (i.e., have the concept of has/get), although the return types and exact interface vary slightly between fields. Where appropriate, the explicit bool operator has been overridden so that you can shortcut if(field.has()) by calling if(field).

Although this header file can be used to look at the hierarchy of the messages, in general the online documentation at apidocs.hebi.us presents this information. in a more readable form.

Definition at line 30 of file feedback.hpp.

Member Enumeration Documentation

Enumerator
Unlocked 

There is not command lifetime active on this module.

LockedByOther 

Commands are locked out due to control from other users.

LockedBySender 

Commands from others are locked out due to control from this group.

Definition at line 101 of file feedback.hpp.

Enumerator
Below 

The effort of the module was below the lower safety limit; the motor output is set to return the module to within the limits.

AtLower 

The effort of the module was near the lower safety limit, and the motor output is being limited or reversed.

Inside 

The effort of the module was within the safety limits.

AtUpper 

The effort of the module was near the upper safety limit, and the motor output is being limited or reversed.

Above 

The effort of the module was above the upper safety limit; the motor output is set to return the module to within the limits.

Uninitialized 

The module has not been inside the safety limits since it was booted or the safety limits were set.

Definition at line 85 of file feedback.hpp.

Enumerator
Triggered 

The MStop is pressed.

NotTriggered 

The MStop is not pressed.

Definition at line 45 of file feedback.hpp.

Enumerator
Below 

The position of the module was below the lower safety limit; the motor output is set to return the module to within the limits.

AtLower 

The position of the module was near the lower safety limit, and the motor output is being limited or reversed.

Inside 

The position of the module was within the safety limits.

AtUpper 

The position of the module was near the upper safety limit, and the motor output is being limited or reversed.

Above 

The position of the module was above the upper safety limit; the motor output is set to return the module to within the limits.

Uninitialized 

The module has not been inside the safety limits since it was booted or the safety limits were set.

Definition at line 53 of file feedback.hpp.

Enumerator
Normal 

Temperature within normal range.

Critical 

Motor output beginning to be limited due to high temperature.

ExceedMaxMotor 

Temperature exceeds max allowable for motor; motor output disabled.

ExceedMaxBoard 

Temperature exceeds max allowable for electronics; motor output disabled.

Definition at line 33 of file feedback.hpp.

Enumerator
Below 

The velocity of the module was below the lower safety limit; the motor output is set to return the module to within the limits.

AtLower 

The velocity of the module was near the lower safety limit, and the motor output is being limited or reversed.

Inside 

The velocity of the module was within the safety limits.

AtUpper 

The velocity of the module was near the upper safety limit, and the motor output is being limited or reversed.

Above 

The velocity of the module was above the upper safety limit; the motor output is set to return the module to within the limits.

Uninitialized 

The module has not been inside the safety limits since it was booted or the safety limits were set.

Definition at line 69 of file feedback.hpp.

Constructor & Destructor Documentation

hebi::Feedback::Feedback ( HebiFeedbackPtr  feedback)

Wraps an existing C-style object that is managed by its parent. NOTE: this should not be used except by internal library functions!

Definition at line 221 of file feedback.cpp.

hebi::Feedback::Feedback ( Feedback &&  other)

Move constructor (necessary for containment in STL template classes)

Definition at line 237 of file feedback.cpp.

hebi::Feedback::~Feedback ( )
noexcept

Cleans up feedback object as necessary.

Definition at line 233 of file feedback.cpp.

Member Function Documentation

const Actuator& hebi::Feedback::actuator ( ) const
inline

Actuator-specific feedback.

Definition at line 674 of file feedback.hpp.

const Feedback::FloatField & hebi::Feedback::boardTemperature ( ) const

Ambient temperature inside the module (measured at the IMU chip), in degrees Celsius.

Definition at line 252 of file feedback.cpp.

const Feedback::NumberedFloatField & hebi::Feedback::debug ( ) const

Values for internal debug functions (channel 1-9 available).

Definition at line 264 of file feedback.cpp.

const Imu& hebi::Feedback::imu ( ) const
inline

Inertial measurement unit feedback (accelerometers and gyros).

Definition at line 676 of file feedback.hpp.

const Io& hebi::Feedback::io ( ) const
inline

Feedback from any available I/O pins on the device.

Definition at line 672 of file feedback.hpp.

const Feedback::LedField & hebi::Feedback::led ( ) const

The module's LED.

Definition at line 268 of file feedback.cpp.

Feedback& hebi::Feedback::operator= ( const Feedback &&  other)
privatedelete

Disable copy constructor/assignment operators

const Feedback::FloatField & hebi::Feedback::processorTemperature ( ) const

Temperature of the processor chip, in degrees Celsius.

Definition at line 256 of file feedback.cpp.

const Feedback::FloatField & hebi::Feedback::voltage ( ) const

Bus voltage that the module is running at (in Volts).

Definition at line 260 of file feedback.cpp.

Member Data Documentation

Actuator hebi::Feedback::actuator_
private

Definition at line 695 of file feedback.hpp.

FloatField hebi::Feedback::board_temperature_
private

Definition at line 698 of file feedback.hpp.

NumberedFloatField hebi::Feedback::debug_
private

Definition at line 701 of file feedback.hpp.

Imu hebi::Feedback::imu_
private

Definition at line 696 of file feedback.hpp.

HebiFeedbackPtr hebi::Feedback::internal_
private

C-style object; managed by parent. NOTE: this should not be used except by internal library functions!

Definition at line 647 of file feedback.hpp.

Io hebi::Feedback::io_
private

Definition at line 694 of file feedback.hpp.

LedField hebi::Feedback::led_
private

Definition at line 702 of file feedback.hpp.

FloatField hebi::Feedback::processor_temperature_
private

Definition at line 699 of file feedback.hpp.

FloatField hebi::Feedback::voltage_
private

Definition at line 700 of file feedback.hpp.


The documentation for this class was generated from the following files:


hebiros
Author(s): Xavier Artache , Matthew Tesch
autogenerated on Thu Sep 3 2020 04:10:59