HFSM2
  • HFSM2
  • Quick Tutorial
  • General Information
    • History
    • Goals
    • Development Principles
    • Future Plans
  • User Guide
    • Getting Started
    • Configuration
      • Feature Macros
      • Type Configuration
      • Context
    • Basic Features
      • Hierarchy
        • Root
        • Region
        • State
      • State Methods
        • Control
      • Transitions
        • Events
      • Update Cycle
    • Advanced Features
      • Transitions into Regions
      • Guards
        • Entry Guards
        • Exit Guards
      • State Injections
      • State Data Access
      • Dynamic States
      • Plans
    • Debugging and Tools
      • Activity Report
      • Structure Report
      • Transition History
      • Serialization *
      • Logging Support
  • Practical Topics
    • How-To
      • Designing Hierarchy
      • Reducing State Coupling
      • Reusing State Code
    • Common Patterns
      • Delayed Teardown
  • Users
Powered by GitBook
On this page

Was this helpful?

  1. User Guide
  2. Configuration

Feature Macros

PreviousConfigurationNextType Configuration

Last updated 4 years ago

Was this helpful?

Several advanced features are disabled by default to improve build times for the average case, and are explicitly enabled using feature macros:

Macro

Feature

API

HFSM2_ENABLE_ALL

All Advanced

Features

See below

HFSM2_ENABLE_UTILITY_THEORY

Utility Theory Transitions

Config::RankT<> Config::UtilityT<> Config::RandomT<>

void *Root::utilize()

void *Root::randomize()

void FullControl::utilize()

void FullControl::randomize()

void Plan::utilize()

void Plan::randomize()

void LoggerInterface::recordUtilityResolution() void LoggerInterface::recordRandomResolution()

HFSM2_ENABLE_PLANS

Plans

struct Plan struct ConstPlan void State::planSucceeded() void State::planFailed() ConstPlan Control::plan() Plan PlanControl::plan() void FullControl::succeed() void FullControl::fail() void LoggerInterface::recordTaskStatus() void LoggerInterface::recordPlanStatus()

HFSM2_ENABLE_SERIALIZATION

Serialization

struct SerialBuffer

void *Root::load()

void *Root::load()

HFSM2_ENABLE_TRANSITION_HISTORY

Transition

History

struct Transition

struct TransitionHistory

TransitionHistory *Root::transitionHistory()

void *Root::replayTransition()

void *Root::replayTransitions()

HFSM2_ENABLE_STRUCTURE_REPORT

Structure

Report

struct StructureEntry

struct Structure

Structure *Root::structure()

struct ActivityHistory

ActivityHistory *Root::activityHistory()

HFSM2_ENABLE_VERBOSE_DEBUG_LOGand / or

HFSM2_ENABLE_LOG_INTERFACE

Logging

void *Root::attachLogger() struct LoggerInterface void LoggerInterface::recordMethod() void LoggerInterface::recordTransition() void LoggerInterface::recordTaskStatus() void LoggerInterface::recordPlanStatus() void LoggerInterface::recordCancelledPending()

void LoggerInterface::recordUtilityResolution() void LoggerInterface::recordRandomResolution()

HFSM2