6 #define M_PI 3.14159265358979323846 12 : internal_(internal), field_(field) {}
21 ret = std::numeric_limits<float>::quiet_NaN();
37 return std::numeric_limits<double>::quiet_NaN();
39 return (static_cast<double>(revolutions) * 2.0 *
M_PI + static_cast<double>(radian_offset));
45 *radian_offset = std::numeric_limits<float>::quiet_NaN();
59 ret = std::numeric_limits<float>::quiet_NaN();
89 ret.
x = std::numeric_limits<float>::quiet_NaN();
90 ret.
y = std::numeric_limits<float>::quiet_NaN();
91 ret.
z = std::numeric_limits<float>::quiet_NaN();
106 ret.
w = std::numeric_limits<float>::quiet_NaN();
107 ret.
x = std::numeric_limits<float>::quiet_NaN();
108 ret.
y = std::numeric_limits<float>::quiet_NaN();
109 ret.
z = std::numeric_limits<float>::quiet_NaN();
151 return Color(r, g, b, a);
Ambient temperature inside the module (measured at the IMU chip)
HebiFeedbackQuaternionfField
struct HebiFeedback_ * HebiFeedbackPtr
The C-style's API representation of feedback.
UInt64Field hardware_receive_time_us_
Timestamp of when message was received from module (local)
const HebiFeedbackRef & internal_
FloatField processor_temperature_
HebiStatusCode ledGetter(const RefT &ref, MetadataT &metadata, int field, uint8_t *r, uint8_t *g, uint8_t *b, uint8_t *a)
HebiFeedbackIoPinBank const bank_
bool hasInt(size_t pinNumber) const
True if (and only if) the particular numbered pin in this bank has an integer (e.g., digital) value.
UInt64Field transmit_time_us_
float getFloat(size_t pinNumber) const
If this numbered pin in this bank has an floating point (e.g., analog or PWM) value, returns that value; otherwise returns a default.
FloatField board_temperature_
Structure to hold a 3-D floating point vector (i.e., x/y/z components)
Vector3fField(const HebiFeedbackRef &internal, HebiFeedbackVector3fField field)
const HebiFeedbackRef & internal_
Feedback(HebiFeedbackPtr)
Wraps an existing C-style object that is managed by its parent. NOTE: this should not be used except ...
HebiFeedbackVector3fField
HebiStatusCode numberedFloatGetter(const RefT &ref, MetadataT &metadata, int field, size_t number, float *value)
HebiFeedbackHighResAngleField
bool has() const
True if (and only if) the field has a value.
const HebiFeedbackRef & internal_
HebiFeedbackNumberedFloatField
Structure to hold a floating point quaternion (i.e., w/x/y/z components)
Vector3f get() const
If the field has a value, returns that value; otherwise, returns a default.
HebiFeedbackRef internal_ref_
bool has() const
True if (and only if) the field has a value.
NumberedFloatField debug_
HebiFeedbackFloatField
Feedback Enums.
int64_t getInt(size_t pinNumber) const
If this numbered pin in this bank has an integer (e.g., digital) value, returns that value; otherwise...
HebiStatusCode floatGetter(const RefT &ref, MetadataT &metadata, int field, float *value)
HebiFeedbackLedField const field_
Sequence number going to module (local)
HebiFeedbackUInt64Field const field_
UInt64Field receive_time_us_
HebiFeedbackVector3fField const field_
UInt64Field hardware_transmit_time_us_
const HebiFeedbackRef & internal_
Feedback objects have various fields representing feedback from modules; which fields are populated d...
void hebiFeedbackGetReference(HebiFeedbackPtr feedback, HebiFeedbackRef *ref)
Feedback API.
float get(size_t fieldNumber) const
If the particular numbered subvalue of this field has a value, returns that value; otherwise returns ...
double get() const
If the field has a value, returns that value as a double; otherwise, returns a default.
LedField(const HebiFeedbackRef &internal, HebiFeedbackLedField field)
bool has() const
True if (and only if) the field has a value.
HebiStatusCode highResAngleGetter(const RefT &ref, MetadataT &metadata, int field, int64_t *revs, float *offset)
bool hasFloat(size_t pinNumber) const
True if (and only if) the particular numbered pin in this bank has an floating point (e...
IoBank(const HebiFeedbackRef &internal, HebiFeedbackIoPinBank bank)
bool hasColor() const
Returns true if the LED color is set, and false otherwise.
Timestamp of when message was transmitted to module (local)
HebiFeedbackHighResAngleField const field_
const HebiFeedbackRef & internal_
bool has() const
True if (and only if) the field has a value.
bool has() const
True if (and only if) the field has a value.
const HebiFeedbackRef & internal_
Timestamp of when message was transmitted from module (remote)
const HebiFeedbackRef & internal_
const HebiFeedbackRef & internal_
bool has(size_t fieldNumber) const
True if (and only if) the particular numbered subvalue of this field has a value. ...
float get() const
If the field has a value, returns that value; otherwise, returns a default.
HebiStatusCode floatIoPinGetter(const RefT &ref, MetadataT &metadata, int index, size_t pin_number, float *value)
Temperature of the processor chip.
HebiStatusCode intIoPinGetter(const RefT &ref, MetadataT &metadata, int index, size_t pin_number, int64_t *value)
QuaternionfField(const HebiFeedbackRef &internal, HebiFeedbackQuaternionfField field)
HebiFeedbackFloatField const field_
UInt64Field(const HebiFeedbackRef &internal, HebiFeedbackUInt64Field field)
HebiStatusCode uint64Getter(const RefT &ref, MetadataT &metadata, int field, uint64_t *value)
HebiFeedbackQuaternionfField const field_
Quaternionf get() const
If the field has a value, returns that value; otherwise, returns a default.
uint64_t get() const
If the field has a value, returns that value; otherwise, returns a default.
HebiStatusCode quaternionfGetter(const RefT &ref, MetadataT &metadata, int field, HebiQuaternionf *value)
Structure to describe an RGB color.
NumberedFloatField(const HebiFeedbackRef &internal, HebiFeedbackNumberedFloatField field)
HebiFeedbackNumberedFloatField const field_
Timestamp of when message was received by module (remote)
Color getColor() const
Returns the led color.
HebiFeedbackPtr internal_
FloatField(const HebiFeedbackRef &internal, HebiFeedbackFloatField field)
HighResAngleField(const HebiFeedbackRef &internal, HebiFeedbackHighResAngleField field)
HebiStatusCode vector3fGetter(const RefT &ref, MetadataT &metadata, int field, HebiVector3f *value)