Template Class RealtimeIntegrator

Nested Relationships

Nested Types

Inheritance Relationships

Base Type

Class Documentation

template<system_state S, can_be_time T = double>
class RealtimeIntegrator : public diffeq::core::AbstractIntegrator<S, double>

Real-time integrator with signal processing capabilities.

This class extends the basic integrator functionality with:

  • Real-time signal processing for control and financial applications

  • Async communication with external processes

  • Event-driven parameter updates

  • High-performance state output

  • Safety mechanisms and emergency stops

Public Types

using base_type = core::AbstractIntegrator<S, T>
using state_type = typename base_type::state_type
using time_type = typename base_type::time_type
using value_type = typename base_type::value_type
using system_function = typename base_type::system_function
template<typename U>
using signal_type = RealtimeSignal<U>
using control_signal = signal_type<communication::RobotControlMessage>
using financial_signal = signal_type<communication::FinancialSignalMessage>
using parameter_signal = signal_type<std::unordered_map<std::string, double>>
using state_output_signal = signal_type<state_type>

Public Functions

inline explicit RealtimeIntegrator(std::unique_ptr<core::AbstractIntegrator<S, T>> base_integrator, RealtimeConfig config = {})
inline ~RealtimeIntegrator()
RealtimeIntegrator(const RealtimeIntegrator&) = delete
RealtimeIntegrator &operator=(const RealtimeIntegrator&) = delete
RealtimeIntegrator(RealtimeIntegrator&&) noexcept = default
RealtimeIntegrator &operator=(RealtimeIntegrator&&) noexcept = default
inline void start_realtime()

Start real-time operation.

inline void shutdown()

Stop real-time operation.

inline virtual void step(state_type &state, time_type dt) override

Enhanced step function with signal processing.

inline virtual void integrate(state_type &state, time_type dt, time_type end_time) override

Enhanced integrate function with real-time capabilities.

template<typename ControlData>
inline void send_control_signal(ControlData &&data, double priority = 1.0)

Send control signal (for robotics applications)

template<typename FinancialData>
inline void send_financial_signal(FinancialData &&data, double priority = 1.0)

Send financial signal (for quantitative trading)

inline void update_parameters(const std::unordered_map<std::string, double> &params)

Update system parameters dynamically.

inline void emergency_stop()

Emergency stop - immediately halt integration.

inline state_type get_current_state() const

Get current state (thread-safe)

inline void setup_process_connector(communication::ProcessConnector::ConnectionConfig config)

Set up process connector for inter-process communication.

template<typename SignalT, SignalHandler<SignalT> Handler>
inline void register_signal_handler(SignalType type, Handler &&handler)

Register signal handler for specific signal type.

struct RealtimeConfig

Configuration for real-time operation.

Public Members

bool enable_realtime_priority = false
communication::RealtimePriority::Priority priority = communication::RealtimePriority::Priority::Normal
bool lock_memory = false
size_t signal_buffer_size = 1024
std::chrono::microseconds signal_processing_interval = {100}
std::chrono::milliseconds max_signal_latency = {10}
bool enable_state_output = true
std::chrono::microseconds state_output_interval = {1000}