HEBI C++ API  3.4.0
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  Mobile
 Feedback generally from a mobile device such as a phone or tablet. 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  TemperatureState { TemperatureState::Normal, TemperatureState::Critical, TemperatureState::ExceedMaxMotor, TemperatureState::ExceedMaxBoard }
 
enum  MstopState { MstopState::Triggered, MstopState::NotTriggered }
 
enum  PositionLimitState {
  PositionLimitState::Below, PositionLimitState::AtLower, PositionLimitState::Inside, PositionLimitState::AtUpper,
  PositionLimitState::Above, PositionLimitState::Uninitialized
}
 
enum  VelocityLimitState {
  VelocityLimitState::Below, VelocityLimitState::AtLower, VelocityLimitState::Inside, VelocityLimitState::AtUpper,
  VelocityLimitState::Above, VelocityLimitState::Uninitialized
}
 
enum  EffortLimitState {
  EffortLimitState::Below, EffortLimitState::AtLower, EffortLimitState::Inside, EffortLimitState::AtUpper,
  EffortLimitState::Above, EffortLimitState::Uninitialized
}
 
enum  CommandLifetimeState { CommandLifetimeState::Unlocked, CommandLifetimeState::LockedByOther, CommandLifetimeState::LockedBySender }
 
enum  ArQuality {
  ArQuality::ArQualityNotAvailable, ArQuality::ArQualityLimitedUnknown, ArQuality::ArQualityLimitedInitializing, ArQuality::ArQualityLimitedRelocalizing,
  ArQuality::ArQualityLimitedExcessiveMotion, ArQuality::ArQualityLimitedInsufficientFeatures, ArQuality::ArQualityNormal
}
 

Public Member Functions

 Feedback (Feedback &&other)
 Move constructor (necessary for containment in STL template classes) More...
 
const Ioio () const
 Feedback from any available I/O pins on the device. More...
 
const Actuatoractuator () const
 Actuator-specific feedback. More...
 
const Mobilemobile () const
 Feedback generally from a mobile device such as a phone or tablet. More...
 
const Imuimu () const
 Inertial measurement unit feedback (accelerometers and gyros). More...
 
const FloatFieldboardTemperature () const
 Ambient temperature inside the module (measured at the IMU chip), in degrees Celsius. 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...
 
const UInt64FieldsequenceNumber () const
 Sequence number going to module (local) More...
 
const UInt64FieldreceiveTimeUs () const
 Timestamp of when message was received from module (local; microseconds) More...
 
const UInt64FieldtransmitTimeUs () const
 Timestamp of when message was transmitted to module (local; microseconds) More...
 
const UInt64FieldhardwareReceiveTimeUs () const
 Timestamp of when message was received by module (remote; microseconds) More...
 
const UInt64FieldhardwareTransmitTimeUs () const
 Timestamp of when message was transmitted from module (remote; microseconds) More...
 
const UInt64FieldsenderId () const
 Unique ID of the module transmitting this feedback. More...
 
const UInt64FieldrxSequenceNumber () const
 Sequence number of incoming packet per module (local) More...
 
const LedFieldled () const
 The module's LED. More...
 
Feedbackoperator= (Feedback &&other)=delete
 

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.

Member Enumeration Documentation

◆ TemperatureState

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.

◆ MstopState

Enumerator
Triggered 

The MStop is pressed.

NotTriggered 

The MStop is not pressed.

◆ PositionLimitState

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.

◆ VelocityLimitState

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.

◆ EffortLimitState

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.

◆ CommandLifetimeState

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.

◆ ArQuality

Enumerator
ArQualityNotAvailable 

Camera position tracking is not available.

ArQualityLimitedUnknown 

Tracking is available albeit suboptimal for an unknown reason.

ArQualityLimitedInitializing 

The AR session has not yet gathered enough camera or motion data to provide tracking information.

ArQualityLimitedRelocalizing 

The AR session is attempting to resume after an interruption.

ArQualityLimitedExcessiveMotion 

The device is moving too fast for accurate image-based position tracking.

ArQualityLimitedInsufficientFeatures 

The scene visible to the camera does not contain enough distinguishable features for image-based position tracking.

ArQualityNormal 

Camera position tracking is providing optimal results.

Constructor & Destructor Documentation

◆ Feedback()

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

Move constructor (necessary for containment in STL template classes)

Member Function Documentation

◆ io()

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

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

◆ actuator()

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

Actuator-specific feedback.

◆ mobile()

const Mobile& hebi::Feedback::mobile ( ) const
inline

Feedback generally from a mobile device such as a phone or tablet.

◆ imu()

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

Inertial measurement unit feedback (accelerometers and gyros).

◆ boardTemperature()

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

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

◆ processorTemperature()

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

Temperature of the processor chip, in degrees Celsius.

◆ voltage()

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

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

◆ sequenceNumber()

const UInt64Field& hebi::Feedback::sequenceNumber ( ) const
inline

Sequence number going to module (local)

◆ receiveTimeUs()

const UInt64Field& hebi::Feedback::receiveTimeUs ( ) const
inline

Timestamp of when message was received from module (local; microseconds)

◆ transmitTimeUs()

const UInt64Field& hebi::Feedback::transmitTimeUs ( ) const
inline

Timestamp of when message was transmitted to module (local; microseconds)

◆ hardwareReceiveTimeUs()

const UInt64Field& hebi::Feedback::hardwareReceiveTimeUs ( ) const
inline

Timestamp of when message was received by module (remote; microseconds)

◆ hardwareTransmitTimeUs()

const UInt64Field& hebi::Feedback::hardwareTransmitTimeUs ( ) const
inline

Timestamp of when message was transmitted from module (remote; microseconds)

◆ senderId()

const UInt64Field& hebi::Feedback::senderId ( ) const
inline

Unique ID of the module transmitting this feedback.

◆ rxSequenceNumber()

const UInt64Field& hebi::Feedback::rxSequenceNumber ( ) const
inline

Sequence number of incoming packet per module (local)

◆ led()

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

The module's LED.

◆ operator=()

Feedback& hebi::Feedback::operator= ( Feedback &&  other)
delete

Disable copy constructor/assignment operators


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