CommRaT 2.0.0
C++20 Real-Time Messaging Framework
Loading...
Searching...
No Matches
commrat::PrimaryInput< T > Struct Template Reference

Primary input designation for multi-input synchronization (Phase 6) More...

#include <commrat/module/io_spec.hpp>

Public Types

using PayloadType = T
 

Detailed Description

template<typename T>
struct commrat::PrimaryInput< T >

Primary input designation for multi-input synchronization (Phase 6)

When a module has multiple continuous inputs (Inputs<T, U, V>), one must be designated as PRIMARY. The primary input drives execution - the module blocks waiting for primary input, then fetches time-synchronized secondary inputs using getData(timestamp).

Template Parameters
TThe payload type of the primary input (must be in Inputs<...>)

Example:

// IMU runs at 100Hz (fast), GPS at 10Hz (slow)
// Use IMU as primary to maintain high update rate
class SensorFusion : public Module<Registry,
Output<FusedPose>,
Inputs<IMUData, GPSData>,
PrimaryInput<IMUData>> {
FusedPose process(const IMUData& imu, // PRIMARY - received (blocking)
const GPSData& gps) // SECONDARY - fetched at imu.timestamp
override {
// Both inputs time-aligned to imu.timestamp
return ekf_update(imu, gps);
}
};
Timestamp Management Architecture.

Definition at line 240 of file io_spec.hpp.

Member Typedef Documentation

◆ PayloadType

template<typename T >
using commrat::PrimaryInput< T >::PayloadType = T

Definition at line 241 of file io_spec.hpp.


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