Struct SmMultithreadTest1

Inheritance Relationships

Base Type

  • public smacc2::SmaccStateMachineBase< SmMultithreadTest1, StConcurrentOperation >

Struct Documentation

struct SmMultithreadTest1 : public smacc2::SmaccStateMachineBase<SmMultithreadTest1, StConcurrentOperation>

SmMultithreadTest1 - Demonstrates multi-threaded executor usage.

This state machine is designed to showcase the difference between single-threaded and multi-threaded execution models in SMACC2.

Architecture:

  • 4 orthogonals, each with a timer client at different rates

  • Custom behaviors that simulate work and log thread IDs

  • Visual demonstration of concurrent vs serial execution

Initial State: StConcurrentOperation

  • Runs 4 concurrent timers for 15 seconds

  • Logs thread IDs and work simulation

  • Transitions to StComplete after 15 seconds

Terminal State: StComplete

  • Displays summary and instructions

  • Waits for user to terminate

Usage: Multi-threaded: ros2 launch sm_multithread_test_1 sm_multithread_test_1.launch.py Single-threaded: ros2 launch sm_multithread_test_1 sm_multithread_test_1_single.launch.py

Public Functions

inline virtual void onInitialize() override