Comment on page
Type Configuration
The types used by HFSM2 can be configured using parameterized
hfsm2::MachineT<hfsm2::Config>
structure in place of default-configured hfsm2::Machine
, e.g.:using M = hfsm2::MachineT<
hfsm2::Config
::ContextT<Empty>
::RandomT<hfsm2::XoShiRo128Plus>
>;
Once
hfsm2::Config
is fully declared, it needs to be passed as a template argument into hfsm2::MachineT<>
to define configured HFSM2 parent struct containing all derivative types used in client code.Feature Define | Type | Used In | Default |
| ContextT<T> | Context& Control::context() | EmptyContext |
HFSM2_ENABLE_UTILITY_THEORY | RankT<T> | Rank State::rank() | int8_t |
HFSM2_ENABLE_UTILITY_THEORY | UtilityT<T> | Utility State::utility() | float |
HFSM2_ENABLE_UTILITY_THEORY | RandomT<T> | Used internally by randomize() transition and Random region | RandomT<float> |
| SubstitutionLimitN<N> | Maximum number of times State::entryGuard() methods are allowed to substitute the transition into their class for a transition into another one during the single *Root::update() | 4 |
HFSM2_ENABLE_PLANS | TaskCapacityN<N> | Total number of tasks across all plans in an FSM | 2x Number of Sub-States of All Composite Regions |
Last modified 3yr ago