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
bool has() const
True if (and only if) the field has a value.
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 has(size_t fieldNumber) const
True if (and only if) the particular numbered subvalue of this field has a value. ...
UInt64Field transmit_time_us_
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
bool has() const
True if (and only if) the field has a value.
HebiStatusCode numberedFloatGetter(const RefT &ref, MetadataT &metadata, int field, size_t number, float *value)
HebiFeedbackHighResAngleField
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...
const HebiFeedbackRef & internal_
HebiFeedbackNumberedFloatField
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.
Structure to hold a floating point quaternion (i.e., w/x/y/z components)
double get() const
If the field has a value, returns that value as a double; otherwise, returns a default.
HebiFeedbackRef internal_ref_
NumberedFloatField debug_
HebiFeedbackFloatField
Feedback Enums.
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.
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.
bool hasColor() const
Returns true if the LED color is set, and false otherwise.
bool has() const
True if (and only if) the field has a value.
LedField(const HebiFeedbackRef &internal, HebiFeedbackLedField field)
HebiStatusCode highResAngleGetter(const RefT &ref, MetadataT &metadata, int field, int64_t *revs, float *offset)
IoBank(const HebiFeedbackRef &internal, HebiFeedbackIoPinBank bank)
Timestamp of when message was transmitted to module (local)
HebiFeedbackHighResAngleField const field_
const HebiFeedbackRef & internal_
const HebiFeedbackRef & internal_
float get(size_t fieldNumber) const
If the particular numbered subvalue of this field has a value, returns that value; otherwise returns ...
float get() const
If the field has a value, returns that value; otherwise, returns a default.
Timestamp of when message was transmitted from module (remote)
const HebiFeedbackRef & internal_
const HebiFeedbackRef & internal_
Vector3f 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)
uint64_t get() const
If the field has a value, returns that value; otherwise, returns a default.
bool has() const
True if (and only if) the field has a value.
HebiFeedbackFloatField const field_
UInt64Field(const HebiFeedbackRef &internal, HebiFeedbackUInt64Field field)
bool has() const
True if (and only if) the field has a value.
HebiStatusCode uint64Getter(const RefT &ref, MetadataT &metadata, int field, uint64_t *value)
HebiFeedbackQuaternionfField const field_
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)
bool hasFloat(size_t pinNumber) const
True if (and only if) the particular numbered pin in this bank has an floating point (e...
Quaternionf get() const
If the field has a value, returns that value; otherwise, returns a default.
HebiFeedbackPtr internal_
FloatField(const HebiFeedbackRef &internal, HebiFeedbackFloatField field)
Color getColor() const
Returns the led color.
HighResAngleField(const HebiFeedbackRef &internal, HebiFeedbackHighResAngleField field)
HebiStatusCode vector3fGetter(const RefT &ref, MetadataT &metadata, int field, HebiVector3f *value)