// ====================================================================== // \title BasicTestStructStateMachineAc.cpp // \author Generated by fpp-to-cpp // \brief cpp file for BasicTestStruct state machine // ====================================================================== #include "Fw/Types/Assert.hpp" #include "state-machine/state/BasicTestStructStateMachineAc.hpp" namespace FppTest { namespace SmState { // ---------------------------------------------------------------------- // Constructors and Destructors // ---------------------------------------------------------------------- BasicTestStructStateMachineBase :: BasicTestStructStateMachineBase() { } BasicTestStructStateMachineBase :: ~BasicTestStructStateMachineBase() { } // ---------------------------------------------------------------------- // Initialization // ---------------------------------------------------------------------- void BasicTestStructStateMachineBase :: initBase(const FwEnumStoreType id) { this->m_id = id; // Enter the initial target of the state machine this->enter_S(Signal::__FPRIME_AC_INITIAL_TRANSITION); } // ---------------------------------------------------------------------- // Getter functions // ---------------------------------------------------------------------- BasicTestStructStateMachineBase::State BasicTestStructStateMachineBase :: getState() const { return this->m_state; } // ---------------------------------------------------------------------- // Send signal functions // ---------------------------------------------------------------------- void BasicTestStructStateMachineBase :: sendSignal_s(const FppTest::SmHarness::TestStruct& value) { switch (this->m_state) { case State::S: // Do the actions for the transition this->action_a(Signal::s); this->action_a(Signal::s); this->action_b(Signal::s, value); // Enter the target this->enter_T(Signal::s); break; case State::T: break; default: FW_ASSERT(0, static_cast(this->m_state)); break; } } // ---------------------------------------------------------------------- // State and choice entry // ---------------------------------------------------------------------- void BasicTestStructStateMachineBase :: enter_T(Signal signal) { // Do the entry actions this->action_a(signal); this->action_a(signal); this->action_a(signal); // Update the state this->m_state = State::T; } void BasicTestStructStateMachineBase :: enter_S(Signal signal) { // Update the state this->m_state = State::S; } } }