.. _program_listing_file__tmp_ws_src_SMACC2_smacc2_sm_reference_library_sm_advanced_recovery_1_include_sm_advanced_recovery_1_sm_advanced_recovery_1.hpp: Program Listing for File sm_advanced_recovery_1.hpp =================================================== |exhale_lsh| :ref:`Return to documentation for file ` (``/tmp/ws/src/SMACC2/smacc2_sm_reference_library/sm_advanced_recovery_1/include/sm_advanced_recovery_1/sm_advanced_recovery_1.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp // Copyright 2021 RobosoftAI Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #pragma once #include #include // CLIENTS #include #include // ORTHOGONALS #include #include #include #include using namespace cl_ros_timer; using namespace cl_ros_publisher; using namespace cl_keyboard; using namespace sm_advanced_recovery_1::cl_subscriber; //CLIENT BEHAVIORS #include #include #include #include #include #include //#include #include //STATE REACTORS #include using namespace smacc2; using namespace smacc2::state_reactors; using namespace smacc2::default_events; namespace sm_advanced_recovery_1 { //SUPERSTATES class SsACycle; namespace a_cycle_inner_states { class StiACycleLoop; class StiACycleStep1; class StiACycleStep2; class StiACycleStep3; class StiACycleStep4; class StiACycleStep5; class StiACycleStep6; class StiACycleStep7; class StiACycleStep8; class StiACycleStep9; } // namespace a_cycle_inner_states class SsBCycle; namespace b_cyclenner_states { //FORWARD DECLARATIONS OF ALL INNER STATES class StiBCycleLoop; class StiBCycleStep1; class StiBCycleStep2; class StiBCycleStep3; class StiBCycleStep4; class StiBCycleStep5; class StiBCycleStep6; class StiBCycleStep7; class StiBCycleStep8; class StiBCycleStep9; } // namespace b_cyclenner_states class SsCCycle; namespace c_cycle_inner_states { //FORWARD DECLARATIONS OF ALL INNER STATES class StiCCycleLoop; class StiCCycleStep1; class StiCCycleStep2; class StiCCycleStep3; class StiCCycleStep4; class StiCCycleStep5; class StiCCycleStep6; class StiCCycleStep7; class StiCCycleStep8; class StiCCycleStep9; } // namespace c_cycle_inner_states //STATES class StObserve; class StRecoverStep1; class StRecoverStep2; class StRecoverStep3; class StRecoverStep4; class StRecoverStep5; class StRecoverStep6; class StRecoverStep7; //MODE STATES class MsRun; class MsRecover; struct EvToDeep : sc::event{}; struct EvFail : sc::event{}; // STATE MACHINE struct SmAdvancedRecovery1 : public smacc2::SmaccStateMachineBase { using SmaccStateMachineBase::SmaccStateMachineBase; virtual void onInitialize() override { this->createOrthogonal(); this->createOrthogonal(); this->createOrthogonal(); this->createOrthogonal(); } }; } // namespace sm_advanced_recovery_1 // MODE STATES #include #include //STATES #include #include #include #include #include #include #include #include #include #include #include //ss_ac_cycle #include #include #include #include #include #include #include #include #include #include //ss_b_cycle #include #include #include #include #include #include #include #include #include #include //ss_c_cycle #include #include #include #include #include #include #include #include #include #include