Vulcan
Aerospace Engineering Utilities Built on Janus
Loading...
Searching...
No Matches
vulcan::io::Frame Class Reference

Single timestep of telemetry data. More...

#include <Frame.hpp>

Public Member Functions

 Frame (const TelemetrySchema &schema)
 Construct frame with schema.
void set_time (double t)
 Set frame timestamp.
double time () const
 Get frame timestamp.
void set (const std::string &signal, double value)
 Set double signal value.
void set (const std::string &signal, int32_t value)
 Set int32 signal value.
void set (const std::string &signal, int64_t value)
 Set int64 signal value.
void set (const std::string &signal, const Eigen::Vector3d &v)
 Set 3-component vector (expands to signal.x, signal.y, signal.z).
void set (const std::string &signal, const Eigen::Vector4d &v)
void set (const std::string &signal, const Eigen::Quaterniond &q)
 Set quaternion (expands to signal.w, signal.x, signal.y, signal.z).
double get_double (const std::string &signal) const
 Get double signal value.
int32_t get_int32 (const std::string &signal) const
 Get int32 signal value.
int64_t get_int64 (const std::string &signal) const
 Get int64 signal value.
Eigen::Vector3d get_vec3 (const std::string &signal) const
 Get 3-component vector from signal.x, signal.y, signal.z.
Eigen::Quaterniond get_quat (const std::string &signal) const
 Get quaternion from signal.w, signal.x, signal.y, signal.z.
Eigen::Vector4d get_vec4 (const std::string &signal) const
 Get 4-component vector from signal.w, signal.x, signal.y, signal.z.
const std::byte * data () const
 Get raw buffer pointer (const).
std::byte * data ()
 Get raw buffer pointer (mutable).
size_t size_bytes () const
 Get buffer size in bytes.
const TelemetrySchemaschema () const
 Get schema reference.
void clear ()
 Clear all values to zero.

Detailed Description

Single timestep of telemetry data.

Contains scalar signal values in an 8-byte aligned buffer. Provides typed setters/getters and raw access for serialization.

Example:

Frame frame(schema);
frame.set_time(0.001);
frame.set("position", Eigen::Vector3d(1, 2, 3)); // Sets .x, .y, .z
frame.set("gnc.phase", int32_t{2});
auto pos = frame.get_vec3("position"); // Reads .x, .y, .z
Frame(const TelemetrySchema &schema)
Construct frame with schema.
Definition Frame.hpp:45
const TelemetrySchema & schema() const
Get schema reference.
Definition Frame.hpp:189

Constructor & Destructor Documentation

◆ Frame()

vulcan::io::Frame::Frame ( const TelemetrySchema & schema)
inlineexplicit

Construct frame with schema.

Parameters
schemaReference to telemetry schema (must outlive Frame)

Member Function Documentation

◆ clear()

void vulcan::io::Frame::clear ( )
inline

Clear all values to zero.

◆ data() [1/2]

std::byte * vulcan::io::Frame::data ( )
inline

Get raw buffer pointer (mutable).

◆ data() [2/2]

const std::byte * vulcan::io::Frame::data ( ) const
inline

Get raw buffer pointer (const).

◆ get_double()

double vulcan::io::Frame::get_double ( const std::string & signal) const
inline

Get double signal value.

◆ get_int32()

int32_t vulcan::io::Frame::get_int32 ( const std::string & signal) const
inline

Get int32 signal value.

◆ get_int64()

int64_t vulcan::io::Frame::get_int64 ( const std::string & signal) const
inline

Get int64 signal value.

◆ get_quat()

Eigen::Quaterniond vulcan::io::Frame::get_quat ( const std::string & signal) const
inline

Get quaternion from signal.w, signal.x, signal.y, signal.z.

◆ get_vec3()

Eigen::Vector3d vulcan::io::Frame::get_vec3 ( const std::string & signal) const
inline

Get 3-component vector from signal.x, signal.y, signal.z.

◆ get_vec4()

Eigen::Vector4d vulcan::io::Frame::get_vec4 ( const std::string & signal) const
inline

Get 4-component vector from signal.w, signal.x, signal.y, signal.z.

◆ schema()

const TelemetrySchema & vulcan::io::Frame::schema ( ) const
inline

Get schema reference.

◆ set() [1/6]

void vulcan::io::Frame::set ( const std::string & signal,
const Eigen::Quaterniond & q )
inline

Set quaternion (expands to signal.w, signal.x, signal.y, signal.z).

◆ set() [2/6]

void vulcan::io::Frame::set ( const std::string & signal,
const Eigen::Vector3d & v )
inline

Set 3-component vector (expands to signal.x, signal.y, signal.z).

◆ set() [3/6]

void vulcan::io::Frame::set ( const std::string & signal,
const Eigen::Vector4d & v )
inline

Set 4-component vector (expands to signal.w, signal.x, signal.y, signal.z) Used for quaternions

◆ set() [4/6]

void vulcan::io::Frame::set ( const std::string & signal,
double value )
inline

Set double signal value.

◆ set() [5/6]

void vulcan::io::Frame::set ( const std::string & signal,
int32_t value )
inline

Set int32 signal value.

◆ set() [6/6]

void vulcan::io::Frame::set ( const std::string & signal,
int64_t value )
inline

Set int64 signal value.

◆ set_time()

void vulcan::io::Frame::set_time ( double t)
inline

Set frame timestamp.

◆ size_bytes()

size_t vulcan::io::Frame::size_bytes ( ) const
inline

Get buffer size in bytes.

◆ time()

double vulcan::io::Frame::time ( ) const
inline

Get frame timestamp.


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