|
| template<typename Context , template< class > class Policy = detail::SingleThreadedExecutionPolicy> |
| using | SingleThreadedHsm = Policy< Context > |
| |
| template<typename Context , template< class > class Policy = detail::ThreadedExecutionPolicy> |
| using | ThreadedHsm = Policy< Context > |
| |
| template<typename Context , template< class > class Policy = detail::PeriodicExecutionPolicy> |
| using | PeriodicHsm = Policy< Context > |
| |
| template<typename Context , template< class > class Policy = detail::RealtimePeriodicExecutionPolicy> |
| using | RealtimePeriodicHsm = Policy< Context > |
| |
| template<typename Context , template< class > class Policy = detail::RealtimeExecutionPolicy> |
| using | RealtimeHsm = Policy< Context > |
| |
| template<template< typename > class Policy = detail::ThreadedExecutionPolicy, typename... Contexts> |
| using | ConcurrentHsm = detail::make_concurrent_hsm_t< Policy, Contexts... > |
| |
template<typename Context , template< class > class Policy = detail::PeriodicExecutionPolicy>
A Periodic state machine. This state machine is driven by a periodic timer. E.g. template<typename Context> using MyPeriodic1HzPolicy = PeriodicExecutionPolicy<Context, ThreadedExecutionPolicy, PeriodicTimer<std::chrono::steady_clock, std::chrono::seconds>>; using MyPeriodic1HzHsm = MyPeriodic1HzPolicy<MyContext>; MyPeriodic1HzHsm sm; sm.start(); This will start the state machine and send ClockTick events to the state context every 1 second. To stop the state machine, call sm.stop();
template<typename Context , template< class > class Policy = detail::RealtimePeriodicExecutionPolicy>
Real-time state machine. This state machine is driven by a periodic timer. E.g. template<typename Context> using MyRealtimePeriodic1KhzPolicy = RealtimePeriodicExecutionPolicy<Context, RealtimeExecutionPolicy, PeriodicTimer<std::chrono::steady_clock, std::chrono::milliseconds>>; using MyRealtimePeriodic1KhzHsm = MyRealtimePeriodic1KhzPolicy<MyContext>; MyRealtimePeriodic1KhzHsm sm; sm.start();