fpp/compiler/tools/fpp-to-cpp/test/state-machine/choice/SequenceU32StateMachineAc.ref.hpp
2025-07-21 21:38:42 -07:00

191 lines
5.1 KiB
C++
Vendored

// ======================================================================
// \title SequenceU32StateMachineAc.hpp
// \author Generated by fpp-to-cpp
// \brief hpp file for SequenceU32 state machine
// ======================================================================
#ifndef FppTest_SmChoice_SequenceU32StateMachineAc_HPP
#define FppTest_SmChoice_SequenceU32StateMachineAc_HPP
#include "Fw/FPrimeBasicTypes.hpp"
#include "Fw/Types/ExternalString.hpp"
#include "Fw/Types/Serializable.hpp"
#include "Fw/Types/String.hpp"
namespace FppTest {
namespace SmChoice {
//! A basic state machine with a U32 choice sequence
class SequenceU32StateMachineBase {
// ----------------------------------------------------------------------
// Friend classes
// ----------------------------------------------------------------------
//! Tester class for the state machine
friend class SequenceU32Tester;
public:
// ----------------------------------------------------------------------
// Types
// ----------------------------------------------------------------------
//! The state type
enum class State : FwEnumStoreType {
//! The uninitialized state
__FPRIME_AC_UNINITIALIZED,
//! State S1
S1,
//! State S2
S2,
//! State S3
S3,
//! State S4
S4,
};
//! The signal type
enum class Signal : FwEnumStoreType {
//! The initial transition
__FPRIME_AC_INITIAL_TRANSITION,
//! Signal s
s,
};
protected:
// ----------------------------------------------------------------------
// Constructors and Destructors
// ----------------------------------------------------------------------
//! Constructor
SequenceU32StateMachineBase();
//! Destructor
virtual ~SequenceU32StateMachineBase();
protected:
// ----------------------------------------------------------------------
// Initialization
// ----------------------------------------------------------------------
//! Initialize the state machine
void initBase(
const FwEnumStoreType id //!< The state machine ID
);
public:
// ----------------------------------------------------------------------
// Getter functions
// ----------------------------------------------------------------------
//! Get the state
SequenceU32StateMachineBase::State getState() const;
public:
// ----------------------------------------------------------------------
// Send signal functions
// ----------------------------------------------------------------------
//! Signal s
void sendSignal_s(
U32 value //!< The value
);
protected:
// ----------------------------------------------------------------------
// Actions
// ----------------------------------------------------------------------
//! Action a
virtual void action_a(
Signal signal, //!< The signal
U32 value //!< The value
) = 0;
//! Action b
virtual void action_b(
Signal signal //!< The signal
) = 0;
protected:
// ----------------------------------------------------------------------
// Guards
// ----------------------------------------------------------------------
//! Guard g1
virtual bool guard_g1(
Signal signal //!< The signal
) const = 0;
//! Guard g2
virtual bool guard_g2(
Signal signal, //!< The signal
U32 value //!< The value
) const = 0;
private:
// ----------------------------------------------------------------------
// State and choice entry
// ----------------------------------------------------------------------
//! Enter state S4
void enter_S4(
Signal signal //!< The signal
);
//! Enter state S3
void enter_S3(
Signal signal //!< The signal
);
//! Enter state S2
void enter_S2(
Signal signal //!< The signal
);
//! Enter choice C2
void enter_C2(
Signal signal, //!< The signal
U32 value //!< The value
);
//! Enter choice C1
void enter_C1(
Signal signal, //!< The signal
U32 value //!< The value
);
//! Enter state S1
void enter_S1(
Signal signal //!< The signal
);
protected:
// ----------------------------------------------------------------------
// Member variables
// ----------------------------------------------------------------------
//! The state machine ID
FwEnumStoreType m_id = 0;
//! The state
State m_state = State::__FPRIME_AC_UNINITIALIZED;
};
}
}
#endif