|
tin
1.5.9
|
#include <core_algorithms.h>

Public Attributes | |
| std::uint16_t | destination { npos } |
| std::uint16_t | lca { npos } |
| static_path< Capacity > | exits {} |
| static_path< Capacity > | entries {} |
| static_path< Capacity > | final_path {} |
Transition execution sequence.
This is the complete state-path data needed to execute the HSM transition semantics: which states are exited, which transition action runs, which states are entered, and what the final active path becomes.
Runtime code can execute this data without recomputing hierarchy relations or consulting names.
(define-type TransitionSequence (record (destination StateId) (lca StateId) (exits (Path N)) (entries (Path N)) (final-path (Path N))))
(define (transition config source event hierarchy) (let* ((selected-transition (select-transition config source event)) (dst selected-transition.dst) (lca (least-common-ancestor source dst hierarchy)) (exit-list (states-from-leaf-up-to source lca hierarchy)) (entry-list (states-from-lca-down-to lca dst hierarchy))) (run-exit exit-list) (run-action selected-transition) (set-active-path (append (path-from-root lca hierarchy) entry-list (enter-initial-children dst hierarchy)))))
| std::uint16_t tsm::core::transition_sequence< Capacity >::destination { npos } |
| static_path<Capacity> tsm::core::transition_sequence< Capacity >::entries {} |
| static_path<Capacity> tsm::core::transition_sequence< Capacity >::exits {} |
| static_path<Capacity> tsm::core::transition_sequence< Capacity >::final_path {} |
| std::uint16_t tsm::core::transition_sequence< Capacity >::lca { npos } |