Showing preview only (4,314K chars total). Download the full file or copy to clipboard to get everything.
Repository: robosoft-ai/SMACC2
Branch: jazzy
Commit: 2f6e02885022
Files: 1357
Total size: 3.8 MB
Directory structure:
gitextract_m26_x9ze/
├── .clang-format
├── .claude/
│ └── settings.json
├── .github/
│ ├── Doxyfile
│ ├── ISSUE_TEMPLATE/
│ │ ├── compilation_error_report.md
│ │ └── runtime_error_report.md
│ ├── SMACC2-not-released.jazzy.repos
│ ├── SMACC2.jazzy.repos
│ ├── mergify.yml
│ └── workflows/
│ ├── README.md
│ ├── ci-format.yml
│ ├── ci-ros-lint.yaml
│ ├── doxygen-check-build.yml
│ ├── doxygen-deploy.yml
│ ├── jazzy-binary-build.yml
│ ├── jazzy-bloom-release.yml
│ └── jazzy-semi-binary-build.yml
├── .gitignore
├── .pre-commit-config.yaml
├── CLAUDE.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── docs/
│ └── cl_modbus_tcp_relay_plan.md
├── smacc2/
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── include/
│ │ └── smacc2/
│ │ ├── callback_counter_semaphore.hpp
│ │ ├── client_bases/
│ │ │ ├── smacc_action_client.hpp
│ │ │ ├── smacc_action_client_base.hpp
│ │ │ ├── smacc_publisher_client.hpp
│ │ │ ├── smacc_ros_launch_client.hpp
│ │ │ ├── smacc_ros_launch_client_2.hpp
│ │ │ ├── smacc_service_client.hpp
│ │ │ ├── smacc_service_server_client.hpp
│ │ │ └── smacc_subscriber_client.hpp
│ │ ├── client_behaviors/
│ │ │ ├── cb_call_service.hpp
│ │ │ ├── cb_ros_launch.hpp
│ │ │ ├── cb_ros_launch_2.hpp
│ │ │ ├── cb_ros_stop_2.hpp
│ │ │ ├── cb_sequence.hpp
│ │ │ ├── cb_service_server_callback_base.hpp
│ │ │ ├── cb_sleep_for.hpp
│ │ │ ├── cb_subscription_callback_base.hpp
│ │ │ ├── cb_wait_action_server.hpp
│ │ │ ├── cb_wait_action_server_2.hpp
│ │ │ ├── cb_wait_node.hpp
│ │ │ ├── cb_wait_topic.hpp
│ │ │ └── cb_wait_topic_message.hpp
│ │ ├── client_core_components/
│ │ │ ├── cp_action_client.hpp
│ │ │ ├── cp_ros2_timer.hpp
│ │ │ ├── cp_service_client.hpp
│ │ │ ├── cp_subprocess_executor.hpp
│ │ │ ├── cp_topic_publisher.hpp
│ │ │ └── cp_topic_subscriber.hpp
│ │ ├── common.hpp
│ │ ├── component.hpp
│ │ ├── impl/
│ │ │ ├── smacc_asynchronous_client_behavior_impl.hpp
│ │ │ ├── smacc_client_behavior_impl.hpp
│ │ │ ├── smacc_client_impl.hpp
│ │ │ ├── smacc_component_impl.hpp
│ │ │ ├── smacc_event_generator_impl.hpp
│ │ │ ├── smacc_orthogonal_impl.hpp
│ │ │ ├── smacc_state_impl.hpp
│ │ │ ├── smacc_state_machine_impl.hpp
│ │ │ └── smacc_state_reactor_impl.hpp
│ │ ├── introspection/
│ │ │ ├── introspection.hpp
│ │ │ ├── smacc_state_info.hpp
│ │ │ ├── smacc_state_machine_info.hpp
│ │ │ ├── smacc_type_info.hpp
│ │ │ └── state_traits.hpp
│ │ ├── smacc.hpp
│ │ ├── smacc_asynchronous_client_behavior.hpp
│ │ ├── smacc_client.hpp
│ │ ├── smacc_client_behavior.hpp
│ │ ├── smacc_client_behavior_base.hpp
│ │ ├── smacc_default_events.hpp
│ │ ├── smacc_event_generator.hpp
│ │ ├── smacc_fifo_scheduler.hpp
│ │ ├── smacc_fifo_worker.hpp
│ │ ├── smacc_orthogonal.hpp
│ │ ├── smacc_signal.hpp
│ │ ├── smacc_signal_detector.hpp
│ │ ├── smacc_state.hpp
│ │ ├── smacc_state_base.hpp
│ │ ├── smacc_state_machine.hpp
│ │ ├── smacc_state_machine_base.hpp
│ │ ├── smacc_state_reactor.hpp
│ │ ├── smacc_tracing/
│ │ │ ├── smacc_tracing.hpp
│ │ │ └── trace_provider.hpp
│ │ ├── smacc_transition.hpp
│ │ ├── smacc_types.hpp
│ │ └── smacc_updatable.hpp
│ ├── package.xml
│ ├── scripts/
│ │ └── trace.sh
│ └── src/
│ └── smacc2/
│ ├── callback_counter_semaphore.cpp
│ ├── client.cpp
│ ├── client_bases/
│ │ ├── smacc_action_client.cpp
│ │ ├── smacc_publisher_client.cpp
│ │ ├── smacc_ros_launch_client.cpp
│ │ └── smacc_ros_launch_client_2.cpp
│ ├── client_behaviors/
│ │ ├── cb_ros_launch.cpp
│ │ ├── cb_ros_launch_2.cpp
│ │ ├── cb_ros_stop_2.cpp
│ │ ├── cb_sequence.cpp
│ │ ├── cb_wait_action_server.cpp
│ │ ├── cb_wait_node.cpp
│ │ └── cb_wait_topic.cpp
│ ├── common.cpp
│ ├── introspection/
│ │ ├── reflection.cpp
│ │ └── string_type_walker.cpp
│ ├── orthogonal.cpp
│ ├── signal_detector.cpp
│ ├── smacc_client_async_behavior.cpp
│ ├── smacc_client_behavior.cpp
│ ├── smacc_client_behavior_base.cpp
│ ├── smacc_component.cpp
│ ├── smacc_event_generator.cpp
│ ├── smacc_state.cpp
│ ├── smacc_state_info.cpp
│ ├── smacc_state_machine.cpp
│ ├── smacc_state_machine_info.cpp
│ ├── smacc_tracing.cpp
│ ├── smacc_updatable.cpp
│ ├── state_reactor.cpp
│ └── trace_provider.cpp
├── smacc2_client_library/
│ ├── CLAUDE.md
│ ├── cl_foundation_pose/
│ │ ├── CMakeLists.txt
│ │ ├── include/
│ │ │ └── cl_foundation_pose/
│ │ │ ├── cl_foundation_pose.hpp
│ │ │ ├── client_behaviors/
│ │ │ │ ├── cb_pause_object_tracking.hpp
│ │ │ │ └── cb_track_object_pose.hpp
│ │ │ └── components/
│ │ │ ├── cp_object_tracker_1.hpp
│ │ │ ├── cp_object_tracker_tf.hpp
│ │ │ └── tracker_utils.hpp
│ │ └── package.xml
│ ├── cl_gcalcli/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── docs/
│ │ │ └── cl_gcalcli_implementation_plan.md
│ │ ├── include/
│ │ │ └── cl_gcalcli/
│ │ │ ├── cl_gcalcli.hpp
│ │ │ ├── client_behaviors/
│ │ │ │ ├── cb_detect_calendar_event.hpp
│ │ │ │ ├── cb_event_detect.hpp
│ │ │ │ ├── cb_monitor_connection.hpp
│ │ │ │ ├── cb_quick_add.hpp
│ │ │ │ ├── cb_refresh_agenda.hpp
│ │ │ │ ├── cb_status.hpp
│ │ │ │ └── cb_wait_connection.hpp
│ │ │ ├── client_behaviors.hpp
│ │ │ ├── components/
│ │ │ │ ├── cp_calendar_event_listener.hpp
│ │ │ │ ├── cp_calendar_poller.hpp
│ │ │ │ └── cp_gcalcli_connection.hpp
│ │ │ ├── events.hpp
│ │ │ └── types.hpp
│ │ ├── package.xml
│ │ └── src/
│ │ └── cl_gcalcli/
│ │ ├── cl_gcalcli.cpp
│ │ ├── client_behaviors/
│ │ │ ├── cb_detect_calendar_event.cpp
│ │ │ ├── cb_event_detect.cpp
│ │ │ ├── cb_monitor_connection.cpp
│ │ │ ├── cb_quick_add.cpp
│ │ │ ├── cb_refresh_agenda.cpp
│ │ │ ├── cb_status.cpp
│ │ │ └── cb_wait_connection.cpp
│ │ └── components/
│ │ ├── cp_calendar_event_listener.cpp
│ │ ├── cp_calendar_poller.cpp
│ │ └── cp_gcalcli_connection.cpp
│ ├── cl_generic_sensor/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── include/
│ │ │ └── cl_generic_sensor/
│ │ │ ├── cl_generic_sensor.hpp
│ │ │ ├── client_behaviors/
│ │ │ │ └── cb_default_generic_sensor_behavior.hpp
│ │ │ └── components/
│ │ │ ├── README.md
│ │ │ └── cp_message_timeout.hpp
│ │ ├── package.xml
│ │ └── src/
│ │ └── cl_generic_sensor/
│ │ └── cl_generic_sensor.cpp
│ ├── cl_http/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── include/
│ │ │ └── cl_http/
│ │ │ ├── cl_http.hpp
│ │ │ ├── client_behaviors/
│ │ │ │ ├── cb_http_get_request.hpp
│ │ │ │ ├── cb_http_post_request.hpp
│ │ │ │ └── cb_http_request.hpp
│ │ │ ├── components/
│ │ │ │ ├── cp_http_connection_manager.hpp
│ │ │ │ ├── cp_http_request_executor.hpp
│ │ │ │ └── cp_http_session_manager.hpp
│ │ │ ├── http_session.hpp
│ │ │ ├── http_session_base.hpp
│ │ │ └── ssl_http_session.hpp
│ │ ├── package.xml
│ │ └── src/
│ │ └── cl_http/
│ │ ├── cl_http.cpp
│ │ ├── components/
│ │ │ ├── cp_http_connection_manager.cpp
│ │ │ ├── cp_http_request_executor.cpp
│ │ │ └── cp_http_session_manager.cpp
│ │ ├── http_session.cpp
│ │ └── ssl_http_session.cpp
│ ├── cl_isaac_apriltag/
│ │ ├── CMakeLists.txt
│ │ ├── COLCON_IGNORE
│ │ ├── include/
│ │ │ └── cl_isaac_apriltag/
│ │ │ ├── cl_isaac_apriltag.hpp
│ │ │ ├── client_behaviors/
│ │ │ │ └── cb_detect_apriltag.hpp
│ │ │ └── components/
│ │ │ ├── cp_april_visualization.hpp
│ │ │ ├── cp_apriltag_mission_state.hpp
│ │ │ └── cp_apriltag_tracker.hpp
│ │ └── package.xml
│ ├── cl_keyboard/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── include/
│ │ │ └── cl_keyboard/
│ │ │ ├── cl_keyboard.hpp
│ │ │ ├── client_behaviors/
│ │ │ │ └── cb_default_keyboard_behavior.hpp
│ │ │ └── components/
│ │ │ └── cp_keyboard_listener_1.hpp
│ │ ├── package.xml
│ │ ├── servers/
│ │ │ └── keyboard_server_node.py
│ │ └── src/
│ │ └── cl_keyboard/
│ │ └── cl_keyboard.cpp
│ ├── cl_lifecycle_node/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── include/
│ │ │ └── cl_lifecycle_node/
│ │ │ ├── cl_lifecycle_node.hpp
│ │ │ ├── client_behaviors/
│ │ │ │ ├── cb_activate.hpp
│ │ │ │ ├── cb_cleanup.hpp
│ │ │ │ ├── cb_configure.hpp
│ │ │ │ ├── cb_deactivate.hpp
│ │ │ │ ├── cb_deactivate_on_exit.hpp
│ │ │ │ ├── cb_destroy.hpp
│ │ │ │ └── cb_shutdown.hpp
│ │ │ ├── client_behaviors.hpp
│ │ │ ├── components/
│ │ │ │ ├── cp_lifecycle_event_monitor.hpp
│ │ │ │ └── cp_lifecycle_state_tracker.hpp
│ │ │ └── components.hpp
│ │ ├── package.xml
│ │ └── src/
│ │ └── cl_lifecycle_node/
│ │ ├── cl_lifecycle_node.cpp
│ │ └── components/
│ │ ├── cp_lifecycle_event_monitor.cpp
│ │ └── cp_lifecycle_state_tracker.cpp
│ ├── cl_mission_tracker/
│ │ ├── CMakeLists.txt
│ │ ├── include/
│ │ │ └── cl_mission_tracker/
│ │ │ ├── cl_mission_tracker.hpp
│ │ │ ├── client_behaviors/
│ │ │ │ └── cb_battery_decission.hpp
│ │ │ └── components/
│ │ │ └── cp_decision_manager.hpp
│ │ └── package.xml
│ ├── cl_modbus_tcp_relay/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── include/
│ │ │ └── cl_modbus_tcp_relay/
│ │ │ ├── cl_modbus_tcp_relay.hpp
│ │ │ ├── client_behaviors/
│ │ │ │ ├── cb_all_relays_off.hpp
│ │ │ │ ├── cb_all_relays_on.hpp
│ │ │ │ ├── cb_relay_off.hpp
│ │ │ │ ├── cb_relay_on.hpp
│ │ │ │ └── cb_relay_status.hpp
│ │ │ └── components/
│ │ │ ├── cp_modbus_connection.hpp
│ │ │ └── cp_modbus_relay.hpp
│ │ ├── package.xml
│ │ └── src/
│ │ └── cl_modbus_tcp_relay/
│ │ ├── cl_modbus_tcp_relay.cpp
│ │ └── components/
│ │ ├── cp_modbus_connection.cpp
│ │ └── cp_modbus_relay.cpp
│ ├── cl_moveit2z/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── include/
│ │ │ └── cl_moveit2z/
│ │ │ ├── cl_moveit2z.hpp
│ │ │ ├── client_behaviors/
│ │ │ │ ├── cb_attach_object.hpp
│ │ │ │ ├── cb_circular_pivot_motion.hpp
│ │ │ │ ├── cb_detach_object.hpp
│ │ │ │ ├── cb_end_effector_rotate.hpp
│ │ │ │ ├── cb_move_cartesian_relative2.hpp
│ │ │ │ ├── cb_move_end_effector.hpp
│ │ │ │ ├── cb_move_end_effector_trajectory.hpp
│ │ │ │ ├── cb_move_joints.hpp
│ │ │ │ ├── cb_move_known_state.hpp
│ │ │ │ └── cb_undo_last_trajectory.hpp
│ │ │ ├── client_behaviors.hpp
│ │ │ ├── common.hpp
│ │ │ └── components/
│ │ │ ├── cp_grasping_objects.hpp
│ │ │ ├── cp_joint_space_trajectory_planner.hpp
│ │ │ ├── cp_motion_planner.hpp
│ │ │ ├── cp_tf_listener.hpp
│ │ │ ├── cp_trajectory_executor.hpp
│ │ │ ├── cp_trajectory_history.hpp
│ │ │ └── cp_trajectory_visualizer.hpp
│ │ ├── package.xml
│ │ └── src/
│ │ └── cl_moveit2z/
│ │ └── cl_moveit2z.cpp
│ ├── cl_nav2z/
│ │ ├── cl_nav2z/
│ │ │ ├── CHANGELOG.rst
│ │ │ ├── CMakeLists.txt
│ │ │ ├── include/
│ │ │ │ └── cl_nav2z/
│ │ │ │ ├── cl_nav2z.hpp
│ │ │ │ ├── client_behaviors/
│ │ │ │ │ ├── cb_abort_navigation.hpp
│ │ │ │ │ ├── cb_absolute_rotate.hpp
│ │ │ │ │ ├── cb_active_stop.hpp
│ │ │ │ │ ├── cb_load_waypoints_file.hpp
│ │ │ │ │ ├── cb_nav2z_client_behavior_base.hpp
│ │ │ │ │ ├── cb_navigate_backwards.hpp
│ │ │ │ │ ├── cb_navigate_forward.hpp
│ │ │ │ │ ├── cb_navigate_global_position.hpp
│ │ │ │ │ ├── cb_navigate_named_waypoint.hpp
│ │ │ │ │ ├── cb_navigate_next_waypoint.hpp
│ │ │ │ │ ├── cb_navigate_next_waypoint_free.hpp
│ │ │ │ │ ├── cb_navigate_next_waypoint_until_reached.hpp
│ │ │ │ │ ├── cb_pause_slam.hpp
│ │ │ │ │ ├── cb_position_control_free_space.hpp
│ │ │ │ │ ├── cb_pure_spinning.hpp
│ │ │ │ │ ├── cb_resume_slam.hpp
│ │ │ │ │ ├── cb_retry_behavior.hpp
│ │ │ │ │ ├── cb_rotate.hpp
│ │ │ │ │ ├── cb_rotate_look_at.hpp
│ │ │ │ │ ├── cb_save_slam_map.hpp
│ │ │ │ │ ├── cb_seek_waypoint.hpp
│ │ │ │ │ ├── cb_spiral_motion.hpp
│ │ │ │ │ ├── cb_stop_navigation.hpp
│ │ │ │ │ ├── cb_track_path_odometry.hpp
│ │ │ │ │ ├── cb_track_path_slam.hpp
│ │ │ │ │ ├── cb_undo_path_backwards.hpp
│ │ │ │ │ ├── cb_wait_nav2_nodes.hpp
│ │ │ │ │ ├── cb_wait_pose.hpp
│ │ │ │ │ └── cb_wait_transform.hpp
│ │ │ │ ├── client_behaviors.hpp
│ │ │ │ ├── common.hpp
│ │ │ │ └── components/
│ │ │ │ ├── amcl/
│ │ │ │ │ └── cp_amcl.hpp
│ │ │ │ ├── costmap_switch/
│ │ │ │ │ └── cp_costmap_switch.hpp
│ │ │ │ ├── goal_checker_switcher/
│ │ │ │ │ └── cp_goal_checker_switcher.hpp
│ │ │ │ ├── nav2_action_interface/
│ │ │ │ │ └── cp_nav2_action_interface.hpp
│ │ │ │ ├── odom_tracker/
│ │ │ │ │ └── cp_odom_tracker.hpp
│ │ │ │ ├── planner_switcher/
│ │ │ │ │ └── cp_planner_switcher.hpp
│ │ │ │ ├── pose/
│ │ │ │ │ └── cp_pose.hpp
│ │ │ │ ├── slam_toolbox/
│ │ │ │ │ └── cp_slam_toolbox.hpp
│ │ │ │ └── waypoints_navigator/
│ │ │ │ ├── cp_waypoints_event_dispatcher.hpp
│ │ │ │ ├── cp_waypoints_navigator.hpp
│ │ │ │ ├── cp_waypoints_navigator_base.hpp
│ │ │ │ └── cp_waypoints_visualizer.hpp
│ │ │ ├── package.xml
│ │ │ ├── scripts/
│ │ │ │ └── lidar_completion.py
│ │ │ └── src/
│ │ │ └── cl_nav2z/
│ │ │ ├── cl_nav2z.cpp
│ │ │ ├── client_behaviors/
│ │ │ │ ├── cb_abort_navigation.cpp
│ │ │ │ ├── cb_absolute_rotate.cpp
│ │ │ │ ├── cb_active_stop.cpp
│ │ │ │ ├── cb_load_waypoints_file.cpp
│ │ │ │ ├── cb_nav2z_client_behavior_base.cpp
│ │ │ │ ├── cb_navigate_backward.cpp
│ │ │ │ ├── cb_navigate_forward.cpp
│ │ │ │ ├── cb_navigate_global_position.cpp
│ │ │ │ ├── cb_navigate_named_waypoint.cpp
│ │ │ │ ├── cb_navigate_next_waypoint.cpp
│ │ │ │ ├── cb_navigate_next_waypoint_free.cpp
│ │ │ │ ├── cb_navigate_next_waypoint_until_reached.cpp
│ │ │ │ ├── cb_pause_slam.cpp
│ │ │ │ ├── cb_position_control_free_space.cpp
│ │ │ │ ├── cb_pure_spinning.cpp
│ │ │ │ ├── cb_resume_slam.cpp
│ │ │ │ ├── cb_rotate.cpp
│ │ │ │ ├── cb_rotate_look_at.cpp
│ │ │ │ ├── cb_save_slam_map.cpp
│ │ │ │ ├── cb_seek_waypoint.cpp
│ │ │ │ ├── cb_spiral_motion.cpp
│ │ │ │ ├── cb_stop_navigation.cpp
│ │ │ │ ├── cb_track_path_odometry.cpp
│ │ │ │ ├── cb_track_path_slam.cpp
│ │ │ │ ├── cb_undo_path_backwards.cpp
│ │ │ │ ├── cb_wait_nav2_nodes.cpp
│ │ │ │ ├── cb_wait_pose.cpp
│ │ │ │ └── cb_wait_transform.cpp
│ │ │ ├── common.cpp
│ │ │ └── components/
│ │ │ ├── amcl/
│ │ │ │ └── cp_amcl.cpp
│ │ │ ├── costmap_switch/
│ │ │ │ └── cp_costmap_switch.cpp
│ │ │ ├── goal_checker_switcher/
│ │ │ │ └── cp_goal_checker_switcher.cpp
│ │ │ ├── odom_tracker/
│ │ │ │ ├── cp_odom_tracker.cpp
│ │ │ │ └── cp_odom_tracker_node.cpp
│ │ │ ├── planner_switcher/
│ │ │ │ └── cp_planner_switcher.cpp
│ │ │ ├── pose/
│ │ │ │ └── cp_pose.cpp
│ │ │ ├── slam_toolbox/
│ │ │ │ └── cp_slam_toolbox.cpp
│ │ │ └── waypoints_navigator/
│ │ │ ├── cp_waypoints_event_dispatcher.cpp
│ │ │ ├── cp_waypoints_navigator.cpp
│ │ │ └── cp_waypoints_visualizer.cpp
│ │ └── custom_planners/
│ │ ├── backward_global_planner/
│ │ │ ├── CHANGELOG.rst
│ │ │ ├── CMakeLists.txt
│ │ │ ├── bgp_plugin.xml
│ │ │ ├── include/
│ │ │ │ └── backward_global_planner/
│ │ │ │ └── backward_global_planner.hpp
│ │ │ ├── package.xml
│ │ │ └── src/
│ │ │ └── backward_global_planner/
│ │ │ └── backward_global_planner.cpp
│ │ ├── backward_local_planner/
│ │ │ ├── CHANGELOG.rst
│ │ │ ├── CMakeLists.txt
│ │ │ ├── blp_plugin.xml
│ │ │ ├── include/
│ │ │ │ └── backward_local_planner/
│ │ │ │ └── backward_local_planner.hpp
│ │ │ ├── package.xml
│ │ │ └── src/
│ │ │ └── backward_local_planner/
│ │ │ └── backward_local_planner.cpp
│ │ ├── forward_global_planner/
│ │ │ ├── CHANGELOG.rst
│ │ │ ├── CMakeLists.txt
│ │ │ ├── fgp_plugin.xml
│ │ │ ├── include/
│ │ │ │ └── forward_global_planner/
│ │ │ │ └── forward_global_planner.hpp
│ │ │ ├── package.xml
│ │ │ └── src/
│ │ │ └── forward_global_planner/
│ │ │ └── forward_global_planner.cpp
│ │ ├── forward_local_planner/
│ │ │ ├── CHANGELOG.rst
│ │ │ ├── CMakeLists.txt
│ │ │ ├── flp_plugin.xml
│ │ │ ├── include/
│ │ │ │ └── forward_local_planner/
│ │ │ │ └── forward_local_planner.hpp
│ │ │ ├── package.xml
│ │ │ └── src/
│ │ │ └── forward_local_planner/
│ │ │ └── forward_local_planner.cpp
│ │ ├── nav2z_planners_common/
│ │ │ ├── CHANGELOG.rst
│ │ │ ├── CMakeLists.txt
│ │ │ ├── include/
│ │ │ │ └── nav2z_planners_common/
│ │ │ │ ├── common.hpp
│ │ │ │ └── nav2z_client_tools.hpp
│ │ │ ├── package.xml
│ │ │ └── src/
│ │ │ └── nav2z_planners_common/
│ │ │ └── common.cpp
│ │ ├── pure_spinning_local_planner/
│ │ │ ├── CHANGELOG.rst
│ │ │ ├── CMakeLists.txt
│ │ │ ├── include/
│ │ │ │ └── pure_spinning_local_planner/
│ │ │ │ └── pure_spinning_local_planner.hpp
│ │ │ ├── package.xml
│ │ │ ├── pslp_plugin.xml
│ │ │ └── src/
│ │ │ └── pure_spinning_local_planner/
│ │ │ └── pure_spinning_local_planner.cpp
│ │ └── undo_path_global_planner/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── include/
│ │ │ └── undo_path_global_planner/
│ │ │ └── undo_path_global_planner.hpp
│ │ ├── package.xml
│ │ ├── src/
│ │ │ └── undo_path_global_planner/
│ │ │ └── undo_path_global_planner.cpp
│ │ └── upgp_plugin.xml
│ ├── cl_px4_mr/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── include/
│ │ │ └── cl_px4_mr/
│ │ │ ├── cl_px4_mr.hpp
│ │ │ ├── client_behaviors/
│ │ │ │ ├── cb_arm_px4.hpp
│ │ │ │ ├── cb_change_altitude.hpp
│ │ │ │ ├── cb_connect_micro_ros_agent.hpp
│ │ │ │ ├── cb_disarm_px4.hpp
│ │ │ │ ├── cb_figure_eight.hpp
│ │ │ │ ├── cb_follow_waypoints.hpp
│ │ │ │ ├── cb_go_to_location.hpp
│ │ │ │ ├── cb_hold_position.hpp
│ │ │ │ ├── cb_land.hpp
│ │ │ │ ├── cb_orbit_location.hpp
│ │ │ │ ├── cb_return_to_home.hpp
│ │ │ │ ├── cb_spiral_pattern.hpp
│ │ │ │ ├── cb_takeoff.hpp
│ │ │ │ └── cb_yaw_rotate.hpp
│ │ │ └── components/
│ │ │ ├── cp_goal_checker.hpp
│ │ │ ├── cp_micro_ros_agent.hpp
│ │ │ ├── cp_offboard_keep_alive.hpp
│ │ │ ├── cp_trajectory_setpoint.hpp
│ │ │ ├── cp_vehicle_command.hpp
│ │ │ ├── cp_vehicle_command_ack.hpp
│ │ │ ├── cp_vehicle_local_position.hpp
│ │ │ └── cp_vehicle_status.hpp
│ │ ├── package.xml
│ │ └── src/
│ │ └── cl_px4_mr/
│ │ ├── cl_px4_mr.cpp
│ │ ├── client_behaviors/
│ │ │ ├── cb_arm_px4.cpp
│ │ │ ├── cb_change_altitude.cpp
│ │ │ ├── cb_connect_micro_ros_agent.cpp
│ │ │ ├── cb_disarm_px4.cpp
│ │ │ ├── cb_figure_eight.cpp
│ │ │ ├── cb_follow_waypoints.cpp
│ │ │ ├── cb_go_to_location.cpp
│ │ │ ├── cb_hold_position.cpp
│ │ │ ├── cb_land.cpp
│ │ │ ├── cb_orbit_location.cpp
│ │ │ ├── cb_return_to_home.cpp
│ │ │ ├── cb_spiral_pattern.cpp
│ │ │ ├── cb_takeoff.cpp
│ │ │ └── cb_yaw_rotate.cpp
│ │ └── components/
│ │ ├── cp_goal_checker.cpp
│ │ ├── cp_micro_ros_agent.cpp
│ │ ├── cp_offboard_keep_alive.cpp
│ │ ├── cp_trajectory_setpoint.cpp
│ │ ├── cp_vehicle_command.cpp
│ │ ├── cp_vehicle_command_ack.cpp
│ │ ├── cp_vehicle_local_position.cpp
│ │ └── cp_vehicle_status.cpp
│ └── cl_ros2_timer/
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── include/
│ │ └── cl_ros2_timer/
│ │ ├── cl_ros2_timer.hpp
│ │ ├── client_behaviors/
│ │ │ ├── cb_ros2_timer.hpp
│ │ │ ├── cb_timer_countdown_loop.hpp
│ │ │ └── cb_timer_countdown_once.hpp
│ │ └── components/
│ │ └── cp_timer_listener_1.hpp
│ ├── package.xml
│ └── src/
│ └── cl_ros2_timer.cpp
├── smacc2_dev_tools/
│ ├── .vscode/
│ │ ├── c_cpp_properties.json
│ │ ├── gdb-run.sh
│ │ ├── launch.json
│ │ ├── settings.json
│ │ └── tasks.json
│ ├── claude/
│ │ └── Prompts.md
│ ├── docker/
│ │ ├── Dockerfile
│ │ ├── build_docker.sh
│ │ ├── build_docker_foxy.sh
│ │ ├── build_docker_galactic.sh
│ │ ├── build_docker_humble.sh
│ │ ├── build_docker_rolling.sh
│ │ ├── examples/
│ │ │ └── run_sm_atomic.sh
│ │ ├── run_docker_bash_foxy.sh
│ │ ├── run_docker_bash_galactic.sh
│ │ └── run_docker_bash_humble.sh
│ ├── sandbox/
│ │ ├── cp_ros_control_interface.cpp.disabled
│ │ └── cp_ros_control_interface.h.disabled
│ └── sm_reference_lib_run_commands.md
├── smacc2_event_generator_library/
│ ├── eg_conditional_generator/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── include/
│ │ │ └── eg_conditional_generator/
│ │ │ └── eg_conditional_generator.hpp
│ │ ├── package.xml
│ │ └── src/
│ │ └── eg_conditional_generator/
│ │ └── eg_conditional_generator.cpp
│ └── eg_random_generator/
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── include/
│ │ └── eg_random_generator/
│ │ └── eg_random_generator.hpp
│ ├── package.xml
│ └── src/
│ └── eg_random_generator/
│ └── eg_random_generator.cpp
├── smacc2_msgs/
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── msg/
│ │ ├── SmaccContainerInitialStatusCmd.msg
│ │ ├── SmaccContainerStatus.msg
│ │ ├── SmaccContainerStructure.msg
│ │ ├── SmaccEvent.msg
│ │ ├── SmaccEventGenerator.msg
│ │ ├── SmaccOrthogonal.msg
│ │ ├── SmaccSMCommand.msg
│ │ ├── SmaccState.msg
│ │ ├── SmaccStateMachine.msg
│ │ ├── SmaccStateReactor.msg
│ │ ├── SmaccStatus.msg
│ │ ├── SmaccTransition.msg
│ │ └── SmaccTransitionLogEntry.msg
│ ├── package.xml
│ └── srv/
│ └── SmaccGetTransitionHistory.srv
├── smacc2_performance_tools/
│ ├── performance_tests/
│ │ ├── sm_atomic_performance_trace_1/
│ │ │ ├── CHANGELOG.rst
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── config/
│ │ │ │ ├── sm_atomic_performance_trace_1_config.yaml
│ │ │ │ └── sm_atomic_performance_trace_1_test.yaml
│ │ │ ├── include/
│ │ │ │ └── sm_atomic_performance_trace_1/
│ │ │ │ ├── sm_atomic_performance_trace_1.hpp
│ │ │ │ └── states/
│ │ │ │ ├── st_state_1.hpp
│ │ │ │ └── st_state_2.hpp
│ │ │ ├── launch/
│ │ │ │ └── sm_atomic_performance_trace_1.launch
│ │ │ ├── package.xml
│ │ │ └── src/
│ │ │ └── sm_atomic_performance_trace_1/
│ │ │ └── sm_atomic_performance_trace_1_node.cpp
│ │ ├── sm_atomic_subscribers_performance_test/
│ │ │ ├── CHANGELOG.rst
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── config/
│ │ │ │ └── sm_atomic_config.yaml
│ │ │ ├── include/
│ │ │ │ └── sm_atomic_subscribers_performance_test/
│ │ │ │ ├── orthogonals/
│ │ │ │ │ └── or_subscriber.hpp
│ │ │ │ ├── sm_atomic_subscribers_performance_test.hpp
│ │ │ │ └── states/
│ │ │ │ ├── st_state_1.hpp
│ │ │ │ └── st_state_2.hpp
│ │ │ ├── launch/
│ │ │ │ └── sm_atomic_subscribers_performance_test.launch
│ │ │ ├── package.xml
│ │ │ ├── servers/
│ │ │ │ └── basic_publisher.py
│ │ │ └── src/
│ │ │ └── sm_atomic_subscribers_performance_test/
│ │ │ └── sm_atomic_subscribers_performance_test_node.cpp
│ │ └── sm_coretest_transition_speed_1/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ ├── sm_coretest_transition_speed_1.yaml
│ │ │ └── sm_coretest_transition_speed_1_config.yaml
│ │ ├── include/
│ │ │ └── sm_coretest_transition_speed_1/
│ │ │ ├── sm_coretest_transition_speed_1.hpp
│ │ │ └── states/
│ │ │ ├── st_state_1.hpp
│ │ │ └── st_state_2.hpp
│ │ ├── launch/
│ │ │ └── sm_coretest_transition_speed_1.launch
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_coretest_transition_speed_1/
│ │ └── sm_coretest_transition_speed_1_node.cpp
│ └── tracing_tools/
│ ├── README.md
│ └── setupTracing.sh
├── smacc2_sm_reference_library/
│ ├── CLAUDE.md
│ ├── _smacc2_sm_template/
│ │ ├── CMakeLists.txt
│ │ ├── COLCON_IGNORE
│ │ ├── README.md
│ │ ├── config/
│ │ │ ├── sm_name.yaml
│ │ │ └── sm_name_config.yaml
│ │ ├── include/
│ │ │ └── sm_name/
│ │ │ ├── orthogonals/
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_name.hpp
│ │ │ └── states/
│ │ │ ├── st_state_1.hpp
│ │ │ └── st_state_2.hpp
│ │ ├── launch/
│ │ │ ├── NOT_USED_sm_name_with_arguments.launch
│ │ │ └── sm_name.launch
│ │ ├── package.xml.template
│ │ └── src/
│ │ └── sm_name/
│ │ └── sm_name_node.cpp
│ ├── create-sm-package.bash
│ ├── sm_advanced_recovery_1/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ └── sm_advanced_recovery_1_config.yaml
│ │ ├── include/
│ │ │ └── sm_advanced_recovery_1/
│ │ │ ├── clients/
│ │ │ │ └── cl_subscriber/
│ │ │ │ ├── cl_subscriber.hpp
│ │ │ │ └── client_behaviors/
│ │ │ │ ├── cb_default_subscriber_behavior.hpp
│ │ │ │ └── cb_watchdog_subscriber_behavior.hpp
│ │ │ ├── mode_states/
│ │ │ │ ├── ms_recover.hpp
│ │ │ │ └── ms_run.hpp
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_keyboard.hpp
│ │ │ │ ├── or_subscriber.hpp
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_advanced_recovery_1.hpp
│ │ │ ├── states/
│ │ │ │ ├── a_cycle_inner_states/
│ │ │ │ │ ├── sti_a_cycle_loop.hpp
│ │ │ │ │ ├── sti_a_cycle_step_1.hpp
│ │ │ │ │ ├── sti_a_cycle_step_2.hpp
│ │ │ │ │ ├── sti_a_cycle_step_3.hpp
│ │ │ │ │ ├── sti_a_cycle_step_4.hpp
│ │ │ │ │ ├── sti_a_cycle_step_5.hpp
│ │ │ │ │ ├── sti_a_cycle_step_6.hpp
│ │ │ │ │ ├── sti_a_cycle_step_7.hpp
│ │ │ │ │ ├── sti_a_cycle_step_8.hpp
│ │ │ │ │ └── sti_a_cycle_step_9.hpp
│ │ │ │ ├── b_cycle_inner_states/
│ │ │ │ │ ├── sti_b_cycle_loop.hpp
│ │ │ │ │ ├── sti_b_cycle_step_1.hpp
│ │ │ │ │ ├── sti_b_cycle_step_2.hpp
│ │ │ │ │ ├── sti_b_cycle_step_3.hpp
│ │ │ │ │ ├── sti_b_cycle_step_4.hpp
│ │ │ │ │ ├── sti_b_cycle_step_5.hpp
│ │ │ │ │ ├── sti_b_cycle_step_6.hpp
│ │ │ │ │ ├── sti_b_cycle_step_7.hpp
│ │ │ │ │ ├── sti_b_cycle_step_8.hpp
│ │ │ │ │ └── sti_b_cycle_step_9.hpp
│ │ │ │ ├── c_cycle_inner_states/
│ │ │ │ │ ├── sti_c_cycle_loop.hpp
│ │ │ │ │ ├── sti_c_cycle_step_1.hpp
│ │ │ │ │ ├── sti_c_cycle_step_2.hpp
│ │ │ │ │ ├── sti_c_cycle_step_3.hpp
│ │ │ │ │ ├── sti_c_cycle_step_4.hpp
│ │ │ │ │ ├── sti_c_cycle_step_5.hpp
│ │ │ │ │ ├── sti_c_cycle_step_6.hpp
│ │ │ │ │ ├── sti_c_cycle_step_7.hpp
│ │ │ │ │ ├── sti_c_cycle_step_8.hpp
│ │ │ │ │ └── sti_c_cycle_step_9.hpp
│ │ │ │ ├── ms_recover_inner_states/
│ │ │ │ │ ├── st_recover_step_1.hpp
│ │ │ │ │ ├── st_recover_step_2.hpp
│ │ │ │ │ ├── st_recover_step_3.hpp
│ │ │ │ │ ├── st_recover_step_4.hpp
│ │ │ │ │ ├── st_recover_step_5.hpp
│ │ │ │ │ ├── st_recover_step_6.hpp
│ │ │ │ │ └── st_recover_step_7.hpp
│ │ │ │ └── st_observe.hpp
│ │ │ └── superstates/
│ │ │ ├── ss_a_cycle.hpp
│ │ │ ├── ss_b_cycle.hpp
│ │ │ └── ss_c_cycle.hpp
│ │ ├── launch/
│ │ │ └── sm_advanced_recovery_1.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_advanced_recovery_1_node.cpp
│ ├── sm_atomic/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ └── sm_atomic_config.yaml
│ │ ├── include/
│ │ │ └── sm_atomic/
│ │ │ ├── orthogonals/
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_atomic.hpp
│ │ │ └── states/
│ │ │ ├── st_state_1.hpp
│ │ │ └── st_state_2.hpp
│ │ ├── launch/
│ │ │ └── sm_atomic.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_atomic/
│ │ └── sm_atomic_node.cpp
│ ├── sm_atomic_http/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ └── sm_atomic_http_config.yaml
│ │ ├── include/
│ │ │ └── sm_atomic_http/
│ │ │ ├── clients/
│ │ │ │ └── client_behaviors/
│ │ │ │ └── cb_http_request.hpp
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_http.hpp
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_atomic_http.hpp
│ │ │ └── states/
│ │ │ ├── st_state_1.hpp
│ │ │ └── st_state_2.hpp
│ │ ├── launch/
│ │ │ └── sm_atomic_http.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_atomic_http/
│ │ └── sm_atomic_http_node.cpp
│ ├── sm_atomic_lifecycle/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ └── sm_atomic_config.yaml
│ │ ├── include/
│ │ │ └── sm_atomic_lifecycle/
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_lifecyclenode.hpp
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_atomic_lifecycle.hpp
│ │ │ └── states/
│ │ │ ├── st_activating.hpp
│ │ │ ├── st_active.hpp
│ │ │ ├── st_cleaning_up.hpp
│ │ │ ├── st_configuring.hpp
│ │ │ ├── st_deactivating.hpp
│ │ │ ├── st_error_processing.hpp
│ │ │ ├── st_finalized.hpp
│ │ │ ├── st_inactive.hpp
│ │ │ ├── st_shutting_down.hpp
│ │ │ └── st_unconfigured.hpp
│ │ ├── launch/
│ │ │ └── sm_atomic_lifecycle.py
│ │ ├── package.xml
│ │ └── src/
│ │ ├── lifecycle_examplenode/
│ │ │ └── lifecycle_example_node.cpp
│ │ └── sm_atomic_lifecycle/
│ │ └── sm_atomic_lifecycle_node.cpp
│ ├── sm_atomic_mode_states/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ └── sm_atomic_mode_states_config.yaml
│ │ ├── include/
│ │ │ └── sm_atomic_mode_states/
│ │ │ ├── client_behaviors/
│ │ │ │ └── cb_updatable_test.hpp
│ │ │ ├── orthogonals/
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_atomic_mode_states.hpp
│ │ │ └── states/
│ │ │ ├── ms_state_1.hpp
│ │ │ ├── ms_state_2.hpp
│ │ │ ├── st_state_1.hpp
│ │ │ └── st_state_2.hpp
│ │ ├── launch/
│ │ │ └── sm_atomic_mode_states.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_atomic_mode_states/
│ │ └── sm_atomic_mode_states_node.cpp
│ ├── sm_branching/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ └── sm_branching_config.yaml
│ │ ├── include/
│ │ │ └── sm_branching/
│ │ │ ├── orthogonals/
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_branching.hpp
│ │ │ └── states/
│ │ │ ├── st_state_1.hpp
│ │ │ ├── st_state_2.hpp
│ │ │ ├── st_state_2b.hpp
│ │ │ ├── st_state_2c.hpp
│ │ │ ├── st_state_3.hpp
│ │ │ ├── st_state_3b.hpp
│ │ │ ├── st_state_3c.hpp
│ │ │ ├── st_state_4.hpp
│ │ │ ├── st_state_4c.hpp
│ │ │ ├── st_state_5.hpp
│ │ │ ├── st_state_5b.hpp
│ │ │ └── st_state_6.hpp
│ │ ├── launch/
│ │ │ └── sm_branching.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_branching/
│ │ └── sm_branching_node.cpp
│ ├── sm_cl_gcalcli_test_1/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── docs/
│ │ │ └── sm_cl_gcalcli_test_1_plan.md
│ │ ├── include/
│ │ │ └── sm_cl_gcalcli_test_1/
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_calendar.hpp
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_cl_gcalcli_test_1.hpp
│ │ │ └── states/
│ │ │ ├── st_done.hpp
│ │ │ ├── st_init.hpp
│ │ │ ├── st_test_event_detect.hpp
│ │ │ ├── st_test_quick_add.hpp
│ │ │ ├── st_test_refresh.hpp
│ │ │ └── st_wait_connection.hpp
│ │ ├── launch/
│ │ │ └── sm_cl_gcalcli_test_1.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_cl_gcalcli_test_1/
│ │ └── sm_cl_gcalcli_test_1_node.cpp
│ ├── sm_cl_keyboard_unit_test_1/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ └── sm_cl_keyboard_unit_test_1_config.yaml
│ │ ├── include/
│ │ │ └── sm_cl_keyboard_unit_test_1/
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_keyboard.hpp
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_cl_keyboard_unit_test_1.hpp
│ │ │ └── states/
│ │ │ ├── st_state_1.hpp
│ │ │ └── st_state_2.hpp
│ │ ├── launch/
│ │ │ └── sm_cl_keyboard_unit_test_1.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_cl_keyboard_unit_test_1/
│ │ └── sm_cl_keyboard_unit_test_1_node.cpp
│ ├── sm_cl_px4_mr_test_1/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── include/
│ │ │ └── sm_cl_px4_mr_test_1/
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_px4.hpp
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_cl_px4_mr_test_1.hpp
│ │ │ └── states/
│ │ │ ├── ms_armed_on_ground.hpp
│ │ │ ├── ms_disarmed_on_ground.hpp
│ │ │ ├── ms_in_flight.hpp
│ │ │ ├── ms_landed.hpp
│ │ │ ├── ms_landing.hpp
│ │ │ ├── ms_takeoff.hpp
│ │ │ ├── st_arm_px4.hpp
│ │ │ ├── st_go_to_waypoint_1.hpp
│ │ │ ├── st_land.hpp
│ │ │ ├── st_landed.hpp
│ │ │ ├── st_orbit_location.hpp
│ │ │ ├── st_return_to_base.hpp
│ │ │ ├── st_takeoff.hpp
│ │ │ └── st_wait_for_ready.hpp
│ │ ├── launch/
│ │ │ └── sm_cl_px4_mr_test_1.launch.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_cl_px4_mr_test_1/
│ │ └── sm_cl_px4_mr_test_1_node.cpp
│ ├── sm_cl_px4_mr_test_2/
│ │ ├── CMakeLists.txt
│ │ ├── include/
│ │ │ └── sm_cl_px4_mr_test_2/
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_px4.hpp
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_cl_px4_mr_test_2.hpp
│ │ │ └── states/
│ │ │ ├── ms_armed_on_ground.hpp
│ │ │ ├── ms_disarmed_on_ground.hpp
│ │ │ ├── ms_in_flight.hpp
│ │ │ ├── ms_landed.hpp
│ │ │ ├── ms_landing.hpp
│ │ │ ├── ms_takeoff.hpp
│ │ │ ├── st_arm_px4.hpp
│ │ │ ├── st_change_altitude.hpp
│ │ │ ├── st_connect_micro_ros_agent.hpp
│ │ │ ├── st_figure_eight.hpp
│ │ │ ├── st_follow_waypoints.hpp
│ │ │ ├── st_hold_position.hpp
│ │ │ ├── st_hold_position_2.hpp
│ │ │ ├── st_hold_position_3.hpp
│ │ │ ├── st_hold_position_4.hpp
│ │ │ ├── st_hold_position_5.hpp
│ │ │ ├── st_hold_position_6.hpp
│ │ │ ├── st_land.hpp
│ │ │ ├── st_landed.hpp
│ │ │ ├── st_return_to_home.hpp
│ │ │ ├── st_spiral_pattern.hpp
│ │ │ ├── st_takeoff.hpp
│ │ │ ├── st_wait_for_ready.hpp
│ │ │ └── st_yaw_rotate.hpp
│ │ ├── launch/
│ │ │ └── sm_cl_px4_mr_test_2.launch.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_cl_px4_mr_test_2/
│ │ └── sm_cl_px4_mr_test_2_node.cpp
│ ├── sm_cl_ros2_timer_unit_test_1/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ └── sm_cl_ros2_timer_unit_test_1_config.yaml
│ │ ├── include/
│ │ │ └── sm_cl_ros2_timer_unit_test_1/
│ │ │ ├── orthogonals/
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_cl_ros2_timer_unit_test_1.hpp
│ │ │ └── states/
│ │ │ ├── st_state_1.hpp
│ │ │ └── st_state_2.hpp
│ │ ├── launch/
│ │ │ └── sm_cl_ros2_timer_unit_test_1.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_cl_ros2_timer_unit_test_1/
│ │ └── sm_cl_ros2_timer_unit_test_1_node.cpp
│ ├── sm_modbus_tcp_relay_test_1/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ └── sm_modbus_tcp_relay_test_1_config.yaml
│ │ ├── include/
│ │ │ └── sm_modbus_tcp_relay_test_1/
│ │ │ ├── orthogonals/
│ │ │ │ └── or_relay.hpp
│ │ │ ├── sm_modbus_tcp_relay_test_1.hpp
│ │ │ └── states/
│ │ │ ├── st_all_off.hpp
│ │ │ ├── st_all_on.hpp
│ │ │ ├── st_complete.hpp
│ │ │ ├── st_connect.hpp
│ │ │ ├── st_connected.hpp
│ │ │ ├── st_read_status.hpp
│ │ │ ├── st_relay_off.hpp
│ │ │ └── st_relay_on.hpp
│ │ ├── launch/
│ │ │ └── sm_modbus_tcp_relay_test_1.launch.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_modbus_tcp_relay_test_1/
│ │ └── sm_modbus_tcp_relay_test_1_node.cpp
│ ├── sm_multi_stage_1/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ └── sm_multi_stage_1_config.yaml
│ │ ├── include/
│ │ │ └── sm_multi_stage_1/
│ │ │ ├── clients/
│ │ │ │ └── cl_subscriber/
│ │ │ │ ├── cl_subscriber.hpp
│ │ │ │ └── client_behaviors/
│ │ │ │ ├── cb_default_subscriber_behavior.hpp
│ │ │ │ └── cb_watchdog_subscriber_behavior.hpp
│ │ │ ├── mode_states/
│ │ │ │ ├── ms_mode_1.hpp
│ │ │ │ ├── ms_mode_2.hpp
│ │ │ │ ├── ms_mode_3.hpp
│ │ │ │ ├── ms_mode_4.hpp
│ │ │ │ ├── ms_mode_5.hpp
│ │ │ │ ├── ms_recovery_1.hpp
│ │ │ │ └── ms_recovery_2.hpp
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_keyboard.hpp
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_multi_stage_1.hpp
│ │ │ ├── states/
│ │ │ │ ├── mode_1_sequence_a/
│ │ │ │ │ ├── sti_mode_1_sequence_a_loop.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_a_step_1.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_a_step_2.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_a_step_3.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_a_step_4.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_a_step_5.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_a_step_6.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_a_step_7.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_a_step_8.hpp
│ │ │ │ │ └── sti_mode_1_sequence_a_step_9.hpp
│ │ │ │ ├── mode_1_sequence_a_loop.hpp
│ │ │ │ ├── mode_1_sequence_b/
│ │ │ │ │ ├── sti_mode_1_sequence_b_loop.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_b_step_1.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_b_step_2.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_b_step_3.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_b_step_4.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_b_step_5.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_b_step_6.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_b_step_7.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_b_step_8.hpp
│ │ │ │ │ └── sti_mode_1_sequence_b_step_9.hpp
│ │ │ │ ├── mode_1_sequence_b_loop.hpp
│ │ │ │ ├── mode_1_st_observe.hpp
│ │ │ │ ├── mode_2_sequence_a/
│ │ │ │ │ ├── sti_mode_2_sequence_a_loop.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_a_step_1.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_a_step_2.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_a_step_3.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_a_step_4.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_a_step_5.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_a_step_6.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_a_step_7.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_a_step_8.hpp
│ │ │ │ │ └── sti_mode_2_sequence_a_step_9.hpp
│ │ │ │ ├── mode_2_sequence_a_loop.hpp
│ │ │ │ ├── mode_2_sequence_b/
│ │ │ │ │ ├── sti_mode_2_sequence_b_loop.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_b_step_1.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_b_step_2.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_b_step_3.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_b_step_4.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_b_step_5.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_b_step_6.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_b_step_7.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_b_step_8.hpp
│ │ │ │ │ └── sti_mode_2_sequence_b_step_9.hpp
│ │ │ │ ├── mode_2_sequence_b_loop.hpp
│ │ │ │ ├── mode_2_st_observe.hpp
│ │ │ │ ├── mode_3_sequence_a/
│ │ │ │ │ ├── sti_mode_3_sequence_a_loop.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_a_step_1.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_a_step_2.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_a_step_3.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_a_step_4.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_a_step_5.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_a_step_6.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_a_step_7.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_a_step_8.hpp
│ │ │ │ │ └── sti_mode_3_sequence_a_step_9.hpp
│ │ │ │ ├── mode_3_sequence_a_loop.hpp
│ │ │ │ ├── mode_3_sequence_b/
│ │ │ │ │ ├── sti_mode_3_sequence_b_loop.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_b_step_1.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_b_step_2.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_b_step_3.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_b_step_4.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_b_step_5.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_b_step_6.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_b_step_7.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_b_step_8.hpp
│ │ │ │ │ └── sti_mode_3_sequence_b_step_9.hpp
│ │ │ │ ├── mode_3_sequence_b_loop.hpp
│ │ │ │ ├── mode_3_st_observe.hpp
│ │ │ │ ├── mode_4_sequence_a/
│ │ │ │ │ ├── sti_mode_4_sequence_a_loop.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_a_step_1.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_a_step_2.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_a_step_3.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_a_step_4.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_a_step_5.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_a_step_6.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_a_step_7.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_a_step_8.hpp
│ │ │ │ │ └── sti_mode_4_sequence_a_step_9.hpp
│ │ │ │ ├── mode_4_sequence_a_loop.hpp
│ │ │ │ ├── mode_4_sequence_b/
│ │ │ │ │ ├── sti_mode_4_sequence_b_loop.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_b_step_1.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_b_step_2.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_b_step_3.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_b_step_4.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_b_step_5.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_b_step_6.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_b_step_7.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_b_step_8.hpp
│ │ │ │ │ └── sti_mode_4_sequence_b_step_9.hpp
│ │ │ │ ├── mode_4_sequence_b_loop.hpp
│ │ │ │ ├── mode_4_sequence_c/
│ │ │ │ │ ├── sti_mode_4_sequence_c_loop.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_c_step_1.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_c_step_2.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_c_step_3.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_c_step_4.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_c_step_5.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_c_step_6.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_c_step_7.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_c_step_8.hpp
│ │ │ │ │ └── sti_mode_4_sequence_c_step_9.hpp
│ │ │ │ ├── mode_4_sequence_c_loop.hpp
│ │ │ │ ├── mode_4_sequence_d/
│ │ │ │ │ ├── sti_mode_4_sequence_d_loop.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_d_step_1.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_d_step_2.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_d_step_3.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_d_step_4.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_d_step_5.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_d_step_6.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_d_step_7.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_d_step_8.hpp
│ │ │ │ │ └── sti_mode_4_sequence_d_step_9.hpp
│ │ │ │ ├── mode_4_sequence_d_loop.hpp
│ │ │ │ ├── mode_4_st_observe.hpp
│ │ │ │ ├── mode_5_sequence_a/
│ │ │ │ │ ├── sti_mode_5_sequence_a_loop.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_a_step_1.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_a_step_2.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_a_step_3.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_a_step_4.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_a_step_5.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_a_step_6.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_a_step_7.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_a_step_8.hpp
│ │ │ │ │ └── sti_mode_5_sequence_a_step_9.hpp
│ │ │ │ ├── mode_5_sequence_a_loop.hpp
│ │ │ │ ├── mode_5_sequence_b/
│ │ │ │ │ ├── sti_mode_5_sequence_b_loop.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_b_step_1.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_b_step_2.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_b_step_3.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_b_step_4.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_b_step_5.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_b_step_6.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_b_step_7.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_b_step_8.hpp
│ │ │ │ │ └── sti_mode_5_sequence_b_step_9.hpp
│ │ │ │ ├── mode_5_sequence_b_loop.hpp
│ │ │ │ ├── mode_5_st_observe.hpp
│ │ │ │ ├── ms_recovery_1/
│ │ │ │ │ ├── st_recovery_analyze_1.hpp
│ │ │ │ │ ├── st_recovery_bifurcate_1.hpp
│ │ │ │ │ ├── st_recovery_calculate_1.hpp
│ │ │ │ │ ├── st_recovery_deliberate_1.hpp
│ │ │ │ │ ├── st_recovery_evaluate_1.hpp
│ │ │ │ │ ├── st_recovery_generate_1.hpp
│ │ │ │ │ └── st_recovery_innervate_1.hpp
│ │ │ │ └── ms_recovery_2/
│ │ │ │ ├── st_recovery_analyze_2.hpp
│ │ │ │ ├── st_recovery_bifurcate_2.hpp
│ │ │ │ ├── st_recovery_calculate_2.hpp
│ │ │ │ ├── st_recovery_deliberate_2.hpp
│ │ │ │ ├── st_recovery_evaluate_2.hpp
│ │ │ │ ├── st_recovery_generate_2.hpp
│ │ │ │ └── st_recovery_innervate_2.hpp
│ │ │ └── superstates/
│ │ │ ├── ss_mode_1_sequence_a.hpp
│ │ │ ├── ss_mode_1_sequence_b.hpp
│ │ │ ├── ss_mode_2_sequence_a.hpp
│ │ │ ├── ss_mode_2_sequence_b.hpp
│ │ │ ├── ss_mode_3_sequence_a.hpp
│ │ │ ├── ss_mode_3_sequence_b.hpp
│ │ │ ├── ss_mode_4_sequence_a.hpp
│ │ │ ├── ss_mode_4_sequence_b.hpp
│ │ │ ├── ss_mode_4_sequence_c.hpp
│ │ │ ├── ss_mode_4_sequence_d.hpp
│ │ │ ├── ss_mode_5_sequence_a.hpp
│ │ │ └── ss_mode_5_sequence_b.hpp
│ │ ├── launch/
│ │ │ └── sm_multi_stage_1.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_multi_stage_1_node.cpp
│ ├── sm_multithread_test_1/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── include/
│ │ │ └── sm_multithread_test_1/
│ │ │ ├── client_behaviors/
│ │ │ │ └── cb_timer_with_work_simulation.hpp
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_timer_a.hpp
│ │ │ │ ├── or_timer_b.hpp
│ │ │ │ ├── or_timer_c.hpp
│ │ │ │ └── or_timer_d.hpp
│ │ │ ├── sm_multithread_test_1.hpp
│ │ │ └── states/
│ │ │ ├── st_complete.hpp
│ │ │ └── st_concurrent_operation.hpp
│ │ ├── launch/
│ │ │ ├── sm_multithread_test_1.py
│ │ │ └── sm_multithread_test_1_single.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_multithread_test_1/
│ │ ├── sm_multithread_test_1_node.cpp
│ │ └── sm_multithread_test_1_node_single.cpp
│ ├── sm_nav2_gazebo_test_1/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ └── sm_nav2_gazebo_test_1_config.yaml
│ │ ├── include/
│ │ │ └── sm_nav2_gazebo_test_1/
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_keyboard.hpp
│ │ │ │ ├── or_navigation.hpp
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_nav2_gazebo_test_1.hpp
│ │ │ └── states/
│ │ │ ├── st_all_sensors_go.hpp
│ │ │ ├── st_final_state.hpp
│ │ │ ├── st_navigate_to_waypoint_1.hpp
│ │ │ ├── st_navigate_to_waypoint_2.hpp
│ │ │ ├── st_rotate.hpp
│ │ │ └── st_set_initial_pose.hpp
│ │ ├── launch/
│ │ │ └── sm_nav2_gazebo_test_1.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_nav2_gazebo_test_1/
│ │ └── sm_nav2_gazebo_test_1_node.cpp
│ ├── sm_pack_ml/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ └── sm_multi_stage_1_config.yaml
│ │ ├── include/
│ │ │ └── sm_pack_ml/
│ │ │ ├── clients/
│ │ │ │ └── cl_subscriber/
│ │ │ │ ├── cl_subscriber.hpp
│ │ │ │ └── client_behaviors/
│ │ │ │ ├── cb_default_subscriber_behavior.hpp
│ │ │ │ └── cb_watchdog_subscriber_behavior.hpp
│ │ │ ├── domain_states/
│ │ │ │ ├── ds_clearing.hpp
│ │ │ │ ├── ds_run.hpp
│ │ │ │ ├── ds_stopped.hpp
│ │ │ │ └── ds_stopping.hpp
│ │ │ ├── j_states/
│ │ │ │ ├── js_aborted.hpp
│ │ │ │ ├── js_aborting.hpp
│ │ │ │ └── js_active.hpp
│ │ │ ├── mode_states/
│ │ │ │ ├── ms_complete.hpp
│ │ │ │ ├── ms_completing.hpp
│ │ │ │ ├── ms_execute.hpp
│ │ │ │ ├── ms_held.hpp
│ │ │ │ ├── ms_holding.hpp
│ │ │ │ ├── ms_idle.hpp
│ │ │ │ ├── ms_resetting.hpp
│ │ │ │ ├── ms_starting.hpp
│ │ │ │ ├── ms_suspended.hpp
│ │ │ │ ├── ms_suspending.hpp
│ │ │ │ ├── ms_unholding.hpp
│ │ │ │ └── ms_unsuspending.hpp
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_keyboard.hpp
│ │ │ │ ├── or_subscriber.hpp
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_pack_ml.hpp
│ │ │ ├── states/
│ │ │ │ ├── completing_sequence_a/
│ │ │ │ │ ├── sti_completing_sequence_a_loop.hpp
│ │ │ │ │ ├── sti_completing_sequence_a_step_1.hpp
│ │ │ │ │ ├── sti_completing_sequence_a_step_2.hpp
│ │ │ │ │ ├── sti_completing_sequence_a_step_3.hpp
│ │ │ │ │ ├── sti_completing_sequence_a_step_4.hpp
│ │ │ │ │ ├── sti_completing_sequence_a_step_5.hpp
│ │ │ │ │ ├── sti_completing_sequence_a_step_6.hpp
│ │ │ │ │ ├── sti_completing_sequence_a_step_7.hpp
│ │ │ │ │ ├── sti_completing_sequence_a_step_8.hpp
│ │ │ │ │ └── sti_completing_sequence_a_step_9.hpp
│ │ │ │ ├── completing_sequence_a_loop.hpp
│ │ │ │ ├── completing_sequence_b/
│ │ │ │ │ ├── sti_completing_sequence_b_loop.hpp
│ │ │ │ │ ├── sti_completing_sequence_b_step_1.hpp
│ │ │ │ │ ├── sti_completing_sequence_b_step_2.hpp
│ │ │ │ │ ├── sti_completing_sequence_b_step_3.hpp
│ │ │ │ │ ├── sti_completing_sequence_b_step_4.hpp
│ │ │ │ │ ├── sti_completing_sequence_b_step_5.hpp
│ │ │ │ │ ├── sti_completing_sequence_b_step_6.hpp
│ │ │ │ │ ├── sti_completing_sequence_b_step_7.hpp
│ │ │ │ │ ├── sti_completing_sequence_b_step_8.hpp
│ │ │ │ │ └── sti_completing_sequence_b_step_9.hpp
│ │ │ │ ├── completing_sequence_b_loop.hpp
│ │ │ │ ├── completing_st_observe.hpp
│ │ │ │ ├── execute_sequence_a/
│ │ │ │ │ ├── sti_execute_sequence_a_loop.hpp
│ │ │ │ │ ├── sti_execute_sequence_a_step_1.hpp
│ │ │ │ │ ├── sti_execute_sequence_a_step_2.hpp
│ │ │ │ │ ├── sti_execute_sequence_a_step_3.hpp
│ │ │ │ │ ├── sti_execute_sequence_a_step_4.hpp
│ │ │ │ │ ├── sti_execute_sequence_a_step_5.hpp
│ │ │ │ │ ├── sti_execute_sequence_a_step_6.hpp
│ │ │ │ │ ├── sti_execute_sequence_a_step_7.hpp
│ │ │ │ │ ├── sti_execute_sequence_a_step_8.hpp
│ │ │ │ │ └── sti_execute_sequence_a_step_9.hpp
│ │ │ │ ├── execute_sequence_a_loop.hpp
│ │ │ │ ├── execute_sequence_b/
│ │ │ │ │ ├── sti_execute_sequence_b_loop.hpp
│ │ │ │ │ ├── sti_execute_sequence_b_step_1.hpp
│ │ │ │ │ ├── sti_execute_sequence_b_step_2.hpp
│ │ │ │ │ ├── sti_execute_sequence_b_step_3.hpp
│ │ │ │ │ ├── sti_execute_sequence_b_step_4.hpp
│ │ │ │ │ ├── sti_execute_sequence_b_step_5.hpp
│ │ │ │ │ ├── sti_execute_sequence_b_step_6.hpp
│ │ │ │ │ ├── sti_execute_sequence_b_step_7.hpp
│ │ │ │ │ ├── sti_execute_sequence_b_step_8.hpp
│ │ │ │ │ └── sti_execute_sequence_b_step_9.hpp
│ │ │ │ ├── execute_sequence_b_loop.hpp
│ │ │ │ ├── execute_st_observe.hpp
│ │ │ │ ├── holding_sequence_a/
│ │ │ │ │ ├── sti_holding_sequence_a_loop.hpp
│ │ │ │ │ ├── sti_holding_sequence_a_step_1.hpp
│ │ │ │ │ ├── sti_holding_sequence_a_step_2.hpp
│ │ │ │ │ ├── sti_holding_sequence_a_step_3.hpp
│ │ │ │ │ ├── sti_holding_sequence_a_step_4.hpp
│ │ │ │ │ ├── sti_holding_sequence_a_step_5.hpp
│ │ │ │ │ ├── sti_holding_sequence_a_step_6.hpp
│ │ │ │ │ ├── sti_holding_sequence_a_step_7.hpp
│ │ │ │ │ ├── sti_holding_sequence_a_step_8.hpp
│ │ │ │ │ └── sti_holding_sequence_a_step_9.hpp
│ │ │ │ ├── holding_sequence_a_loop.hpp
│ │ │ │ ├── holding_sequence_b/
│ │ │ │ │ ├── sti_holding_sequence_b_loop.hpp
│ │ │ │ │ ├── sti_holding_sequence_b_step_1.hpp
│ │ │ │ │ ├── sti_holding_sequence_b_step_2.hpp
│ │ │ │ │ ├── sti_holding_sequence_b_step_3.hpp
│ │ │ │ │ ├── sti_holding_sequence_b_step_4.hpp
│ │ │ │ │ ├── sti_holding_sequence_b_step_5.hpp
│ │ │ │ │ ├── sti_holding_sequence_b_step_6.hpp
│ │ │ │ │ ├── sti_holding_sequence_b_step_7.hpp
│ │ │ │ │ ├── sti_holding_sequence_b_step_8.hpp
│ │ │ │ │ └── sti_holding_sequence_b_step_9.hpp
│ │ │ │ ├── holding_sequence_b_loop.hpp
│ │ │ │ ├── holding_st_observe.hpp
│ │ │ │ ├── ms_recovery_1/
│ │ │ │ │ ├── st_recovery_analyze_1.hpp
│ │ │ │ │ ├── st_recovery_bifurcate_1.hpp
│ │ │ │ │ ├── st_recovery_calculate_1.hpp
│ │ │ │ │ ├── st_recovery_deliberate_1.hpp
│ │ │ │ │ ├── st_recovery_evaluate_1.hpp
│ │ │ │ │ ├── st_recovery_generate_1.hpp
│ │ │ │ │ └── st_recovery_innervate_1.hpp
│ │ │ │ ├── ms_recovery_2/
│ │ │ │ │ ├── st_recovery_analyze_2.hpp
│ │ │ │ │ ├── st_recovery_bifurcate_2.hpp
│ │ │ │ │ ├── st_recovery_calculate_2.hpp
│ │ │ │ │ ├── st_recovery_deliberate_2.hpp
│ │ │ │ │ ├── st_recovery_evaluate_2.hpp
│ │ │ │ │ ├── st_recovery_generate_2.hpp
│ │ │ │ │ └── st_recovery_innervate_2.hpp
│ │ │ │ ├── start_sequence_a/
│ │ │ │ │ ├── sti_start_sequence_a_loop.hpp
│ │ │ │ │ ├── sti_start_sequence_a_step_1.hpp
│ │ │ │ │ ├── sti_start_sequence_a_step_2.hpp
│ │ │ │ │ ├── sti_start_sequence_a_step_3.hpp
│ │ │ │ │ ├── sti_start_sequence_a_step_4.hpp
│ │ │ │ │ ├── sti_start_sequence_a_step_5.hpp
│ │ │ │ │ ├── sti_start_sequence_a_step_6.hpp
│ │ │ │ │ ├── sti_start_sequence_a_step_7.hpp
│ │ │ │ │ ├── sti_start_sequence_a_step_8.hpp
│ │ │ │ │ └── sti_start_sequence_a_step_9.hpp
│ │ │ │ ├── start_sequence_a_loop.hpp
│ │ │ │ ├── start_sequence_b/
│ │ │ │ │ ├── sti_start_sequence_b_loop.hpp
│ │ │ │ │ ├── sti_start_sequence_b_step_1.hpp
│ │ │ │ │ ├── sti_start_sequence_b_step_2.hpp
│ │ │ │ │ ├── sti_start_sequence_b_step_3.hpp
│ │ │ │ │ ├── sti_start_sequence_b_step_4.hpp
│ │ │ │ │ ├── sti_start_sequence_b_step_5.hpp
│ │ │ │ │ ├── sti_start_sequence_b_step_6.hpp
│ │ │ │ │ ├── sti_start_sequence_b_step_7.hpp
│ │ │ │ │ ├── sti_start_sequence_b_step_8.hpp
│ │ │ │ │ └── sti_start_sequence_b_step_9.hpp
│ │ │ │ ├── start_sequence_b_loop.hpp
│ │ │ │ ├── start_st_observe.hpp
│ │ │ │ ├── suspending_sequence_a/
│ │ │ │ │ ├── sti_suspending_sequence_a_loop.hpp
│ │ │ │ │ ├── sti_suspending_sequence_a_step_1.hpp
│ │ │ │ │ ├── sti_suspending_sequence_a_step_2.hpp
│ │ │ │ │ ├── sti_suspending_sequence_a_step_3.hpp
│ │ │ │ │ ├── sti_suspending_sequence_a_step_4.hpp
│ │ │ │ │ ├── sti_suspending_sequence_a_step_5.hpp
│ │ │ │ │ ├── sti_suspending_sequence_a_step_6.hpp
│ │ │ │ │ ├── sti_suspending_sequence_a_step_7.hpp
│ │ │ │ │ ├── sti_suspending_sequence_a_step_8.hpp
│ │ │ │ │ └── sti_suspending_sequence_a_step_9.hpp
│ │ │ │ ├── suspending_sequence_a_loop.hpp
│ │ │ │ ├── suspending_sequence_b/
│ │ │ │ │ ├── sti_suspending_sequence_b_loop.hpp
│ │ │ │ │ ├── sti_suspending_sequence_b_step_1.hpp
│ │ │ │ │ ├── sti_suspending_sequence_b_step_2.hpp
│ │ │ │ │ ├── sti_suspending_sequence_b_step_3.hpp
│ │ │ │ │ ├── sti_suspending_sequence_b_step_4.hpp
│ │ │ │ │ ├── sti_suspending_sequence_b_step_5.hpp
│ │ │ │ │ ├── sti_suspending_sequence_b_step_6.hpp
│ │ │ │ │ ├── sti_suspending_sequence_b_step_7.hpp
│ │ │ │ │ ├── sti_suspending_sequence_b_step_8.hpp
│ │ │ │ │ └── sti_suspending_sequence_b_step_9.hpp
│ │ │ │ ├── suspending_sequence_b_loop.hpp
│ │ │ │ ├── suspending_sequence_c/
│ │ │ │ │ ├── sti_suspending_sequence_c_loop.hpp
│ │ │ │ │ ├── sti_suspending_sequence_c_step_1.hpp
│ │ │ │ │ ├── sti_suspending_sequence_c_step_2.hpp
│ │ │ │ │ ├── sti_suspending_sequence_c_step_3.hpp
│ │ │ │ │ ├── sti_suspending_sequence_c_step_4.hpp
│ │ │ │ │ ├── sti_suspending_sequence_c_step_5.hpp
│ │ │ │ │ ├── sti_suspending_sequence_c_step_6.hpp
│ │ │ │ │ ├── sti_suspending_sequence_c_step_7.hpp
│ │ │ │ │ ├── sti_suspending_sequence_c_step_8.hpp
│ │ │ │ │ └── sti_suspending_sequence_c_step_9.hpp
│ │ │ │ ├── suspending_sequence_c_loop.hpp
│ │ │ │ ├── suspending_sequence_d/
│ │ │ │ │ ├── sti_suspending_sequence_d_loop.hpp
│ │ │ │ │ ├── sti_suspending_sequence_d_step_1.hpp
│ │ │ │ │ ├── sti_suspending_sequence_d_step_2.hpp
│ │ │ │ │ ├── sti_suspending_sequence_d_step_3.hpp
│ │ │ │ │ ├── sti_suspending_sequence_d_step_4.hpp
│ │ │ │ │ ├── sti_suspending_sequence_d_step_5.hpp
│ │ │ │ │ ├── sti_suspending_sequence_d_step_6.hpp
│ │ │ │ │ ├── sti_suspending_sequence_d_step_7.hpp
│ │ │ │ │ ├── sti_suspending_sequence_d_step_8.hpp
│ │ │ │ │ └── sti_suspending_sequence_d_step_9.hpp
│ │ │ │ ├── suspending_sequence_d_loop.hpp
│ │ │ │ └── suspending_st_observe.hpp
│ │ │ └── superstates/
│ │ │ ├── ss_completing_sequence_a.hpp
│ │ │ ├── ss_completing_sequence_b.hpp
│ │ │ ├── ss_execute_sequence_a.hpp
│ │ │ ├── ss_execute_sequence_b.hpp
│ │ │ ├── ss_holding_sequence_a.hpp
│ │ │ ├── ss_holding_sequence_b.hpp
│ │ │ ├── ss_start_sequence_a.hpp
│ │ │ ├── ss_start_sequence_b.hpp
│ │ │ ├── ss_suspending_sequence_a.hpp
│ │ │ ├── ss_suspending_sequence_b.hpp
│ │ │ ├── ss_suspending_sequence_c.hpp
│ │ │ └── ss_suspending_sequence_d.hpp
│ │ ├── launch/
│ │ │ └── sm_pack_ml.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_pack_ml_node.cpp
│ ├── sm_panda_cl_moveit2z_cb_inventory/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ ├── move_group_client/
│ │ │ │ └── known_states/
│ │ │ │ ├── control_authority_posture.yaml
│ │ │ │ ├── control_authority_posture2.yaml
│ │ │ │ └── initial_posture.yaml
│ │ │ ├── moveit/
│ │ │ │ ├── controllers.yaml
│ │ │ │ └── kinematics.yaml
│ │ │ └── sm_panda_cl_moveit2z_cb_inventory_config.yaml
│ │ ├── include/
│ │ │ └── sm_panda_cl_moveit2z_cb_inventory/
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_arm.hpp
│ │ │ │ └── or_keyboard.hpp
│ │ │ ├── sm_panda_cl_moveit2z_cb_inventory.hpp
│ │ │ └── states/
│ │ │ ├── st_acquire_sensors.hpp
│ │ │ ├── st_end_effector_rotate.hpp
│ │ │ ├── st_move_cartesian_relative2.hpp
│ │ │ ├── st_move_end_effector.hpp
│ │ │ ├── st_move_joints_1.hpp
│ │ │ ├── st_move_joints_2.hpp
│ │ │ ├── st_move_joints_3.hpp
│ │ │ ├── st_move_joints_4.hpp
│ │ │ ├── st_move_joints_5.hpp
│ │ │ ├── st_move_known_state_1.hpp
│ │ │ ├── st_move_known_state_2.hpp
│ │ │ ├── st_pause_1.hpp
│ │ │ ├── st_pause_10.hpp
│ │ │ ├── st_pause_11.hpp
│ │ │ ├── st_pause_12.hpp
│ │ │ ├── st_pause_13.hpp
│ │ │ ├── st_pause_2.hpp
│ │ │ ├── st_pause_3.hpp
│ │ │ ├── st_pause_4.hpp
│ │ │ ├── st_pause_5.hpp
│ │ │ ├── st_pause_6.hpp
│ │ │ ├── st_pause_7.hpp
│ │ │ ├── st_pause_8.hpp
│ │ │ ├── st_pause_9.hpp
│ │ │ └── st_undo_last_trajectory.hpp
│ │ ├── launch/
│ │ │ ├── panda_hello_moveit.rviz
│ │ │ ├── panda_moveit_config_demo.rviz
│ │ │ ├── panda_moveit_config_demo_empty.rviz
│ │ │ └── sm_panda_cl_moveit2z_cb_inventory.py
│ │ ├── package.xml
│ │ ├── rviz/
│ │ │ └── view_robot.rviz
│ │ └── src/
│ │ └── sm_panda_cl_moveit2z_cb_inventory/
│ │ └── sm_panda_cl_moveit2z_cb_inventory_node.cpp
│ ├── sm_panda_cl_moveit2z_cb_inventory_isaacsim/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ ├── move_group_client/
│ │ │ │ └── known_states/
│ │ │ │ ├── control_authority_posture.yaml
│ │ │ │ ├── control_authority_posture2.yaml
│ │ │ │ └── initial_posture.yaml
│ │ │ ├── moveit/
│ │ │ │ ├── controllers.yaml
│ │ │ │ └── kinematics.yaml
│ │ │ └── sm_panda_cl_moveit2z_cb_inventory_isaacsim_config.yaml
│ │ ├── include/
│ │ │ └── sm_panda_cl_moveit2z_cb_inventory_isaacsim/
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_arm.hpp
│ │ │ │ └── or_keyboard.hpp
│ │ │ ├── sm_panda_cl_moveit2z_cb_inventory_isaacsim.hpp
│ │ │ └── states/
│ │ │ ├── st_acquire_sensors.hpp
│ │ │ ├── st_end_effector_rotate.hpp
│ │ │ ├── st_move_cartesian_relative2.hpp
│ │ │ ├── st_move_end_effector.hpp
│ │ │ ├── st_move_joints_1.hpp
│ │ │ ├── st_move_joints_2.hpp
│ │ │ ├── st_move_joints_3.hpp
│ │ │ ├── st_move_joints_4.hpp
│ │ │ ├── st_move_joints_5.hpp
│ │ │ ├── st_move_known_state_1.hpp
│ │ │ ├── st_move_known_state_2.hpp
│ │ │ ├── st_pause_1.hpp
│ │ │ ├── st_pause_10.hpp
│ │ │ ├── st_pause_11.hpp
│ │ │ ├── st_pause_12.hpp
│ │ │ ├── st_pause_13.hpp
│ │ │ ├── st_pause_2.hpp
│ │ │ ├── st_pause_3.hpp
│ │ │ ├── st_pause_4.hpp
│ │ │ ├── st_pause_5.hpp
│ │ │ ├── st_pause_6.hpp
│ │ │ ├── st_pause_7.hpp
│ │ │ ├── st_pause_8.hpp
│ │ │ ├── st_pause_9.hpp
│ │ │ └── st_undo_last_trajectory.hpp
│ │ ├── launch/
│ │ │ ├── panda_hello_moveit.rviz
│ │ │ ├── panda_moveit_config_demo.rviz
│ │ │ ├── panda_moveit_config_demo_empty.rviz
│ │ │ └── sm_panda_cl_moveit2z_cb_inventory_isaacsim.launch.py
│ │ ├── package.xml
│ │ ├── rviz/
│ │ │ └── view_robot.rviz
│ │ ├── scripts/
│ │ │ ├── setup_ros2_bridge.py
│ │ │ └── trajectory_bridge.py
│ │ └── src/
│ │ └── sm_panda_cl_moveit2z_cb_inventory_isaacsim/
│ │ └── sm_panda_cl_moveit2z_cb_inventory_isaacsim_node.cpp
│ ├── sm_simple_action_client/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ ├── simple_action_client_example.yaml
│ │ │ └── simple_action_client_example_config.yaml
│ │ ├── include/
│ │ │ └── sm_simple_action_client/
│ │ │ ├── fibonacci_action_client/
│ │ │ │ ├── cl_fibonacci.hpp
│ │ │ │ └── client_behaviors/
│ │ │ │ └── cb_fibonacci.hpp
│ │ │ ├── mode_selection_client/
│ │ │ │ ├── cl_mode_select.hpp
│ │ │ │ └── client_behaviors/
│ │ │ │ └── cb_mode_select.hpp
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_fibonacci.hpp
│ │ │ │ └── or_mode_select.hpp
│ │ │ ├── sm_simple_action_client.hpp
│ │ │ └── states/
│ │ │ ├── st_state_1.hpp
│ │ │ ├── st_state_2.hpp
│ │ │ └── st_state_3.hpp
│ │ ├── launch/
│ │ │ └── sm_simple_action_client.py
│ │ ├── package.xml
│ │ ├── scripts/
│ │ │ └── auto_mode_trigger.py
│ │ └── src/
│ │ └── sm_simple_action_client/
│ │ └── sm_simple_action_client_node.cpp
│ └── sm_three_some/
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── README.md
│ ├── config/
│ │ └── sm_three_some_config.yaml
│ ├── include/
│ │ └── sm_three_some/
│ │ ├── clients/
│ │ │ └── cl_subscriber/
│ │ │ ├── cl_subscriber.hpp
│ │ │ └── client_behaviors/
│ │ │ ├── cb_default_subscriber_behavior.hpp
│ │ │ └── cb_watchdog_subscriber_behavior.hpp
│ │ ├── mode_states/
│ │ │ ├── ms_recover.hpp
│ │ │ └── ms_run.hpp
│ │ ├── orthogonals/
│ │ │ ├── or_keyboard.hpp
│ │ │ ├── or_subscriber.hpp
│ │ │ └── or_timer.hpp
│ │ ├── sm_three_some.hpp
│ │ ├── states/
│ │ │ ├── inner_states/
│ │ │ │ ├── sti_state_1.hpp
│ │ │ │ ├── sti_state_2.hpp
│ │ │ │ └── sti_state_3.hpp
│ │ │ ├── st_state_1.hpp
│ │ │ ├── st_state_2.hpp
│ │ │ ├── st_state_3.hpp
│ │ │ └── st_state_4.hpp
│ │ └── superstates/
│ │ ├── ss_superstate_1.hpp
│ │ └── ss_superstate_2.hpp
│ ├── launch/
│ │ └── sm_three_some.py
│ ├── package.xml
│ └── src/
│ └── sm_three_some_node.cpp
└── smacc2_state_reactor_library/
├── sr_all_events_go/
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── include/
│ │ └── sr_all_events_go/
│ │ └── sr_all_events_go.hpp
│ ├── package.xml
│ └── src/
│ └── sr_all_events_go/
│ └── sr_all_events_go.cpp
├── sr_conditional/
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── include/
│ │ └── sr_conditional/
│ │ └── sr_conditional.hpp
│ ├── package.xml
│ └── src/
│ └── sr_conditional/
│ └── sr_conditional.cpp
└── sr_event_countdown/
├── CHANGELOG.rst
├── CMakeLists.txt
├── include/
│ └── sr_event_countdown/
│ └── sr_event_countdown.hpp
├── package.xml
└── src/
└── sr_event_countdown/
└── sr_event_countdown.cpp
================================================
FILE CONTENTS
================================================
================================================
FILE: .clang-format
================================================
---
Language: Cpp
BasedOnStyle: Google
ColumnLimit: 100
AccessModifierOffset: -2
AlignAfterOpenBracket: AlwaysBreak
BreakBeforeBraces: Allman
ConstructorInitializerIndentWidth: 0
ContinuationIndentWidth: 2
DerivePointerAlignment: false
PointerAlignment: Middle
ReflowComments: false
IncludeBlocks: Preserve
...
================================================
FILE: .claude/settings.json
================================================
{
"permissions": {
"allow": [
"WebSearch",
"Bash(find:*)",
"Bash(colcon build:*)",
"Bash(source:*)",
"Bash(ros2 node:*)",
"Bash(/opt/ros/jazzy/setup.bash && colcon build --packages-select smacc2)",
"Bash(source install/setup.bash && ros2 topic echo:*)",
"Bash(source install/setup.bash && timeout 5 ros2 topic echo /*/smacc/event_log)",
"Bash(ros2 topic pub:*)",
"Bash(ros2 launch:*)",
"Bash(for i in {1..8})",
"Bash(source install/setup.bash && do ros2 topic pub /keyboard_unicode std_msgs/msg/UInt16 \"data: 110\" --once)",
"Bash(done)",
"Bash(ros2 run:*)",
"Bash(for i in {1..10})",
"Bash(source install/setup.bash && do ros2 topic pub /keyboard_unicode std_msgs/msg/UInt16 \"data: 110\" --once)",
"Bash(source install/setup.bash && timeout 5 ros2 topic echo /*/smacc/status)",
"Bash(source install/setup.bash && timeout 3 ros2 topic echo /joint_states --once)",
"Bash(source install/setup.bash && do ros2 topic pub /keyboard_unicode std_msgs/msg/UInt16 \"data: 110\" --once)",
"Bash(for i in {1..15})",
"Bash(for i in {1..20})",
"Bash(source install/setup.bash && timeout 5 ros2 topic echo /joint_states --once)",
"Bash(unset:*)",
"Bash(ros2 pkg list:*)",
"Bash(pkill:*)",
"Bash(timeout 3 ros2 topic echo:*)",
"Bash(for i in {1..5})",
"Bash(timeout 5 ros2 topic echo:*)",
"Bash(timeout 10 ros2 topic echo /panda_arm_controller/follow_joint_trajectory/_action/send_goal --once)"
],
"deny": [
]
},
"env": {
}
}
================================================
FILE: .github/Doxyfile
================================================
# Doxyfile 1.8.11
# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project.
#
# All text after a double hash (##) is considered a comment and is placed in
# front of the TAG it is preceding.
#
# All text after a single hash (#) is considered a comment and will be ignored.
# The format is:
# TAG = value [value, ...]
# For lists, items can also be appended using:
# TAG += value [value, ...]
# Values that contain spaces should be placed between quotes (\" \").
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
# This tag specifies the encoding used for all characters in the config file
# that follow. The default is UTF-8 which is also the encoding used for all text
# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
# for the list of possible encodings.
# The default value is: UTF-8.
DOXYFILE_ENCODING = UTF-8
# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
# double-quotes, unless you are using Doxywizard) that should identify the
# project for which the documentation is generated. This name is used in the
# title of most generated pages and in a few other places.
# The default value is: My Project.
PROJECT_NAME = "SMACC2"
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER =
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
# quick idea about the purpose of the project. Keep the description short.
PROJECT_BRIEF =
# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
# in the documentation. The maximum height of the logo should not exceed 55
# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
# the logo to the output directory.
PROJECT_LOGO =
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
# into which the generated documentation will be written. If a relative path is
# entered, it will be relative to the location where doxygen was started. If
# left blank the current directory will be used.
OUTPUT_DIRECTORY = docs/
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
# directories (in 2 levels) under the output directory of each output format and
# will distribute the generated files over these directories. Enabling this
# option can be useful when feeding doxygen a huge amount of source files, where
# putting all generated files in the same directory would otherwise causes
# performance problems for the file system.
# The default value is: NO.
CREATE_SUBDIRS = NO
# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
# characters to appear in the names of generated files. If set to NO, non-ASCII
# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
# U+3044.
# The default value is: NO.
ALLOW_UNICODE_NAMES = NO
# The OUTPUT_LANGUAGE tag is used to specify the language in which all
# documentation generated by doxygen is written. Doxygen will use this
# information to generate all constant output in the proper language.
# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
# Ukrainian and Vietnamese.
# The default value is: English.
OUTPUT_LANGUAGE = English
# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
# descriptions after the members that are listed in the file and class
# documentation (similar to Javadoc). Set to NO to disable this.
# The default value is: YES.
BRIEF_MEMBER_DESC = YES
# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
# description of a member or function before the detailed description
#
# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
# brief descriptions will be completely suppressed.
# The default value is: YES.
REPEAT_BRIEF = YES
# This tag implements a quasi-intelligent brief description abbreviator that is
# used to form the text in various listings. Each string in this list, if found
# as the leading text of the brief description, will be stripped from the text
# and the result, after processing the whole list, is used as the annotated
# text. Otherwise, the brief description is used as-is. If left blank, the
# following values are used ($name is automatically replaced with the name of
# the entity):The $name class, The $name widget, The $name file, is, provides,
# specifies, contains, represents, a, an and the.
ABBREVIATE_BRIEF =
# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
# doxygen will generate a detailed section even if there is only a brief
# description.
# The default value is: NO.
ALWAYS_DETAILED_SEC = NO
# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
# inherited members of a class in the documentation of that class as if those
# members were ordinary class members. Constructors, destructors and assignment
# operators of the base classes will not be shown.
# The default value is: NO.
INLINE_INHERITED_MEMB = NO
# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
# before files name in the file list and in the header files. If set to NO the
# shortest path that makes the file name unique will be used
# The default value is: YES.
FULL_PATH_NAMES = YES
# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
# Stripping is only done if one of the specified strings matches the left-hand
# part of the path. The tag can be used to show relative paths in the file list.
# If left blank the directory from which doxygen is run is used as the path to
# strip.
#
# Note that you can specify absolute paths here, but also relative paths, which
# will be relative from the directory where doxygen is started.
# This tag requires that the tag FULL_PATH_NAMES is set to YES.
STRIP_FROM_PATH =
# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
# path mentioned in the documentation of a class, which tells the reader which
# header file to include in order to use a class. If left blank only the name of
# the header file containing the class definition is used. Otherwise one should
# specify the list of include paths that are normally passed to the compiler
# using the -I flag.
STRIP_FROM_INC_PATH =
# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
# less readable) file names. This can be useful is your file systems doesn't
# support long names like on DOS, Mac, or CD-ROM.
# The default value is: NO.
SHORT_NAMES = NO
# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
# first line (until the first dot) of a Javadoc-style comment as the brief
# description. If set to NO, the Javadoc-style will behave just like regular Qt-
# style comments (thus requiring an explicit @brief command for a brief
# description.)
# The default value is: NO.
JAVADOC_AUTOBRIEF = NO
# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
# line (until the first dot) of a Qt-style comment as the brief description. If
# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
# requiring an explicit \brief command for a brief description.)
# The default value is: NO.
QT_AUTOBRIEF = NO
# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
# a brief description. This used to be the default behavior. The new default is
# to treat a multi-line C++ comment block as a detailed description. Set this
# tag to YES if you prefer the old behavior instead.
#
# Note that setting this tag to YES also means that rational rose comments are
# not recognized any more.
# The default value is: NO.
MULTILINE_CPP_IS_BRIEF = NO
# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
# documentation from any documented member that it re-implements.
# The default value is: YES.
INHERIT_DOCS = YES
# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
# page for each member. If set to NO, the documentation of a member will be part
# of the file/class/namespace that contains it.
# The default value is: NO.
SEPARATE_MEMBER_PAGES = NO
# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
# uses this value to replace tabs by spaces in code fragments.
# Minimum value: 1, maximum value: 16, default value: 4.
TAB_SIZE = 4
# This tag can be used to specify a number of aliases that act as commands in
# the documentation. An alias has the form:
# name=value
# For example adding
# "sideeffect=@par Side Effects:\n"
# will allow you to put the command \sideeffect (or @sideeffect) in the
# documentation, which will result in a user-defined paragraph with heading
# "Side Effects:". You can put \n's in the value part of an alias to insert
# newlines.
ALIASES =
# This tag can be used to specify a number of word-keyword mappings (TCL only).
# A mapping has the form "name=value". For example adding "class=itcl::class"
# will allow you to use the command class in the itcl::class meaning.
TCL_SUBST =
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
# only. Doxygen will then generate output that is more tailored for C. For
# instance, some of the names that are used will be different. The list of all
# members will be omitted, etc.
# The default value is: NO.
OPTIMIZE_OUTPUT_FOR_C = NO
# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
# Python sources only. Doxygen will then generate output that is more tailored
# for that language. For instance, namespaces will be presented as packages,
# qualified scopes will look different, etc.
# The default value is: NO.
OPTIMIZE_OUTPUT_JAVA = NO
# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
# sources. Doxygen will then generate output that is tailored for Fortran.
# The default value is: NO.
OPTIMIZE_FOR_FORTRAN = NO
# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
# sources. Doxygen will then generate output that is tailored for VHDL.
# The default value is: NO.
OPTIMIZE_OUTPUT_VHDL = NO
# Doxygen selects the parser to use depending on the extension of the files it
# parses. With this tag you can assign which parser to use for a given
# extension. Doxygen has a built-in mapping, but you can override or extend it
# using this tag. The format is ext=language, where ext is a file extension, and
# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
# Fortran. In the later case the parser tries to guess whether the code is fixed
# or free formatted code, this is the default for Fortran type files), VHDL. For
# instance to make doxygen treat .inc files as Fortran files (default is PHP),
# and .f files as C (default is Fortran), use: inc=Fortran f=C.
#
# Note: For files without extension you can use no_extension as a placeholder.
#
# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
# the files are not read by doxygen.
EXTENSION_MAPPING =
# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
# according to the Markdown format, which allows for more readable
# documentation. See http://daringfireball.net/projects/markdown/ for details.
# The output of markdown processing is further processed by doxygen, so you can
# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
# case of backward compatibilities issues.
# The default value is: YES.
MARKDOWN_SUPPORT = YES
# When enabled doxygen tries to link words that correspond to documented
# classes, or namespaces to their corresponding documentation. Such a link can
# be prevented in individual cases by putting a % sign in front of the word or
# globally by setting AUTOLINK_SUPPORT to NO.
# The default value is: YES.
AUTOLINK_SUPPORT = YES
# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
# to include (a tag file for) the STL sources as input, then you should set this
# tag to YES in order to let doxygen match functions declarations and
# definitions whose arguments contain STL classes (e.g. func(std::string);
# versus func(std::string) {}). This also make the inheritance and collaboration
# diagrams that involve STL classes more complete and accurate.
# The default value is: NO.
BUILTIN_STL_SUPPORT = NO
# If you use Microsoft's C++/CLI language, you should set this option to YES to
# enable parsing support.
# The default value is: NO.
CPP_CLI_SUPPORT = NO
# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
# will parse them like normal C++ but will assume all classes use public instead
# of private inheritance when no explicit protection keyword is present.
# The default value is: NO.
SIP_SUPPORT = NO
# For Microsoft's IDL there are propget and propput attributes to indicate
# getter and setter methods for a property. Setting this option to YES will make
# doxygen to replace the get and set methods by a property in the documentation.
# This will only work if the methods are indeed getting or setting a simple
# type. If this is not the case, or you want to show the methods anyway, you
# should set this option to NO.
# The default value is: YES.
IDL_PROPERTY_SUPPORT = YES
# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
# tag is set to YES then doxygen will reuse the documentation of the first
# member in the group (if any) for the other members of the group. By default
# all members of a group must be documented explicitly.
# The default value is: NO.
DISTRIBUTE_GROUP_DOC = NO
# If one adds a struct or class to a group and this option is enabled, then also
# any nested class or struct is added to the same group. By default this option
# is disabled and one has to add nested compounds explicitly via \ingroup.
# The default value is: NO.
GROUP_NESTED_COMPOUNDS = NO
# Set the SUBGROUPING tag to YES to allow class member groups of the same type
# (for instance a group of public functions) to be put as a subgroup of that
# type (e.g. under the Public Functions section). Set it to NO to prevent
# subgrouping. Alternatively, this can be done per class using the
# \nosubgrouping command.
# The default value is: YES.
SUBGROUPING = YES
# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
# are shown inside the group in which they are included (e.g. using \ingroup)
# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
# and RTF).
#
# Note that this feature does not work in combination with
# SEPARATE_MEMBER_PAGES.
# The default value is: NO.
INLINE_GROUPED_CLASSES = NO
# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
# with only public data fields or simple typedef fields will be shown inline in
# the documentation of the scope in which they are defined (i.e. file,
# namespace, or group documentation), provided this scope is documented. If set
# to NO, structs, classes, and unions are shown on a separate page (for HTML and
# Man pages) or section (for LaTeX and RTF).
# The default value is: NO.
INLINE_SIMPLE_STRUCTS = NO
# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
# enum is documented as struct, union, or enum with the name of the typedef. So
# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
# with name TypeT. When disabled the typedef will appear as a member of a file,
# namespace, or class. And the struct will be named TypeS. This can typically be
# useful for C code in case the coding convention dictates that all compound
# types are typedef'ed and only the typedef is referenced, never the tag name.
# The default value is: NO.
TYPEDEF_HIDES_STRUCT = NO
# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
# cache is used to resolve symbols given their name and scope. Since this can be
# an expensive process and often the same symbol appears multiple times in the
# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
# doxygen will become slower. If the cache is too large, memory is wasted. The
# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
# symbols. At the end of a run doxygen will report the cache usage and suggest
# the optimal cache size from a speed point of view.
# Minimum value: 0, maximum value: 9, default value: 0.
LOOKUP_CACHE_SIZE = 0
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
# documentation are documented, even if no documentation was available. Private
# class members and static file members will be hidden unless the
# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
# Note: This will also disable the warnings about undocumented members that are
# normally produced when WARNINGS is set to YES.
# The default value is: NO.
EXTRACT_ALL = YES
# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
# be included in the documentation.
# The default value is: NO.
EXTRACT_PRIVATE = YES
# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
# scope will be included in the documentation.
# The default value is: NO.
EXTRACT_PACKAGE = YES
# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
# included in the documentation.
# The default value is: NO.
EXTRACT_STATIC = YES
# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
# locally in source files will be included in the documentation. If set to NO,
# only classes defined in header files are included. Does not have any effect
# for Java sources.
# The default value is: YES.
EXTRACT_LOCAL_CLASSES = YES
# This flag is only useful for Objective-C code. If set to YES, local methods,
# which are defined in the implementation section but not in the interface are
# included in the documentation. If set to NO, only methods in the interface are
# included.
# The default value is: NO.
EXTRACT_LOCAL_METHODS = YES
# If this flag is set to YES, the members of anonymous namespaces will be
# extracted and appear in the documentation as a namespace called
# 'anonymous_namespace{file}', where file will be replaced with the base name of
# the file that contains the anonymous namespace. By default anonymous namespace
# are hidden.
# The default value is: NO.
EXTRACT_ANON_NSPACES = YES
# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
# undocumented members inside documented classes or files. If set to NO these
# members will be included in the various overviews, but no documentation
# section is generated. This option has no effect if EXTRACT_ALL is enabled.
# The default value is: NO.
HIDE_UNDOC_MEMBERS = NO
# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
# undocumented classes that are normally visible in the class hierarchy. If set
# to NO, these classes will be included in the various overviews. This option
# has no effect if EXTRACT_ALL is enabled.
# The default value is: NO.
HIDE_UNDOC_CLASSES = NO
# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
# (class|struct|union) declarations. If set to NO, these declarations will be
# included in the documentation.
# The default value is: NO.
HIDE_FRIEND_COMPOUNDS = NO
# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
# documentation blocks found inside the body of a function. If set to NO, these
# blocks will be appended to the function's detailed documentation block.
# The default value is: NO.
HIDE_IN_BODY_DOCS = NO
# The INTERNAL_DOCS tag determines if documentation that is typed after a
# \internal command is included. If the tag is set to NO then the documentation
# will be excluded. Set it to YES to include the internal documentation.
# The default value is: NO.
INTERNAL_DOCS = NO
# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
# names in lower-case letters. If set to YES, upper-case letters are also
# allowed. This is useful if you have classes or files whose names only differ
# in case and if your file system supports case sensitive file names. Windows
# and Mac users are advised to set this option to NO.
# The default value is: system dependent.
CASE_SENSE_NAMES = YES
# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
# their full class and namespace scopes in the documentation. If set to YES, the
# scope will be hidden.
# The default value is: NO.
HIDE_SCOPE_NAMES = NO
# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
# append additional text to a page's title, such as Class Reference. If set to
# YES the compound reference will be hidden.
# The default value is: NO.
HIDE_COMPOUND_REFERENCE= NO
# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
# the files that are included by a file in the documentation of that file.
# The default value is: YES.
SHOW_INCLUDE_FILES = YES
# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
# grouped member an include statement to the documentation, telling the reader
# which file to include in order to use the member.
# The default value is: NO.
SHOW_GROUPED_MEMB_INC = NO
# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
# files with double quotes in the documentation rather than with sharp brackets.
# The default value is: NO.
FORCE_LOCAL_INCLUDES = NO
# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
# documentation for inline members.
# The default value is: YES.
INLINE_INFO = YES
# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
# (detailed) documentation of file and class members alphabetically by member
# name. If set to NO, the members will appear in declaration order.
# The default value is: YES.
SORT_MEMBER_DOCS = YES
# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
# descriptions of file, namespace and class members alphabetically by member
# name. If set to NO, the members will appear in declaration order. Note that
# this will also influence the order of the classes in the class list.
# The default value is: NO.
SORT_BRIEF_DOCS = NO
# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
# (brief and detailed) documentation of class members so that constructors and
# destructors are listed first. If set to NO the constructors will appear in the
# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
# member documentation.
# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
# detailed member documentation.
# The default value is: NO.
SORT_MEMBERS_CTORS_1ST = NO
# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
# of group names into alphabetical order. If set to NO the group names will
# appear in their defined order.
# The default value is: NO.
SORT_GROUP_NAMES = NO
# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
# fully-qualified names, including namespaces. If set to NO, the class list will
# be sorted only by class name, not including the namespace part.
# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
# Note: This option applies only to the class list, not to the alphabetical
# list.
# The default value is: NO.
SORT_BY_SCOPE_NAME = NO
# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
# type resolution of all parameters of a function it will reject a match between
# the prototype and the implementation of a member function even if there is
# only one candidate or it is obvious which candidate to choose by doing a
# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
# accept a match between prototype and implementation in such cases.
# The default value is: NO.
STRICT_PROTO_MATCHING = NO
# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
# list. This list is created by putting \todo commands in the documentation.
# The default value is: YES.
GENERATE_TODOLIST = YES
# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
# list. This list is created by putting \test commands in the documentation.
# The default value is: YES.
GENERATE_TESTLIST = YES
# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
# list. This list is created by putting \bug commands in the documentation.
# The default value is: YES.
GENERATE_BUGLIST = YES
# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
# the deprecated list. This list is created by putting \deprecated commands in
# the documentation.
# The default value is: YES.
GENERATE_DEPRECATEDLIST= YES
# The ENABLED_SECTIONS tag can be used to enable sr_conditional documentation
# sections, marked by \if <section_label> ... \endif and \cond <section_label>
# ... \endcond blocks.
ENABLED_SECTIONS =
# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
# initial value of a variable or macro / define can have for it to appear in the
# documentation. If the initializer consists of more lines than specified here
# it will be hidden. Use a value of 0 to hide initializers completely. The
# appearance of the value of individual variables and macros / defines can be
# controlled using \showinitializer or \hideinitializer command in the
# documentation regardless of this setting.
# Minimum value: 0, maximum value: 10000, default value: 30.
MAX_INITIALIZER_LINES = 30
# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
# the bottom of the documentation of classes and structs. If set to YES, the
# list will mention the files that were used to generate the documentation.
# The default value is: YES.
SHOW_USED_FILES = YES
# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
# will remove the Files entry from the Quick Index and from the Folder Tree View
# (if specified).
# The default value is: YES.
SHOW_FILES = YES
# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
# page. This will remove the Namespaces entry from the Quick Index and from the
# Folder Tree View (if specified).
# The default value is: YES.
SHOW_NAMESPACES = YES
# The FILE_VERSION_FILTER tag can be used to specify a program or script that
# doxygen should invoke to get the current version for each file (typically from
# the version control system). Doxygen will invoke the program by executing (via
# popen()) the command command input-file, where command is the value of the
# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
# by doxygen. Whatever the program writes to standard output is used as the file
# version. For an example see the documentation.
FILE_VERSION_FILTER =
# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
# by doxygen. The layout file controls the global structure of the generated
# output files in an output format independent way. To create the layout file
# that represents doxygen's defaults, run doxygen with the -l option. You can
# optionally specify a file name after the option, if omitted DoxygenLayout.xml
# will be used as the name of the layout file.
#
# Note that if you run doxygen from a directory containing a file called
# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
# tag is left empty.
LAYOUT_FILE =
# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
# the reference definitions. This must be a list of .bib files. The .bib
# extension is automatically appended if omitted. This requires the bibtex tool
# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
# For LaTeX the style of the bibliography can be controlled using
# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
# search path. See also \cite for info how to create references.
CITE_BIB_FILES =
#---------------------------------------------------------------------------
# Configuration options related to warning and progress messages
#---------------------------------------------------------------------------
# The QUIET tag can be used to turn on/off the messages that are generated to
# standard output by doxygen. If QUIET is set to YES this implies that the
# messages are off.
# The default value is: NO.
QUIET = YES
# The WARNINGS tag can be used to turn on/off the warning messages that are
# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
# this implies that the warnings are on.
#
# Tip: Turn warnings on while writing the documentation.
# The default value is: YES.
WARNINGS = YES
# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
# will automatically be disabled.
# The default value is: YES.
WARN_IF_UNDOCUMENTED = YES
# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
# potential errors in the documentation, such as not documenting some parameters
# in a documented function, or documenting parameters that don't exist or using
# markup commands wrongly.
# The default value is: YES.
WARN_IF_DOC_ERROR = YES
# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
# are documented, but have no documentation for their parameters or return
# value. If set to NO, doxygen will only warn about wrong or incomplete
# parameter documentation, but not about the absence of documentation.
# The default value is: NO.
WARN_NO_PARAMDOC = NO
# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
# a warning is encountered.
# The default value is: NO.
WARN_AS_ERROR = NO
# The WARN_FORMAT tag determines the format of the warning messages that doxygen
# can produce. The string should contain the $file, $line, and $text tags, which
# will be replaced by the file and line number from which the warning originated
# and the warning text. Optionally the format may contain $version, which will
# be replaced by the version of the file (if it could be obtained via
# FILE_VERSION_FILTER)
# The default value is: $file:$line: $text.
WARN_FORMAT = "$file:$line: $text"
# The WARN_LOGFILE tag can be used to specify a file to which warning and error
# messages should be written. If left blank the output is written to standard
# error (stderr).
WARN_LOGFILE =
#---------------------------------------------------------------------------
# Configuration options related to the input files
#---------------------------------------------------------------------------
# The INPUT tag is used to specify the files and/or directories that contain
# documented source files. You may enter file names like myfile.cpp or
# directories like /usr/src/myproject. Separate the files or directories with
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.
INPUT =
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
# documentation (see: http://www.gnu.org/software/libiconv) for the list of
# possible encodings.
# The default value is: UTF-8.
INPUT_ENCODING = UTF-8
# If the value of the INPUT tag contains directories, you can use the
# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
# *.h) to filter out the source-files in the directories.
#
# Note that for custom extensions or not directly supported extensions you also
# need to set EXTENSION_MAPPING for the extension otherwise the files are not
# read by doxygen.
#
# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f, *.for, *.tcl,
# *.vhd, *.vhdl, *.ucf, *.qsf, *.as and *.js.
FILE_PATTERNS = *.c, *.cc, *.cxx, *.cpp, *.c++, *.hh, *.hxx, *.hpp, *.h++, *.h
# The RECURSIVE tag can be used to specify whether or not subdirectories should
# be searched for input files as well.
# The default value is: NO.
RECURSIVE = YES
# The EXCLUDE tag can be used to specify files and/or directories that should be
# excluded from the INPUT source files. This way you can easily exclude a
# subdirectory from a directory tree whose root is specified with the INPUT tag.
#
# Note that relative paths are relative to the directory from which doxygen is
# run.
EXCLUDE =
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
# directories that are symbolic links (a Unix file system feature) are excluded
# from the input.
# The default value is: NO.
EXCLUDE_SYMLINKS = NO
# If the value of the INPUT tag contains directories, you can use the
# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
# certain files from those directories.
#
# Note that the wildcards are matched against the file with absolute path, so to
# exclude all test directories for example use the pattern */test/*
EXCLUDE_PATTERNS = */test/* */rosdoc_lite/* */smacc_diagnostics/scripts/* */smacc2_sm_reference_library/* */smacc2_performance_tools/* *.py
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
# (namespaces, classes, functions, etc.) that should be excluded from the
# output. The symbol name can be a fully qualified name, a word, or if the
# wildcard * is used, a substring. Examples: ANamespace, AClass,
# AClass::ANamespace, ANamespace::*Test
#
# Note that the wildcards are matched against the file with absolute path, so to
# exclude all test directories use the pattern */test/*
EXCLUDE_SYMBOLS =
# The EXAMPLE_PATH tag can be used to specify one or more files or directories
# that contain example code fragments that are included (see the \include
# command).
EXAMPLE_PATH =
# If the value of the EXAMPLE_PATH tag contains directories, you can use the
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
# *.h) to filter out the source-files in the directories. If left blank all
# files are included.
EXAMPLE_PATTERNS =
# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
# searched for input files to be used with the \include or \dontinclude commands
# irrespective of the value of the RECURSIVE tag.
# The default value is: NO.
EXAMPLE_RECURSIVE = NO
# The IMAGE_PATH tag can be used to specify one or more files or directories
# that contain images that are to be included in the documentation (see the
# \image command).
IMAGE_PATH =
# The INPUT_FILTER tag can be used to specify a program that doxygen should
# invoke to filter for each input file. Doxygen will invoke the filter program
# by executing (via popen()) the command:
#
# <filter> <input-file>
#
# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
# name of an input file. Doxygen will then use the output that the filter
# program writes to standard output. If FILTER_PATTERNS is specified, this tag
# will be ignored.
#
# Note that the filter must not add or remove lines; it is applied before the
# code is scanned, but not when the output code is generated. If lines are added
# or removed, the anchors will not be placed correctly.
#
# Note that for custom extensions or not directly supported extensions you also
# need to set EXTENSION_MAPPING for the extension otherwise the files are not
# properly processed by doxygen.
INPUT_FILTER =
# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
# basis. Doxygen will compare the file name with each pattern and apply the
# filter if there is a match. The filters are a list of the form: pattern=filter
# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
# patterns match the file name, INPUT_FILTER is applied.
#
# Note that for custom extensions or not directly supported extensions you also
# need to set EXTENSION_MAPPING for the extension otherwise the files are not
# properly processed by doxygen.
FILTER_PATTERNS =
# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
# INPUT_FILTER) will also be used to filter the input files that are used for
# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
# The default value is: NO.
FILTER_SOURCE_FILES = NO
# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
# it is also possible to disable source filtering for a specific pattern using
# *.ext= (so without naming a filter).
# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
FILTER_SOURCE_PATTERNS =
# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
# is part of the input, its contents will be placed on the main page
# (index.html). This can be useful if you have a project on for instance GitHub
# and want to reuse the introduction page also for the doxygen output.
USE_MDFILE_AS_MAINPAGE =
#---------------------------------------------------------------------------
# Configuration options related to source browsing
#---------------------------------------------------------------------------
# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
# generated. Documented entities will be cross-referenced with these sources.
#
# Note: To get rid of all source code in the generated output, make sure that
# also VERBATIM_HEADERS is set to NO.
# The default value is: NO.
SOURCE_BROWSER = YES
# Setting the INLINE_SOURCES tag to YES will include the body of functions,
# classes and enums directly into the documentation.
# The default value is: NO.
INLINE_SOURCES = YES
# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
# special comment blocks from generated source code fragments. Normal C, C++ and
# Fortran comments will always remain visible.
# The default value is: YES.
STRIP_CODE_COMMENTS = YES
# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
# function all documented functions referencing it will be listed.
# The default value is: NO.
REFERENCED_BY_RELATION = YES
# If the REFERENCES_RELATION tag is set to YES then for each documented function
# all documented entities called/used by that function will be listed.
# The default value is: NO.
REFERENCES_RELATION = YES
# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
# to YES then the hyperlinks from functions in REFERENCES_RELATION and
# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
# link to the documentation.
# The default value is: YES.
REFERENCES_LINK_SOURCE = YES
# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
# source code will show a tooltip with additional information such as prototype,
# brief description and links to the definition and documentation. Since this
# will make the HTML file larger and loading of large files a bit slower, you
# can opt to disable this feature.
# The default value is: YES.
# This tag requires that the tag SOURCE_BROWSER is set to YES.
SOURCE_TOOLTIPS = YES
# If the USE_HTAGS tag is set to YES then the references to source code will
# point to the HTML generated by the htags(1) tool instead of doxygen built-in
# source browser. The htags tool is part of GNU's global source tagging system
# (see http://www.gnu.org/software/global/global.html). You will need version
# 4.8.6 or higher.
#
# To use it do the following:
# - Install the latest version of global
# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
# - Make sure the INPUT points to the root of the source tree
# - Run doxygen as normal
#
# Doxygen will invoke htags (and that will in turn invoke gtags), so these
# tools must be available from the command line (i.e. in the search path).
#
# The result: instead of the source browser generated by doxygen, the links to
# source code will now point to the output of htags.
# The default value is: NO.
# This tag requires that the tag SOURCE_BROWSER is set to YES.
USE_HTAGS = NO
# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
# verbatim copy of the header file for each class for which an include is
# specified. Set to NO to disable this.
# See also: Section \class.
# The default value is: YES.
VERBATIM_HEADERS = YES
# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the
# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
# cost of reduced performance. This can be particularly helpful with template
# rich C++ code for which doxygen's built-in parser lacks the necessary type
# information.
# Note: The availability of this option depends on whether or not doxygen was
# generated with the -Duse-libclang=ON option for CMake.
# The default value is: NO.
CLANG_ASSISTED_PARSING = NO
# If clang assisted parsing is enabled you can provide the compiler with command
# line options that you would normally use when invoking the compiler. Note that
# the include paths will already be set by doxygen for the files and directories
# specified with INPUT and INCLUDE_PATH.
# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
CLANG_OPTIONS =
#---------------------------------------------------------------------------
# Configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
# compounds will be generated. Enable this if the project contains a lot of
# classes, structs, unions or interfaces.
# The default value is: YES.
ALPHABETICAL_INDEX = YES
# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
# which the alphabetical index list will be split.
# Minimum value: 1, maximum value: 20, default value: 5.
# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
COLS_IN_ALPHA_INDEX = 5
# In case all classes in a project start with a common prefix, all classes will
# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
# can be used to specify a prefix (or a list of prefixes) that should be ignored
# while generating the index headers.
# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the HTML output
#---------------------------------------------------------------------------
# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
# The default value is: YES.
GENERATE_HTML = YES
# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
# it.
# The default directory is: html.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_OUTPUT = html
# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
# generated HTML page (for example: .htm, .php, .asp).
# The default value is: .html.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_FILE_EXTENSION = .html
# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
# each generated HTML page. If the tag is left blank doxygen will generate a
# standard header.
#
# To get valid HTML the header file that includes any scripts and style sheets
# that doxygen needs, which is dependent on the configuration options used (e.g.
# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
# default header using
# doxygen -w html new_header.html new_footer.html new_stylesheet.css
# YourConfigFile
# and then modify the file new_header.html. See also section "Doxygen usage"
# for information on how to generate the default header that doxygen normally
# uses.
# Note: The header is subject to change so you typically have to regenerate the
# default header when upgrading to a newer version of doxygen. For a description
# of the possible markers and block names see the documentation.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_HEADER =
# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
# generated HTML page. If the tag is left blank doxygen will generate a standard
# footer. See HTML_HEADER for more information on how to generate a default
# footer and what special commands can be used inside the footer. See also
# section "Doxygen usage" for information on how to generate the default footer
# that doxygen normally uses.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_FOOTER =
# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
# sheet that is used by each HTML page. It can be used to fine-tune the look of
# the HTML output. If left blank doxygen will generate a default style sheet.
# See also section "Doxygen usage" for information on how to generate the style
# sheet that doxygen normally uses.
# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
# it is more robust and this tag (HTML_STYLESHEET) will in the future become
# obsolete.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_STYLESHEET =
# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
# cascading style sheets that are included after the standard style sheets
# created by doxygen. Using this option one can overrule certain style aspects.
# This is preferred over using HTML_STYLESHEET since it does not replace the
# standard style sheet and is therefore more robust against future updates.
# Doxygen will copy the style sheet files to the output directory.
# Note: The order of the extra style sheet files is of importance (e.g. the last
# style sheet in the list overrules the setting of the previous ones in the
# list). For an example see the documentation.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_EXTRA_STYLESHEET =
# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
# other source files which should be copied to the HTML output directory. Note
# that these files will be copied to the base HTML output directory. Use the
# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
# files will be copied as-is; there are no commands or markers available.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_EXTRA_FILES =
# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
# will adjust the colors in the style sheet and background images according to
# this color. Hue is specified as an angle on a colorwheel, see
# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
# purple, and 360 is red again.
# Minimum value: 0, maximum value: 359, default value: 220.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_COLORSTYLE_HUE = 220
# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
# in the HTML output. For a value of 0 the output will use grayscales only. A
# value of 255 will produce the most vivid colors.
# Minimum value: 0, maximum value: 255, default value: 100.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_COLORSTYLE_SAT = 100
# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
# luminance component of the colors in the HTML output. Values below 100
# gradually make the output lighter, whereas values above 100 make the output
# darker. The value divided by 100 is the actual gamma applied, so 80 represents
# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
# change the gamma.
# Minimum value: 40, maximum value: 240, default value: 80.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_COLORSTYLE_GAMMA = 80
# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
# page will contain the date and time when the page was generated. Setting this
# to YES can help to show when doxygen was last run and thus if the
# documentation is up to date.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_TIMESTAMP = NO
# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
# documentation will contain sections that can be hidden and shown after the
# page has loaded.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_DYNAMIC_SECTIONS = NO
# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
# shown in the various tree structured indices initially; the user can expand
# and collapse entries dynamically later on. Doxygen will expand the tree to
# such a level that at most the specified number of entries are visible (unless
# a fully collapsed tree already exceeds this amount). So setting the number of
# entries 1 will produce a full collapsed tree by default. 0 is a special value
# representing an infinite number of entries and will result in a full expanded
# tree by default.
# Minimum value: 0, maximum value: 9999, default value: 100.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_INDEX_NUM_ENTRIES = 100
# If the GENERATE_DOCSET tag is set to YES, additional index files will be
# generated that can be used as input for Apple's Xcode 3 integrated development
# environment (see: http://developer.apple.com/tools/xcode/), introduced with
# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
# Makefile in the HTML output directory. Running make will produce the docset in
# that directory and running make install will install the docset in
# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
# for more information.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
GENERATE_DOCSET = NO
# This tag determines the name of the docset feed. A documentation feed provides
# an umbrella under which multiple documentation sets from a single provider
# (such as a company or product suite) can be grouped.
# The default value is: Doxygen generated docs.
# This tag requires that the tag GENERATE_DOCSET is set to YES.
DOCSET_FEEDNAME = "Doxygen generated docs"
# This tag specifies a string that should uniquely identify the documentation
# set bundle. This should be a reverse domain-name style string, e.g.
# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
# The default value is: org.doxygen.Project.
# This tag requires that the tag GENERATE_DOCSET is set to YES.
DOCSET_BUNDLE_ID = org.doxygen.Project
# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
# the documentation publisher. This should be a reverse domain-name style
# string, e.g. com.mycompany.MyDocSet.documentation.
# The default value is: org.doxygen.Publisher.
# This tag requires that the tag GENERATE_DOCSET is set to YES.
DOCSET_PUBLISHER_ID = org.doxygen.Publisher
# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
# The default value is: Publisher.
# This tag requires that the tag GENERATE_DOCSET is set to YES.
DOCSET_PUBLISHER_NAME = Publisher
# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
# Windows.
#
# The HTML Help Workshop contains a compiler that can convert all HTML output
# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
# files are now used as the Windows 98 help format, and will replace the old
# Windows help format (.hlp) on all Windows platforms in the future. Compressed
# HTML files also contain an index, a table of contents, and you can search for
# words in the documentation. The HTML workshop also contains a viewer for
# compressed HTML files.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
GENERATE_HTMLHELP = NO
# The CHM_FILE tag can be used to specify the file name of the resulting .chm
# file. You can add a path in front of the file if the result should not be
# written to the html output directory.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
CHM_FILE =
# The HHC_LOCATION tag can be used to specify the location (absolute path
# including file name) of the HTML help compiler (hhc.exe). If non-empty,
# doxygen will try to run the HTML help compiler on the generated index.hhp.
# The file has to be specified with full path.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
HHC_LOCATION =
# The GENERATE_CHI flag controls if a separate .chi index file is generated
# (YES) or that it should be included in the master .chm file (NO).
# The default value is: NO.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
GENERATE_CHI = NO
# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
# and project file content.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
CHM_INDEX_ENCODING =
# The BINARY_TOC flag controls whether a binary table of contents is generated
# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
# enables the Previous and Next buttons.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
BINARY_TOC = NO
# The TOC_EXPAND flag can be set to YES to add extra items for group members to
# the table of contents of the HTML help documentation and to the tree view.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
TOC_EXPAND = NO
# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
# (.qch) of the generated HTML documentation.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
GENERATE_QHP = NO
# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
# the file name of the resulting .qch file. The path specified is relative to
# the HTML output folder.
# This tag requires that the tag GENERATE_QHP is set to YES.
QCH_FILE =
# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
# Project output. For more information please see Qt Help Project / Namespace
# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
# The default value is: org.doxygen.Project.
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_NAMESPACE = org.doxygen.Project
# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
# Help Project output. For more information please see Qt Help Project / Virtual
# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
# folders).
# The default value is: doc.
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_VIRTUAL_FOLDER = doc
# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
# filter to add. For more information please see Qt Help Project / Custom
# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
# filters).
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_CUST_FILTER_NAME =
# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
# custom filter to add. For more information please see Qt Help Project / Custom
# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
# filters).
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_CUST_FILTER_ATTRS =
# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
# project's filter section matches. Qt Help Project / Filter Attributes (see:
# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
# This tag requires that the tag GENERATE_QHP is set to YES.
QHP_SECT_FILTER_ATTRS =
# The QHG_LOCATION tag can be used to specify the location of Qt's
# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
# generated .qhp file.
# This tag requires that the tag GENERATE_QHP is set to YES.
QHG_LOCATION =
# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
# generated, together with the HTML files, they form an Eclipse help plugin. To
# install this plugin and make it available under the help contents menu in
# Eclipse, the contents of the directory containing the HTML and XML files needs
# to be copied into the plugins directory of eclipse. The name of the directory
# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
# After copying Eclipse needs to be restarted before the help appears.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
GENERATE_ECLIPSEHELP = NO
# A unique identifier for the Eclipse help plugin. When installing the plugin
# the directory name containing the HTML and XML files should also have this
# name. Each documentation set should have its own identifier.
# The default value is: org.doxygen.Project.
# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
ECLIPSE_DOC_ID = org.doxygen.Project
# If you want full control over the layout of the generated HTML pages it might
# be necessary to disable the index and replace it with your own. The
# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
# of each HTML page. A value of NO enables the index and the value YES disables
# it. Since the tabs in the index contain the same information as the navigation
# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
DISABLE_INDEX = NO
# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
# structure should be generated to display hierarchical information. If the tag
# value is set to YES, a side panel will be generated containing a tree-like
# index structure (just like the one that is generated for HTML Help). For this
# to work a browser that supports JavaScript, DHTML, CSS and frames is required
# (i.e. any modern browser). Windows users are probably better off using the
# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
# further fine-tune the look of the index. As an example, the default style
# sheet generated by doxygen has an example that shows how to put an image at
# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
# the same information as the tab index, you could consider setting
# DISABLE_INDEX to YES when enabling this option.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
GENERATE_TREEVIEW = NO
# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
# doxygen will group on one line in the generated HTML documentation.
#
# Note that a value of 0 will completely suppress the enum values from appearing
# in the overview section.
# Minimum value: 0, maximum value: 20, default value: 4.
# This tag requires that the tag GENERATE_HTML is set to YES.
ENUM_VALUES_PER_LINE = 4
# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
# to set the initial width (in pixels) of the frame in which the tree is shown.
# Minimum value: 0, maximum value: 1500, default value: 250.
# This tag requires that the tag GENERATE_HTML is set to YES.
TREEVIEW_WIDTH = 250
# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
# external symbols imported via tag files in a separate window.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
EXT_LINKS_IN_WINDOW = NO
# Use this tag to change the font size of LaTeX formulas included as images in
# the HTML documentation. When you change the font size after a successful
# doxygen run you need to manually remove any form_*.png images from the HTML
# output directory to force them to be regenerated.
# Minimum value: 8, maximum value: 50, default value: 10.
# This tag requires that the tag GENERATE_HTML is set to YES.
FORMULA_FONTSIZE = 10
# Use the FORMULA_TRANPARENT tag to determine whether or not the images
# generated for formulas are transparent PNGs. Transparent PNGs are not
# supported properly for IE 6.0, but are supported on all modern browsers.
#
# Note that when changing this option you need to delete any form_*.png files in
# the HTML output directory before the changes have effect.
# The default value is: YES.
# This tag requires that the tag GENERATE_HTML is set to YES.
FORMULA_TRANSPARENT = YES
# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
# http://www.mathjax.org) which uses client side Javascript for the rendering
# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
# installed or if you want to formulas look prettier in the HTML output. When
# enabled you may also need to install MathJax separately and configure the path
# to it using the MATHJAX_RELPATH option.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
USE_MATHJAX = NO
# When MathJax is enabled you can set the default output format to be used for
# the MathJax output. See the MathJax site (see:
# http://docs.mathjax.org/en/latest/output.html) for more details.
# Possible values are: HTML-CSS (which is slower, but has the best
# compatibility), NativeMML (i.e. MathML) and SVG.
# The default value is: HTML-CSS.
# This tag requires that the tag USE_MATHJAX is set to YES.
MATHJAX_FORMAT = HTML-CSS
# When MathJax is enabled you need to specify the location relative to the HTML
# output directory using the MATHJAX_RELPATH option. The destination directory
# should contain the MathJax.js script. For instance, if the mathjax directory
# is located at the same level as the HTML output directory, then
# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
# Content Delivery Network so you can quickly see the result without installing
# MathJax. However, it is strongly recommended to install a local copy of
# MathJax from http://www.mathjax.org before deployment.
# The default value is: http://cdn.mathjax.org/mathjax/latest.
# This tag requires that the tag USE_MATHJAX is set to YES.
MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
# extension names that should be enabled during MathJax rendering. For example
# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
# This tag requires that the tag USE_MATHJAX is set to YES.
MATHJAX_EXTENSIONS =
# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
# of code that will be used on startup of the MathJax code. See the MathJax site
# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
# example see the documentation.
# This tag requires that the tag USE_MATHJAX is set to YES.
MATHJAX_CODEFILE =
# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
# the HTML output. The underlying search engine uses javascript and DHTML and
# should work on any modern browser. Note that when using HTML help
# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
# there is already a search function so this one should typically be disabled.
# For large projects the javascript based search engine can be slow, then
# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
# search using the keyboard; to jump to the search box use <access key> + S
# (what the <access key> is depends on the OS and browser, but it is typically
# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
# key> to jump into the search results window, the results can be navigated
# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
# the search. The filter options can be selected when the cursor is inside the
# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
# to select a filter and <Enter> or <escape> to activate or cancel the filter
# option.
# The default value is: YES.
# This tag requires that the tag GENERATE_HTML is set to YES.
SEARCHENGINE = YES
# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
# implemented using a web server instead of a web client using Javascript. There
# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
# setting. When disabled, doxygen will generate a PHP script for searching and
# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
# and searching needs to be provided by external tools. See the section
# "External Indexing and Searching" for details.
# The default value is: NO.
# This tag requires that the tag SEARCHENGINE is set to YES.
SERVER_BASED_SEARCH = NO
# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
# script for searching. Instead the search results are written to an XML file
# which needs to be processed by an external indexer. Doxygen will invoke an
# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
# search results.
#
# Doxygen ships with an example indexer (doxyindexer) and search engine
# (doxysearch.cgi) which are based on the open source search engine library
# Xapian (see: http://xapian.org/).
#
# See the section "External Indexing and Searching" for details.
# The default value is: NO.
# This tag requires that the tag SEARCHENGINE is set to YES.
EXTERNAL_SEARCH = NO
# The SEARCHENGINE_URL should point to a search engine hosted by a web server
# which will return the search results when EXTERNAL_SEARCH is enabled.
#
# Doxygen ships with an example indexer (doxyindexer) and search engine
# (doxysearch.cgi) which are based on the open source search engine library
# Xapian (see: http://xapian.org/). See the section "External Indexing and
# Searching" for details.
# This tag requires that the tag SEARCHENGINE is set to YES.
SEARCHENGINE_URL =
# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
# search data is written to a file for indexing by an external tool. With the
# SEARCHDATA_FILE tag the name of this file can be specified.
# The default file is: searchdata.xml.
# This tag requires that the tag SEARCHENGINE is set to YES.
SEARCHDATA_FILE = searchdata.xml
# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
# projects and redirect the results back to the right project.
# This tag requires that the tag SEARCHENGINE is set to YES.
EXTERNAL_SEARCH_ID =
# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
# projects other than the one defined by this configuration file, but that are
# all added to the same external search index. Each project needs to have a
# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
# to a relative location where the documentation can be found. The format is:
# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
# This tag requires that the tag SEARCHENGINE is set to YES.
EXTRA_SEARCH_MAPPINGS =
#---------------------------------------------------------------------------
# Configuration options related to the LaTeX output
#---------------------------------------------------------------------------
# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
# The default value is: YES.
GENERATE_LATEX = YES
# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
# it.
# The default directory is: latex.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_OUTPUT = latex
# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
# invoked.
#
# Note that when enabling USE_PDFLATEX this option is only used for generating
# bitmaps for formulas in the HTML output, but not in the Makefile that is
# written to the output directory.
# The default file is: latex.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_CMD_NAME = latex
# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
# index for LaTeX.
# The default file is: makeindex.
# This tag requires that the tag GENERATE_LATEX is set to YES.
MAKEINDEX_CMD_NAME = makeindex
# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
# documents. This may be useful for small projects and may help to save some
# trees in general.
# The default value is: NO.
# This tag requires that the tag GENERATE_LATEX is set to YES.
COMPACT_LATEX = NO
# The PAPER_TYPE tag can be used to set the paper type that is used by the
# printer.
# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
# 14 inches) and executive (7.25 x 10.5 inches).
# The default value is: a4.
# This tag requires that the tag GENERATE_LATEX is set to YES.
PAPER_TYPE = a4
# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
# that should be included in the LaTeX output. The package can be specified just
# by its name or with the correct syntax as to be used with the LaTeX
# \usepackage command. To get the times font for instance you can specify :
# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}
# To use the option intlimits with the amsmath package you can specify:
# EXTRA_PACKAGES=[intlimits]{amsmath}
# If left blank no extra packages will be included.
# This tag requires that the tag GENERATE_LATEX is set to YES.
EXTRA_PACKAGES =
# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
# generated LaTeX document. The header should contain everything until the first
# chapter. If it is left blank doxygen will generate a standard header. See
# section "Doxygen usage" for information on how to let doxygen write the
# default header to a separate file.
#
# Note: Only use a user-defined header if you know what you are doing! The
# following commands have a special meaning inside the header: $title,
# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
# string, for the replacement values of the other commands the user is referred
# to HTML_HEADER.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_HEADER =
# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
# generated LaTeX document. The footer should contain everything after the last
# chapter. If it is left blank doxygen will generate a standard footer. See
# LATEX_HEADER for more information on how to generate a default footer and what
# special commands can be used inside the footer.
#
# Note: Only use a user-defined footer if you know what you are doing!
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_FOOTER =
# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
# LaTeX style sheets that are included after the standard style sheets created
# by doxygen. Using this option one can overrule certain style aspects. Doxygen
# will copy the style sheet files to the output directory.
# Note: The order of the extra style sheet files is of importance (e.g. the last
# style sheet in the list overrules the setting of the previous ones in the
# list).
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_EXTRA_STYLESHEET =
# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
# other source files which should be copied to the LATEX_OUTPUT output
# directory. Note that the files will be copied as-is; there are no commands or
# markers available.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_EXTRA_FILES =
# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
# contain links (just like the HTML output) instead of page references. This
# makes the output suitable for online browsing using a PDF viewer.
# The default value is: YES.
# This tag requires that the tag GENERATE_LATEX is set to YES.
PDF_HYPERLINKS = YES
# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
# the PDF file directly from the LaTeX files. Set this option to YES, to get a
# higher quality PDF documentation.
# The default value is: YES.
# This tag requires that the tag GENERATE_LATEX is set to YES.
USE_PDFLATEX = YES
# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
# command to the generated LaTeX files. This will instruct LaTeX to keep running
# if errors occur, instead of asking the user for help. This option is also used
# when generating formulas in HTML.
# The default value is: NO.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_BATCHMODE = NO
# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
# index chapters (such as File Index, Compound Index, etc.) in the output.
# The default value is: NO.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_HIDE_INDICES = NO
# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
# code with syntax highlighting in the LaTeX output.
#
# Note that which sources are shown also depends on other settings such as
# SOURCE_BROWSER.
# The default value is: NO.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_SOURCE_CODE = NO
# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
# bibliography, e.g. plainnat, or ieeetr. See
# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
# The default value is: plain.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_BIB_STYLE = plain
# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated
# page will contain the date and time when the page was generated. Setting this
# to NO can help when comparing the output of multiple runs.
# The default value is: NO.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_TIMESTAMP = NO
#---------------------------------------------------------------------------
# Configuration options related to the RTF output
#---------------------------------------------------------------------------
# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The
# RTF output is optimized for Word 97 and may not look too pretty with other RTF
# readers/editors.
# The default value is: NO.
GENERATE_RTF = NO
# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
# it.
# The default directory is: rtf.
# This tag requires that the tag GENERATE_RTF is set to YES.
RTF_OUTPUT = rtf
# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF
# documents. This may be useful for small projects and may help to save some
# trees in general.
# The default value is: NO.
# This tag requires that the tag GENERATE_RTF is set to YES.
COMPACT_RTF = NO
# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
# contain hyperlink fields. The RTF file will contain links (just like the HTML
# output) instead of page references. This makes the output suitable for online
# browsing using Word or some other Word compatible readers that support those
# fields.
#
# Note: WordPad (write) and others do not support links.
# The default value is: NO.
# This tag requires that the tag GENERATE_RTF is set to YES.
RTF_HYPERLINKS = NO
# Load stylesheet definitions from file. Syntax is similar to doxygen's config
# file, i.e. a series of assignments. You only have to provide replacements,
# missing definitions are set to their default value.
#
# See also section "Doxygen usage" for information on how to generate the
# default style sheet that doxygen normally uses.
# This tag requires that the tag GENERATE_RTF is set to YES.
RTF_STYLESHEET_FILE =
# Set optional variables used in the generation of an RTF document. Syntax is
# similar to doxygen's config file. A template extensions file can be generated
# using doxygen -e rtf extensionFile.
# This tag requires that the tag GENERATE_RTF is set to YES.
RTF_EXTENSIONS_FILE =
# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
# with syntax highlighting in the RTF output.
#
# Note that which sources are shown also depends on other settings such as
# SOURCE_BROWSER.
# The default value is: NO.
# This tag requires that the tag GENERATE_RTF is set to YES.
RTF_SOURCE_CODE = NO
#---------------------------------------------------------------------------
# Configuration options related to the man page output
#---------------------------------------------------------------------------
# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for
# classes and files.
# The default value is: NO.
GENERATE_MAN = NO
# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
# it. A directory man3 will be created inside the directory specified by
# MAN_OUTPUT.
# The default directory is: man.
# This tag requires that the tag GENERATE_MAN is set to YES.
MAN_OUTPUT = man
# The MAN_EXTENSION tag determines the extension that is added to the generated
# man pages. In case the manual section does not start with a number, the number
# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
# optional.
# The default value is: .3.
# This tag requires that the tag GENERATE_MAN is set to YES.
MAN_EXTENSION = .3
# The MAN_SUBDIR tag determines the name of the directory created within
# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
# MAN_EXTENSION with the initial . removed.
# This tag requires that the tag GENERATE_MAN is set to YES.
MAN_SUBDIR =
# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
# will generate one additional man file for each entity documented in the real
# man page(s). These additional files only source the real man page, but without
# them the man command would be unable to find the correct page.
# The default value is: NO.
# This tag requires that the tag GENERATE_MAN is set to YES.
MAN_LINKS = NO
#---------------------------------------------------------------------------
# Configuration options related to the XML output
#---------------------------------------------------------------------------
# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that
# captures the structure of the code including all documentation.
# The default value is: NO.
GENERATE_XML = NO
# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
# it.
# The default directory is: xml.
# This tag requires that the tag GENERATE_XML is set to YES.
XML_OUTPUT = xml
# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
# listings (including syntax highlighting and cross-referencing information) to
# the XML output. Note that enabling this will significantly increase the size
# of the XML output.
# The default value is: YES.
# This tag requires that the tag GENERATE_XML is set to YES.
XML_PROGRAMLISTING = YES
#---------------------------------------------------------------------------
# Configuration options related to the DOCBOOK output
#---------------------------------------------------------------------------
# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files
# that can be used to generate PDF.
# The default value is: NO.
GENERATE_DOCBOOK = NO
# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
# front of it.
# The default directory is: docbook.
# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
DOCBOOK_OUTPUT = docbook
# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
# program listings (including syntax highlighting and cross-referencing
# information) to the DOCBOOK output. Note that enabling this will significantly
# increase the size of the DOCBOOK output.
# The default value is: NO.
# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
DOCBOOK_PROGRAMLISTING = NO
#---------------------------------------------------------------------------
# Configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
# AutoGen Definitions (see http://autogen.sf.net) file that captures the
# structure of the code including all documentation. Note that this feature is
# still experimental and incomplete at the moment.
# The default value is: NO.
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# Configuration options related to the Perl module output
#---------------------------------------------------------------------------
# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module
# file that captures the structure of the code including all documentation.
#
# Note that this feature is still experimental and incomplete at the moment.
# The default value is: NO.
GENERATE_PERLMOD = NO
# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary
# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
# output from the Perl module output.
# The default value is: NO.
# This tag requires that the tag GENERATE_PERLMOD is set to YES.
PERLMOD_LATEX = NO
# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely
# formatted so it can be parsed by a human reader. This is useful if you want to
# understand what is going on. On the other hand, if this tag is set to NO, the
# size of the Perl module output will be much smaller and Perl will parse it
# just the same.
# The default value is: YES.
# This tag requires that the tag GENERATE_PERLMOD is set to YES.
PERLMOD_PRETTY = YES
# The names of the make variables in the generated doxyrules.make file are
# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
# so different doxyrules.make files included by the same Makefile don't
# overwrite each other's variables.
# This tag requires that the tag GENERATE_PERLMOD is set to YES.
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all
# C-preprocessor directives found in the sources and include files.
# The default value is: YES.
ENABLE_PREPROCESSING = YES
# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
# in the source code. If set to NO, only sr_conditional compilation will be
# performed. Macro expansion can be done in a controlled way by setting
# EXPAND_ONLY_PREDEF to YES.
# The default value is: NO.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
MACRO_EXPANSION = NO
# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
# the macro expansion is limited to the macros specified with the PREDEFINED and
# EXPAND_AS_DEFINED tags.
# The default value is: NO.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
EXPAND_ONLY_PREDEF = NO
# If the SEARCH_INCLUDES tag is set to YES, the include files in the
# INCLUDE_PATH will be searched if a #include is found.
# The default value is: YES.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
SEARCH_INCLUDES = YES
# The INCLUDE_PATH tag can be used to specify one or more directories that
# contain include files that are not input files but should be processed by the
# preprocessor.
# This tag requires that the tag SEARCH_INCLUDES is set to YES.
INCLUDE_PATH =
# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
# patterns (like *.h and *.hpp) to filter out the header-files in the
# directories. If left blank, the patterns specified with FILE_PATTERNS will be
# used.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
INCLUDE_FILE_PATTERNS =
# The PREDEFINED tag can be used to specify one or more macro names that are
# defined before the preprocessor is started (similar to the -D option of e.g.
# gcc). The argument of the tag is a list of macros of the form: name or
# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
# is assumed. To prevent a macro definition from being undefined via #undef or
# recursively expanded use the := operator instead of the = operator.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
PREDEFINED =
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
# tag can be used to specify a list of macro names that should be expanded. The
# macro definition that is found in the sources will be used. Use the PREDEFINED
# tag if you want to use a different macro definition that overrules the
# definition found in the source code.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
EXPAND_AS_DEFINED =
# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
# remove all references to function-like macros that are alone on a line, have
# an all uppercase name, and do not end with a semicolon. Such function macros
# are typically used for boiler-plate code, and will confuse the parser if not
# removed.
# The default value is: YES.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration options related to external references
#---------------------------------------------------------------------------
# The TAGFILES tag can be used to specify one or more tag files. For each tag
# file the location of the external documentation should be added. The format of
# a tag file without this location is as follows:
# TAGFILES = file1 file2 ...
# Adding location for the tag files is done as follows:
# TAGFILES = file1=loc1 "file2 = loc2" ...
# where loc1 and loc2 can be relative or absolute paths or URLs. See the
# section "Linking to external documentation" for more information about the use
# of tag files.
# Note: Each tag file must have a unique name (where the name does NOT include
# the path). If a tag file is not located in the directory in which doxygen is
# run, you must also specify the path to the tagfile here.
TAGFILES =
# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
# tag file that is based on the input files it reads. See section "Linking to
# external documentation" for more information about the usage of tag files.
GENERATE_TAGFILE =
# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
# the class index. If set to NO, only the inherited external classes will be
# listed.
# The default value is: NO.
ALLEXTERNALS = NO
# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed
# in the modules index. If set to NO, only the current project's groups will be
# listed.
# The default value is: YES.
EXTERNAL_GROUPS = YES
# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in
# the related pages index. If set to NO, only the current project's pages will
# be listed.
# The default value is: YES.
EXTERNAL_PAGES = YES
# The PERL_PATH should be the absolute path and name of the perl script
# interpreter (i.e. the result of 'which perl').
# The default file (with absolute path) is: /usr/bin/perl.
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
# NO turns the diagrams off. Note that this option also works with HAVE_DOT
# disabled, but it is recommended to install and use dot, since it yields more
# powerful graphs.
# The default value is: YES.
CLASS_DIAGRAMS = YES
# You can define message sequence charts within doxygen comments using the \msc
# command. Doxygen will then run the mscgen tool (see:
# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
# documentation. The MSCGEN_PATH tag allows you to specify the directory where
# the mscgen tool resides. If left empty the tool is assumed to be found in the
# default search path.
MSCGEN_PATH =
# You can include diagrams made with dia in doxygen documentation. Doxygen will
# then run dia to produce the diagram and insert it in the documentation. The
# DIA_PATH tag allows you to specify the directory where the dia binary resides.
# If left empty dia is assumed to be found in the default search path.
DIA_PATH =
# If set to YES the inheritance and collaboration graphs will hide inheritance
# and usage relations if the target is undocumented or is not a class.
# The default value is: YES.
HIDE_UNDOC_RELATIONS = NO
# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
# available from the path. This tool is part of Graphviz (see:
# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
# Bell Labs. The other options in this section have no effect if this option is
# set to NO
# The default value is: YES.
HAVE_DOT = YES
# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
# to run in parallel. When set to 0 doxygen will base this on the number of
# processors available in the system. You can set it explicitly to a value
# larger than 0 to get control over the balance between CPU load and processing
# speed.
# Minimum value: 0, maximum value: 32, default value: 0.
# This tag requires that the tag HAVE_DOT is set to YES.
DOT_NUM_THREADS = 0
# When you want a differently looking font in the dot files that doxygen
# generates you can specify the font name using DOT_FONTNAME. You need to make
# sure dot is able to find the font, which can be done by putting it in a
# standard location or by setting the DOTFONTPATH environment variable or by
# setting DOT_FONTPATH to the directory containing the font.
# The default value is: Helvetica.
# This tag requires that the tag HAVE_DOT is set to YES.
DOT_FONTNAME = Helvetica
# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
# dot graphs.
# Minimum value: 4, maximum value: 24, default value: 10.
# This tag requires that the tag HAVE_DOT is set to YES.
DOT_FONTSIZE = 10
# By default doxygen will tell dot to use the default font as specified with
# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
# the path where dot can find it using this tag.
# This tag requires that the tag HAVE_DOT is set to YES.
DOT_FONTPATH =
# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
# each documented class showing the direct and indirect inheritance relations.
# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.
CLASS_GRAPH = YES
# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
# graph for each documented class showing the direct and indirect implementation
# dependencies (inheritance, containment, and class references variables) of the
# class with other documented classes.
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.
COLLABORATION_GRAPH = YES
# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
# groups, showing the direct groups dependencies.
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.
GROUP_GRAPHS = YES
# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
# collaboration diagrams in a style similar to the OMG's Unified Modeling
# Language.
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.
UML_LOOK = YES
# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
# class node. If there are many fields or methods and many nodes the graph may
# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
# number of items for each type to make the size more manageable. Set this to 0
# for no limit. Note that the threshold may be exceeded by 50% before the limit
# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
# but if the number exceeds 15, the total amount of fields shown is limited to
# 10.
# Minimum value: 0, maximum value: 100, default value: 10.
# This tag requires that the tag HAVE_DOT is set to YES.
UML_LIMIT_NUM_FIELDS = 50
# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
# collaboration graphs will show the relations between templates and their
# instances.
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.
TEMPLATE_RELATIONS = YES
# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
# YES then doxygen will generate a graph for each documented file showing the
# direct and indirect include dependencies of the file with other documented
# files.
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.
INCLUDE_GRAPH = YES
# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
# set to YES then doxygen will generate a graph for each documented file showing
# the direct and indirect include dependencies of the file with other documented
# files.
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.
INCLUDED_BY_GRAPH = YES
# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
# dependency graph for every global function or class method.
#
# Note that enabling this option will significantly increase the time of a run.
# So in most cases it will be better to enable call graphs for selected
# functions only using the \callgraph command. Disabling a call graph can be
# accomplished by means of the command \hidecallgraph.
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.
CALL_GRAPH = YES
# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
# dependency graph for every global function or class method.
#
# Note that enabling this option will significantly increase the time of a run.
# So in most cases it will be better to enable caller graphs for selected
# functions only using the \callergraph command. Disabling a caller graph can be
# accomplished by means of the command \hidecallergraph.
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.
CALLER_GRAPH = YES
# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
# hierarchy of all classes instead of a textual one.
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.
GRAPHICAL_HIERARCHY = YES
# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
# dependencies a directory has on other directories in a graphical way. The
# dependency relations are determined by the #include relations between the
# files in the directories.
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.
DIRECTORY_GRAPH = YES
# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
# generated by dot. For an explanation of the image formats see the section
# output formats in the documentation of the dot tool (Graphviz (see:
# http://www.graphviz.org/)).
# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
# to make the SVG files visible in IE 9+ (other browsers do not have this
# requirement).
# Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd,
# png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo,
# gif:cairo:gd, gif:gd, gif:gd:gd, svg, png:gd, png:gd:gd, png:cairo,
# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
# png:gdiplus:gdiplus.
# The default value is: png.
# This tag requires that the tag HAVE_DOT is set to YES.
DOT_IMAGE_FORMAT = png
# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
# enable generation of interactive SVG images that allow zooming and panning.
#
# Note that this requires a modern browser other than Internet Explorer. Tested
# and working are Firefox, Chrome, Safari, and Opera.
# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
# the SVG files visible. Older versions of IE do not have SVG support.
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.
INTERACTIVE_SVG = NO
# The DOT_PATH tag can be used to specify the path where the dot tool can be
# found. If left blank, it is assumed the dot tool can be found in the path.
# This tag requires that the tag HAVE_DOT is set to YES.
DOT_PATH =
# The DOTFILE_DIRS tag can be used to specify one or more directories that
# contain dot files that are included in the documentation (see the \dotfile
# command).
# This tag requires that the tag HAVE_DOT is set to YES.
DOTFILE_DIRS =
# The MSCFILE_DIRS tag can be used to specify one or more directories that
# contain msc files that are included in the documentation (see the \mscfile
# command).
MSCFILE_DIRS =
# The DIAFILE_DIRS tag can be used to specify one or more directories that
# contain dia files that are included in the documentation (see the \diafile
# command).
DIAFILE_DIRS =
# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
# path where java can find the plantuml.jar file. If left blank, it is assumed
# PlantUML is not used or called during a preprocessing step. Doxygen will
# generate a warning when it encounters a \startuml command in this case and
# will not generate output for the diagram.
PLANTUML_JAR_PATH =
# When using plantuml, the specified paths are searched for files specified by
# the !include statement in a plantuml block.
PLANTUML_INCLUDE_PATH =
# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
# that will be shown in the graph. If the number of nodes in a graph becomes
# larger than this value, doxygen will truncate the graph, which is visualized
# by representing a node as a red box. Note that doxygen if the number of direct
# children of the root node in a graph is already larger than
# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
# Minimum value: 0, maximum value: 10000, default value: 50.
# This tag requires that the tag HAVE_DOT is set to YES.
DOT_GRAPH_MAX_NODES = 150
# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
# generated by dot. A depth value of 3 means that only nodes reachable from the
# root by following a path via at most 3 edges will be shown. Nodes that lay
# further from the root node will be omitted. Note that setting this option to 1
# or 2 may greatly reduce the computation time needed for large code bases. Also
# note that the size of a graph can be further restricted by
# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
# Minimum value: 0, maximum value: 1000, default value: 0.
# This tag requires that the tag HAVE_DOT is set to YES.
MAX_DOT_GRAPH_DEPTH = 0
# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
# background. This is disabled by default, because dot on Windows does not seem
# to support this out of the box.
#
# Warning: Depending on the platform used, enabling this option may lead to
# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
# read).
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.
DOT_TRANSPARENT = NO
# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
# files in one run (i.e. multiple -o and -T options on the command line). This
# makes dot run faster, but since only newer versions of dot (>1.8.10) support
# this, this feature is disabled by default.
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.
DOT_MULTI_TARGETS = NO
# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
# explaining the meaning of the various boxes and arrows in the dot generated
# graphs.
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.
GENERATE_LEGEND = YES
# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
# files that are used to generate the various graphs.
# The default value is: YES.
# This tag requires that the tag HAVE_DOT is set to YES.
DOT_CLEANUP = YES
================================================
FILE: .github/ISSUE_TEMPLATE/compilation_error_report.md
================================================
---
name: Compilation error report
about: Create a report to help us catch compilation errors and correct them
title: ''
labels: bug
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Environment (please complete the following information):**
*ROS DETAILS*:
- OS: [e.g. Ubuntu 20.04 LTS]
- Version [e.g. Rolling]
*REPO DETAILS*:
- Repository: [e.g. robosoft-ai/SMACC2]
- Branch: [e.g. master]
- Commit (First 5 Digits): [e.g. 6bade]
*BUILDSPACE DETAILS (List all packages)*:
- [e.g. ros2_control - 6bbde]
- [e.g. moveit2 - 6bbde]
- ...
*BUILD DETAILS*
- Build Command: [e.g. colcon build --symlink-install]
**Additional context**
- Anything that may be unusual about your environment
Add any other context about the problem here, especially include any modifications to smacc2 that relate to this issue.
**Error Details**
```
Cut and Paste Here... (e.g. terminal output)
```
================================================
FILE: .github/ISSUE_TEMPLATE/runtime_error_report.md
================================================
---
name: Runtime error report
about: Create a report to help us catch runtime errors and improve
title: ''
labels: bug
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Environment (please complete the following information):**
*ROS DETAILS*:
- OS: [e.g. Ubuntu 20.04 LTS]
- Version [e.g. Rolling]
*REPO DETAILS*:
- Repository: [e.g. robosoft-ai/SMACC2]
- Branch: [e.g. master]
- Commit (First 5 Digits): [e.g. 6bade]
*BUILDSPACE DETAILS (List all packages)*:
- [e.g. ros2_control - 6bbde]
- [e.g. moveit2 - 6bbde]
- ...
*BUILD DETAILS*
- Build Command: [e.g. colcon build --symlink-install]
*TEST DETAILS*
- Launch file: [e.g. ros2 launch sm_dance_bot sm_dance_bot_launch.py]
**Additional context**
- Anything that may be unusual about your environment
Add any other context about the problem here, especially include any modifications to smacc2 that relate to this issue.
**Error Details**
```
Cut and Paste Here... (e.g. terminal output)
```
================================================
FILE: .github/SMACC2-not-released.jazzy.repos
================================================
repositories:
# moveit2:
# type: git
# url: https://github.com/ros-planning/moveit2.git
# version: feature/multiple_namespace_support_from_parameters
#
# ros2_control:
# type: git
# url: https://github.com/ros-controls/ros2_control.git
# version: 30131b42f082a06032507040840c7ca4c48a6241
#
# ros2_controllers:
# type: git
# url: https://github.com/ros-controls/ros2_controllers.git
# version: f08c3789e81b72f64858eccfb4a1553fd9ed801f # 2.15.0
#
# realtime_tools:
# type: git
# url: https://github.com/ros-controls/realtime_tools.git
# version: 2.4.0
#
# ros_param_shortcuts:
# type: git
# url: https://github.com/PickNikRobotics/rosparam_shortcuts
# version: 0.5.0
#
# generate_parameter_library:
# type: git
# url: https://github.com/PickNikRobotics/generate_parameter_library.git
# version: 0.3.0
#
# rsl:
# type: git
# url: https://github.com/PickNikRobotics/RSL.git
# version: 0.2.0
#
# moveit_resources:
# type: git
# url: https://github.com/ros-planning/moveit_resources.git
# version: ros2
# kinematics_interface:
# type: git
# url: https://github.com/ros-controls/kinematics_interface.git
# version: master
================================================
FILE: .github/SMACC2.jazzy.repos
================================================
repositories:
px4_msgs:
type: git
url: https://github.com/PX4/px4_msgs.git
version: release/1.16
micro-ROS-Agent:
type: git
url: https://github.com/micro-ROS/micro-ROS-Agent.git
version: jazzy
================================================
FILE: .github/mergify.yml
================================================
pull_request_rules:
- name: ask to resolve conflict
conditions:
- conflict
- author!=mergify
actions:
comment:
message: This pull request is in conflict. Could you fix it @{{author}}?
- name: Backport to galactic at reviewers discretion
conditions:
- base=master
- "label=backport-galactic"
actions:
backport:
branches:
- galactic
- name: backport to foxy at reviewers discretion
conditions:
- base=master
- "label=backport-foxy"
actions:
backport:
branches:
- foxy
================================================
FILE: .github/workflows/README.md
================================================
## Repository Status, Packages and Documentation - Detailed overview
ROS2 Distro | Branch | Build status | Documentation | Released packages
:---------: | :----: | :----------: | :-----------: | :---------------:
**Foxy** | [`foxy`](https://github.com/robosoft-ai/SMACC2/tree/foxy) | [](https://github.com/robosoft-ai/SMACC2/actions/workflows/foxy-binary-build.yml?branch=foxy) <br /> [](https://github.com/robosoft-ai/SMACC2/actions/workflows/foxy-semi-binary-build.yml?branch=foxy) <br /> [](https://github.com/robosoft-ai/SMACC2/actions/workflows/foxy-source-build.yml?branch=foxy) | [](https://github.com/robosoft-ai/SMACC2/actions/workflows/doxygen-deploy.yml) <br /> [Generated Doc](https://robosoft-ai.github.io/smacc2_doxygen/foxy/html/namespacesmacc2.html) | [SMACC2](https://index.ros.org/p/smacc2/github-robosoft-ai-SMACC2/#foxy)
**Galactic** | [`galactic`](https://github.com/robosoft-ai/SMACC2/tree/galactic) | [](https://github.com/robosoft-ai/SMACC2/actions/workflows/galactic-binary-build.yml?branch=galactic) <br /> [](https://github.com/robosoft-ai/SMACC2/actions/workflows/galactic-binary-build-testing.yml?branch=galactic) <br /> [](https://github.com/robosoft-ai/SMACC2/actions/workflows/galactic-semi-binary-build.yml?branch=galactic) <br /> [](https://github.com/robosoft-ai/SMACC2/actions/workflows/galactic-semi-binary-build-testing.yml?branch=galactic) | [](https://github.com/robosoft-ai/SMACC2/actions/workflows/doxygen-deploy.yml) <br /> [Generated Doc](https://robosoft-ai.github.io/smacc2_doxygen/galactic/html/namespacesmacc2.html) | [SMACC2](https://index.ros.org/p/smacc2/github-robosoft-ai-SMACC2/#galactic)
**Rolling** | [`rolling`](https://github.com/robosoft-ai/SMACC2/tree/rolling) | [](https://github.com/robosoft-ai/SMACC2/actions/workflows/rolling-binary-build.yml?branch=rolling) <br /> [](https://github.com/robosoft-ai/SMACC2/actions/workflows/rolling-binary-build-testing.yml?branch=rolling) <br /> [](https://github.com/robosoft-ai/SMACC2/actions/workflows/rolling-semi-binary-build.yml?branch=rolling) <br /> [](https://github.com/robosoft-ai/SMACC2/actions/workflows/rolling-semi-binary-build-testing.yml?branch=rolling) | [](https://github.com/robosoft-ai/SMACC2/actions/workflows/doxygen-deploy.yml) <br /> [Generated Doc](https://robosoft-ai.github.io/smacc2_doxygen/master/html/namespacesmacc2.html) | [SMACC2](https://index.ros.org/p/smacc2/github-robosoft-ai-SMACC2/#rolling)
================================================
FILE: .github/workflows/ci-format.yml
================================================
# This is a format job. Pre-commit has a first-party GitHub action, so we use
# that: https://github.com/pre-commit/action
name: Format
on:
workflow_dispatch:
pull_request:
jobs:
pre-commit:
name: Format
runs-on: ubuntu-latest
container:
image: osrf/ros:jazzy-desktop
steps:
- uses: actions/checkout@v2
- name: Install clang-format
run: |
apt update
apt install -y python3-pip clang-format ros-jazzy-ament-cppcheck pre-commit
git config --global --add safe.directory `pwd`
- name: pre-commit
shell: bash
run: |
source /opt/ros/jazzy/setup.bash
pre-commit run -a
================================================
FILE: .github/workflows/ci-ros-lint.yaml
================================================
name: ROS Lint
on:
pull_request:
jobs:
ament_lint:
name: ament_${{ matrix.linter }}
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
linter: [copyright, cppcheck, lint_cmake]
steps:
- uses: actions/checkout@v1
- uses: ros-tooling/setup-ros@v0.2
- uses: ros-tooling/action-ros-lint@v0.1
with:
distribution: jazzy
linter: ${{ matrix.linter }}
package-name:
smacc2
cl_keyboard
backward_global_planner
backward_local_planner
forward_global_planner
forward_local_planner
nav2z_planners_common
pure_spinning_local_planner
undo_path_global_planner
cl_nav2z
cl_generic_sensor
cl_ros2_timer
eg_conditional_generator
eg_random_generator
smacc2_msgs
sm_advanced_recovery_1
sm_atomic
sm_atomic_http
sm_atomic_lifecycle
sm_atomic_mode_states
sm_branching
sm_cl_keyboard_unit_test_1
sm_cl_ros2_timer_unit_test_1
sm_multi_stage_1
sm_pack_ml
sm_panda_cl_moveit2z_cb_inventory
sm_simple_action_client
sm_three_some
sr_all_events_go
sr_conditional
sr_event_countdown
================================================
FILE: .github/workflows/doxygen-check-build.yml
================================================
name: "Pull request Doc Check"
on:
pull_request:
jobs:
check-doc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: mattnotmitt/doxygen-action@v1
with:
doxyfile-path: '.github/Doxyfile'
================================================
FILE: .github/workflows/doxygen-deploy.yml
================================================
name: "Doxygen Deployment"
on:
workflow_dispatch:
push:
branches: [jazzy]
jobs:
deploy-doc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set output
id: vars
run: echo ::set-output name=short_ref::${GITHUB_REF#refs/*/}
- uses: mattnotmitt/doxygen-action@v1
with:
doxyfile-path: '.github/Doxyfile'
- uses: peaceiris/actions-gh-pages@v3
with:
deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
external_repository: robosoft-ai/smacc2_doxygen
# publish_branch: gh-pages
publish_dir: docs/
destination_dir: ${{ steps.vars.outputs.short_ref }} # Branch name
commit_message: ${{ github.event.head_commit.message }}
================================================
FILE: .github/workflows/jazzy-binary-build.yml
================================================
name: jazzy Binary Build
on:
pull_request:
branches:
- jazzy
push:
branches:
- jazzy
schedule: # Run every morning to detect flakiness and broken dependencies
- cron: '43 3 * * *'
jobs:
ci:
name: jazzy binary build
runs-on: ubuntu-24.04
container:
image: osrf/ros:jazzy-desktop
steps:
- uses: actions/checkout@v1
- name: dependencies and build
shell: bash
run: |
apt-get update
rm /etc/ros/rosdep/sources.list.d/20-default.list
rosdep init
rosdep update
vcs import < .github/SMACC2.jazzy.repos
rosdep install --from-paths . --ignore-src -r -y
source /opt/ros/jazzy/setup.bash
# Skip packages that require special dependencies or configurations:
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release --packages-skip sm_panda_cl_moveit2z_cb_inventory sm_pack_ml sm_atomic sm_atomic_lifecycle sm_atomic_mode_states sm_advanced_recovery_1 sm_branching sm_multi_stage_1 sm_multithread_test_1 sm_three_some sm_cl_keyboard_unit_test_1 sm_cl_ros2_timer_unit_test_1
================================================
FILE: .github/workflows/jazzy-bloom-release.yml
================================================
name: jazzy bloom-release
on:
push:
paths:
- package.xml
- '*/package.xml'
branches: jazzy
workflow_dispatch:
jobs:
bloom-release:
runs-on: ubuntu-latest
container:
image: osrf/ros:jazzy-desktop
env:
ROS_DISTRO: jazzy
PRERELEASE: true
BASEDIR: ${{ github.workspace }}/.work
steps:
- name: checkout
uses: actions/checkout@v3
- shell: bash
run: |
apt-get update
apt-get install -y python3-colcon-* python3-colcon-coveragepy-result
source /opt/ros/jazzy/setup.bash
rosdep update
rosdep install --from-paths . --ignore-src -r -y --skip-keys warehouse_ros_mongo
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release --packages-up-to smacc2 smacc2_msgs
# BLOOM RELEASE
- name: bloom release
uses: at-wat/bloom-release-action@v0
with:
ros_distro: ${{ env.ROS_DISTRO }}
github_token_bloom: ${{ secrets.GITTOKEN_BLOOM2 }}
github_user: pabloinigoblasco
git_user: pabloinigoblasco
git_email: pablo@ibrobotics.com
release_repository_push_url: https://github.com/robosoft-ai/SMACC2-release
tag_and_release: true
open_pr: true
================================================
FILE: .github/workflows/jazzy-semi-binary-build.yml
================================================
name: jazzy Semi-Binary Build
on:
pull_request:
branches:
- jazzy
push:
branches:
- jazzy
schedule: # Run every morning to detect flakiness and broken dependencies
- cron: '43 3 * * *'
jobs:
ci:
name: jazzy semi-binary build
runs-on: ubuntu-24.04
container:
image: osrf/ros:jazzy-desktop
steps:
- uses: actions/checkout@v1
- name: dependencies and build
shell: bash
run: |
apt-get update
rm /etc/ros/rosdep/sources.list.d/20-default.list
rosdep init
rosdep update
vcs import < .github/SMACC2.jazzy.repos
rosdep install --from-paths . --ignore-src -r -y
source /opt/ros/jazzy/setup.bash
# Skip packages that require special dependencies or configurations:
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release --packages-skip sm_panda_moveit2z_cb_inventory sm_panda_cl_moveit2z_cb_inventory sm_pack_ml sm_atomic sm_atomic_lifecycle sm_atomic_mode_states sm_advanced_recovery_1 sm_branching sm_multi_stage_1 sm_three_some
================================================
FILE: .gitignore
================================================
dependencies
build
install
log
bin
.ccache
.work
================================================
FILE: .pre-commit-config.yaml
================================================
# To use:
#
# pre-commit run -a
#
# Or:
#
# pre-commit install # (runs every time you commit in git)
#
# To update this file:
#
# pre-commit autoupdate
#
# See https://github.com/pre-commit/pre-commit
repos:
# Standard hooks
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.1.0
hooks:
- id: check-added-large-files
- id: check-ast
- id: check-case-conflict
- id: check-docstring-first
- id: check-merge-conflict
- id: check-symlinks
- id: check-xml
#- id: check-yaml
- id: debug-statements
- id: end-of-file-fixer
- id: mixed-line-ending
#- id: trailing-whitespace
- id: fix-byte-order-marker
# Python hooks
- repo: https://github.com/asottile/pyupgrade
rev: v2.31.0
hooks:
- id: pyupgrade
args: [--py36-plus]
- repo: https://github.com/psf/black
rev: 22.3.0
hooks:
- id: black
args: ["--line-length=99"]
# PEP 257
# - repo: https://github.com/FalconSocial/pre-commit-mirrors-pep257
# rev: v0.3.3
# hooks:
# - id: pep257
# args: ["--ignore=D100,D101,D102,D103,D104,D105,D106,D107,D203,D212,D404"]
#- repo: https://github.com/pycqa/flake8
# rev: 4.0.1
# hooks:
# - id: flake8
# args: ["--ignore=E501,W503"]
# CPP hooks
- repo: local
hooks:
- id: clang-format
name: clang-format
description: Format files with ClangFormat.
entry: clang-format
language: system
files: \.(c|cc|cxx|cpp|frag|glsl|h|hpp|hxx|ih|ispc|ipp|java|js|m|proto|vert)$
args: ['-fallback-style=none', '-i']
exclude: smacc2_sm_reference_library/
# - repo: local
# hooks:
# - id: ament_cppcheck
# name: ament_cppcheck
# description: Static code analysis of C/C++ files.
# stages: [commit]
# entry: ament_cppcheck
# language: system
# files: \.(h\+\+|h|hh|hxx|hpp|cuh|c|cc|cpp|cu|c\+\+|cxx|tpp|txx)$
# Maybe use https://github.com/cpplint/cpplint instead
#- repo: local
#hooks:
#- id: ament_cpplint
#name: ament_cpplint
#description: Static code analysis of C/C++ files.
#stages: [commit]
#entry: ament_cpplint
#language: system
#files: \.(h\+\+|h|hh|hxx|hpp|cuh|c|cc|cpp|cu|c\+\+|cxx|tpp|txx)$
#args: ["--linelength=100", "--filter=-whitespace/newline,-build/header_guard,-build/include_order,-build/namespaces"]
# Cmake hooks
- repo: local
hooks:
- id: ament_lint_cmake
name: ament_lint_cmake
description: Check format of CMakeLists.txt files.
stages: [commit]
entry: ament_lint_cmake
language: system
files: CMakeLists\.txt$
# Copyright
- repo: local
hooks:
- id: ament_copyright
name: ament_copyright
description: Check if copyright notice is available in all files.
stages: [commit]
entry: ament_copyright
language: system
# Docs - RestructuredText hooks
- repo: https://github.com/PyCQA/doc8
rev: 0.10.1
hooks:
- id: doc8
args: ['--max-line-length=100', '--ignore=D001']
exclude: CHANGELOG\.rst$
- repo: https://github.com/pre-commit/pygrep-hooks
rev: v1.9.0
hooks:
- id: rst-backticks
exclude: CHANGELOG\.rst$
- id: rst-directive-colons
- id: rst-inline-touching-normal
================================================
FILE: CLAUDE.md
================================================
//////////////////////////////////////////////////////////////////////////////
# SMACC2 Object Lifetimes
SMACC2 runtime objects can be categorized according to object lifetimes.
State machine-scoped objects persist throughout the entire state machine
execution, while state-scoped objects are dynamically created and destroyed with
state transitions.
### State Scoped Objects (Lifetime tied to individual states)
- States (St)
- Client Behaviors (Cb)
- State Reactors (Sr)
- Event Generators (Eg)
### State Machine Scoped Objects (Lifetime tied to the State Machine)
- State Machines (Sm)
- Orthogonals (Or)
- Clients (Cl)
- Components (Cp)
//////////////////////////////////////////////////////////////////////////////
# SMACC Signals
SmaccSignal is a communication mechanism (template wrapper around boost::signals2).
### Runtime architecture
The actual runtime object is the SignalDetector (State Machine Scoped)
- No prefix - singleton per state machine
- Lifetime: State machine lifetime
- Purpose: Polls and processes all signals in the system
- Key responsibilities:
- Manages signal processing loop
- Finds and updates ISmaccUpdatable objects
- Coordinates signal connections/disconnections
- Handles execution model (single-threaded vs multi-threaded)
### Signal Connection Lifetime Management
Signal connections are managed through the state machine's
createSignalConnection() which:
1. Creates smacc2::SmaccSignalConnection connections between signal sources and
callbacks
2. Tracks connections by object pointer
3. Automatically disconnects when objects are destroyed via
disconnectSmaccSignalObject()
4. Ensures proper cleanup when states exit (disconnecting state-scoped
object signals)
### Important Core Files
- smacc2/include/smacc2/common.hpp
- smacc2/include/smacc2/smacc_signal.hpp
- smacc2/include/smacc2/smacc_state_machine.hpp
- smacc2/include/smacc2/impl/smacc_state_machine_impl.hpp
- smacc2/include/smacc2/smacc_client.hpp
- smacc2/include/smacc2/impl/smacc_client_impl.hpp
- smacc2/include/smacc2/callback_counter_semaphore.hpp
- smacc2/src/smacc2/orthogonal.cpp
### Important Client Library Related Files
- smacc2/include/smacc2/smacc_asynchronous_client_behavior.hpp
- smacc2/include/smacc2/client_core_components/cp_topic_subscriber.hpp
- smacc2/include/smacc2/impl/smacc_asynchronous_client_behavior_impl.hpp
- smacc2/include/smacc2/client_bases/smacc_action_client_base.hpp
- smacc2/include/smacc2/client_bases/smacc_service_server_client.hpp
### Important Classes
- SmaccSignal
### Usage in SMACC Client Libraries
- Clients have signals: onSucceeded_, onAborted_, onMessageReceived_
- Components have signals: onMessageTimeout_, onResponseReceived_
- ClientBehaviors have signals: onSuccess_, onFailure_, onFinished_
### Example usage in Clients:
- smacc2_client_library/cl_lifecycle_node/include/cl_lifecycle_node/cl_lifecycle_node.hpp
- smacc2_client_library/cl_ros2_timer/include/cl_ros2_timer/cl_ros_timer.hpp
- smacc2_client_library/moveit2z_client/include/moveit2z_client/cl_moveit2z.hpp
- smacc2_client_library/nav2z_client/nav2z_client/include/nav2z_client/nav2z_client.hpp
- smacc2_client_library/http_client/include/http_client/cl_http_client.hpp
- smacc2_client_library/cl_keyboard/include/cl_keyboard/cl_keyboard.hpp
### Example usage in Client Behaviors:
- smacc2_client_library/cl_ros2_timer/include/cl_ros2_timer/client_behaviors/cb_timer_countdown_once.hpp
### Example usage in Components:
- smacc2_client_library/nav2z_client/nav2z_client/include/nav2z_client/components/waypoints_navigator/cp_waypoints_navigator.hpp
### Boost Signals2 Documentation
https://www.boost.org/doc/libs/1_89_0/doc/html/signals2.html
### Boost Signals2 Source Code
https://github.com/boostorg/signals2
## Problems related to incorrectly using boost signal raw instead of the SmaccSignal approach.
After analyzing the SMACC signal architecture, using raw boost::signals2
would cause catastrophic failures:
### Memory Leaks from Orphaned Connections
Client behaviors create signal connections in onEntry() but without disconnectSmaccSignalObject() being called automatically at state exit, these connections would persist indefinitely.
Each state transition would accumulate more dead connections, eventually exhausting memory.
### Segmentation Faults from Dangling Callbacks
Most critical for client behaviors: When a CbNavigateForward subscribes to ClNav2Z::onSucceeded_ signal using raw boost::signals2, the connection would outlive the behavior.
When navigation completes after the state has exited, the signal would invoke a callback on a destroyed behavior object → immediate segfault.
### State Machine Corruption
Without EventLifeTime::CURRENT_STATE enforcement, client behaviors could post events after their state exits.
Example: An async CbTimer using raw signals could fire EvTimer<TsFinished> into the wrong state, triggering invalid transitions and breaking the entire state flow.
### Race Conditions in Multi-threaded Execution
The SignalDetector synchronizes signal processing through its polling loop and scheduler.
Raw boost::signals2 connections would fire callbacks directly from arbitrary threads (ROS executor threads, timer threads), causing:
- Concurrent state modifications
- Non-deterministic event ordering
- Data races in state machine internals
### Invisible Signal Flows
createSignalConnection() registers connections with the state machine for introspection.
Raw connections would be invisible to:
- State machine visualization tools
- Runtime debugging
- Signal flow analysis
- Connection leak detection
### Async Client Behavior Breakdown
SmaccAsyncClientBehavior relies on signals (onSuccess_, onFailure_, onFinished_) managed by the framework.
Raw signal usage would:
- Break the async behavior protocol
- Prevent proper requestForceFinish() handling
- Cause behaviors to "hang" indefinitely
- Make waitOnEntryThread_ synchronization fail
### Connection Lifecycle Chaos
Without centralized management through signalConnectionsManager_, developers would need to manually track every connection and ensure disconnection at the exact right moment - an error-prone nightmare in complex state machines with dozens of concurrent behaviors.
The SmaccSignal approach isn't just convenience - it's essential for correctness. The automatic lifecycle management prevents an entire class of runtime failures that would be nearly impossible to debug in production.
//////////////////////////////////////////////////////////////////////////////
# SMACC2 Threading & Asynchronous I/O
SMACC2's threading architectureuses a sophisticated hybrid concurrency model that solves a fundamental robotics challenge: maintaining deterministic state machine behavior while handling inherently asynchronous real-world I/O.
SMACC2 uses what can be referred to as event-queue-mediated concurrency: async operations run in separate threads but communicate exclusively through a synchronized event queue, never directly touching state machine internals.
## Thread Hierarchy & Roles
### 1. State Machine Main Thread (Deterministic Core)
- Executes all state logic, transitions, and onEntry()/onExit() calls
- Only thread allowed to modify state machine state
- Processes events sequentially from SmaccFifoScheduler queue
- Guaranteed deterministic behavior regardless of event timing
### 2. SignalDetector Coordination Thread
- Bridges async world to synchronous state machine
- Runs at configurable frequency (default 20Hz) via pollingLoop()
- Critical responsibilities:
- Calls executeUpdate() on all ISmaccUpdatable objects
- Processes ROS2 callbacks via rclcpp::spin_some()
- Manages updatable object lifecycle (finds new ones, cleans up
destroyed ones)
- Enforces state transition barriers (no updates during transitions)
### 3. Async Behavior Worker Threads
- Spawned via std::async(std::launch::async) for each
SmaccAsyncClientBehavior
- Run completely independent operations (navigation, manipulation, long
computations)
- Controlled termination: requestForceFinish_ flag monitored by behavior
implementations
- Lifecycle synchronization: State exit blocks until all async behaviors
complete via waitOnEntryThread()
### 4. ROS2 Executor Threads
- Handle ROS2 subscriptions, timers, service calls
- Never directly modify state machine - only post events through signal
connections
- Two modes: SINGLE_THREAD_SPINNER or MULTI_THREAD_SPINNER for callback
concurrency
## Async I/O Patterns & Use Cases
### Pattern 1: Long-Running Operations (SmaccAsyncClientBehavior)
```cpp
// Navigation behavior runs in separate thread
class CbNavigateForward : public SmaccAsyncClientBehavior {
void onEntry() override {
// This runs in dedicated thread, doesn't block state machine
navigationClient_->sendGoal(target);
// Behavior posts success/failure events when complete
}
};
```
- Use case: Navigation, manipulation, file I/O, network requests
- Lifecycle: Thread spawned on state entry, must complete before state
exit
- Communication: Posts EvCbSuccess/EvCbFailure events to queue
### Pattern 2: Periodic Monitoring (ISmaccUpdatable)
```cpp
// Component that monitors sensor data
class CpLidarMonitor : public ISmaccComponent, public ISmaccUpdatable {
void update() override {
// Called every 50ms by SignalDetector
if (checkObstacleDetected()) {
postEvent<EvObstacleDetected>();
}
}
};
```
- Use case: Sensor monitoring, watchdogs, periodic calculations
- Lifecycle: Updated while component/behavior is active
- Frequency: Controlled by SignalDetector loop rate
### Pattern 3: Event-Driven I/O (ROS2 Callbacks)
```cpp
// Timer fires in ROS executor thread
timer_->registerCallback([this]() {
// This runs in ROS thread, posts event to state machine
onTimerTick_.emit(); // Signal connection handles thread-safe event
posting
});
```
- Use case: ROS2 subscriptions, timers, service responses
- Lifecycle: Managed by ROS2 executor
- Thread safety: Signals automatically queue events to main thread
## Synchronization Mechanisms
### 1. Event Queue as Synchronization Primitive
- All async→sync communication flows through SmaccFifoScheduler event
queue
- Thread-safe event posting from any thread
- Sequential processing in main thread ensures determinism
### 2. State Transition Barriers
- Updates suspended during STATE_CONFIGURING, STATE_ENTERING,
STATE_EXITING
- Prevents race conditions during state machine topology changes
- Async behaviors must complete before state exit proceeds
### 3. Automatic Resource Management
- Signal connections track object lifetimes
- disconnectSmaccSignalObject() prevents callbacks to destroyed objects
- State-scoped objects automatically cleaned up on state exit
## Design Strengths
- Determinism Without Blocking: State machine logic remains predictable
while I/O operations run concurrently.
- Deadlock Prevention: Multiple escape mechanisms (requestForceFinish_,
timeouts, force disconnections) prevent system hangs.
- Memory Safety: Automatic lifecycle management prevents dangling pointers
and callback-after-destruction bugs.
- Flexible Concurrency: Three distinct patterns handle different async I/O
requirements without forcing a one-size-fits-all solution.
- Debugging Simplicity: Single-threaded state logic is much easier to debug
than fully concurrent state machines.
The architecture achieves controlled chaos - allowing the inherently
chaotic async world to coexist with the deterministic requirements of
state machine logic through careful interface boundaries and
synchronization primitives.
//////////////////////////////////////////////////////////////////////////////
# Other SMACC2 Documentation File Locations
### Client Library
SMACC2/smacc2_client_library/CLAUDE.md
### Reference Library
SMACC2/smacc2_sm_reference_library/CLAUDE.md
### Project Settings
SMACC2/.claude/settings.json
### Release Process
SMACC2/RELEASING.md - Comprehensive guide for creating SMACC2 releases
//////////////////////////////////////////////////////////////////////////////
## Token Conservation
- Summarize lengthy outputs instead of showing full logs
- Group similar error messages
- Skip routine background process messages
- Prioritize actionable information over verbose logging
//////////////////////////////////////////////////////////////////////////////
# Other References
### Boost Statechart Documentation
https://www.boost.org/doc/libs/1_80_0/libs/statechart/doc/index.html
### Boost Statechart Source Code
https://github.com/boostorg/statechart
### Boost ASIO Documentation
https://www.boost.org/doc/libs/1_89_0/doc/html/boost_asio.html
### Boost ASIO Source Code
https://github.com/boostorg/asio
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing Guidelines
Thank you for your interest in contributing to `smacc2`.
Whether it's a bug report, new feature, correction, or additional
documentation, we greatly value feedback and contributions from our community.
Please read through this document before submitting any issues or pull requests to ensure we have all the necessary
information to effectively respond to your bug report or contribution.
## Reporting Bugs/Feature Requests
We welcome you to use the GitHub issue tracker to report bugs or suggest features.
When filing an issue, please check [existing open][issues], or [recently closed][closed-issues], issues to make sure
somebody else hasn't already reported the issue.
Please try to include as much information as you can. Details like these are incredibly useful:
* A reproducible test case or series of steps
* The version of our code being used
* Any modifications you've made relevant to the bug
* Anything unusual about your environment or deployment
## Contributing via Pull Requests
Contributions via pull requests are much appreciated.
Before sending us a pull request, please ensure that:
1. Limited scope. Your PR should do one thing or one set of things. Avoid adding “random fixes” to PRs. Put those on separate PRs.
2. Give your PR a descriptive title. Add a short summary, if required.
3. Make sure the pipeline is green.
4. Don’t be afraid to request reviews from maintainers.
5. New code = new tests. If you are adding new functionality, always make sure to add some tests exercising the code and serving as live documentation of your original intention.
To send us a pull request, please:
1. Fork the repository.
2. Modify the source; please focus on the specific change you are contributing.
If you also reformat all the code, it will be hard for us to focus on your change.
3. Ensure local tests pass. (`colcon test` and `pre-commit run -a` (requires you to install pre-commit by `sudo apt install pre-commit` on Ubuntu 24.04+)
4. Commit to your fork using clear commit messages.
5. Send a pull request, answering any default questions in the pull request interface.
6. Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation.
GitHub provides additional documentation on [forking a repository](https://help.github.com/articles/fork-a-repo/) and
[creating a pull request](https://help.github.com/articles/creating-a-pull-request/).
## Finding contributions to work on
Looking at the existing issues is a great way to find something to contribute on.
As this project, by default, uses the default GitHub issue labels
(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any ['help wanted'][help-wanted] issues
is a great place to start.
## Licensing
Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that [license](http://www.apache.org/licenses/LICENSE-2.0.html):
~~~
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
~~~
[issues]: https://github.com/robosoft-ai/SMACC2/issues
[closed-issues]: https://github.com/robosoft-ai/SMACC2/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aclosed%20
[help-wanted]: https://github.com/robosoft-ai/SMACC2/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22
[license]: http://www.apache.org/licenses/LICENSE-2.0.html
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
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.
================================================
FILE: README.md
================================================
# SMACC2
SMACC2 is an event-driven, asynchronous, behavioral state machine library for real-time ROS 2 (Robotic Operating System) applications written in C++, designed to allow programmers to build robot control applications for multicomponent robots, in an intuitive and systematic manner.
## Repository Status, Packages and Documentation
ROS 2 Distro | Branch | Build status | Documentation | Released packages
:---------: | :----: | :----------: | :-----------: | :---------------:
**Foxy** | [`foxy`](https://github.com/robosoft-ai/SMACC2/tree/foxy) | [](https://github.com/robosoft-ai/SMACC2/actions/workflows/foxy-binary-build.yml?branch=foxy) <br /> [](https://github.com/robosoft-ai/SMACC2/actions/workflows/foxy-semi-binary-build.yml?branch=foxy) | [](https://github.com/robosoft-ai/SMACC2/actions/workflows/doxygen-deploy.yml) <br /> [Generated Doc](https://robosoft-ai.github.io/smacc2_doxygen/foxy/html/namespaces.html) | [](http://docs.ros.org/en/humble/Releases/End-of-Life.html) <br/>[SMACC2](https://index.ros.org/p/smacc2/github-robosoft-ai-SMACC2/#foxy)
**Humble** | [`humble`](https://github.com/robosoft-ai/SMACC2/tree/humble) | [](https://github.com/robosoft-ai/SMACC2/actions/workflows/humble-binary-build.yml?branch=humble)<br/> [](https://github.com/robosoft-ai/SMACC2/actions/workflows/humble-semi-binary-build.yml?branch=humble) | [](https://github.com/robosoft-ai/SMACC2/actions/workflows/doxygen-deploy.yml) <br /> [Generated Doc](https://robosoft-ai.github.io/smacc2_doxygen/humble/html/namespaces.html)| [](https://build.ros2.org/job/Hsrc_uJ__smacc2__ubuntu_jammy__source/)<br/> [SMACC2](https://index.ros.org/p/smacc2/github-robosoft-ai-SMACC2/#humble)
**Jazzy** | [`jazzy`](https://github.com/robosoft-ai/SMACC2/tree/jazzy) | [](https://github.com/robosoft-ai/SMACC2/actions/workflows/jazzy-binary-build.yml?branch=jazzy) <br /> [](https://github.com/robosoft-ai/SMACC2/actions/workflows/jazzy-semi-binary-build.yml?branch=jazzy) | [](https://github.com/robosoft-ai/SMACC2/actions/workflows/doxygen-deploy.yml) <br /> [Generated Doc](https://robosoft-ai.github.io/smacc2_doxygen/jazzy/html/namespaces.html) | [SMACC2](https://index.ros.org/p/smacc2/github-robosoft-ai-SMACC2/#jazzy)
**NOTE**: There are three build stages checking current and future compatibility of the package.
1. Binary builds - against released packages (main and testing) in ROS distributions. Shows that direct local build is possible.
Uses repos file: `src/SMACC2/.github/SMACC2-not-released.<ros-distro>.repos`
1. Semi-binary builds - against released core ROS packages (main and testing), but the immediate dependencies are pulled from source.
Shows that local build with dependencies is possible and if fails there we can expect that after the next package sync we will not be able to build.
Uses repos file: `src/SMACC2/.github/SMACC2.repos`
1. Source build - also core ROS packages are build from source. It shows potential issues in the mid future.
## Getting started - ROS Jazzy
1. [Install ROS 2 Jazzy](https://docs.ros.org/en/jazzy/Installation/Ubuntu-Install-Debians.html).
2. Make sure that `colcon`, its extensions, `vcs`, and development tools are installed:
```
sudo apt install python3-colcon-common-extensions python3-vcstool clang-format pre-commit
```
3. Create a new ROS 2 workspace if necessary:
```
export COLCON_WS=~/workspace/jazzy_ws
mkdir -p $COLCON_WS/src
```
4. Or just navigate to your workspace source folder:
```
cd ~/workspace/jazzy_ws/src
```
5. Clone the repo:
```
git clone https://github.com/robosoft-ai/SMACC2.git
```
6. Checkout the Jazzy branch:
```
cd ~/workspace/jazzy_ws/src/SMACC2
git checkout jazzy
```
7. Navigate to the workspace:
```
cd ~/workspace/jazzy_ws
```
8. Update System:
```
sudo apt update
sudo apt upgrade
```
9. Source the workspace:
```
source /opt/ros/jazzy/setup.bash
```
10. Update dependencies:
```
rosdep update
```
11. Pull relevant packages and install dependencies:
```
vcs import src --skip-existing --input src/SMACC2/.github/SMACC2.jazzy.repos
rosdep install --ignore-src --from-paths src -y -r
```
12. Compile:
```
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
```
## Features
* ***Powered by ROS 2:*** SMACC2 has been developed specifically to work with ROS 2. It supports ROS 2 topics, services and actions, right out of the box.
* ***Written in C++:*** Until now, ROS 2 has lacked a library to develop task-level behavioral state machines in C++. Although libraries have been developed in scripting languages such as python, these are unsuitable for real-world industrial environments where real-time requirements are demanded.
* ***Orthogonals:*** Originally conceived by David Harel in 1987, orthogonality is absolutely crucial to developing state machines for complex robotic systems. This is because complex robots are always a collection of hardware devices which require communication protocols, start-up determinism, etc. With orthogonals, it is an intuitive and relatively straight forward exercise (at least conceptually;) to code a state machine for a robot comprising a mobile base, a robotic arm, a gripper, two lidar sensors, a gps transceiver and an imu, for instance.
* ***Static State Machine Checking:*** One of the features that SMACC2 inherits from Boost Statechart is that you get compile time validation checking. This benefits developers in that the amount of runtime testing necessary to ship quality software that is both stable and safe is dramatically reduced. Our philosophy is "Wherever possible, let the compiler do it".
* ***State Machine Reference Library:*** With a constantly growing library of out-of-the-box reference state machines, (found in the folder [sm_reference_library](smacc2_sm_reference_library)) guaranteed to compile and run, you can jumpstart your development efforts by choosing a reference machine that is closest to your needs, and then customize and extend to meet the specific requirements of your robotic application. All the while knowing that the library supports advanced functionalities that are practically universal among actual working robots.
* ***SMACC2 Client Library:*** SMACC2 also features a constantly growing library of [clients](smacc2_client_library) that support ROS 2 Action Servers, Service Servers and other nodes right out-of-the box. The clients within the SMACC2 Client library have been built utilizing a component based architecture that allows for developer to build powerful clients of their own. Current clients of note include MoveBaseZ, a full featured Action Client built to integrate with Nav2, the cl_ros2_timer, the multi_role_sensor_client, and a cl_keyboard used extensively for state machine drafting & debugging.
* ***Extensive Documentation:*** Although many ROS users are familiar with doxygen, our development team has spent a lot of time researching the more advanced features of doxygen such as uml style class diagrams and call graphs, and we've used them to document the SMACC2 library. Have a look to [our doxygen sites](https://robosoft-ai.github.io/smacc2_doxygen/master/html/namespaces.html) and we think you'll be blown away at what Doxygen looks like when [it's done right](https://robosoft-ai.github.io/smacc2_doxygen/master/html/classsmacc2_1_1ISmaccStateMachine.html) and it becomes a powerful tool to research a codebase.
* ***SMACC2 Runtime Analyzer:*** The SMACC2 library works out of the box with the SMACC2 RTA. This allows developers to visualize and runtime debug the state machines they are working on. The SMACC2 RTA is closed source, but is free for individual and academic use. It can be found [here](https://robosoft.ai/product-category/smacc2-runtime-analyzer/).
## Repository Structure
- `smacc2` - core library of SMACC2.
- `smacc2_client_library` - client libraries for SMACC2, e.g., Navigation2 (`nav2z_client`), MoveIt2 (`moveit2z_client`).
- `smacc2_event_generators` - ...
- `smacc2_msgs` - ROS 2 messages for SMACC2 framework.
- `smacc2_sm_reference_library` - libraries with reference implementations of state-machines used for demonstration and testing of functionalities.
- `↓smacc2_state_reactor_library` - ...
- `smacc2_performance_tools` - ...
## SMACC2 applications
From it's inception, SMACC2 was written to support the programming of multi-component, complex robots. If your project involves small, solar-powered insect robots, that simply navigate towards a light source, then SMACC2 might not be the right choice for you. But if you are trying to program a robot with a mobile base, a robotic arm, a gripper, two lidar sensors, a gps transceiver and an imu, then you've come to the right place.
## Run a State Machine
The easiest way to get started is by selecting one of the state machines in our [reference library](smacc2_sm_reference_library), and then hacking it to meet your needs.
Each state machine in the reference library comes with it's own README.md file, which contains the appropriate operating instructions, so that all you have to do is simply copy & paste some commands into your terminal.
* If you are looking for a minimal example, we recommend [sm_atomic](smacc2_sm_reference_library/sm_atomic).
* If you are looking for a minimal example but with a looping superstate, try [sm_three_some](smacc2_sm_reference_library/sm_three_some).
* If you want to get started with the ROS Navigation stack right away, try [sm_nav2_test_7](https://github.com/robosoft-ai/nova_carter_sm_library/tree/main/sm_nav2_test_7).
Operating instructions can be found in each reference state machines readme file.
Happy Coding!
## Support
If you are interested in getting involved or need a little support, feel free to contact us by emailing techsupport@robosoft.ai
================================================
FILE: docs/cl_modbus_tcp_relay_plan.md
================================================
# cl_modbus_tcp_relay Implementation Plan
## Overview
Create a SMACC2 client library for controlling an 8-channel Modbus TCP relay (Waveshare POE ETH Relay). The client uses **libmodbus** directly for Modbus TCP communication (mbpoll available separately for CLI debugging) and follows SMACC2's pure component-based architecture.
## Design Decisions
- **Library**: libmodbus C library (direct integration, not subprocess)
- **Location**: `src/SMACC2/smacc2_client_library/cl_modbus_tcp_relay/`
- **Behaviors**: SmaccAsyncClientBehavior for non-blocking relay operations
## Target Hardware
- **Device**: Waveshare 8-Channel POE ETH Relay
- **Protocol**: Modbus TCP
- **Default IP**: 192.168.1.254
- **Default Port**: 502
- **Slave ID**: 0x01
- **Coil Addresses**: 0x0000-0x0007 (channels 1-8), 0x00FF (all channels)
---
## Architecture
### Client: ClModbusTcpRelay
Pure orchestrator that creates and configures components during initialization.
**Constructor Parameters:** None - all configuration loaded from YAML config file.
**YAML Configuration (in state machine's config directory):**
```yaml
# sm_example/config/sm_example_config.yaml
sm_example:
ros__parameters:
modbus_relay:
ip_address: "192.168.1.254"
port: 502
slave_id: 1
heartbeat_interval_ms: 1000
connect_on_init: true
```
**Default Values (if not specified in config):**
- `ip_address`: "192.168.1.254"
- `port`: 502
- `slave_id`: 1
- `heartbeat_interval_ms`: 1000
- `connect_on_init`: true
### Components
#### 1. CpModbusConnection
Manages libmodbus context lifecycle, TCP connection, and heartbeat monitoring.
**Responsibilities:**
- Create/destroy modbus_t context
- Manage TCP connection state
- Periodic heartbeat via ISmaccUpdatable (reads coil status to verify connectivity)
- Emit connection state change signals
- Thread-safe connection access via mutex
**Signals:**
- `onConnectionLost_` - Emitted when heartbeat fails
- `onConnectionRestored_` - Emitted when reconnection succeeds
- `onConnectionError_` - Emitted on connection errors with error message
**Methods:**
- `connect()` - Establish TCP connection
- `disconnect()` - Close connection gracefully
- `reconnect()` - Close and re-establish connection
- `isConnected()` - Check connection state
- `getContext()` - Get modbus_t* for operations (thread-safe)
**Pattern Reference:**
- `CpHttpConnectionManager` for connection lifecycle
- `CpMessageTimeout` for heartbeat/watchdog pattern
- `ISmaccUpdatable` for periodic monitoring
#### 2. CpModbusRelay
Handles Modbus coil read/write operations for the 8-channel relay.
**Responsibilities:**
- Write single coil (channel on/off)
- Write all coils simultaneously
- Read single coil status
- Read all coil statuses
- Emit operation result signals
**Signals:**
- `onWriteSuccess_` - Emitted on successful write with channel info
- `onWriteFailure_` - Emitted on write failure with error
- `onReadComplete_` - Emitted with current relay states (8-bit mask)
**Methods:**
- `writeCoil(int channel, bool state)` - Write single channel (1-8)
- `writeAllCoils(bool state)` - Write all channels
- `writeAllCoils(uint8_t mask)` - Write all channels with bitmask
- `readCoil(int channel)` - Read single channel state
- `readAllCoils()` - Read all channel states
**Modbus Protocol Mapping:**
| Operation | Function Code | Address |
|-----------|---------------|---------|
| Single Relay ON/OFF | 0x05 | 0x0000-0x0007 |
| All Relays ON/OFF | 0x0F | 0x0000 (8 coils) |
| Read Single Coil | 0x01 | 0x0000-0x0007 |
| Read All Coils | 0x01 | 0x0000 (8 coils) |
---
### Events
```cpp
// Connection events
template <typename TSource, typename TOrthogonal>
struct EvConnectionLost : sc::event<EvConnectionLost<TSource, TOrthogonal>> {};
template <typename TSource, typename TOrthogonal>
struct EvConnectionRestored : sc::event<EvConnectionRestored<TSource, TOrthogonal>> {};
// Relay operation events
template <typename TSource, typename TOrthogonal>
struct EvRelayWriteSuccess : sc::event<EvRelayWriteSuccess<TSource, TOrthogonal>> {};
template <typename TSource, typename TOrthogonal>
struct EvRelayWriteFailure : sc::event<EvRelayWriteFailure<TSource, TOrthogonal>> {};
```
---
### Client Behaviors
#### CbRelayOn
Turn on a specific relay channel.
```cpp
class CbRelayOn : public smacc2::SmaccAsyncClientBehavior
{
public:
CbRelayOn(int channel); // channel 1-8
template <typename TOrthogonal, typename TSourceObject>
void onStateOrthogonalAllocation();
void onEntry() override;
private:
int channel_;
CpModbusRelay* relayComponent_;
};
```
#### CbRelayOff
Turn off a specific relay channel.
#### CbAllRelaysOn
Turn on all 8 relay channels simultaneously.
#### CbAllRelaysOff
Turn off all 8 relay channels simultaneously.
#### CbRelayStatus
Read the status of relay channels (can be configured for single channel or all).
```cpp
class CbRelayStatus : public smacc2::SmaccAsyncClientBehavior
{
public:
CbRelayStatus(); // Read all channels
CbRelayStatus(int channel); // Read specific channel
template <typename TOrthogonal, typename TSourceObject>
void onStateOrthogonalAllocation();
void onEntry() override;
// Callback for read completion
virtual void onStatusRead(uint8_t channelStates);
private:
std::optional<int> channel_;
CpModbusRelay* relayComponent_;
};
```
---
## Package Structure
```
src/SMACC2/smacc2_client_library/cl_modbus_tcp_relay/
├── include/cl_modbus_tcp_relay/
│ ├── cl_modbus_tcp_relay.hpp # Main client header
│ ├── client_behaviors/
│ │ ├── cb_relay_on.hpp
│ │ ├── cb_relay_off.hpp
│ │ ├── cb_all_relays_on.hpp
│ │ ├── cb_all_relays_off.hpp
│ │ └── cb_relay_status.hpp
│ └── components/
│ ├── cp_modbus_connection.hpp
│ └── cp_modbus_relay.hpp
├── src/cl_modbus_tcp_relay/
│ ├── cl_modbus_tcp_relay.cpp
│ └── components/
│ ├── cp_modbus_connection.cpp
│ └── cp_modbus_relay.cpp
├── CMakeLists.txt
├── package.xml
└── README.md
```
---
## Implementation Details
### CpModbusConnection Implementation
```cpp
class CpModbusConnection : public smacc2::ISmaccComponent, public smacc2::ISmaccUpdatable
{
public:
CpModbusConnection(); // No constructor params - config from YAML
void onInitialize() override;
~CpModbusConnection();
// Connection management
bool connect();
void disconnect();
bool reconnect();
bool isConnected() const;
// Thread-safe context access
modbus_t* getContext();
std::mutex& getMutex();
// Signals
smacc2::SmaccSignal<void()> onConnectionLost_;
smacc2::SmaccSignal<void()> onConnectionRestored_;
smacc2::SmaccSignal<void(const std::string&)> onConnectionError_;
// Event posting (set during onStateOrthogonalAllocation)
template <typename TOrthogonal, typename TClient>
void onStateOrthogonalAllocation();
protected:
void update() override; // Heartbeat check
private:
// Configuration loaded from YAML in onInitialize()
std::string ip_address_;
int port_;
int slave_id_;
int heartbeat_interval_ms_;
bool connect_on_init_;
modbus_t* ctx_;
bool connected_;
mutable std::mutex mutex_;
std::function<void()> postConnectionLostEvent_;
std::function<void()> postConnectionRestoredEvent_;
// Helper for parameter loading
template <typename T>
void declareAndLoadParam(const std::string& name, T& value, const T& default_val);
};
```
### Parameter Loading (in onInitialize())
```cpp
void CpModbusConnection::onInitialize()
{
auto node = getNode();
// Load configuration from YAML with defaults
ip_address_ = "192.168.1.254";
declareAndLoadParam("modbus_relay.ip_address", ip_address_, ip_address_);
port_ = 502;
declareAndLoadParam("modbus_relay.port", port_, port_);
slave_id_ = 1;
declareAndLoadParam("modbus_relay.slave_id", slave_id_, slave_id_);
heartbeat_interval_ms_ = 1000;
declareAndLoadParam("modbus_relay.heartbeat_interval_ms", heartbeat_interval_ms_, heartbeat_interval_ms_);
connect_on_init_ = true;
declareAndLoadParam("modbus_relay.connect_on_init", connect_on_init_, connect_on_init_);
RCLCPP_INFO(getLogger(), "[CpModbusConnection] Config: %s:%d (slave=%d, heartbeat=%dms)",
ip_address_.c_str(), port_, slave_id_, heartbeat_interval_ms_);
// Set update period for heartbeat
this->setUpdatePeriod(rclcpp::Duration::from_seconds(heartbeat_interval_ms_ / 1000.0));
// Create modbus context
ctx_ = modbus_new_tcp(ip_address_.c_str(), port_);
if (ctx_)
{
modbus_set_slave(ctx_, slave_id_);
modbus_set_response_timeout(ctx_, 1, 0); // 1 second timeout
if (connect_on_init_)
{
connect();
}
}
else
{
RCLCPP_ERROR(getLogger(), "[CpModbusConnection] Failed to create modbus context");
}
}
template <typename T>
void CpModbusConnection::declareAndLoadParam(const std::string& name, T& value, const T& default_val)
{
auto node = getNode();
if (!node->has_parameter(name))
{
node->declare_parameter(name, default_val);
}
node->get_parameter(name, value);
RCLCPP_INFO(getLogger(), "[CpModbusConnection] %s: %s", name.c_str(), std::to_string(value).c_str());
}
```
### Heartbeat Implementation (in update())
```cpp
void CpModbusConnection::update()
{
std::lock_guard<std::mutex> lock(mutex_);
if (!ctx_) return;
// Try to read a single coil as heartbeat
uint8_t status;
int rc = modbus_read_bits(ctx_, 0x0000, 1, &status);
if (rc == -1)
{
if (connected_)
{
connected_ = false;
RCLCPP_WARN(getLogger(), "Modbus connection lost: %s", modbus_strerror(errno));
onConnectionLost_();
if (postConnectionLostEvent_) postConnectionLostEvent_();
}
}
else
{
if (!connected_)
{
connected_ = true;
RCLCPP_INFO(getLogger(), "Modbus connection restored");
onConnectionRestored_();
if (postConnectionRestoredEvent_) postConnectionRestoredEvent_();
}
}
}
```
---
## package.xml
```xml
<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>cl_modbus_tcp_relay</name>
<version>1.0.0</version>
<description>SMACC2 client for Modbus TCP relay control (8-channel)</description>
<maintainer email="your-email@example.com">Your Name</maintainer>
<license>Apache-2.0</license>
<buildtool_depend>ament_cmake</buildtool_depend>
<buildtool_depend>pkg-config</buildtool_depend>
<depend>smacc2</depend>
<!-- System dependency: sudo apt install libmodbus-dev -->
<build_depend>libmodbus-dev</build_depend>
<exec_depend>libmodbus5</exec_depend>
<export>
<build_type>ament_cmake</build_type>
</export>
</package>
```
---
## CMakeLists.txt
**Prerequisites**: Install libmodbus via `sudo apt install libmodbus-dev`
```cmake
cmake_minimum_required(VERSION 3.5)
project(cl_modbus_tcp_relay)
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 17)
endif()
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic)
endif()
find_package(ament_cmake REQUIRED)
find_package(smacc2 REQUIRED)
find_package(PkgConfig REQUIRED)
# Find system-installed libmodbus
pkg_check_modules(MODBUS REQUIRED libmodbus)
include_directories(
include
${smacc2_INCLUDE_DIRS}
${MODBUS_INCLUDE_DIRS}
)
add_library(${PROJECT_NAME}
src/cl_modbus_tcp_relay/cl_modbus_tcp_relay.cpp
src/cl_modbus_tcp_relay/components/cp_modbus_connection.cpp
src/cl_modbus_tcp_relay/components/cp_modbus_relay.cpp
)
target_link_libraries(${PROJECT_NAME}
${smacc2_LIBRARIES}
${MODBUS_LIBRARIES}
)
ament_target_dependencies(${PROJECT_NAME} smacc2)
ament_export_include_directories(include)
ament_export_libraries(${PROJECT_NAME})
install(DIRECTORY include/ DESTINATION include)
install(TARGETS ${PROJECT_NAME} DESTINATION lib/)
ament_package()
```
---
## Usage Example
### YAML Configuration File
```yaml
# sm_relay_test/config/sm_relay_test_config.yaml
sm_relay_test:
ros__parameters:
modbus_relay:
ip_address: "192.168.1.254"
port: 502
slave_id: 1
heartbeat_interval_ms: 1000
connect_on_init: true
```
### In Orthogonal Definition
```cpp
class OrRelay : public smacc2::Orthogonal<OrRelay>
{
public:
void onInitialize() override
{
// No constructor params - config loaded from YAML
auto relay_client = this->createClient<cl_modbus_tcp_relay::ClModbusTcpRelay>();
}
};
```
### In State Definition
```cpp
struct StActivateRelay : smacc2::SmaccState<StActivateRelay, SmRelayTest>
{
using SmaccState::SmaccState;
using reactions = boost::mpl::list<
smacc2::Transition<EvCbSuccess<CbRelayOn, OrRelay>, StNextState>,
smacc2::Transition<EvCbFailure<CbRelayOn, OrRelay>, StError>,
smacc2::Transition<EvConnectionLost<CpModbusConnection, OrRelay>, StReconnect>
>;
static void staticConfigure()
{
configure_orthogonal<OrRelay, cl_modbus_tcp_relay::CbRelayOn>(1); // Turn on channel 1
}
};
```
### In Launch File
```python
# sm_relay_test/launch/sm_relay_test.launch.py
def generate_launch_description():
# Load config file
config_file = os.path.join(
get_package_share_directory('sm_relay_test'),
'config',
'sm_relay_test_config.yaml'
)
return LaunchDescription([
Node(
package='sm_relay_test',
executable='sm_relay_test_node',
name='sm_relay_test',
output='screen',
parameters=[config_file]
)
])
```
---
## mbpoll CLI Reference
For manual testing and debugging:
```bash
# Read all 8 coil states
mbpoll -m tcp -a 1 -t 0 -r 1 -c 8 192.168.1.254
# Write single coil ON (channel 1)
mbpoll -m tcp -a 1 -t 0 -r 1 192.168.1.254 1
# Write single coil OFF (channel 1)
mbpoll -m tcp -a 1 -t 0 -r 1 192.168.1.254 0
# Write all coils ON
mbpoll -m tcp -a 1 -t 0 -r 1 -c 8 192.168.1.254 1 1 1 1 1 1 1 1
```
---
## Implementation Phases (Incremental Build & Test)
### Phase 1: Package Skeleton & Minimal Client (COMPILES)
**Goal:** Create package structure that compiles with empty client.
Files to create:
- `cl_modbus_tcp_relay/package.xml`
- `cl_modbus_tcp_relay/CMakeLists.txt`
- `cl_modbus_tcp_relay/include/cl_modbus_tcp_relay/cl_modbus_tcp_relay.hpp` (minimal)
- `cl_modbus_tcp_relay/src/cl_modbus_tcp_relay/cl_modbus_tcp_relay.cpp` (minimal)
**Build command:** `colcon build --packages-select cl_modbus_tcp_relay`
---
### Phase 2: CpModbusConnection Component (COMPILES)
**Goal:** Connection management with libmodbus that compiles and loads config.
Files to create:
- `cl_modbus_tcp_relay/include/cl_modbus_tcp_relay/components/cp_modbus_connection.hpp`
- `cl_modbus_tcp_relay/src/cl_modbus_tcp_relay/components/cp_modbus_connection.cpp`
Update:
- `cl_modbus_tcp_relay.hpp` to create CpModbusConnection in onComponentInitialization()
**Build command:** `colcon build --packages-select cl_modbus_tcp_relay`
---
### Phase 3: Test State Machine - Connection Only (RUNS)
**Goal:** Test state machine that connects to relay and monitors heartbeat.
Create new package: `sm_modbus_tcp_relay_test_1`
Files to create:
- `sm_modbus_tcp_relay_test_1/package.xml`
- `sm_modbus_tcp_relay_test_1/CMakeLists.txt`
- `sm_modbus_tcp_relay_test_1/config/sm_modbus_tcp_relay_test_1_config.yaml`
- `sm_modbus_tcp_relay_test_1/launch/sm_modbus_tcp_relay_test_1.launch.py`
- `sm_modbus_tcp_relay_test_1/include/sm_modbus_tcp_relay_test_1/sm_modbus_tcp_relay_test_1.hpp`
- `sm_modbus_tcp_relay_test_1/include/sm_modbus_tcp_relay_test_1/orthogonals/or_relay.hpp`
- `sm_modbus_tcp_relay_test_1/include/sm_modbus_tcp_relay_test_1/states/st_connect.hpp`
- `sm_modbus_tcp_relay_test_1/include/sm_modbus_tcp_relay_test_1/states/st_connected.hpp`
- `sm_modbus_tcp_relay_test_1/src/sm_modbus_tcp_relay_test_1/sm_modbus_tcp_relay_test_1.cpp`
**Build command:** `colcon build --packages-select cl_modbus_tcp_relay sm_modbus_tcp_relay_test_1`
**Run command:** `ros2 launch sm_modbus_tcp_relay_test_1 sm_modbus_tcp_relay_test_1.launch.py`
---
### Phase 4: CpModbusRelay Component (COMPILES)
**Goal:** Add relay read/write operations.
Files to create:
- `cl_modbus_tcp_relay/include/cl_modbus_tcp_relay/components/cp_modbus_relay.hpp`
- `cl_modbus_tcp_relay/src/cl_modbus_tcp_relay/components/cp_modbus_relay.cpp`
Update:
- `cl_modbus_tcp_relay.hpp` to create CpModbusRelay in onComponentInitialization()
**Build command:** `colcon build --packages-select cl_modbus_tcp_relay`
---
### Phase 5: CbRelayOn/CbRelayOff Behaviors (RUNS)
**Goal:** Basic on/off behaviors with test states.
Files to create:
- `cl_modbus_tcp_relay/include/cl_modbus_tcp_relay/client_behaviors/cb_relay_on.hpp`
- `cl_modbus_tcp_relay/include/cl_modbus_tcp_relay/client_behaviors/cb_relay_off.hpp`
Update test state machine:
- Add `st_relay_on.hpp` - turns on channel 1
- Add `st_relay_off.hpp` - turns off channel 1
- Add transitions between states
**Build command:** `colcon build --packages-select cl_modbus_tcp_relay sm_modbus_tcp_relay_test_1`
**Run command:** `ros2 launch sm_modbus_tcp_relay_test_1 sm_modbus_tcp_relay_test_1.launch.py`
---
### Phase 6: CbAllRelaysOn/CbAllRelaysOff (RUNS)
**Goal:** Batch relay operations.
Files to create:
- `cl_modbus_tcp_relay/include/cl_modbus_tcp_relay/client_behaviors/cb_all_relays_on.hpp`
- `cl_modbus_tcp_relay/include/cl_modbus_tcp_relay/client_behaviors/cb_all_relays_off.hpp`
Update test state machine:
- Add test states for all-on/all-off operations
**Build command:** `colcon build --packages-select cl_modbus_tcp_relay sm_modbus_tcp_relay_test_1`
---
### Phase 7: CbRelayStatus Behavior (RUNS)
**Goal:** Status reading behavior.
Files to create:
- `cl_modbus_tcp_relay/include/cl_modbus_tcp_relay/client_behaviors/cb_relay_status.hpp`
Update test state machine:
- Add status monitoring state
**Build command:** `colcon build --packages-select cl_modbus_tcp_relay sm_modbus_tcp_relay_test_1`
---
### Phase 8: Documentation & README (COMPLETE)
**Goal:** Complete documentation.
Files to create:
- `cl_modbus_tcp_relay/README.md`
- `sm_modbus_tcp_relay_test_1/README.md`
---
## Test State Machine: sm_modbus_tcp_relay_test_1
### State Machine Design
```
┌─────────────────┐
│ StConnect │ ── EvCbSuccess ──► StRelayOn
│ (wait connect) │ ── EvConnectionLost ──► StConnect (retry)
└─────────────────┘
│
▼
┌─────────────────┐
│ StRelayOn │ ── EvCbSuccess ──► StWait1
│ (channel 1 ON) │ ── EvCbFailure ──► StError
└─────────────────┘
│
▼
┌─────────────────┐
│ StWait1 │ ── EvTimer ──► StRelayOff
│ (2 sec delay) │
└─────────────────┘
│
▼
┌─────────────────┐
│ StRelayOff │ ── EvCbSuccess ──► StWait2
│ (channel 1 OFF)│ ── EvCbFailure ──► StError
└─────────────────┘
│
▼
┌─────────────────┐
│ StWait2 │ ── EvTimer ──► StAllOn
│ (2 sec delay) │
└─────────────────┘
│
▼
┌─────────────────┐
│ StAllOn │ ── EvCbSuccess ──► StWait3
│ (all channels) │
└─────────────────┘
│
▼
┌─────────────────┐
│ StWait3 │ ── EvTimer ──► StAllOff
│ (2 sec delay) │
└─────────────────┘
│
▼
┌─────────────────┐
│ StAllOff │ ── EvCbSuccess ──► StComplete
│ (all channels) │
└─────────────────┘
│
▼
┌─────────────────┐
│ StComplete │ ── (logs success, stays) ───►
│ (test passed) │
└─────────────────┘
```
### Test State Machine Config
```yaml
# sm_modbus_tcp_relay_test_1/config/sm_modbus_tcp_relay_test_1_config.yaml
sm_modbus_tcp_relay_test_1:
ros__parameters:
# Modbus relay configuration
modbus_relay:
ip_address: "192.168.1.254"
port: 502
slave_id: 1
heartbeat_interval_ms: 1000
connect_on_init: true
# Timer configuration for wait states
wait_duration_ms: 2000
```
### Test State Machine Package Structure
```
smacc2_sm_reference_library/sm_modbus_tcp_relay_test_1/
├── config/
│ └── sm_modbus_tcp_relay_test_1_config.yaml
├── include/sm_modbus_tcp_relay_test_1/
│ ├── orthogonals/
│ │ ├── or_relay.hpp
│ │ └── or_timer.hpp
│ ├── states/
│ │ ├── st_connect.hpp
│ │ ├── st_relay_on.hpp
│ │ ├── st_relay_off.hpp
│ │ ├── st_all_on.hpp
│ │ ├── st_all_off.hpp
│ │ ├── st_wait.hpp
│ │ ├── st_complete.hpp
│ │ └── st_error.hpp
│ └── sm_modbus_tcp_relay_test_1.hpp
├── launch/
│ └── sm_modbus_tcp_relay_test_1.launch.py
├── src/sm_modbus_tcp_relay_test_1/
│ └── sm_modbus_tcp_relay_test_1.cpp
├── CMakeLists.txt
├── package.xml
└── README.md
```
---
## Files to Create
### Client Library: `src/SMACC2/smacc2_client_library/cl_modbus_tcp_relay/`
| File | Purpose |
|------|---------|
| `package.xml` | ROS2 package manifest |
| `CMakeLists.txt` | Build configuration with libmodbus |
| `include/cl_modbus_tcp_relay/cl_modbus_tcp_relay.hpp` | Main client |
| `include/cl_modbus_tcp_relay/components/cp_modbus_connection.hpp` | Connection component |
| `include/cl_modbus_tcp_relay/components/cp_modbus_relay.hpp` | Relay control component |
| `include/cl_modbus_tcp_relay/client_behaviors/cb_relay_on.hpp` | Turn on behavior |
| `include/cl_modbus_tcp_relay/client_behaviors/cb_relay_off.hpp` | Turn off behavior |
| `include/cl_modbus_tcp_relay/client_behaviors/cb_all_relays_on.hpp` | All on behavior |
| `include/cl_modbus_tcp_relay/client_behaviors/cb_all_relays_off.hpp` | All off behavior |
| `include/cl_modbus_tcp_relay/client_behaviors/cb_relay_status.hpp` | Status read behavior |
| `src/cl_modbus_tcp_relay/cl_modbus_tcp_relay.cpp` | Client implementation |
| `src/cl_modbus_tcp_relay/components/cp_modbus_connection.cpp` | Connection impl |
| `src/cl_modbus_tcp_relay/components/cp_modbus_relay.cpp` | Relay control impl |
| `README.md` | Documentation with mbpoll examples |
### Test State Machine: `src/SMACC2/smacc2_sm_reference_library/sm_modbus_tcp_relay_test_1/`
| File | Purpose |
|------|---------|
| `package.xml` | ROS2 package manifest |
| `CMakeLists.txt` | Build configuration |
| `config/sm_modbus_tcp_relay_test_1_config.yaml` | Modbus & timer config |
| `launch/sm_modbus_tcp_relay_test_1.launch.py` | Launch file |
| `include/sm_modbus_tcp_relay_test_1/sm_modbus_tcp_relay_test_1.hpp` | Main SM header |
| `include/sm_modbus_tcp_relay_test_1/orthogonals/or_relay.hpp` | Relay orthogonal |
| `include/sm_modbus_tcp_relay_test_1/orthogonals/or_timer.hpp` | Timer orthogonal |
| `include/sm_modbus_tcp_relay_test_1/states/st_connect.hpp` | Initial connection state |
| `include/sm_modbus_tcp_relay_test_1/states/st_relay_on.hpp` | Turn on channel 1 |
| `include/sm_modbus_tcp_relay_test_1/states/st_relay_off.hpp` | Turn off channel 1 |
| `include/sm_modbus_tcp_relay_test_1/states/st_all_on.hpp` | Turn on all channels |
| `include/sm_modbus_tcp_relay_test_1/states/st_all_off.hpp` | Turn off all channels |
| `include/sm_modbus_tcp_relay_test_1/states/st_wait.hpp` | Timer wait state (template) |
| `include/sm_modbus_tcp_relay_test_1/states/st_complete.hpp` | Test complete state |
| `include/sm_modbus_tcp_relay_test_1/states/st_error.hpp` | Error handling state |
| `src/sm_modbus_tcp_relay_test_1/sm_modbus_tcp_relay_test_1.cpp` | Main SM source |
| `README.md` | Test instructions |
---
## Reference Files (for implementation patterns)
- `src/SMACC2/smacc2_client_library/cl_http/include/cl_http/cl_http.hpp`
- `src/SMACC2/smacc2_client_library/cl_http/include/cl_http/components/cp_http_connection_manager.hpp`
- `src/SMACC2/smacc2_client_library/cl_lifecycle_node/include/cl_lifecycle_node/client_behaviors/cb_activate.hpp`
- `src/SMACC2/smacc2_client_library/cl_ros2_timer/include/cl_ros2_timer/components/cp_timer_listener_1.hpp`
- `src/libmodbus/src/modbus.h`
- `src/libmodbus/src/modbus-tcp.h`
================================================
FILE: smacc2/CHANGELOG.rst
================================================
Changelog for package smacc2
================================
3.0.1 (2025-01-16)
-------------------
### Added
- **ROS2 Jazzy Support**: Official support for ROS2 Jazzy Jalisco
SMACC2 now defaults to ROS2 Jazzy (Ubuntu 24.04 Noble) as the primary development branch.
This marks the transition to the latest LTS ROS2 distribution with improved performance
and new features.
### Fixed
- **CI Format Pipeline**: Fixed PEP 668 externally-managed-environment errors in GitHub Actions
Updated CI workflow and documentation to use apt-installed `pre-commit` and `clang-format`
instead of pip, ensuring compatibility with Ubuntu 24.04's PEP 668 Python packaging
restrictions. This provides a more robust and future-proof CI/CD pipeline.
- Updated `.github/workflows/ci-format.yml` to install pre-commit via apt
- Updated `CONTRIBUTING.md` with correct installation instructions
- Updated `README.md` to include development tools in setup instructions
### Documentation
- Enhanced developer documentation for Ubuntu 24.04+ environments
- Added comprehensive PEP 668 compliance documentation
### Contributors
- Brett Aldrich (@brettpac)
2.3.20 (2025-11-01)
-------------------
### Fixed
- **CRITICAL**: Fix double onExit() calls in client behaviors (`#556 <https://github.com/robosoft-ai/SMACC2/issues/556>`_, `#558 <https://github.com/robosoft-ai/SMACC2/issues/558>`_)
Client behavior's onExit method was being invoked twice during state transitions due to
duplicate notifyOnStateExitting() call. This caused issues including deadlocks in behaviors
with thread joins in onExit. Fixed by removing redundant call outside mutex lock.
- Root cause identified by @yassiezar
- Issue reported in apt packages by @Crowdedlight
- Fix toggle functionality (`#587 <https://github.com/robosoft-ai/SMACC2/issues/587>`_)
### Added
- New cl_moveit2z client library (`#638 <https://github.com/robosoft-ai/SMACC2/issues/638>`_)
- New cl_keyboard client and removal of sm_pubsub_1 (`#621 <https://github.com/robosoft-ai/SMACC2/issues/621>`_)
- New cl_ros2_timer unit test (`#616 <https://github.com/robosoft-ai/SMACC2/issues/616>`_)
- Nova Carter navigation behaviors (`#608 <https://github.com/robosoft-ai/SMACC2/issues/608>`_)
- Progress on requiresComponent (`#628 <https://github.com/robosoft-ai/SMACC2/issues/628>`_)
### Changed
- Refactoring of cl_moveit2z to component-based architecture & header-only implementation (`#639 <https://github.com/robosoft-ai/SMACC2/issues/639>`_)
- Refactoring cl_nav2z to remove legacy API support and update client behaviors (`#625 <https://github.com/robosoft-ai/SMACC2/issues/625>`_)
- Refactor of cl_nav2z to component-based architecture (`#624 <https://github.com/robosoft-ai/SMACC2/issues/624>`_)
- Refactor of cl_nav2z, moved cp_nav2_action_interface.hpp into folder (`#626 <https://github.com/robosoft-ai/SMACC2/issues/626>`_)
- Refactor of cl_ros2_timer namespace structure (include paths) (`#623 <https://github.com/robosoft-ai/SMACC2/issues/623>`_)
- Refactored cl_ros2_timer components to header-only (`#619 <https://github.com/robosoft-ai/SMACC2/issues/619>`_)
- Refactoring cl_ros2_timer to component-based architecture (`#618 <https://github.com/robosoft-ai/SMACC2/issues/618>`_)
- Refactoring cl_ros2_timer to header-lite (`#617 <https://github.com/robosoft-ai/SMACC2/issues/617>`_)
- Final keyboard client refactor changes with formatting (`#599 <https://github.com/robosoft-ai/SMACC2/issues/599>`_)
- Refactor keyboard client to remove cb.cpp file (`#609 <https://github.com/robosoft-ai/SMACC2/issues/609>`_)
- Refactoring: renaming onOrthogonalAllocation (`#600 <https://github.com/robosoft-ai/SMACC2/issues/600>`_)
- Refactor base components (`#606 <https://github.com/robosoft-ai/SMACC2/issues/606>`_)
- sm_panda_moveit2z_cb_inventory refactor (`#633 <https://github.com/robosoft-ai/SMACC2/issues/633>`_)
- Moving reference library from ros_timer_client and keyboard_client to cl_ros2_timer and cl_keyboard (`#645 <https://github.com/robosoft-ai/SMACC2/issues/645>`_)
- Trimming sm_atomic_services and sm_atomic_24hr from sm_reference_library (`#644 <https://github.com/robosoft-ai/SMACC2/issues/644>`_)
- Update ROS distribution from Galactic to Humble (`#631 <https://github.com/robosoft-ai/SMACC2/issues/631>`_)
- Update include path for cl_ros2_timer (`#629 <https://github.com/robosoft-ai/SMACC2/issues/629>`_)
### Documentation
- Updating CLAUDE.md files (`#643 <https://github.com/robosoft-ai/SMACC2/issues/643>`_)
- CLAUDE.MD file for client behavior libraries (`#586 <https://github.com/robosoft-ai/SMACC2/issues/586>`_)
- Fixing sm readmes (`#632 <https://github.com/robosoft-ai/SMACC2/issues/632>`_)
- Updating sm_simple_action_client launch file (`#642 <https://github.com/robosoft-ai/SMACC2/issues/642>`_)
- Update README.md (`#576 <https://github.com/robosoft-ai/SMACC2/issues/576>`_)
### Contributors
- Pablo Iñigo Blasco (@pabloinigoblasco)
- Brett Aldrich (@brettpac)
- Jaycee Lock (@yassiezar)
- Crowdedlight (@Crowdedlight)
0.4.0 (2022-04-04)
------------------
### Added
- Feature/fixing type string walker (`#263 <https://github.com/StoglRobotics-forks/SMACC2/issues/263>`_)
- Feature/fixing husky build rolling (`#258 <https://github.com/StoglRobotics-forks/SMACC2/issues/258>`_)
- Merging code from backport foxy and updates about autoware (`#208 <https://github.com/StoglRobotics-forks/SMACC2/issues/208>`_)
- wharehouse2 progress (`#179 <https://github.com/StoglRobotics-forks/SMACC2/issues/179>`_)
- Feature/aws navigation sm dance bot (`#174 <https://github.com/StoglRobotics-forks/SMACC2/issues/174>`_)
- Feature/sm dance bot strikes back refactoring (`#152 <https://github.com/StoglRobotics-forks/SMACC2/issues/152>`_)
- Feature/cb pause slam (`#98 <https://github.com/StoglRobotics-forks/SMACC2/issues/98>`_)
- Merge branch 'renameTracingEvents' of https://github.com/DecDury/SMACC2 into DecDury-renameTracingEvents
### Contributors
- David Revay, DecDury, Denis Štogl, Pablo Iñigo Blasco, pabloinigoblasco, reelrbtx
0.1.0 (2021-08-31)
------------------
### Added
- Initial release of SMACC2 core
### Contributors
- Brett Aldrich, Pablo Inigo Blasco, Denis Štogl
2.3.16 (2023-07-16)
-----
gitextract_m26_x9ze/
├── .clang-format
├── .claude/
│ └── settings.json
├── .github/
│ ├── Doxyfile
│ ├── ISSUE_TEMPLATE/
│ │ ├── compilation_error_report.md
│ │ └── runtime_error_report.md
│ ├── SMACC2-not-released.jazzy.repos
│ ├── SMACC2.jazzy.repos
│ ├── mergify.yml
│ └── workflows/
│ ├── README.md
│ ├── ci-format.yml
│ ├── ci-ros-lint.yaml
│ ├── doxygen-check-build.yml
│ ├── doxygen-deploy.yml
│ ├── jazzy-binary-build.yml
│ ├── jazzy-bloom-release.yml
│ └── jazzy-semi-binary-build.yml
├── .gitignore
├── .pre-commit-config.yaml
├── CLAUDE.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── docs/
│ └── cl_modbus_tcp_relay_plan.md
├── smacc2/
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── include/
│ │ └── smacc2/
│ │ ├── callback_counter_semaphore.hpp
│ │ ├── client_bases/
│ │ │ ├── smacc_action_client.hpp
│ │ │ ├── smacc_action_client_base.hpp
│ │ │ ├── smacc_publisher_client.hpp
│ │ │ ├── smacc_ros_launch_client.hpp
│ │ │ ├── smacc_ros_launch_client_2.hpp
│ │ │ ├── smacc_service_client.hpp
│ │ │ ├── smacc_service_server_client.hpp
│ │ │ └── smacc_subscriber_client.hpp
│ │ ├── client_behaviors/
│ │ │ ├── cb_call_service.hpp
│ │ │ ├── cb_ros_launch.hpp
│ │ │ ├── cb_ros_launch_2.hpp
│ │ │ ├── cb_ros_stop_2.hpp
│ │ │ ├── cb_sequence.hpp
│ │ │ ├── cb_service_server_callback_base.hpp
│ │ │ ├── cb_sleep_for.hpp
│ │ │ ├── cb_subscription_callback_base.hpp
│ │ │ ├── cb_wait_action_server.hpp
│ │ │ ├── cb_wait_action_server_2.hpp
│ │ │ ├── cb_wait_node.hpp
│ │ │ ├── cb_wait_topic.hpp
│ │ │ └── cb_wait_topic_message.hpp
│ │ ├── client_core_components/
│ │ │ ├── cp_action_client.hpp
│ │ │ ├── cp_ros2_timer.hpp
│ │ │ ├── cp_service_client.hpp
│ │ │ ├── cp_subprocess_executor.hpp
│ │ │ ├── cp_topic_publisher.hpp
│ │ │ └── cp_topic_subscriber.hpp
│ │ ├── common.hpp
│ │ ├── component.hpp
│ │ ├── impl/
│ │ │ ├── smacc_asynchronous_client_behavior_impl.hpp
│ │ │ ├── smacc_client_behavior_impl.hpp
│ │ │ ├── smacc_client_impl.hpp
│ │ │ ├── smacc_component_impl.hpp
│ │ │ ├── smacc_event_generator_impl.hpp
│ │ │ ├── smacc_orthogonal_impl.hpp
│ │ │ ├── smacc_state_impl.hpp
│ │ │ ├── smacc_state_machine_impl.hpp
│ │ │ └── smacc_state_reactor_impl.hpp
│ │ ├── introspection/
│ │ │ ├── introspection.hpp
│ │ │ ├── smacc_state_info.hpp
│ │ │ ├── smacc_state_machine_info.hpp
│ │ │ ├── smacc_type_info.hpp
│ │ │ └── state_traits.hpp
│ │ ├── smacc.hpp
│ │ ├── smacc_asynchronous_client_behavior.hpp
│ │ ├── smacc_client.hpp
│ │ ├── smacc_client_behavior.hpp
│ │ ├── smacc_client_behavior_base.hpp
│ │ ├── smacc_default_events.hpp
│ │ ├── smacc_event_generator.hpp
│ │ ├── smacc_fifo_scheduler.hpp
│ │ ├── smacc_fifo_worker.hpp
│ │ ├── smacc_orthogonal.hpp
│ │ ├── smacc_signal.hpp
│ │ ├── smacc_signal_detector.hpp
│ │ ├── smacc_state.hpp
│ │ ├── smacc_state_base.hpp
│ │ ├── smacc_state_machine.hpp
│ │ ├── smacc_state_machine_base.hpp
│ │ ├── smacc_state_reactor.hpp
│ │ ├── smacc_tracing/
│ │ │ ├── smacc_tracing.hpp
│ │ │ └── trace_provider.hpp
│ │ ├── smacc_transition.hpp
│ │ ├── smacc_types.hpp
│ │ └── smacc_updatable.hpp
│ ├── package.xml
│ ├── scripts/
│ │ └── trace.sh
│ └── src/
│ └── smacc2/
│ ├── callback_counter_semaphore.cpp
│ ├── client.cpp
│ ├── client_bases/
│ │ ├── smacc_action_client.cpp
│ │ ├── smacc_publisher_client.cpp
│ │ ├── smacc_ros_launch_client.cpp
│ │ └── smacc_ros_launch_client_2.cpp
│ ├── client_behaviors/
│ │ ├── cb_ros_launch.cpp
│ │ ├── cb_ros_launch_2.cpp
│ │ ├── cb_ros_stop_2.cpp
│ │ ├── cb_sequence.cpp
│ │ ├── cb_wait_action_server.cpp
│ │ ├── cb_wait_node.cpp
│ │ └── cb_wait_topic.cpp
│ ├── common.cpp
│ ├── introspection/
│ │ ├── reflection.cpp
│ │ └── string_type_walker.cpp
│ ├── orthogonal.cpp
│ ├── signal_detector.cpp
│ ├── smacc_client_async_behavior.cpp
│ ├── smacc_client_behavior.cpp
│ ├── smacc_client_behavior_base.cpp
│ ├── smacc_component.cpp
│ ├── smacc_event_generator.cpp
│ ├── smacc_state.cpp
│ ├── smacc_state_info.cpp
│ ├── smacc_state_machine.cpp
│ ├── smacc_state_machine_info.cpp
│ ├── smacc_tracing.cpp
│ ├── smacc_updatable.cpp
│ ├── state_reactor.cpp
│ └── trace_provider.cpp
├── smacc2_client_library/
│ ├── CLAUDE.md
│ ├── cl_foundation_pose/
│ │ ├── CMakeLists.txt
│ │ ├── include/
│ │ │ └── cl_foundation_pose/
│ │ │ ├── cl_foundation_pose.hpp
│ │ │ ├── client_behaviors/
│ │ │ │ ├── cb_pause_object_tracking.hpp
│ │ │ │ └── cb_track_object_pose.hpp
│ │ │ └── components/
│ │ │ ├── cp_object_tracker_1.hpp
│ │ │ ├── cp_object_tracker_tf.hpp
│ │ │ └── tracker_utils.hpp
│ │ └── package.xml
│ ├── cl_gcalcli/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── docs/
│ │ │ └── cl_gcalcli_implementation_plan.md
│ │ ├── include/
│ │ │ └── cl_gcalcli/
│ │ │ ├── cl_gcalcli.hpp
│ │ │ ├── client_behaviors/
│ │ │ │ ├── cb_detect_calendar_event.hpp
│ │ │ │ ├── cb_event_detect.hpp
│ │ │ │ ├── cb_monitor_connection.hpp
│ │ │ │ ├── cb_quick_add.hpp
│ │ │ │ ├── cb_refresh_agenda.hpp
│ │ │ │ ├── cb_status.hpp
│ │ │ │ └── cb_wait_connection.hpp
│ │ │ ├── client_behaviors.hpp
│ │ │ ├── components/
│ │ │ │ ├── cp_calendar_event_listener.hpp
│ │ │ │ ├── cp_calendar_poller.hpp
│ │ │ │ └── cp_gcalcli_connection.hpp
│ │ │ ├── events.hpp
│ │ │ └── types.hpp
│ │ ├── package.xml
│ │ └── src/
│ │ └── cl_gcalcli/
│ │ ├── cl_gcalcli.cpp
│ │ ├── client_behaviors/
│ │ │ ├── cb_detect_calendar_event.cpp
│ │ │ ├── cb_event_detect.cpp
│ │ │ ├── cb_monitor_connection.cpp
│ │ │ ├── cb_quick_add.cpp
│ │ │ ├── cb_refresh_agenda.cpp
│ │ │ ├── cb_status.cpp
│ │ │ └── cb_wait_connection.cpp
│ │ └── components/
│ │ ├── cp_calendar_event_listener.cpp
│ │ ├── cp_calendar_poller.cpp
│ │ └── cp_gcalcli_connection.cpp
│ ├── cl_generic_sensor/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── include/
│ │ │ └── cl_generic_sensor/
│ │ │ ├── cl_generic_sensor.hpp
│ │ │ ├── client_behaviors/
│ │ │ │ └── cb_default_generic_sensor_behavior.hpp
│ │ │ └── components/
│ │ │ ├── README.md
│ │ │ └── cp_message_timeout.hpp
│ │ ├── package.xml
│ │ └── src/
│ │ └── cl_generic_sensor/
│ │ └── cl_generic_sensor.cpp
│ ├── cl_http/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── include/
│ │ │ └── cl_http/
│ │ │ ├── cl_http.hpp
│ │ │ ├── client_behaviors/
│ │ │ │ ├── cb_http_get_request.hpp
│ │ │ │ ├── cb_http_post_request.hpp
│ │ │ │ └── cb_http_request.hpp
│ │ │ ├── components/
│ │ │ │ ├── cp_http_connection_manager.hpp
│ │ │ │ ├── cp_http_request_executor.hpp
│ │ │ │ └── cp_http_session_manager.hpp
│ │ │ ├── http_session.hpp
│ │ │ ├── http_session_base.hpp
│ │ │ └── ssl_http_session.hpp
│ │ ├── package.xml
│ │ └── src/
│ │ └── cl_http/
│ │ ├── cl_http.cpp
│ │ ├── components/
│ │ │ ├── cp_http_connection_manager.cpp
│ │ │ ├── cp_http_request_executor.cpp
│ │ │ └── cp_http_session_manager.cpp
│ │ ├── http_session.cpp
│ │ └── ssl_http_session.cpp
│ ├── cl_isaac_apriltag/
│ │ ├── CMakeLists.txt
│ │ ├── COLCON_IGNORE
│ │ ├── include/
│ │ │ └── cl_isaac_apriltag/
│ │ │ ├── cl_isaac_apriltag.hpp
│ │ │ ├── client_behaviors/
│ │ │ │ └── cb_detect_apriltag.hpp
│ │ │ └── components/
│ │ │ ├── cp_april_visualization.hpp
│ │ │ ├── cp_apriltag_mission_state.hpp
│ │ │ └── cp_apriltag_tracker.hpp
│ │ └── package.xml
│ ├── cl_keyboard/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── include/
│ │ │ └── cl_keyboard/
│ │ │ ├── cl_keyboard.hpp
│ │ │ ├── client_behaviors/
│ │ │ │ └── cb_default_keyboard_behavior.hpp
│ │ │ └── components/
│ │ │ └── cp_keyboard_listener_1.hpp
│ │ ├── package.xml
│ │ ├── servers/
│ │ │ └── keyboard_server_node.py
│ │ └── src/
│ │ └── cl_keyboard/
│ │ └── cl_keyboard.cpp
│ ├── cl_lifecycle_node/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── include/
│ │ │ └── cl_lifecycle_node/
│ │ │ ├── cl_lifecycle_node.hpp
│ │ │ ├── client_behaviors/
│ │ │ │ ├── cb_activate.hpp
│ │ │ │ ├── cb_cleanup.hpp
│ │ │ │ ├── cb_configure.hpp
│ │ │ │ ├── cb_deactivate.hpp
│ │ │ │ ├── cb_deactivate_on_exit.hpp
│ │ │ │ ├── cb_destroy.hpp
│ │ │ │ └── cb_shutdown.hpp
│ │ │ ├── client_behaviors.hpp
│ │ │ ├── components/
│ │ │ │ ├── cp_lifecycle_event_monitor.hpp
│ │ │ │ └── cp_lifecycle_state_tracker.hpp
│ │ │ └── components.hpp
│ │ ├── package.xml
│ │ └── src/
│ │ └── cl_lifecycle_node/
│ │ ├── cl_lifecycle_node.cpp
│ │ └── components/
│ │ ├── cp_lifecycle_event_monitor.cpp
│ │ └── cp_lifecycle_state_tracker.cpp
│ ├── cl_mission_tracker/
│ │ ├── CMakeLists.txt
│ │ ├── include/
│ │ │ └── cl_mission_tracker/
│ │ │ ├── cl_mission_tracker.hpp
│ │ │ ├── client_behaviors/
│ │ │ │ └── cb_battery_decission.hpp
│ │ │ └── components/
│ │ │ └── cp_decision_manager.hpp
│ │ └── package.xml
│ ├── cl_modbus_tcp_relay/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── include/
│ │ │ └── cl_modbus_tcp_relay/
│ │ │ ├── cl_modbus_tcp_relay.hpp
│ │ │ ├── client_behaviors/
│ │ │ │ ├── cb_all_relays_off.hpp
│ │ │ │ ├── cb_all_relays_on.hpp
│ │ │ │ ├── cb_relay_off.hpp
│ │ │ │ ├── cb_relay_on.hpp
│ │ │ │ └── cb_relay_status.hpp
│ │ │ └── components/
│ │ │ ├── cp_modbus_connection.hpp
│ │ │ └── cp_modbus_relay.hpp
│ │ ├── package.xml
│ │ └── src/
│ │ └── cl_modbus_tcp_relay/
│ │ ├── cl_modbus_tcp_relay.cpp
│ │ └── components/
│ │ ├── cp_modbus_connection.cpp
│ │ └── cp_modbus_relay.cpp
│ ├── cl_moveit2z/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── include/
│ │ │ └── cl_moveit2z/
│ │ │ ├── cl_moveit2z.hpp
│ │ │ ├── client_behaviors/
│ │ │ │ ├── cb_attach_object.hpp
│ │ │ │ ├── cb_circular_pivot_motion.hpp
│ │ │ │ ├── cb_detach_object.hpp
│ │ │ │ ├── cb_end_effector_rotate.hpp
│ │ │ │ ├── cb_move_cartesian_relative2.hpp
│ │ │ │ ├── cb_move_end_effector.hpp
│ │ │ │ ├── cb_move_end_effector_trajectory.hpp
│ │ │ │ ├── cb_move_joints.hpp
│ │ │ │ ├── cb_move_known_state.hpp
│ │ │ │ └── cb_undo_last_trajectory.hpp
│ │ │ ├── client_behaviors.hpp
│ │ │ ├── common.hpp
│ │ │ └── components/
│ │ │ ├── cp_grasping_objects.hpp
│ │ │ ├── cp_joint_space_trajectory_planner.hpp
│ │ │ ├── cp_motion_planner.hpp
│ │ │ ├── cp_tf_listener.hpp
│ │ │ ├── cp_trajectory_executor.hpp
│ │ │ ├── cp_trajectory_history.hpp
│ │ │ └── cp_trajectory_visualizer.hpp
│ │ ├── package.xml
│ │ └── src/
│ │ └── cl_moveit2z/
│ │ └── cl_moveit2z.cpp
│ ├── cl_nav2z/
│ │ ├── cl_nav2z/
│ │ │ ├── CHANGELOG.rst
│ │ │ ├── CMakeLists.txt
│ │ │ ├── include/
│ │ │ │ └── cl_nav2z/
│ │ │ │ ├── cl_nav2z.hpp
│ │ │ │ ├── client_behaviors/
│ │ │ │ │ ├── cb_abort_navigation.hpp
│ │ │ │ │ ├── cb_absolute_rotate.hpp
│ │ │ │ │ ├── cb_active_stop.hpp
│ │ │ │ │ ├── cb_load_waypoints_file.hpp
│ │ │ │ │ ├── cb_nav2z_client_behavior_base.hpp
│ │ │ │ │ ├── cb_navigate_backwards.hpp
│ │ │ │ │ ├── cb_navigate_forward.hpp
│ │ │ │ │ ├── cb_navigate_global_position.hpp
│ │ │ │ │ ├── cb_navigate_named_waypoint.hpp
│ │ │ │ │ ├── cb_navigate_next_waypoint.hpp
│ │ │ │ │ ├── cb_navigate_next_waypoint_free.hpp
│ │ │ │ │ ├── cb_navigate_next_waypoint_until_reached.hpp
│ │ │ │ │ ├── cb_pause_slam.hpp
│ │ │ │ │ ├── cb_position_control_free_space.hpp
│ │ │ │ │ ├── cb_pure_spinning.hpp
│ │ │ │ │ ├── cb_resume_slam.hpp
│ │ │ │ │ ├── cb_retry_behavior.hpp
│ │ │ │ │ ├── cb_rotate.hpp
│ │ │ │ │ ├── cb_rotate_look_at.hpp
│ │ │ │ │ ├── cb_save_slam_map.hpp
│ │ │ │ │ ├── cb_seek_waypoint.hpp
│ │ │ │ │ ├── cb_spiral_motion.hpp
│ │ │ │ │ ├── cb_stop_navigation.hpp
│ │ │ │ │ ├── cb_track_path_odometry.hpp
│ │ │ │ │ ├── cb_track_path_slam.hpp
│ │ │ │ │ ├── cb_undo_path_backwards.hpp
│ │ │ │ │ ├── cb_wait_nav2_nodes.hpp
│ │ │ │ │ ├── cb_wait_pose.hpp
│ │ │ │ │ └── cb_wait_transform.hpp
│ │ │ │ ├── client_behaviors.hpp
│ │ │ │ ├── common.hpp
│ │ │ │ └── components/
│ │ │ │ ├── amcl/
│ │ │ │ │ └── cp_amcl.hpp
│ │ │ │ ├── costmap_switch/
│ │ │ │ │ └── cp_costmap_switch.hpp
│ │ │ │ ├── goal_checker_switcher/
│ │ │ │ │ └── cp_goal_checker_switcher.hpp
│ │ │ │ ├── nav2_action_interface/
│ │ │ │ │ └── cp_nav2_action_interface.hpp
│ │ │ │ ├── odom_tracker/
│ │ │ │ │ └── cp_odom_tracker.hpp
│ │ │ │ ├── planner_switcher/
│ │ │ │ │ └── cp_planner_switcher.hpp
│ │ │ │ ├── pose/
│ │ │ │ │ └── cp_pose.hpp
│ │ │ │ ├── slam_toolbox/
│ │ │ │ │ └── cp_slam_toolbox.hpp
│ │ │ │ └── waypoints_navigator/
│ │ │ │ ├── cp_waypoints_event_dispatcher.hpp
│ │ │ │ ├── cp_waypoints_navigator.hpp
│ │ │ │ ├── cp_waypoints_navigator_base.hpp
│ │ │ │ └── cp_waypoints_visualizer.hpp
│ │ │ ├── package.xml
│ │ │ ├── scripts/
│ │ │ │ └── lidar_completion.py
│ │ │ └── src/
│ │ │ └── cl_nav2z/
│ │ │ ├── cl_nav2z.cpp
│ │ │ ├── client_behaviors/
│ │ │ │ ├── cb_abort_navigation.cpp
│ │ │ │ ├── cb_absolute_rotate.cpp
│ │ │ │ ├── cb_active_stop.cpp
│ │ │ │ ├── cb_load_waypoints_file.cpp
│ │ │ │ ├── cb_nav2z_client_behavior_base.cpp
│ │ │ │ ├── cb_navigate_backward.cpp
│ │ │ │ ├── cb_navigate_forward.cpp
│ │ │ │ ├── cb_navigate_global_position.cpp
│ │ │ │ ├── cb_navigate_named_waypoint.cpp
│ │ │ │ ├── cb_navigate_next_waypoint.cpp
│ │ │ │ ├── cb_navigate_next_waypoint_free.cpp
│ │ │ │ ├── cb_navigate_next_waypoint_until_reached.cpp
│ │ │ │ ├── cb_pause_slam.cpp
│ │ │ │ ├── cb_position_control_free_space.cpp
│ │ │ │ ├── cb_pure_spinning.cpp
│ │ │ │ ├── cb_resume_slam.cpp
│ │ │ │ ├── cb_rotate.cpp
│ │ │ │ ├── cb_rotate_look_at.cpp
│ │ │ │ ├── cb_save_slam_map.cpp
│ │ │ │ ├── cb_seek_waypoint.cpp
│ │ │ │ ├── cb_spiral_motion.cpp
│ │ │ │ ├── cb_stop_navigation.cpp
│ │ │ │ ├── cb_track_path_odometry.cpp
│ │ │ │ ├── cb_track_path_slam.cpp
│ │ │ │ ├── cb_undo_path_backwards.cpp
│ │ │ │ ├── cb_wait_nav2_nodes.cpp
│ │ │ │ ├── cb_wait_pose.cpp
│ │ │ │ └── cb_wait_transform.cpp
│ │ │ ├── common.cpp
│ │ │ └── components/
│ │ │ ├── amcl/
│ │ │ │ └── cp_amcl.cpp
│ │ │ ├── costmap_switch/
│ │ │ │ └── cp_costmap_switch.cpp
│ │ │ ├── goal_checker_switcher/
│ │ │ │ └── cp_goal_checker_switcher.cpp
│ │ │ ├── odom_tracker/
│ │ │ │ ├── cp_odom_tracker.cpp
│ │ │ │ └── cp_odom_tracker_node.cpp
│ │ │ ├── planner_switcher/
│ │ │ │ └── cp_planner_switcher.cpp
│ │ │ ├── pose/
│ │ │ │ └── cp_pose.cpp
│ │ │ ├── slam_toolbox/
│ │ │ │ └── cp_slam_toolbox.cpp
│ │ │ └── waypoints_navigator/
│ │ │ ├── cp_waypoints_event_dispatcher.cpp
│ │ │ ├── cp_waypoints_navigator.cpp
│ │ │ └── cp_waypoints_visualizer.cpp
│ │ └── custom_planners/
│ │ ├── backward_global_planner/
│ │ │ ├── CHANGELOG.rst
│ │ │ ├── CMakeLists.txt
│ │ │ ├── bgp_plugin.xml
│ │ │ ├── include/
│ │ │ │ └── backward_global_planner/
│ │ │ │ └── backward_global_planner.hpp
│ │ │ ├── package.xml
│ │ │ └── src/
│ │ │ └── backward_global_planner/
│ │ │ └── backward_global_planner.cpp
│ │ ├── backward_local_planner/
│ │ │ ├── CHANGELOG.rst
│ │ │ ├── CMakeLists.txt
│ │ │ ├── blp_plugin.xml
│ │ │ ├── include/
│ │ │ │ └── backward_local_planner/
│ │ │ │ └── backward_local_planner.hpp
│ │ │ ├── package.xml
│ │ │ └── src/
│ │ │ └── backward_local_planner/
│ │ │ └── backward_local_planner.cpp
│ │ ├── forward_global_planner/
│ │ │ ├── CHANGELOG.rst
│ │ │ ├── CMakeLists.txt
│ │ │ ├── fgp_plugin.xml
│ │ │ ├── include/
│ │ │ │ └── forward_global_planner/
│ │ │ │ └── forward_global_planner.hpp
│ │ │ ├── package.xml
│ │ │ └── src/
│ │ │ └── forward_global_planner/
│ │ │ └── forward_global_planner.cpp
│ │ ├── forward_local_planner/
│ │ │ ├── CHANGELOG.rst
│ │ │ ├── CMakeLists.txt
│ │ │ ├── flp_plugin.xml
│ │ │ ├── include/
│ │ │ │ └── forward_local_planner/
│ │ │ │ └── forward_local_planner.hpp
│ │ │ ├── package.xml
│ │ │ └── src/
│ │ │ └── forward_local_planner/
│ │ │ └── forward_local_planner.cpp
│ │ ├── nav2z_planners_common/
│ │ │ ├── CHANGELOG.rst
│ │ │ ├── CMakeLists.txt
│ │ │ ├── include/
│ │ │ │ └── nav2z_planners_common/
│ │ │ │ ├── common.hpp
│ │ │ │ └── nav2z_client_tools.hpp
│ │ │ ├── package.xml
│ │ │ └── src/
│ │ │ └── nav2z_planners_common/
│ │ │ └── common.cpp
│ │ ├── pure_spinning_local_planner/
│ │ │ ├── CHANGELOG.rst
│ │ │ ├── CMakeLists.txt
│ │ │ ├── include/
│ │ │ │ └── pure_spinning_local_planner/
│ │ │ │ └── pure_spinning_local_planner.hpp
│ │ │ ├── package.xml
│ │ │ ├── pslp_plugin.xml
│ │ │ └── src/
│ │ │ └── pure_spinning_local_planner/
│ │ │ └── pure_spinning_local_planner.cpp
│ │ └── undo_path_global_planner/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── include/
│ │ │ └── undo_path_global_planner/
│ │ │ └── undo_path_global_planner.hpp
│ │ ├── package.xml
│ │ ├── src/
│ │ │ └── undo_path_global_planner/
│ │ │ └── undo_path_global_planner.cpp
│ │ └── upgp_plugin.xml
│ ├── cl_px4_mr/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── include/
│ │ │ └── cl_px4_mr/
│ │ │ ├── cl_px4_mr.hpp
│ │ │ ├── client_behaviors/
│ │ │ │ ├── cb_arm_px4.hpp
│ │ │ │ ├── cb_change_altitude.hpp
│ │ │ │ ├── cb_connect_micro_ros_agent.hpp
│ │ │ │ ├── cb_disarm_px4.hpp
│ │ │ │ ├── cb_figure_eight.hpp
│ │ │ │ ├── cb_follow_waypoints.hpp
│ │ │ │ ├── cb_go_to_location.hpp
│ │ │ │ ├── cb_hold_position.hpp
│ │ │ │ ├── cb_land.hpp
│ │ │ │ ├── cb_orbit_location.hpp
│ │ │ │ ├── cb_return_to_home.hpp
│ │ │ │ ├── cb_spiral_pattern.hpp
│ │ │ │ ├── cb_takeoff.hpp
│ │ │ │ └── cb_yaw_rotate.hpp
│ │ │ └── components/
│ │ │ ├── cp_goal_checker.hpp
│ │ │ ├── cp_micro_ros_agent.hpp
│ │ │ ├── cp_offboard_keep_alive.hpp
│ │ │ ├── cp_trajectory_setpoint.hpp
│ │ │ ├── cp_vehicle_command.hpp
│ │ │ ├── cp_vehicle_command_ack.hpp
│ │ │ ├── cp_vehicle_local_position.hpp
│ │ │ └── cp_vehicle_status.hpp
│ │ ├── package.xml
│ │ └── src/
│ │ └── cl_px4_mr/
│ │ ├── cl_px4_mr.cpp
│ │ ├── client_behaviors/
│ │ │ ├── cb_arm_px4.cpp
│ │ │ ├── cb_change_altitude.cpp
│ │ │ ├── cb_connect_micro_ros_agent.cpp
│ │ │ ├── cb_disarm_px4.cpp
│ │ │ ├── cb_figure_eight.cpp
│ │ │ ├── cb_follow_waypoints.cpp
│ │ │ ├── cb_go_to_location.cpp
│ │ │ ├── cb_hold_position.cpp
│ │ │ ├── cb_land.cpp
│ │ │ ├── cb_orbit_location.cpp
│ │ │ ├── cb_return_to_home.cpp
│ │ │ ├── cb_spiral_pattern.cpp
│ │ │ ├── cb_takeoff.cpp
│ │ │ └── cb_yaw_rotate.cpp
│ │ └── components/
│ │ ├── cp_goal_checker.cpp
│ │ ├── cp_micro_ros_agent.cpp
│ │ ├── cp_offboard_keep_alive.cpp
│ │ ├── cp_trajectory_setpoint.cpp
│ │ ├── cp_vehicle_command.cpp
│ │ ├── cp_vehicle_command_ack.cpp
│ │ ├── cp_vehicle_local_position.cpp
│ │ └── cp_vehicle_status.cpp
│ └── cl_ros2_timer/
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── include/
│ │ └── cl_ros2_timer/
│ │ ├── cl_ros2_timer.hpp
│ │ ├── client_behaviors/
│ │ │ ├── cb_ros2_timer.hpp
│ │ │ ├── cb_timer_countdown_loop.hpp
│ │ │ └── cb_timer_countdown_once.hpp
│ │ └── components/
│ │ └── cp_timer_listener_1.hpp
│ ├── package.xml
│ └── src/
│ └── cl_ros2_timer.cpp
├── smacc2_dev_tools/
│ ├── .vscode/
│ │ ├── c_cpp_properties.json
│ │ ├── gdb-run.sh
│ │ ├── launch.json
│ │ ├── settings.json
│ │ └── tasks.json
│ ├── claude/
│ │ └── Prompts.md
│ ├── docker/
│ │ ├── Dockerfile
│ │ ├── build_docker.sh
│ │ ├── build_docker_foxy.sh
│ │ ├── build_docker_galactic.sh
│ │ ├── build_docker_humble.sh
│ │ ├── build_docker_rolling.sh
│ │ ├── examples/
│ │ │ └── run_sm_atomic.sh
│ │ ├── run_docker_bash_foxy.sh
│ │ ├── run_docker_bash_galactic.sh
│ │ └── run_docker_bash_humble.sh
│ ├── sandbox/
│ │ ├── cp_ros_control_interface.cpp.disabled
│ │ └── cp_ros_control_interface.h.disabled
│ └── sm_reference_lib_run_commands.md
├── smacc2_event_generator_library/
│ ├── eg_conditional_generator/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── include/
│ │ │ └── eg_conditional_generator/
│ │ │ └── eg_conditional_generator.hpp
│ │ ├── package.xml
│ │ └── src/
│ │ └── eg_conditional_generator/
│ │ └── eg_conditional_generator.cpp
│ └── eg_random_generator/
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── include/
│ │ └── eg_random_generator/
│ │ └── eg_random_generator.hpp
│ ├── package.xml
│ └── src/
│ └── eg_random_generator/
│ └── eg_random_generator.cpp
├── smacc2_msgs/
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── msg/
│ │ ├── SmaccContainerInitialStatusCmd.msg
│ │ ├── SmaccContainerStatus.msg
│ │ ├── SmaccContainerStructure.msg
│ │ ├── SmaccEvent.msg
│ │ ├── SmaccEventGenerator.msg
│ │ ├── SmaccOrthogonal.msg
│ │ ├── SmaccSMCommand.msg
│ │ ├── SmaccState.msg
│ │ ├── SmaccStateMachine.msg
│ │ ├── SmaccStateReactor.msg
│ │ ├── SmaccStatus.msg
│ │ ├── SmaccTransition.msg
│ │ └── SmaccTransitionLogEntry.msg
│ ├── package.xml
│ └── srv/
│ └── SmaccGetTransitionHistory.srv
├── smacc2_performance_tools/
│ ├── performance_tests/
│ │ ├── sm_atomic_performance_trace_1/
│ │ │ ├── CHANGELOG.rst
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── config/
│ │ │ │ ├── sm_atomic_performance_trace_1_config.yaml
│ │ │ │ └── sm_atomic_performance_trace_1_test.yaml
│ │ │ ├── include/
│ │ │ │ └── sm_atomic_performance_trace_1/
│ │ │ │ ├── sm_atomic_performance_trace_1.hpp
│ │ │ │ └── states/
│ │ │ │ ├── st_state_1.hpp
│ │ │ │ └── st_state_2.hpp
│ │ │ ├── launch/
│ │ │ │ └── sm_atomic_performance_trace_1.launch
│ │ │ ├── package.xml
│ │ │ └── src/
│ │ │ └── sm_atomic_performance_trace_1/
│ │ │ └── sm_atomic_performance_trace_1_node.cpp
│ │ ├── sm_atomic_subscribers_performance_test/
│ │ │ ├── CHANGELOG.rst
│ │ │ ├── CMakeLists.txt
│ │ │ ├── README.md
│ │ │ ├── config/
│ │ │ │ └── sm_atomic_config.yaml
│ │ │ ├── include/
│ │ │ │ └── sm_atomic_subscribers_performance_test/
│ │ │ │ ├── orthogonals/
│ │ │ │ │ └── or_subscriber.hpp
│ │ │ │ ├── sm_atomic_subscribers_performance_test.hpp
│ │ │ │ └── states/
│ │ │ │ ├── st_state_1.hpp
│ │ │ │ └── st_state_2.hpp
│ │ │ ├── launch/
│ │ │ │ └── sm_atomic_subscribers_performance_test.launch
│ │ │ ├── package.xml
│ │ │ ├── servers/
│ │ │ │ └── basic_publisher.py
│ │ │ └── src/
│ │ │ └── sm_atomic_subscribers_performance_test/
│ │ │ └── sm_atomic_subscribers_performance_test_node.cpp
│ │ └── sm_coretest_transition_speed_1/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ ├── sm_coretest_transition_speed_1.yaml
│ │ │ └── sm_coretest_transition_speed_1_config.yaml
│ │ ├── include/
│ │ │ └── sm_coretest_transition_speed_1/
│ │ │ ├── sm_coretest_transition_speed_1.hpp
│ │ │ └── states/
│ │ │ ├── st_state_1.hpp
│ │ │ └── st_state_2.hpp
│ │ ├── launch/
│ │ │ └── sm_coretest_transition_speed_1.launch
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_coretest_transition_speed_1/
│ │ └── sm_coretest_transition_speed_1_node.cpp
│ └── tracing_tools/
│ ├── README.md
│ └── setupTracing.sh
├── smacc2_sm_reference_library/
│ ├── CLAUDE.md
│ ├── _smacc2_sm_template/
│ │ ├── CMakeLists.txt
│ │ ├── COLCON_IGNORE
│ │ ├── README.md
│ │ ├── config/
│ │ │ ├── sm_name.yaml
│ │ │ └── sm_name_config.yaml
│ │ ├── include/
│ │ │ └── sm_name/
│ │ │ ├── orthogonals/
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_name.hpp
│ │ │ └── states/
│ │ │ ├── st_state_1.hpp
│ │ │ └── st_state_2.hpp
│ │ ├── launch/
│ │ │ ├── NOT_USED_sm_name_with_arguments.launch
│ │ │ └── sm_name.launch
│ │ ├── package.xml.template
│ │ └── src/
│ │ └── sm_name/
│ │ └── sm_name_node.cpp
│ ├── create-sm-package.bash
│ ├── sm_advanced_recovery_1/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ └── sm_advanced_recovery_1_config.yaml
│ │ ├── include/
│ │ │ └── sm_advanced_recovery_1/
│ │ │ ├── clients/
│ │ │ │ └── cl_subscriber/
│ │ │ │ ├── cl_subscriber.hpp
│ │ │ │ └── client_behaviors/
│ │ │ │ ├── cb_default_subscriber_behavior.hpp
│ │ │ │ └── cb_watchdog_subscriber_behavior.hpp
│ │ │ ├── mode_states/
│ │ │ │ ├── ms_recover.hpp
│ │ │ │ └── ms_run.hpp
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_keyboard.hpp
│ │ │ │ ├── or_subscriber.hpp
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_advanced_recovery_1.hpp
│ │ │ ├── states/
│ │ │ │ ├── a_cycle_inner_states/
│ │ │ │ │ ├── sti_a_cycle_loop.hpp
│ │ │ │ │ ├── sti_a_cycle_step_1.hpp
│ │ │ │ │ ├── sti_a_cycle_step_2.hpp
│ │ │ │ │ ├── sti_a_cycle_step_3.hpp
│ │ │ │ │ ├── sti_a_cycle_step_4.hpp
│ │ │ │ │ ├── sti_a_cycle_step_5.hpp
│ │ │ │ │ ├── sti_a_cycle_step_6.hpp
│ │ │ │ │ ├── sti_a_cycle_step_7.hpp
│ │ │ │ │ ├── sti_a_cycle_step_8.hpp
│ │ │ │ │ └── sti_a_cycle_step_9.hpp
│ │ │ │ ├── b_cycle_inner_states/
│ │ │ │ │ ├── sti_b_cycle_loop.hpp
│ │ │ │ │ ├── sti_b_cycle_step_1.hpp
│ │ │ │ │ ├── sti_b_cycle_step_2.hpp
│ │ │ │ │ ├── sti_b_cycle_step_3.hpp
│ │ │ │ │ ├── sti_b_cycle_step_4.hpp
│ │ │ │ │ ├── sti_b_cycle_step_5.hpp
│ │ │ │ │ ├── sti_b_cycle_step_6.hpp
│ │ │ │ │ ├── sti_b_cycle_step_7.hpp
│ │ │ │ │ ├── sti_b_cycle_step_8.hpp
│ │ │ │ │ └── sti_b_cycle_step_9.hpp
│ │ │ │ ├── c_cycle_inner_states/
│ │ │ │ │ ├── sti_c_cycle_loop.hpp
│ │ │ │ │ ├── sti_c_cycle_step_1.hpp
│ │ │ │ │ ├── sti_c_cycle_step_2.hpp
│ │ │ │ │ ├── sti_c_cycle_step_3.hpp
│ │ │ │ │ ├── sti_c_cycle_step_4.hpp
│ │ │ │ │ ├── sti_c_cycle_step_5.hpp
│ │ │ │ │ ├── sti_c_cycle_step_6.hpp
│ │ │ │ │ ├── sti_c_cycle_step_7.hpp
│ │ │ │ │ ├── sti_c_cycle_step_8.hpp
│ │ │ │ │ └── sti_c_cycle_step_9.hpp
│ │ │ │ ├── ms_recover_inner_states/
│ │ │ │ │ ├── st_recover_step_1.hpp
│ │ │ │ │ ├── st_recover_step_2.hpp
│ │ │ │ │ ├── st_recover_step_3.hpp
│ │ │ │ │ ├── st_recover_step_4.hpp
│ │ │ │ │ ├── st_recover_step_5.hpp
│ │ │ │ │ ├── st_recover_step_6.hpp
│ │ │ │ │ └── st_recover_step_7.hpp
│ │ │ │ └── st_observe.hpp
│ │ │ └── superstates/
│ │ │ ├── ss_a_cycle.hpp
│ │ │ ├── ss_b_cycle.hpp
│ │ │ └── ss_c_cycle.hpp
│ │ ├── launch/
│ │ │ └── sm_advanced_recovery_1.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_advanced_recovery_1_node.cpp
│ ├── sm_atomic/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ └── sm_atomic_config.yaml
│ │ ├── include/
│ │ │ └── sm_atomic/
│ │ │ ├── orthogonals/
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_atomic.hpp
│ │ │ └── states/
│ │ │ ├── st_state_1.hpp
│ │ │ └── st_state_2.hpp
│ │ ├── launch/
│ │ │ └── sm_atomic.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_atomic/
│ │ └── sm_atomic_node.cpp
│ ├── sm_atomic_http/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ └── sm_atomic_http_config.yaml
│ │ ├── include/
│ │ │ └── sm_atomic_http/
│ │ │ ├── clients/
│ │ │ │ └── client_behaviors/
│ │ │ │ └── cb_http_request.hpp
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_http.hpp
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_atomic_http.hpp
│ │ │ └── states/
│ │ │ ├── st_state_1.hpp
│ │ │ └── st_state_2.hpp
│ │ ├── launch/
│ │ │ └── sm_atomic_http.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_atomic_http/
│ │ └── sm_atomic_http_node.cpp
│ ├── sm_atomic_lifecycle/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ └── sm_atomic_config.yaml
│ │ ├── include/
│ │ │ └── sm_atomic_lifecycle/
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_lifecyclenode.hpp
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_atomic_lifecycle.hpp
│ │ │ └── states/
│ │ │ ├── st_activating.hpp
│ │ │ ├── st_active.hpp
│ │ │ ├── st_cleaning_up.hpp
│ │ │ ├── st_configuring.hpp
│ │ │ ├── st_deactivating.hpp
│ │ │ ├── st_error_processing.hpp
│ │ │ ├── st_finalized.hpp
│ │ │ ├── st_inactive.hpp
│ │ │ ├── st_shutting_down.hpp
│ │ │ └── st_unconfigured.hpp
│ │ ├── launch/
│ │ │ └── sm_atomic_lifecycle.py
│ │ ├── package.xml
│ │ └── src/
│ │ ├── lifecycle_examplenode/
│ │ │ └── lifecycle_example_node.cpp
│ │ └── sm_atomic_lifecycle/
│ │ └── sm_atomic_lifecycle_node.cpp
│ ├── sm_atomic_mode_states/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ └── sm_atomic_mode_states_config.yaml
│ │ ├── include/
│ │ │ └── sm_atomic_mode_states/
│ │ │ ├── client_behaviors/
│ │ │ │ └── cb_updatable_test.hpp
│ │ │ ├── orthogonals/
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_atomic_mode_states.hpp
│ │ │ └── states/
│ │ │ ├── ms_state_1.hpp
│ │ │ ├── ms_state_2.hpp
│ │ │ ├── st_state_1.hpp
│ │ │ └── st_state_2.hpp
│ │ ├── launch/
│ │ │ └── sm_atomic_mode_states.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_atomic_mode_states/
│ │ └── sm_atomic_mode_states_node.cpp
│ ├── sm_branching/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ └── sm_branching_config.yaml
│ │ ├── include/
│ │ │ └── sm_branching/
│ │ │ ├── orthogonals/
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_branching.hpp
│ │ │ └── states/
│ │ │ ├── st_state_1.hpp
│ │ │ ├── st_state_2.hpp
│ │ │ ├── st_state_2b.hpp
│ │ │ ├── st_state_2c.hpp
│ │ │ ├── st_state_3.hpp
│ │ │ ├── st_state_3b.hpp
│ │ │ ├── st_state_3c.hpp
│ │ │ ├── st_state_4.hpp
│ │ │ ├── st_state_4c.hpp
│ │ │ ├── st_state_5.hpp
│ │ │ ├── st_state_5b.hpp
│ │ │ └── st_state_6.hpp
│ │ ├── launch/
│ │ │ └── sm_branching.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_branching/
│ │ └── sm_branching_node.cpp
│ ├── sm_cl_gcalcli_test_1/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── docs/
│ │ │ └── sm_cl_gcalcli_test_1_plan.md
│ │ ├── include/
│ │ │ └── sm_cl_gcalcli_test_1/
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_calendar.hpp
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_cl_gcalcli_test_1.hpp
│ │ │ └── states/
│ │ │ ├── st_done.hpp
│ │ │ ├── st_init.hpp
│ │ │ ├── st_test_event_detect.hpp
│ │ │ ├── st_test_quick_add.hpp
│ │ │ ├── st_test_refresh.hpp
│ │ │ └── st_wait_connection.hpp
│ │ ├── launch/
│ │ │ └── sm_cl_gcalcli_test_1.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_cl_gcalcli_test_1/
│ │ └── sm_cl_gcalcli_test_1_node.cpp
│ ├── sm_cl_keyboard_unit_test_1/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ └── sm_cl_keyboard_unit_test_1_config.yaml
│ │ ├── include/
│ │ │ └── sm_cl_keyboard_unit_test_1/
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_keyboard.hpp
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_cl_keyboard_unit_test_1.hpp
│ │ │ └── states/
│ │ │ ├── st_state_1.hpp
│ │ │ └── st_state_2.hpp
│ │ ├── launch/
│ │ │ └── sm_cl_keyboard_unit_test_1.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_cl_keyboard_unit_test_1/
│ │ └── sm_cl_keyboard_unit_test_1_node.cpp
│ ├── sm_cl_px4_mr_test_1/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── include/
│ │ │ └── sm_cl_px4_mr_test_1/
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_px4.hpp
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_cl_px4_mr_test_1.hpp
│ │ │ └── states/
│ │ │ ├── ms_armed_on_ground.hpp
│ │ │ ├── ms_disarmed_on_ground.hpp
│ │ │ ├── ms_in_flight.hpp
│ │ │ ├── ms_landed.hpp
│ │ │ ├── ms_landing.hpp
│ │ │ ├── ms_takeoff.hpp
│ │ │ ├── st_arm_px4.hpp
│ │ │ ├── st_go_to_waypoint_1.hpp
│ │ │ ├── st_land.hpp
│ │ │ ├── st_landed.hpp
│ │ │ ├── st_orbit_location.hpp
│ │ │ ├── st_return_to_base.hpp
│ │ │ ├── st_takeoff.hpp
│ │ │ └── st_wait_for_ready.hpp
│ │ ├── launch/
│ │ │ └── sm_cl_px4_mr_test_1.launch.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_cl_px4_mr_test_1/
│ │ └── sm_cl_px4_mr_test_1_node.cpp
│ ├── sm_cl_px4_mr_test_2/
│ │ ├── CMakeLists.txt
│ │ ├── include/
│ │ │ └── sm_cl_px4_mr_test_2/
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_px4.hpp
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_cl_px4_mr_test_2.hpp
│ │ │ └── states/
│ │ │ ├── ms_armed_on_ground.hpp
│ │ │ ├── ms_disarmed_on_ground.hpp
│ │ │ ├── ms_in_flight.hpp
│ │ │ ├── ms_landed.hpp
│ │ │ ├── ms_landing.hpp
│ │ │ ├── ms_takeoff.hpp
│ │ │ ├── st_arm_px4.hpp
│ │ │ ├── st_change_altitude.hpp
│ │ │ ├── st_connect_micro_ros_agent.hpp
│ │ │ ├── st_figure_eight.hpp
│ │ │ ├── st_follow_waypoints.hpp
│ │ │ ├── st_hold_position.hpp
│ │ │ ├── st_hold_position_2.hpp
│ │ │ ├── st_hold_position_3.hpp
│ │ │ ├── st_hold_position_4.hpp
│ │ │ ├── st_hold_position_5.hpp
│ │ │ ├── st_hold_position_6.hpp
│ │ │ ├── st_land.hpp
│ │ │ ├── st_landed.hpp
│ │ │ ├── st_return_to_home.hpp
│ │ │ ├── st_spiral_pattern.hpp
│ │ │ ├── st_takeoff.hpp
│ │ │ ├── st_wait_for_ready.hpp
│ │ │ └── st_yaw_rotate.hpp
│ │ ├── launch/
│ │ │ └── sm_cl_px4_mr_test_2.launch.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_cl_px4_mr_test_2/
│ │ └── sm_cl_px4_mr_test_2_node.cpp
│ ├── sm_cl_ros2_timer_unit_test_1/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ └── sm_cl_ros2_timer_unit_test_1_config.yaml
│ │ ├── include/
│ │ │ └── sm_cl_ros2_timer_unit_test_1/
│ │ │ ├── orthogonals/
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_cl_ros2_timer_unit_test_1.hpp
│ │ │ └── states/
│ │ │ ├── st_state_1.hpp
│ │ │ └── st_state_2.hpp
│ │ ├── launch/
│ │ │ └── sm_cl_ros2_timer_unit_test_1.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_cl_ros2_timer_unit_test_1/
│ │ └── sm_cl_ros2_timer_unit_test_1_node.cpp
│ ├── sm_modbus_tcp_relay_test_1/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ └── sm_modbus_tcp_relay_test_1_config.yaml
│ │ ├── include/
│ │ │ └── sm_modbus_tcp_relay_test_1/
│ │ │ ├── orthogonals/
│ │ │ │ └── or_relay.hpp
│ │ │ ├── sm_modbus_tcp_relay_test_1.hpp
│ │ │ └── states/
│ │ │ ├── st_all_off.hpp
│ │ │ ├── st_all_on.hpp
│ │ │ ├── st_complete.hpp
│ │ │ ├── st_connect.hpp
│ │ │ ├── st_connected.hpp
│ │ │ ├── st_read_status.hpp
│ │ │ ├── st_relay_off.hpp
│ │ │ └── st_relay_on.hpp
│ │ ├── launch/
│ │ │ └── sm_modbus_tcp_relay_test_1.launch.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_modbus_tcp_relay_test_1/
│ │ └── sm_modbus_tcp_relay_test_1_node.cpp
│ ├── sm_multi_stage_1/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ └── sm_multi_stage_1_config.yaml
│ │ ├── include/
│ │ │ └── sm_multi_stage_1/
│ │ │ ├── clients/
│ │ │ │ └── cl_subscriber/
│ │ │ │ ├── cl_subscriber.hpp
│ │ │ │ └── client_behaviors/
│ │ │ │ ├── cb_default_subscriber_behavior.hpp
│ │ │ │ └── cb_watchdog_subscriber_behavior.hpp
│ │ │ ├── mode_states/
│ │ │ │ ├── ms_mode_1.hpp
│ │ │ │ ├── ms_mode_2.hpp
│ │ │ │ ├── ms_mode_3.hpp
│ │ │ │ ├── ms_mode_4.hpp
│ │ │ │ ├── ms_mode_5.hpp
│ │ │ │ ├── ms_recovery_1.hpp
│ │ │ │ └── ms_recovery_2.hpp
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_keyboard.hpp
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_multi_stage_1.hpp
│ │ │ ├── states/
│ │ │ │ ├── mode_1_sequence_a/
│ │ │ │ │ ├── sti_mode_1_sequence_a_loop.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_a_step_1.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_a_step_2.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_a_step_3.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_a_step_4.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_a_step_5.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_a_step_6.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_a_step_7.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_a_step_8.hpp
│ │ │ │ │ └── sti_mode_1_sequence_a_step_9.hpp
│ │ │ │ ├── mode_1_sequence_a_loop.hpp
│ │ │ │ ├── mode_1_sequence_b/
│ │ │ │ │ ├── sti_mode_1_sequence_b_loop.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_b_step_1.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_b_step_2.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_b_step_3.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_b_step_4.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_b_step_5.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_b_step_6.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_b_step_7.hpp
│ │ │ │ │ ├── sti_mode_1_sequence_b_step_8.hpp
│ │ │ │ │ └── sti_mode_1_sequence_b_step_9.hpp
│ │ │ │ ├── mode_1_sequence_b_loop.hpp
│ │ │ │ ├── mode_1_st_observe.hpp
│ │ │ │ ├── mode_2_sequence_a/
│ │ │ │ │ ├── sti_mode_2_sequence_a_loop.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_a_step_1.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_a_step_2.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_a_step_3.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_a_step_4.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_a_step_5.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_a_step_6.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_a_step_7.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_a_step_8.hpp
│ │ │ │ │ └── sti_mode_2_sequence_a_step_9.hpp
│ │ │ │ ├── mode_2_sequence_a_loop.hpp
│ │ │ │ ├── mode_2_sequence_b/
│ │ │ │ │ ├── sti_mode_2_sequence_b_loop.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_b_step_1.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_b_step_2.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_b_step_3.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_b_step_4.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_b_step_5.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_b_step_6.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_b_step_7.hpp
│ │ │ │ │ ├── sti_mode_2_sequence_b_step_8.hpp
│ │ │ │ │ └── sti_mode_2_sequence_b_step_9.hpp
│ │ │ │ ├── mode_2_sequence_b_loop.hpp
│ │ │ │ ├── mode_2_st_observe.hpp
│ │ │ │ ├── mode_3_sequence_a/
│ │ │ │ │ ├── sti_mode_3_sequence_a_loop.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_a_step_1.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_a_step_2.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_a_step_3.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_a_step_4.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_a_step_5.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_a_step_6.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_a_step_7.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_a_step_8.hpp
│ │ │ │ │ └── sti_mode_3_sequence_a_step_9.hpp
│ │ │ │ ├── mode_3_sequence_a_loop.hpp
│ │ │ │ ├── mode_3_sequence_b/
│ │ │ │ │ ├── sti_mode_3_sequence_b_loop.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_b_step_1.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_b_step_2.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_b_step_3.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_b_step_4.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_b_step_5.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_b_step_6.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_b_step_7.hpp
│ │ │ │ │ ├── sti_mode_3_sequence_b_step_8.hpp
│ │ │ │ │ └── sti_mode_3_sequence_b_step_9.hpp
│ │ │ │ ├── mode_3_sequence_b_loop.hpp
│ │ │ │ ├── mode_3_st_observe.hpp
│ │ │ │ ├── mode_4_sequence_a/
│ │ │ │ │ ├── sti_mode_4_sequence_a_loop.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_a_step_1.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_a_step_2.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_a_step_3.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_a_step_4.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_a_step_5.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_a_step_6.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_a_step_7.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_a_step_8.hpp
│ │ │ │ │ └── sti_mode_4_sequence_a_step_9.hpp
│ │ │ │ ├── mode_4_sequence_a_loop.hpp
│ │ │ │ ├── mode_4_sequence_b/
│ │ │ │ │ ├── sti_mode_4_sequence_b_loop.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_b_step_1.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_b_step_2.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_b_step_3.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_b_step_4.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_b_step_5.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_b_step_6.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_b_step_7.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_b_step_8.hpp
│ │ │ │ │ └── sti_mode_4_sequence_b_step_9.hpp
│ │ │ │ ├── mode_4_sequence_b_loop.hpp
│ │ │ │ ├── mode_4_sequence_c/
│ │ │ │ │ ├── sti_mode_4_sequence_c_loop.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_c_step_1.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_c_step_2.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_c_step_3.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_c_step_4.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_c_step_5.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_c_step_6.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_c_step_7.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_c_step_8.hpp
│ │ │ │ │ └── sti_mode_4_sequence_c_step_9.hpp
│ │ │ │ ├── mode_4_sequence_c_loop.hpp
│ │ │ │ ├── mode_4_sequence_d/
│ │ │ │ │ ├── sti_mode_4_sequence_d_loop.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_d_step_1.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_d_step_2.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_d_step_3.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_d_step_4.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_d_step_5.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_d_step_6.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_d_step_7.hpp
│ │ │ │ │ ├── sti_mode_4_sequence_d_step_8.hpp
│ │ │ │ │ └── sti_mode_4_sequence_d_step_9.hpp
│ │ │ │ ├── mode_4_sequence_d_loop.hpp
│ │ │ │ ├── mode_4_st_observe.hpp
│ │ │ │ ├── mode_5_sequence_a/
│ │ │ │ │ ├── sti_mode_5_sequence_a_loop.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_a_step_1.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_a_step_2.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_a_step_3.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_a_step_4.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_a_step_5.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_a_step_6.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_a_step_7.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_a_step_8.hpp
│ │ │ │ │ └── sti_mode_5_sequence_a_step_9.hpp
│ │ │ │ ├── mode_5_sequence_a_loop.hpp
│ │ │ │ ├── mode_5_sequence_b/
│ │ │ │ │ ├── sti_mode_5_sequence_b_loop.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_b_step_1.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_b_step_2.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_b_step_3.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_b_step_4.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_b_step_5.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_b_step_6.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_b_step_7.hpp
│ │ │ │ │ ├── sti_mode_5_sequence_b_step_8.hpp
│ │ │ │ │ └── sti_mode_5_sequence_b_step_9.hpp
│ │ │ │ ├── mode_5_sequence_b_loop.hpp
│ │ │ │ ├── mode_5_st_observe.hpp
│ │ │ │ ├── ms_recovery_1/
│ │ │ │ │ ├── st_recovery_analyze_1.hpp
│ │ │ │ │ ├── st_recovery_bifurcate_1.hpp
│ │ │ │ │ ├── st_recovery_calculate_1.hpp
│ │ │ │ │ ├── st_recovery_deliberate_1.hpp
│ │ │ │ │ ├── st_recovery_evaluate_1.hpp
│ │ │ │ │ ├── st_recovery_generate_1.hpp
│ │ │ │ │ └── st_recovery_innervate_1.hpp
│ │ │ │ └── ms_recovery_2/
│ │ │ │ ├── st_recovery_analyze_2.hpp
│ │ │ │ ├── st_recovery_bifurcate_2.hpp
│ │ │ │ ├── st_recovery_calculate_2.hpp
│ │ │ │ ├── st_recovery_deliberate_2.hpp
│ │ │ │ ├── st_recovery_evaluate_2.hpp
│ │ │ │ ├── st_recovery_generate_2.hpp
│ │ │ │ └── st_recovery_innervate_2.hpp
│ │ │ └── superstates/
│ │ │ ├── ss_mode_1_sequence_a.hpp
│ │ │ ├── ss_mode_1_sequence_b.hpp
│ │ │ ├── ss_mode_2_sequence_a.hpp
│ │ │ ├── ss_mode_2_sequence_b.hpp
│ │ │ ├── ss_mode_3_sequence_a.hpp
│ │ │ ├── ss_mode_3_sequence_b.hpp
│ │ │ ├── ss_mode_4_sequence_a.hpp
│ │ │ ├── ss_mode_4_sequence_b.hpp
│ │ │ ├── ss_mode_4_sequence_c.hpp
│ │ │ ├── ss_mode_4_sequence_d.hpp
│ │ │ ├── ss_mode_5_sequence_a.hpp
│ │ │ └── ss_mode_5_sequence_b.hpp
│ │ ├── launch/
│ │ │ └── sm_multi_stage_1.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_multi_stage_1_node.cpp
│ ├── sm_multithread_test_1/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── include/
│ │ │ └── sm_multithread_test_1/
│ │ │ ├── client_behaviors/
│ │ │ │ └── cb_timer_with_work_simulation.hpp
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_timer_a.hpp
│ │ │ │ ├── or_timer_b.hpp
│ │ │ │ ├── or_timer_c.hpp
│ │ │ │ └── or_timer_d.hpp
│ │ │ ├── sm_multithread_test_1.hpp
│ │ │ └── states/
│ │ │ ├── st_complete.hpp
│ │ │ └── st_concurrent_operation.hpp
│ │ ├── launch/
│ │ │ ├── sm_multithread_test_1.py
│ │ │ └── sm_multithread_test_1_single.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_multithread_test_1/
│ │ ├── sm_multithread_test_1_node.cpp
│ │ └── sm_multithread_test_1_node_single.cpp
│ ├── sm_nav2_gazebo_test_1/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ └── sm_nav2_gazebo_test_1_config.yaml
│ │ ├── include/
│ │ │ └── sm_nav2_gazebo_test_1/
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_keyboard.hpp
│ │ │ │ ├── or_navigation.hpp
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_nav2_gazebo_test_1.hpp
│ │ │ └── states/
│ │ │ ├── st_all_sensors_go.hpp
│ │ │ ├── st_final_state.hpp
│ │ │ ├── st_navigate_to_waypoint_1.hpp
│ │ │ ├── st_navigate_to_waypoint_2.hpp
│ │ │ ├── st_rotate.hpp
│ │ │ └── st_set_initial_pose.hpp
│ │ ├── launch/
│ │ │ └── sm_nav2_gazebo_test_1.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_nav2_gazebo_test_1/
│ │ └── sm_nav2_gazebo_test_1_node.cpp
│ ├── sm_pack_ml/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ └── sm_multi_stage_1_config.yaml
│ │ ├── include/
│ │ │ └── sm_pack_ml/
│ │ │ ├── clients/
│ │ │ │ └── cl_subscriber/
│ │ │ │ ├── cl_subscriber.hpp
│ │ │ │ └── client_behaviors/
│ │ │ │ ├── cb_default_subscriber_behavior.hpp
│ │ │ │ └── cb_watchdog_subscriber_behavior.hpp
│ │ │ ├── domain_states/
│ │ │ │ ├── ds_clearing.hpp
│ │ │ │ ├── ds_run.hpp
│ │ │ │ ├── ds_stopped.hpp
│ │ │ │ └── ds_stopping.hpp
│ │ │ ├── j_states/
│ │ │ │ ├── js_aborted.hpp
│ │ │ │ ├── js_aborting.hpp
│ │ │ │ └── js_active.hpp
│ │ │ ├── mode_states/
│ │ │ │ ├── ms_complete.hpp
│ │ │ │ ├── ms_completing.hpp
│ │ │ │ ├── ms_execute.hpp
│ │ │ │ ├── ms_held.hpp
│ │ │ │ ├── ms_holding.hpp
│ │ │ │ ├── ms_idle.hpp
│ │ │ │ ├── ms_resetting.hpp
│ │ │ │ ├── ms_starting.hpp
│ │ │ │ ├── ms_suspended.hpp
│ │ │ │ ├── ms_suspending.hpp
│ │ │ │ ├── ms_unholding.hpp
│ │ │ │ └── ms_unsuspending.hpp
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_keyboard.hpp
│ │ │ │ ├── or_subscriber.hpp
│ │ │ │ └── or_timer.hpp
│ │ │ ├── sm_pack_ml.hpp
│ │ │ ├── states/
│ │ │ │ ├── completing_sequence_a/
│ │ │ │ │ ├── sti_completing_sequence_a_loop.hpp
│ │ │ │ │ ├── sti_completing_sequence_a_step_1.hpp
│ │ │ │ │ ├── sti_completing_sequence_a_step_2.hpp
│ │ │ │ │ ├── sti_completing_sequence_a_step_3.hpp
│ │ │ │ │ ├── sti_completing_sequence_a_step_4.hpp
│ │ │ │ │ ├── sti_completing_sequence_a_step_5.hpp
│ │ │ │ │ ├── sti_completing_sequence_a_step_6.hpp
│ │ │ │ │ ├── sti_completing_sequence_a_step_7.hpp
│ │ │ │ │ ├── sti_completing_sequence_a_step_8.hpp
│ │ │ │ │ └── sti_completing_sequence_a_step_9.hpp
│ │ │ │ ├── completing_sequence_a_loop.hpp
│ │ │ │ ├── completing_sequence_b/
│ │ │ │ │ ├── sti_completing_sequence_b_loop.hpp
│ │ │ │ │ ├── sti_completing_sequence_b_step_1.hpp
│ │ │ │ │ ├── sti_completing_sequence_b_step_2.hpp
│ │ │ │ │ ├── sti_completing_sequence_b_step_3.hpp
│ │ │ │ │ ├── sti_completing_sequence_b_step_4.hpp
│ │ │ │ │ ├── sti_completing_sequence_b_step_5.hpp
│ │ │ │ │ ├── sti_completing_sequence_b_step_6.hpp
│ │ │ │ │ ├── sti_completing_sequence_b_step_7.hpp
│ │ │ │ │ ├── sti_completing_sequence_b_step_8.hpp
│ │ │ │ │ └── sti_completing_sequence_b_step_9.hpp
│ │ │ │ ├── completing_sequence_b_loop.hpp
│ │ │ │ ├── completing_st_observe.hpp
│ │ │ │ ├── execute_sequence_a/
│ │ │ │ │ ├── sti_execute_sequence_a_loop.hpp
│ │ │ │ │ ├── sti_execute_sequence_a_step_1.hpp
│ │ │ │ │ ├── sti_execute_sequence_a_step_2.hpp
│ │ │ │ │ ├── sti_execute_sequence_a_step_3.hpp
│ │ │ │ │ ├── sti_execute_sequence_a_step_4.hpp
│ │ │ │ │ ├── sti_execute_sequence_a_step_5.hpp
│ │ │ │ │ ├── sti_execute_sequence_a_step_6.hpp
│ │ │ │ │ ├── sti_execute_sequence_a_step_7.hpp
│ │ │ │ │ ├── sti_execute_sequence_a_step_8.hpp
│ │ │ │ │ └── sti_execute_sequence_a_step_9.hpp
│ │ │ │ ├── execute_sequence_a_loop.hpp
│ │ │ │ ├── execute_sequence_b/
│ │ │ │ │ ├── sti_execute_sequence_b_loop.hpp
│ │ │ │ │ ├── sti_execute_sequence_b_step_1.hpp
│ │ │ │ │ ├── sti_execute_sequence_b_step_2.hpp
│ │ │ │ │ ├── sti_execute_sequence_b_step_3.hpp
│ │ │ │ │ ├── sti_execute_sequence_b_step_4.hpp
│ │ │ │ │ ├── sti_execute_sequence_b_step_5.hpp
│ │ │ │ │ ├── sti_execute_sequence_b_step_6.hpp
│ │ │ │ │ ├── sti_execute_sequence_b_step_7.hpp
│ │ │ │ │ ├── sti_execute_sequence_b_step_8.hpp
│ │ │ │ │ └── sti_execute_sequence_b_step_9.hpp
│ │ │ │ ├── execute_sequence_b_loop.hpp
│ │ │ │ ├── execute_st_observe.hpp
│ │ │ │ ├── holding_sequence_a/
│ │ │ │ │ ├── sti_holding_sequence_a_loop.hpp
│ │ │ │ │ ├── sti_holding_sequence_a_step_1.hpp
│ │ │ │ │ ├── sti_holding_sequence_a_step_2.hpp
│ │ │ │ │ ├── sti_holding_sequence_a_step_3.hpp
│ │ │ │ │ ├── sti_holding_sequence_a_step_4.hpp
│ │ │ │ │ ├── sti_holding_sequence_a_step_5.hpp
│ │ │ │ │ ├── sti_holding_sequence_a_step_6.hpp
│ │ │ │ │ ├── sti_holding_sequence_a_step_7.hpp
│ │ │ │ │ ├── sti_holding_sequence_a_step_8.hpp
│ │ │ │ │ └── sti_holding_sequence_a_step_9.hpp
│ │ │ │ ├── holding_sequence_a_loop.hpp
│ │ │ │ ├── holding_sequence_b/
│ │ │ │ │ ├── sti_holding_sequence_b_loop.hpp
│ │ │ │ │ ├── sti_holding_sequence_b_step_1.hpp
│ │ │ │ │ ├── sti_holding_sequence_b_step_2.hpp
│ │ │ │ │ ├── sti_holding_sequence_b_step_3.hpp
│ │ │ │ │ ├── sti_holding_sequence_b_step_4.hpp
│ │ │ │ │ ├── sti_holding_sequence_b_step_5.hpp
│ │ │ │ │ ├── sti_holding_sequence_b_step_6.hpp
│ │ │ │ │ ├── sti_holding_sequence_b_step_7.hpp
│ │ │ │ │ ├── sti_holding_sequence_b_step_8.hpp
│ │ │ │ │ └── sti_holding_sequence_b_step_9.hpp
│ │ │ │ ├── holding_sequence_b_loop.hpp
│ │ │ │ ├── holding_st_observe.hpp
│ │ │ │ ├── ms_recovery_1/
│ │ │ │ │ ├── st_recovery_analyze_1.hpp
│ │ │ │ │ ├── st_recovery_bifurcate_1.hpp
│ │ │ │ │ ├── st_recovery_calculate_1.hpp
│ │ │ │ │ ├── st_recovery_deliberate_1.hpp
│ │ │ │ │ ├── st_recovery_evaluate_1.hpp
│ │ │ │ │ ├── st_recovery_generate_1.hpp
│ │ │ │ │ └── st_recovery_innervate_1.hpp
│ │ │ │ ├── ms_recovery_2/
│ │ │ │ │ ├── st_recovery_analyze_2.hpp
│ │ │ │ │ ├── st_recovery_bifurcate_2.hpp
│ │ │ │ │ ├── st_recovery_calculate_2.hpp
│ │ │ │ │ ├── st_recovery_deliberate_2.hpp
│ │ │ │ │ ├── st_recovery_evaluate_2.hpp
│ │ │ │ │ ├── st_recovery_generate_2.hpp
│ │ │ │ │ └── st_recovery_innervate_2.hpp
│ │ │ │ ├── start_sequence_a/
│ │ │ │ │ ├── sti_start_sequence_a_loop.hpp
│ │ │ │ │ ├── sti_start_sequence_a_step_1.hpp
│ │ │ │ │ ├── sti_start_sequence_a_step_2.hpp
│ │ │ │ │ ├── sti_start_sequence_a_step_3.hpp
│ │ │ │ │ ├── sti_start_sequence_a_step_4.hpp
│ │ │ │ │ ├── sti_start_sequence_a_step_5.hpp
│ │ │ │ │ ├── sti_start_sequence_a_step_6.hpp
│ │ │ │ │ ├── sti_start_sequence_a_step_7.hpp
│ │ │ │ │ ├── sti_start_sequence_a_step_8.hpp
│ │ │ │ │ └── sti_start_sequence_a_step_9.hpp
│ │ │ │ ├── start_sequence_a_loop.hpp
│ │ │ │ ├── start_sequence_b/
│ │ │ │ │ ├── sti_start_sequence_b_loop.hpp
│ │ │ │ │ ├── sti_start_sequence_b_step_1.hpp
│ │ │ │ │ ├── sti_start_sequence_b_step_2.hpp
│ │ │ │ │ ├── sti_start_sequence_b_step_3.hpp
│ │ │ │ │ ├── sti_start_sequence_b_step_4.hpp
│ │ │ │ │ ├── sti_start_sequence_b_step_5.hpp
│ │ │ │ │ ├── sti_start_sequence_b_step_6.hpp
│ │ │ │ │ ├── sti_start_sequence_b_step_7.hpp
│ │ │ │ │ ├── sti_start_sequence_b_step_8.hpp
│ │ │ │ │ └── sti_start_sequence_b_step_9.hpp
│ │ │ │ ├── start_sequence_b_loop.hpp
│ │ │ │ ├── start_st_observe.hpp
│ │ │ │ ├── suspending_sequence_a/
│ │ │ │ │ ├── sti_suspending_sequence_a_loop.hpp
│ │ │ │ │ ├── sti_suspending_sequence_a_step_1.hpp
│ │ │ │ │ ├── sti_suspending_sequence_a_step_2.hpp
│ │ │ │ │ ├── sti_suspending_sequence_a_step_3.hpp
│ │ │ │ │ ├── sti_suspending_sequence_a_step_4.hpp
│ │ │ │ │ ├── sti_suspending_sequence_a_step_5.hpp
│ │ │ │ │ ├── sti_suspending_sequence_a_step_6.hpp
│ │ │ │ │ ├── sti_suspending_sequence_a_step_7.hpp
│ │ │ │ │ ├── sti_suspending_sequence_a_step_8.hpp
│ │ │ │ │ └── sti_suspending_sequence_a_step_9.hpp
│ │ │ │ ├── suspending_sequence_a_loop.hpp
│ │ │ │ ├── suspending_sequence_b/
│ │ │ │ │ ├── sti_suspending_sequence_b_loop.hpp
│ │ │ │ │ ├── sti_suspending_sequence_b_step_1.hpp
│ │ │ │ │ ├── sti_suspending_sequence_b_step_2.hpp
│ │ │ │ │ ├── sti_suspending_sequence_b_step_3.hpp
│ │ │ │ │ ├── sti_suspending_sequence_b_step_4.hpp
│ │ │ │ │ ├── sti_suspending_sequence_b_step_5.hpp
│ │ │ │ │ ├── sti_suspending_sequence_b_step_6.hpp
│ │ │ │ │ ├── sti_suspending_sequence_b_step_7.hpp
│ │ │ │ │ ├── sti_suspending_sequence_b_step_8.hpp
│ │ │ │ │ └── sti_suspending_sequence_b_step_9.hpp
│ │ │ │ ├── suspending_sequence_b_loop.hpp
│ │ │ │ ├── suspending_sequence_c/
│ │ │ │ │ ├── sti_suspending_sequence_c_loop.hpp
│ │ │ │ │ ├── sti_suspending_sequence_c_step_1.hpp
│ │ │ │ │ ├── sti_suspending_sequence_c_step_2.hpp
│ │ │ │ │ ├── sti_suspending_sequence_c_step_3.hpp
│ │ │ │ │ ├── sti_suspending_sequence_c_step_4.hpp
│ │ │ │ │ ├── sti_suspending_sequence_c_step_5.hpp
│ │ │ │ │ ├── sti_suspending_sequence_c_step_6.hpp
│ │ │ │ │ ├── sti_suspending_sequence_c_step_7.hpp
│ │ │ │ │ ├── sti_suspending_sequence_c_step_8.hpp
│ │ │ │ │ └── sti_suspending_sequence_c_step_9.hpp
│ │ │ │ ├── suspending_sequence_c_loop.hpp
│ │ │ │ ├── suspending_sequence_d/
│ │ │ │ │ ├── sti_suspending_sequence_d_loop.hpp
│ │ │ │ │ ├── sti_suspending_sequence_d_step_1.hpp
│ │ │ │ │ ├── sti_suspending_sequence_d_step_2.hpp
│ │ │ │ │ ├── sti_suspending_sequence_d_step_3.hpp
│ │ │ │ │ ├── sti_suspending_sequence_d_step_4.hpp
│ │ │ │ │ ├── sti_suspending_sequence_d_step_5.hpp
│ │ │ │ │ ├── sti_suspending_sequence_d_step_6.hpp
│ │ │ │ │ ├── sti_suspending_sequence_d_step_7.hpp
│ │ │ │ │ ├── sti_suspending_sequence_d_step_8.hpp
│ │ │ │ │ └── sti_suspending_sequence_d_step_9.hpp
│ │ │ │ ├── suspending_sequence_d_loop.hpp
│ │ │ │ └── suspending_st_observe.hpp
│ │ │ └── superstates/
│ │ │ ├── ss_completing_sequence_a.hpp
│ │ │ ├── ss_completing_sequence_b.hpp
│ │ │ ├── ss_execute_sequence_a.hpp
│ │ │ ├── ss_execute_sequence_b.hpp
│ │ │ ├── ss_holding_sequence_a.hpp
│ │ │ ├── ss_holding_sequence_b.hpp
│ │ │ ├── ss_start_sequence_a.hpp
│ │ │ ├── ss_start_sequence_b.hpp
│ │ │ ├── ss_suspending_sequence_a.hpp
│ │ │ ├── ss_suspending_sequence_b.hpp
│ │ │ ├── ss_suspending_sequence_c.hpp
│ │ │ └── ss_suspending_sequence_d.hpp
│ │ ├── launch/
│ │ │ └── sm_pack_ml.py
│ │ ├── package.xml
│ │ └── src/
│ │ └── sm_pack_ml_node.cpp
│ ├── sm_panda_cl_moveit2z_cb_inventory/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ ├── move_group_client/
│ │ │ │ └── known_states/
│ │ │ │ ├── control_authority_posture.yaml
│ │ │ │ ├── control_authority_posture2.yaml
│ │ │ │ └── initial_posture.yaml
│ │ │ ├── moveit/
│ │ │ │ ├── controllers.yaml
│ │ │ │ └── kinematics.yaml
│ │ │ └── sm_panda_cl_moveit2z_cb_inventory_config.yaml
│ │ ├── include/
│ │ │ └── sm_panda_cl_moveit2z_cb_inventory/
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_arm.hpp
│ │ │ │ └── or_keyboard.hpp
│ │ │ ├── sm_panda_cl_moveit2z_cb_inventory.hpp
│ │ │ └── states/
│ │ │ ├── st_acquire_sensors.hpp
│ │ │ ├── st_end_effector_rotate.hpp
│ │ │ ├── st_move_cartesian_relative2.hpp
│ │ │ ├── st_move_end_effector.hpp
│ │ │ ├── st_move_joints_1.hpp
│ │ │ ├── st_move_joints_2.hpp
│ │ │ ├── st_move_joints_3.hpp
│ │ │ ├── st_move_joints_4.hpp
│ │ │ ├── st_move_joints_5.hpp
│ │ │ ├── st_move_known_state_1.hpp
│ │ │ ├── st_move_known_state_2.hpp
│ │ │ ├── st_pause_1.hpp
│ │ │ ├── st_pause_10.hpp
│ │ │ ├── st_pause_11.hpp
│ │ │ ├── st_pause_12.hpp
│ │ │ ├── st_pause_13.hpp
│ │ │ ├── st_pause_2.hpp
│ │ │ ├── st_pause_3.hpp
│ │ │ ├── st_pause_4.hpp
│ │ │ ├── st_pause_5.hpp
│ │ │ ├── st_pause_6.hpp
│ │ │ ├── st_pause_7.hpp
│ │ │ ├── st_pause_8.hpp
│ │ │ ├── st_pause_9.hpp
│ │ │ └── st_undo_last_trajectory.hpp
│ │ ├── launch/
│ │ │ ├── panda_hello_moveit.rviz
│ │ │ ├── panda_moveit_config_demo.rviz
│ │ │ ├── panda_moveit_config_demo_empty.rviz
│ │ │ └── sm_panda_cl_moveit2z_cb_inventory.py
│ │ ├── package.xml
│ │ ├── rviz/
│ │ │ └── view_robot.rviz
│ │ └── src/
│ │ └── sm_panda_cl_moveit2z_cb_inventory/
│ │ └── sm_panda_cl_moveit2z_cb_inventory_node.cpp
│ ├── sm_panda_cl_moveit2z_cb_inventory_isaacsim/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ ├── move_group_client/
│ │ │ │ └── known_states/
│ │ │ │ ├── control_authority_posture.yaml
│ │ │ │ ├── control_authority_posture2.yaml
│ │ │ │ └── initial_posture.yaml
│ │ │ ├── moveit/
│ │ │ │ ├── controllers.yaml
│ │ │ │ └── kinematics.yaml
│ │ │ └── sm_panda_cl_moveit2z_cb_inventory_isaacsim_config.yaml
│ │ ├── include/
│ │ │ └── sm_panda_cl_moveit2z_cb_inventory_isaacsim/
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_arm.hpp
│ │ │ │ └── or_keyboard.hpp
│ │ │ ├── sm_panda_cl_moveit2z_cb_inventory_isaacsim.hpp
│ │ │ └── states/
│ │ │ ├── st_acquire_sensors.hpp
│ │ │ ├── st_end_effector_rotate.hpp
│ │ │ ├── st_move_cartesian_relative2.hpp
│ │ │ ├── st_move_end_effector.hpp
│ │ │ ├── st_move_joints_1.hpp
│ │ │ ├── st_move_joints_2.hpp
│ │ │ ├── st_move_joints_3.hpp
│ │ │ ├── st_move_joints_4.hpp
│ │ │ ├── st_move_joints_5.hpp
│ │ │ ├── st_move_known_state_1.hpp
│ │ │ ├── st_move_known_state_2.hpp
│ │ │ ├── st_pause_1.hpp
│ │ │ ├── st_pause_10.hpp
│ │ │ ├── st_pause_11.hpp
│ │ │ ├── st_pause_12.hpp
│ │ │ ├── st_pause_13.hpp
│ │ │ ├── st_pause_2.hpp
│ │ │ ├── st_pause_3.hpp
│ │ │ ├── st_pause_4.hpp
│ │ │ ├── st_pause_5.hpp
│ │ │ ├── st_pause_6.hpp
│ │ │ ├── st_pause_7.hpp
│ │ │ ├── st_pause_8.hpp
│ │ │ ├── st_pause_9.hpp
│ │ │ └── st_undo_last_trajectory.hpp
│ │ ├── launch/
│ │ │ ├── panda_hello_moveit.rviz
│ │ │ ├── panda_moveit_config_demo.rviz
│ │ │ ├── panda_moveit_config_demo_empty.rviz
│ │ │ └── sm_panda_cl_moveit2z_cb_inventory_isaacsim.launch.py
│ │ ├── package.xml
│ │ ├── rviz/
│ │ │ └── view_robot.rviz
│ │ ├── scripts/
│ │ │ ├── setup_ros2_bridge.py
│ │ │ └── trajectory_bridge.py
│ │ └── src/
│ │ └── sm_panda_cl_moveit2z_cb_inventory_isaacsim/
│ │ └── sm_panda_cl_moveit2z_cb_inventory_isaacsim_node.cpp
│ ├── sm_simple_action_client/
│ │ ├── CHANGELOG.rst
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── config/
│ │ │ ├── simple_action_client_example.yaml
│ │ │ └── simple_action_client_example_config.yaml
│ │ ├── include/
│ │ │ └── sm_simple_action_client/
│ │ │ ├── fibonacci_action_client/
│ │ │ │ ├── cl_fibonacci.hpp
│ │ │ │ └── client_behaviors/
│ │ │ │ └── cb_fibonacci.hpp
│ │ │ ├── mode_selection_client/
│ │ │ │ ├── cl_mode_select.hpp
│ │ │ │ └── client_behaviors/
│ │ │ │ └── cb_mode_select.hpp
│ │ │ ├── orthogonals/
│ │ │ │ ├── or_fibonacci.hpp
│ │ │ │ └── or_mode_select.hpp
│ │ │ ├── sm_simple_action_client.hpp
│ │ │ └── states/
│ │ │ ├── st_state_1.hpp
│ │ │ ├── st_state_2.hpp
│ │ │ └── st_state_3.hpp
│ │ ├── launch/
│ │ │ └── sm_simple_action_client.py
│ │ ├── package.xml
│ │ ├── scripts/
│ │ │ └── auto_mode_trigger.py
│ │ └── src/
│ │ └── sm_simple_action_client/
│ │ └── sm_simple_action_client_node.cpp
│ └── sm_three_some/
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── README.md
│ ├── config/
│ │ └── sm_three_some_config.yaml
│ ├── include/
│ │ └── sm_three_some/
│ │ ├── clients/
│ │ │ └── cl_subscriber/
│ │ │ ├── cl_subscriber.hpp
│ │ │ └── client_behaviors/
│ │ │ ├── cb_default_subscriber_behavior.hpp
│ │ │ └── cb_watchdog_subscriber_behavior.hpp
│ │ ├── mode_states/
│ │ │ ├── ms_recover.hpp
│ │ │ └── ms_run.hpp
│ │ ├── orthogonals/
│ │ │ ├── or_keyboard.hpp
│ │ │ ├── or_subscriber.hpp
│ │ │ └── or_timer.hpp
│ │ ├── sm_three_some.hpp
│ │ ├── states/
│ │ │ ├── inner_states/
│ │ │ │ ├── sti_state_1.hpp
│ │ │ │ ├── sti_state_2.hpp
│ │ │ │ └── sti_state_3.hpp
│ │ │ ├── st_state_1.hpp
│ │ │ ├── st_state_2.hpp
│ │ │ ├── st_state_3.hpp
│ │ │ └── st_state_4.hpp
│ │ └── superstates/
│ │ ├── ss_superstate_1.hpp
│ │ └── ss_superstate_2.hpp
│ ├── launch/
│ │ └── sm_three_some.py
│ ├── package.xml
│ └── src/
│ └── sm_three_some_node.cpp
└── smacc2_state_reactor_library/
├── sr_all_events_go/
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── include/
│ │ └── sr_all_events_go/
│ │ └── sr_all_events_go.hpp
│ ├── package.xml
│ └── src/
│ └── sr_all_events_go/
│ └── sr_all_events_go.cpp
├── sr_conditional/
│ ├── CHANGELOG.rst
│ ├── CMakeLists.txt
│ ├── include/
│ │ └── sr_conditional/
│ │ └── sr_conditional.hpp
│ ├── package.xml
│ └── src/
│ └── sr_conditional/
│ └── sr_conditional.cpp
└── sr_event_countdown/
├── CHANGELOG.rst
├── CMakeLists.txt
├── include/
│ └── sr_event_countdown/
│ └── sr_event_countdown.hpp
├── package.xml
└── src/
└── sr_event_countdown/
└── sr_event_countdown.cpp
Showing preview only (693K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (7584 symbols across 1054 files)
FILE: smacc2/include/smacc2/callback_counter_semaphore.hpp
type smacc2 (line 29) | namespace smacc2
class CallbackCounterSemaphore (line 31) | class CallbackCounterSemaphore
FILE: smacc2/include/smacc2/client_bases/smacc_action_client.hpp
type smacc2 (line 28) | namespace smacc2
type client_bases (line 30) | namespace client_bases
class ISmaccActionClient (line 34) | class ISmaccActionClient : public ISmaccClient
method getNamespace (line 44) | inline std::string getNamespace() const { return name_; }
method getName (line 50) | virtual std::string getName() const { return name_; }
FILE: smacc2/include/smacc2/client_bases/smacc_action_client_base.hpp
type smacc2 (line 30) | namespace smacc2
type client_bases (line 32) | namespace client_bases
class SmaccActionClientBase (line 37) | class SmaccActionClientBase : public ISmaccActionClient
method SmaccActionClientBase (line 66) | SmaccActionClientBase(std::string actionServerName) : ISmaccAction...
method SmaccActionClientBase (line 71) | SmaccActionClientBase() : ISmaccActionClient() { name_ = ""; }
method getClientBase (line 75) | virtual std::shared_ptr<rclcpp_action::ClientBase> getClientBase()...
method onInitialize (line 77) | void onInitialize() override
method waitForServer (line 87) | void waitForServer()
method getEventLabel (line 95) | static std::string getEventLabel()
method postResultEvent (line 123) | void postResultEvent(WrappedResult & /*result*/)
method onStateOrthogonalAllocation (line 134) | void onStateOrthogonalAllocation()
method onSucceeded (line 158) | smacc2::SmaccSignalConnection onSucceeded(void (T::*callback)(Wrap...
method onSucceeded (line 164) | smacc2::SmaccSignalConnection onSucceeded(std::function<void(Wrapp...
method onAborted (line 170) | smacc2::SmaccSignalConnection onAborted(void (T::*callback)(Wrappe...
method onAborted (line 176) | smacc2::SmaccSignalConnection onAborted(std::function<void(Wrapped...
method onCancelled (line 182) | smacc2::SmaccSignalConnection onCancelled(void (T::*callback)(Wrap...
method onCancelled (line 188) | smacc2::SmaccSignalConnection onCancelled(std::function<void(Wrapp...
method cancelGoal (line 219) | virtual bool cancelGoal() override
method sendGoal (line 249) | std::shared_future<typename GoalHandle::SharedPtr> sendGoal(
method onFeedback (line 382) | void onFeedback(
method onResult (line 389) | void onResult(const WrappedResult & result_msg)
FILE: smacc2/include/smacc2/client_bases/smacc_publisher_client.hpp
type smacc2 (line 26) | namespace smacc2
type client_bases (line 28) | namespace client_bases
class SmaccPublisherClient (line 30) | class SmaccPublisherClient : public smacc2::ISmaccClient
method configure (line 42) | void configure(std::string topicName)
method publish (line 70) | void publish(const MessageType & msg)
FILE: smacc2/include/smacc2/client_bases/smacc_ros_launch_client.hpp
type smacc2 (line 29) | namespace smacc2
type client_bases (line 31) | namespace client_bases
class ClRosLaunch (line 33) | class ClRosLaunch : public ISmaccClient
FILE: smacc2/include/smacc2/client_bases/smacc_ros_launch_client_2.hpp
type smacc2 (line 29) | namespace smacc2
type client_bases (line 31) | namespace client_bases
type ProcessInfo (line 33) | struct ProcessInfo
class ClRosLaunch2 (line 43) | class ClRosLaunch2 : public ISmaccClient
FILE: smacc2/include/smacc2/client_bases/smacc_service_client.hpp
type smacc2 (line 26) | namespace smacc2
type client_bases (line 28) | namespace client_bases
class SmaccServiceClient (line 31) | class SmaccServiceClient : public smacc2::ISmaccClient
method SmaccServiceClient (line 36) | SmaccServiceClient(std::string serviceName) : serviceName_(service...
method SmaccServiceClient (line 38) | SmaccServiceClient() { initialized_ = false; }
method onInitialize (line 40) | void onInitialize() override
method call (line 58) | std::shared_ptr<typename ServiceType::Response> call(
FILE: smacc2/include/smacc2/client_bases/smacc_service_server_client.hpp
type smacc2 (line 27) | namespace smacc2
type client_bases (line 29) | namespace client_bases
class SmaccServiceServerClient (line 32) | class SmaccServiceServerClient : public smacc2::ISmaccClient
method SmaccServiceServerClient (line 39) | SmaccServiceServerClient() { initialized_ = false; }
method SmaccServiceServerClient (line 40) | SmaccServiceServerClient(std::string service_name)
method onServiceRequestReceived (line 54) | smacc2::SmaccSignalConnection onServiceRequestReceived(
method onInitialize (line 64) | void onInitialize() override
method serviceCallback (line 90) | void serviceCallback(
FILE: smacc2/include/smacc2/client_bases/smacc_subscriber_client.hpp
type smacc2 (line 28) | namespace smacc2
type client_bases (line 30) | namespace client_bases
class SmaccSubscriberClient (line 38) | class SmaccSubscriberClient : public smacc2::ISmaccClient
method SmaccSubscriberClient (line 46) | SmaccSubscriberClient() { initialized_ = false; }
method SmaccSubscriberClient (line 48) | SmaccSubscriberClient(std::string topicname)
method onMessageReceived (line 63) | smacc2::SmaccSignalConnection onMessageReceived(
method onFirstMessageReceived (line 70) | smacc2::SmaccSignalConnection onFirstMessageReceived(
method onStateOrthogonalAllocation (line 78) | void onStateOrthogonalAllocation()
method onInitialize (line 98) | void onInitialize() override
method messageCallback (line 131) | void messageCallback(const MessageType & msg)
FILE: smacc2/include/smacc2/client_behaviors/cb_call_service.hpp
type smacc2 (line 24) | namespace smacc2
type client_behaviors (line 26) | namespace client_behaviors
class CbServiceCall (line 30) | class CbServiceCall : public smacc2::SmaccAsyncClientBehavior
method CbServiceCall (line 33) | CbServiceCall(const char * serviceName) : serviceName_(serviceName)
method CbServiceCall (line 39) | CbServiceCall(
method onEntry (line 46) | void onEntry() override
method onServiceResponse (line 97) | virtual void onServiceResponse(std::shared_ptr<typename ServiceTyp...
FILE: smacc2/include/smacc2/client_behaviors/cb_ros_launch.hpp
type smacc2 (line 25) | namespace smacc2
type client_behaviors (line 27) | namespace client_behaviors
type RosLaunchMode (line 29) | enum class RosLaunchMode
class CbRosLaunch (line 35) | class CbRosLaunch : public smacc2::SmaccAsyncClientBehavior
method onStateOrthogonalAllocation (line 50) | void onStateOrthogonalAllocation()
FILE: smacc2/include/smacc2/client_behaviors/cb_ros_launch_2.hpp
type smacc2 (line 25) | namespace smacc2
type client_behaviors (line 27) | namespace client_behaviors
type RosLaunchMode (line 29) | enum class RosLaunchMode
class CbRosLaunch2 (line 35) | class CbRosLaunch2 : public smacc2::SmaccAsyncClientBehavior
method onStateOrthogonalAllocation (line 50) | void onStateOrthogonalAllocation()
FILE: smacc2/include/smacc2/client_behaviors/cb_ros_stop_2.hpp
type smacc2 (line 25) | namespace smacc2
type client_behaviors (line 27) | namespace client_behaviors
class CbRosStop2 (line 29) | class CbRosStop2 : public smacc2::SmaccAsyncClientBehavior
method onStateOrthogonalAllocation (line 44) | void onStateOrthogonalAllocation()
FILE: smacc2/include/smacc2/client_behaviors/cb_sequence.hpp
type smacc2 (line 27) | namespace smacc2
type client_behaviors (line 29) | namespace client_behaviors
class CbSequence (line 31) | class CbSequence : public smacc2::SmaccAsyncClientBehavior
method onExit (line 49) | void onExit() override { sequenceNodes_.clear(); }
method CbSequence (line 52) | CbSequence * then(Args &&... args)
FILE: smacc2/include/smacc2/client_behaviors/cb_service_server_callback_base.hpp
type smacc2 (line 18) | namespace smacc2
class CbServiceServerCallbackBase (line 21) | class CbServiceServerCallbackBase : public smacc2::SmaccClientBehavior
method onEntry (line 24) | virtual void onEntry() override
FILE: smacc2/include/smacc2/client_behaviors/cb_sleep_for.hpp
type smacc2::client_behaviors (line 27) | namespace smacc2::client_behaviors
class CbSleepFor (line 31) | class CbSleepFor : public smacc2::SmaccAsyncClientBehavior
method CbSleepFor (line 34) | CbSleepFor(rclcpp::Duration sleeptime) : sleeptime_(sleeptime) {}
method onEntry (line 36) | void onEntry() override
method onExit (line 48) | void onExit() override {}
FILE: smacc2/include/smacc2/client_behaviors/cb_subscription_callback_base.hpp
type smacc2 (line 23) | namespace smacc2
type client_behaviors (line 25) | namespace client_behaviors
class CbSubscriptionCallbackBase (line 28) | class CbSubscriptionCallbackBase : public smacc2::SmaccClientBehavior
method onEntry (line 31) | void onEntry() override
FILE: smacc2/include/smacc2/client_behaviors/cb_wait_action_server.hpp
type smacc2 (line 27) | namespace smacc2
type client_behaviors (line 29) | namespace client_behaviors
class CbWaitActionServer (line 35) | class CbWaitActionServer : public smacc2::SmaccAsyncClientBehavior
method onStateOrthogonalAllocation (line 42) | void onStateOrthogonalAllocation()
FILE: smacc2/include/smacc2/client_behaviors/cb_wait_action_server_2.hpp
type smacc2 (line 27) | namespace smacc2
type client_behaviors (line 29) | namespace client_behaviors
class CbWaitActionServer2 (line 36) | class CbWaitActionServer2 : public smacc2::SmaccAsyncClientBehavior
method onStateOrthogonalAllocation (line 40) | void onStateOrthogonalAllocation()
method CbWaitActionServer2 (line 47) | CbWaitActionServer2(std::chrono::milliseconds timeout) : timeout_(...
method onEntry (line 51) | void onEntry()
FILE: smacc2/include/smacc2/client_behaviors/cb_wait_node.hpp
type smacc2::client_behaviors (line 27) | namespace smacc2::client_behaviors
class CbWaitNode (line 33) | class CbWaitNode : public smacc2::SmaccAsyncClientBehavior
FILE: smacc2/include/smacc2/client_behaviors/cb_wait_topic.hpp
type smacc2::client_behaviors (line 27) | namespace smacc2::client_behaviors
class CbWaitTopic (line 33) | class CbWaitTopic : public smacc2::SmaccAsyncClientBehavior
FILE: smacc2/include/smacc2/client_behaviors/cb_wait_topic_message.hpp
type smacc2 (line 27) | namespace smacc2
type client_behaviors (line 29) | namespace client_behaviors
class CbWaitTopicMessage (line 36) | class CbWaitTopicMessage : public smacc2::SmaccAsyncClientBehavior
method CbWaitTopicMessage (line 39) | CbWaitTopicMessage(
method onEntry (line 48) | void onEntry() override
method onMessageReceived (line 69) | void onMessageReceived(const typename TMessage::SharedPtr msg)
FILE: smacc2/include/smacc2/client_core_components/cp_action_client.hpp
type smacc2 (line 29) | namespace smacc2
type client_core_components (line 31) | namespace client_core_components
class CpActionClient (line 36) | class CpActionClient : public smacc2::ISmaccComponent
method CpActionClient (line 71) | CpActionClient() = default;
method CpActionClient (line 73) | CpActionClient(const std::string & actionServerName) : actionServe...
method sendGoal (line 78) | std::shared_future<typename GoalHandle::SharedPtr> sendGoal(
method cancelGoal (line 122) | bool cancelGoal()
method isServerReady (line 141) | bool isServerReady() const { return client_ && client_->action_ser...
method waitForServer (line 143) | void waitForServer()
method onInitialize (line 155) | void onInitialize() override
method onComponentInitialization (line 178) | void onComponentInitialization()
method onSucceeded (line 202) | smacc2::SmaccSignalConnection onSucceeded(void (T::*callback)(cons...
method onAborted (line 208) | smacc2::SmaccSignalConnection onAborted(void (T::*callback)(const ...
method onCancelled (line 214) | smacc2::SmaccSignalConnection onCancelled(void (T::*callback)(cons...
method onFeedback (line 220) | smacc2::SmaccSignalConnection onFeedback(void (T::*callback)(const...
method getActionClient (line 226) | std::shared_ptr<ActionClient> getActionClient() const { return cli...
method onFeedback (line 237) | void onFeedback(
method onResult (line 245) | void onResult(const WrappedResult & result_msg)
method postResultEvent (line 280) | void postResultEvent(const WrappedResult & result)
FILE: smacc2/include/smacc2/client_core_components/cp_ros2_timer.hpp
type smacc2 (line 24) | namespace smacc2
type client_core_components (line 26) | namespace client_core_components
class CpRos2Timer (line 30) | class CpRos2Timer : public smacc2::ISmaccComponent
method CpRos2Timer (line 33) | CpRos2Timer(rclcpp::Duration duration, bool oneshot = false)
method onInitialize (line 46) | void onInitialize() override
method startTimer (line 64) | void startTimer()
method stopTimer (line 73) | void stopTimer()
method cancelTimer (line 82) | void cancelTimer()
method onTimerTick (line 92) | smacc2::SmaccSignalConnection onTimerTick(void (T::*callback)(), T...
method timerCallback (line 98) | void timerCallback()
FILE: smacc2/include/smacc2/client_core_components/cp_service_client.hpp
type smacc2 (line 29) | namespace smacc2
type client_core_components (line 31) | namespace client_core_components
class CpServiceClient (line 67) | class CpServiceClient : public smacc2::ISmaccComponent
method CpServiceClient (line 99) | CpServiceClient() = default;
method CpServiceClient (line 105) | CpServiceClient(const std::string & serviceName) : serviceName(ser...
method CpServiceClient (line 112) | CpServiceClient(const std::string & serviceName, std::chrono::mill...
method SharedFuture (line 128) | SharedFuture sendRequest(SharedRequest request)
method SharedResponse (line 170) | SharedResponse sendRequestSync(SharedRequest request)
method isServiceReady (line 223) | bool isServiceReady() const { return client_ && client_->service_i...
method waitForService (line 231) | void waitForService()
method onInitialize (line 263) | void onInitialize() override
method onComponentInitialization (line 292) | void onComponentInitialization()
method onResponse (line 330) | smacc2::SmaccSignalConnection onResponse(void (T::*callback)(const...
method onRequestSent (line 344) | smacc2::SmaccSignalConnection onRequestSent(void (T::*callback)(),...
method onFailure (line 358) | smacc2::SmaccSignalConnection onFailure(void (T::*callback)(), T *...
method getServiceClient (line 370) | std::shared_ptr<Client> getServiceClient() const { return client_; }
FILE: smacc2/include/smacc2/client_core_components/cp_subprocess_executor.hpp
type smacc2 (line 28) | namespace smacc2
type client_core_components (line 30) | namespace client_core_components
type SubprocessResult (line 36) | struct SubprocessResult
class CpSubprocessExecutor (line 58) | class CpSubprocessExecutor : public smacc2::ISmaccComponent
method CpSubprocessExecutor (line 61) | CpSubprocessExecutor() : initialized_(false) {}
method onInitialize (line 65) | void onInitialize() override
method SubprocessResult (line 82) | SubprocessResult executeCommand(const std::string & command, int t...
method executeCommandAsync (line 162) | void executeCommandAsync(const std::string & command, int timeout_...
method onCommandCompleted (line 174) | smacc2::SmaccSignalConnection onCommandCompleted(
method onCommandFailed (line 181) | smacc2::SmaccSignalConnection onCommandFailed(
FILE: smacc2/include/smacc2/client_core_components/cp_topic_publisher.hpp
type smacc2 (line 27) | namespace smacc2
type client_core_components (line 29) | namespace client_core_components
class CpTopicPublisher (line 34) | class CpTopicPublisher : public smacc2::ISmaccComponent
method CpTopicPublisher (line 43) | CpTopicPublisher(std::string topicname)
method publish (line 51) | void publish(const MessageType & msg) { pub_->publish(msg); }
FILE: smacc2/include/smacc2/client_core_components/cp_topic_subscriber.hpp
type smacc2 (line 27) | namespace smacc2
type client_core_components (line 29) | namespace client_core_components
class CpTopicSubscriber (line 34) | class CpTopicSubscriber : public smacc2::ISmaccComponent
method CpTopicSubscriber (line 41) | CpTopicSubscriber() { initialized_ = false; }
method CpTopicSubscriber (line 43) | CpTopicSubscriber(std::string topicname)
method onMessageReceived (line 59) | smacc2::SmaccSignalConnection onMessageReceived(
method onFirstMessageReceived (line 67) | smacc2::SmaccSignalConnection onFirstMessageReceived(
method onStateOrthogonalAllocation (line 75) | void onStateOrthogonalAllocation()
method onInitialize (line 92) | void onInitialize() override
method messageCallback (line 120) | void messageCallback(const MessageType & msg)
FILE: smacc2/include/smacc2/common.hpp
type smacc2 (line 50) | namespace smacc2
type utils (line 55) | namespace utils
function cleanShortTypeName (line 61) | std::string cleanShortTypeName()
type SMRunMode (line 67) | enum class SMRunMode
type ComponentRequirement (line 73) | enum class ComponentRequirement
FILE: smacc2/include/smacc2/component.hpp
type smacc2 (line 27) | namespace smacc2
class ISmaccComponent (line 29) | class ISmaccComponent
method onStateOrthogonalAllocation (line 55) | void onStateOrthogonalAllocation()
FILE: smacc2/include/smacc2/impl/smacc_asynchronous_client_behavior_impl.hpp
type smacc2 (line 25) | namespace smacc2
FILE: smacc2/include/smacc2/impl/smacc_client_behavior_impl.hpp
type smacc2 (line 26) | namespace smacc2
function ISmaccStateMachine (line 61) | ISmaccStateMachine * ISmaccClientBehavior::getStateMachine() { return ...
function ISmaccState (line 64) | ISmaccState * ISmaccClientBehavior::getCurrentState() { return this->c...
FILE: smacc2/include/smacc2/impl/smacc_client_impl.hpp
type smacc2 (line 26) | namespace smacc2
function TComponent (line 41) | TComponent * ISmaccClient::getComponent()
function TComponent (line 47) | TComponent * ISmaccClient::getComponent(int index)
function TComponent (line 71) | TComponent * ISmaccClient::getComponent(std::string name)
function ISmaccStateMachine (line 88) | ISmaccStateMachine * ISmaccClient::getStateMachine() { return this->st...
function SmaccComponentType (line 91) | SmaccComponentType * ISmaccClient::createNamedComponent(std::string na...
function SmaccComponentType (line 133) | SmaccComponentType * ISmaccClient::createComponent(TArgs... targs)
FILE: smacc2/include/smacc2/impl/smacc_component_impl.hpp
type smacc2 (line 28) | namespace smacc2
function SmaccComponentType (line 103) | SmaccComponentType * ISmaccComponent::createSiblingComponent(TArgs... ...
function SmaccComponentType (line 109) | SmaccComponentType * ISmaccComponent::createSiblingNamedComponent(std:...
FILE: smacc2/include/smacc2/impl/smacc_event_generator_impl.hpp
type smacc2 (line 25) | namespace smacc2
FILE: smacc2/include/smacc2/impl/smacc_orthogonal_impl.hpp
type smacc2 (line 27) | namespace smacc2
function TClientBehavior (line 92) | TClientBehavior * ISmaccOrthogonal::getClientBehavior(int index)
function ISmaccStateMachine (line 133) | ISmaccStateMachine * ISmaccOrthogonal::getStateMachine() { return this...
class ClientHandler (line 136) | class ClientHandler : public TClient
method ClientHandler (line 140) | ClientHandler(TArgs... args) : TClient(args...)
method ClientHandler (line 144) | ClientHandler() : TClient() {}
method SmaccComponentType (line 147) | SmaccComponentType * createComponent(TArgs... targs)
method SmaccComponentType (line 154) | SmaccComponentType * createNamedComponent(std::string name, TArgs......
method getType (line 160) | smacc2::introspection::TypeInfo::Ptr getType() override
class Orthogonal (line 167) | class Orthogonal : public ISmaccOrthogonal
method createClient (line 171) | std::shared_ptr<ClientHandler<TOrthogonal, TClient>> createClient(TA...
FILE: smacc2/include/smacc2/impl/smacc_state_impl.hpp
type smacc2 (line 32) | namespace smacc2
type AddTEventTypeStateReactorInfo (line 125) | struct AddTEventTypeStateReactorInfo
method AddTEventTypeStateReactorInfo (line 128) | AddTEventTypeStateReactorInfo(smacc2::SmaccStateReactorInfo * srInfo...
type AddTEventTypeStateReactor (line 142) | struct AddTEventTypeStateReactor
method AddTEventTypeStateReactor (line 145) | AddTEventTypeStateReactor(smacc2::StateReactor * sr) : sr_(sr) {}
function TOrthogonal (line 171) | TOrthogonal * ISmaccState::getOrthogonal()
function TClientBehavior (line 177) | TClientBehavior * ISmaccState::getClientBehavior(int index)
function TEventGenerator (line 183) | TEventGenerator * ISmaccState::getEventGenerator()
function TStateReactor (line 195) | TStateReactor * ISmaccState::getStateReactor()
FILE: smacc2/include/smacc2/impl/smacc_state_machine_impl.hpp
type smacc2 (line 50) | namespace smacc2
function TOrthogonal (line 55) | TOrthogonal * ISmaccStateMachine::getOrthogonal()
type utils (line 319) | namespace utils
type Bind (line 322) | struct Bind
type Bind<1> (line 331) | struct Bind<1>
method bindaux (line 334) | smacc2::SmaccSignalConnection bindaux(
type Bind<2> (line 356) | struct Bind<2>
method bindaux (line 359) | smacc2::SmaccSignalConnection bindaux(
type Bind<3> (line 380) | struct Bind<3>
method bindaux (line 383) | smacc2::SmaccSignalConnection bindaux(
type Bind<4> (line 404) | struct Bind<4>
method bindaux (line 407) | smacc2::SmaccSignalConnection bindaux(
function ISmaccState (line 774) | ISmaccState * ISmaccStateMachine::getCurrentState() const { return thi...
FILE: smacc2/include/smacc2/impl/smacc_state_reactor_impl.hpp
type smacc2 (line 25) | namespace smacc2
type introspection (line 79) | namespace introspection
FILE: smacc2/include/smacc2/introspection/introspection.hpp
type smacc2 (line 42) | namespace smacc2
type introspection (line 44) | namespace introspection
function optionalNodeHandle (line 55) | auto optionalNodeHandle(std::shared_ptr<T> & obj) -> T *
function optionalNodeHandle (line 62) | auto optionalNodeHandle(boost::intrusive_ptr<T> & obj) -> T *
function optionalNodeHandle (line 69) | auto optionalNodeHandle(T * obj) -> T *
function demangleSymbol (line 74) | inline std::string demangleSymbol(const std::string & name) { return...
function demangleSymbol (line 76) | inline std::string demangleSymbol(const char * name)
function demangleSymbol (line 95) | inline std::string demangleSymbol()
function demangledTypeName (line 101) | inline std::string demangledTypeName()
function demangleType (line 106) | inline std::string demangleType(const std::type_info * tinfo)
function demangleType (line 111) | inline std::string demangleType(const std::type_info & tinfo)
type typelist (line 117) | struct typelist
class HasEventLabel (line 123) | class HasEventLabel
function EventLabel (line 142) | typename std::enable_if<HasEventLabel<T>::value, void>::type EventLa...
function EventLabel (line 148) | typename std::enable_if<!HasEventLabel<T>::value, void>::type EventL...
class HasAutomaticTransitionTag (line 155) | class HasAutomaticTransitionTag
function automaticTransitionTag (line 174) | typename std::enable_if<HasAutomaticTransitionTag<T>::value, void>::...
function automaticTransitionTag (line 181) | typename std::enable_if<!HasAutomaticTransitionTag<T>::value, void>:...
class HasAutomaticTransitionType (line 189) | class HasAutomaticTransitionType
function automaticTransitionType (line 208) | typename std::enable_if<HasAutomaticTransitionType<T>::value, void>:...
function automaticTransitionType (line 215) | typename std::enable_if<!HasAutomaticTransitionType<T>::value, void>...
type type_ (line 228) | struct type_
type add_type_wrapper (line 235) | struct add_type_wrapper
type CheckType (line 241) | struct CheckType
method CheckType (line 243) | CheckType(std::string * transitionTypeName) { this->transitionType...
function getTransitionType (line 259) | static std::string getTransitionType()
FILE: smacc2/include/smacc2/introspection/smacc_state_info.hpp
type smacc2 (line 27) | namespace smacc2
type introspection (line 29) | namespace introspection
type ClientBehaviorInfoEntry (line 32) | struct ClientBehaviorInfoEntry
type SmaccEventInfo (line 41) | struct SmaccEventInfo
type SmaccTransitionInfo (line 60) | struct SmaccTransitionInfo
method SmaccTransitionInfo (line 62) | SmaccTransitionInfo() {}
type StateReactorCallbackFunctor (line 77) | struct StateReactorCallbackFunctor
class StateReactorHandler (line 83) | class StateReactorHandler
method StateReactorHandler (line 89) | StateReactorHandler(rclcpp::Node::SharedPtr nh) : nh_(nh) {}
class ClientBehaviorHandler (line 110) | class ClientBehaviorHandler
method ClientBehaviorHandler (line 113) | ClientBehaviorHandler() {}
type SmaccStateReactorInfo (line 117) | struct SmaccStateReactorInfo
type EventGeneratorCallbackFunctor (line 131) | struct EventGeneratorCallbackFunctor
class EventGeneratorHandler (line 136) | class EventGeneratorHandler
type SmaccEventGeneratorInfo (line 151) | struct SmaccEventGeneratorInfo
type SmaccStateType (line 164) | enum class SmaccStateType
class SmaccStateInfo (line 171) | class SmaccStateInfo : public std::enable_shared_from_this<SmaccStat...
method depth (line 200) | inline int depth() const { return depth_; }
method getLogger (line 221) | inline rclcpp::Logger getLogger() { return getNode()->get_logger(); }
FILE: smacc2/include/smacc2/introspection/smacc_state_machine_info.hpp
type smacc2 (line 38) | namespace smacc2
type introspection (line 40) | namespace introspection
class SmaccStateMachineInfo (line 44) | class SmaccStateMachineInfo : public std::enable_shared_from_this<Sm...
method SmaccStateMachineInfo (line 47) | explicit SmaccStateMachineInfo(rclcpp::Node::SharedPtr nh) : nh_(n...
method containsState (line 60) | bool containsState()
method getState (line 68) | std::shared_ptr<SmaccStateInfo> getState()
method getNode (line 77) | inline rclcpp::Node::SharedPtr getNode() { return nh_; }
method getLogger (line 79) | inline rclcpp::Logger getLogger() { return nh_->get_logger(); }
type AddSubState (line 90) | struct AddSubState
method AddSubState (line 93) | explicit AddSubState(std::shared_ptr<SmaccStateInfo> & parentState...
type AddTransition (line 100) | struct AddTransition
method AddTransition (line 104) | explicit AddTransition(std::shared_ptr<SmaccStateInfo> & currentSt...
type WalkStatesExecutor (line 125) | struct WalkStatesExecutor
function processSubState (line 141) | typename disable_if<boost::mpl::is_sequence<T>>::type processSubState(
function processSubState (line 149) | typename enable_if<boost::mpl::is_sequence<T>>::type processSubState(
function processTransitions (line 160) | typename enable_if<boost::mpl::is_sequence<T>>::type processTransiti...
function processTransition (line 178) | void processTransition(
function processTransition (line 195) | void processTransition(
function processTransitionAux (line 212) | void processTransitionAux(
class HasOnDefinition (line 294) | class HasOnDefinition
function processTransition (line 339) | void processTransition(
function processTransition (line 346) | void processTransition(
function processTransitions (line 356) | typename disable_if<boost::mpl::is_sequence<T>>::type processTransit...
function CallOnDefinition (line 370) | typename std::enable_if<HasOnDefinition<T>::value, void>::type CallO...
function CallOnDefinition (line 379) | typename std::enable_if<!HasOnDefinition<T>::value, void>::type Call...
FILE: smacc2/include/smacc2/introspection/smacc_type_info.hpp
type smacc2 (line 28) | namespace smacc2
type introspection (line 30) | namespace introspection
class TypeInfo (line 32) | class TypeInfo
method getTypeInfoFromType (line 42) | static TypeInfo::Ptr getTypeInfoFromType()
method TypeInfo (line 50) | TypeInfo(std::string tkey, std::string codedtype, std::string fina...
method toString (line 57) | std::string toString() { return this->tkey + ":" + this->finaltype; }
method getNonTemplatedTypeName (line 59) | std::string getNonTemplatedTypeName()
FILE: smacc2/include/smacc2/introspection/state_traits.hpp
type smacc2 (line 23) | namespace smacc2
class HasSpecificNamedOnExit (line 26) | class HasSpecificNamedOnExit
type Check (line 29) | struct Check
function specificNamedOnExit (line 44) | void specificNamedOnExit(TState & st, TTransitionTagName tn, std::true...
function specificNamedOnExit (line 50) | void specificNamedOnExit(TState &, TTransitionTagName, std::false_type)
function specificNamedOnExit (line 55) | void specificNamedOnExit(TState & m, TTransitionTagName tn)
class HasStandardOnExit (line 65) | class HasStandardOnExit
type Check (line 68) | struct Check
function standardOnExit (line 83) | void standardOnExit(TState & st, std::true_type)
function standardOnExit (line 89) | void standardOnExit(TState &, std::false_type)
function standardOnExit (line 94) | void standardOnExit(TState & m)
FILE: smacc2/include/smacc2/smacc_asynchronous_client_behavior.hpp
type smacc2 (line 26) | namespace smacc2
type EvCbFinished (line 29) | struct EvCbFinished : sc::event<EvCbFinished<AsyncCB, Orthogonal>>
type EvCbSuccess (line 34) | struct EvCbSuccess : sc::event<EvCbSuccess<AsyncCB, Orthogonal>>
type EvCbFailure (line 39) | struct EvCbFailure : sc::event<EvCbFailure<AsyncCB, Orthogonal>>
class SmaccAsyncClientBehavior (line 55) | class SmaccAsyncClientBehavior : public ISmaccClientBehavior
FILE: smacc2/include/smacc2/smacc_client.hpp
type smacc2 (line 26) | namespace smacc2
type ComponentKey (line 28) | struct ComponentKey
method ComponentKey (line 30) | ComponentKey(const std::type_info * typeinfo, std::string name)
class ISmaccClient (line 44) | class ISmaccClient
method onComponentInitialization (line 90) | void onComponentInitialization()
method onStateOrthogonalAllocation (line 95) | void onStateOrthogonalAllocation()
method getLogger (line 110) | inline rclcpp::Logger getLogger() { return getNode()->get_logger(); }
FILE: smacc2/include/smacc2/smacc_client_behavior.hpp
type smacc2 (line 24) | namespace smacc2
class SmaccClientBehavior (line 26) | class SmaccClientBehavior : public ISmaccClientBehavior
FILE: smacc2/include/smacc2/smacc_client_behavior_base.hpp
type smacc2 (line 27) | namespace smacc2
class ISmaccClientBehavior (line 30) | class ISmaccClientBehavior
method onEntry (line 49) | virtual void onEntry() {}
method onExit (line 51) | virtual void onExit() {}
FILE: smacc2/include/smacc2/smacc_default_events.hpp
type smacc2 (line 28) | namespace smacc2
type default_events (line 33) | namespace default_events
type EvActionFeedback (line 40) | struct EvActionFeedback : sc::event<EvActionFeedback<ActionFeedback,...
type EvActionResult (line 48) | struct EvActionResult : sc::event<EvActionResult<TSource, TOrthogonal>>
type EvActionSucceeded (line 54) | struct EvActionSucceeded : sc::event<EvActionSucceeded<TSource, TOrt...
method getEventLabel (line 58) | static std::string getEventLabel()
method getDefaultTransitionTag (line 66) | static std::string getDefaultTransitionTag() { return demangledTyp...
method getDefaultTransitionType (line 68) | static std::string getDefaultTransitionType() { return demangledTy...
type EvActionAborted (line 72) | struct EvActionAborted : sc::event<EvActionAborted<TSource, TOrthogo...
method getEventLabel (line 76) | static std::string getEventLabel()
method getDefaultTransitionTag (line 84) | static std::string getDefaultTransitionTag() { return demangledTyp...
method getDefaultTransitionType (line 86) | static std::string getDefaultTransitionType() { return demangledTy...
type EvActionCancelled (line 90) | struct EvActionCancelled : sc::event<EvActionCancelled<TSource, TOrt...
method getEventLabel (line 94) | static std::string getEventLabel()
method getDefaultTransitionTag (line 102) | static std::string getDefaultTransitionTag() { return demangledTyp...
method getDefaultTransitionType (line 104) | static std::string getDefaultTransitionType() { return demangledTy...
type EvServiceResponse (line 109) | struct EvServiceResponse : sc::event<EvServiceResponse<TSource, TOrt...
method getEventLabel (line 113) | static std::string getEventLabel()
method getDefaultTransitionTag (line 120) | static std::string getDefaultTransitionTag() { return demangledTyp...
method getDefaultTransitionType (line 122) | static std::string getDefaultTransitionType() { return demangledTy...
type EvServiceRequestSent (line 126) | struct EvServiceRequestSent : sc::event<EvServiceRequestSent<TSource...
method getEventLabel (line 128) | static std::string getEventLabel()
type EvServiceFailure (line 137) | struct EvServiceFailure : sc::event<EvServiceFailure<TSource, TOrtho...
method getEventLabel (line 139) | static std::string getEventLabel()
method getDefaultTransitionTag (line 146) | static std::string getDefaultTransitionTag() { return demangledTyp...
method getDefaultTransitionType (line 148) | static std::string getDefaultTransitionType() { return demangledTy...
type EvStateRequestFinish (line 154) | struct EvStateRequestFinish : sc::event<EvStateRequestFinish<StateTy...
type EvSequenceFinished (line 159) | struct EvSequenceFinished : sc::event<EvSequenceFinished<StateType>>
type EvLoopContinue (line 164) | struct EvLoopContinue : sc::event<EvLoopContinue<TSource>>
method getDefaultTransitionTag (line 166) | static std::string getDefaultTransitionTag() { return demangledTyp...
method getDefaultTransitionType (line 168) | static std::string getDefaultTransitionType() { return demangledTy...
type EvLoopEnd (line 172) | struct EvLoopEnd : sc::event<EvLoopEnd<TSource>>
method getDefaultTransitionTag (line 174) | static std::string getDefaultTransitionTag() { return demangledTyp...
method getDefaultTransitionType (line 176) | static std::string getDefaultTransitionType() { return demangledTy...
type EvTopicInitialMessage (line 182) | struct EvTopicInitialMessage : sc::event<EvTopicInitialMessage<TSour...
method getEventLabel (line 185) | static std::string getEventLabel()
type EvTopicMessage (line 198) | struct EvTopicMessage : sc::event<EvTopicMessage<TSource, TOrthogona...
method getEventLabel (line 200) | static std::string getEventLabel()
FILE: smacc2/include/smacc2/smacc_event_generator.hpp
type smacc2 (line 31) | namespace smacc2
class ISmaccState (line 33) | class ISmaccState
class ISMaccStateMachine (line 34) | class ISMaccStateMachine
class SmaccEventGenerator (line 36) | class SmaccEventGenerator
FILE: smacc2/include/smacc2/smacc_orthogonal.hpp
type smacc2 (line 25) | namespace smacc2
class ISmaccOrthogonal (line 27) | class ISmaccOrthogonal
method getLogger (line 71) | inline rclcpp::Logger getLogger() { return getNode()->get_logger(); }
FILE: smacc2/include/smacc2/smacc_signal.hpp
type smacc2 (line 27) | namespace smacc2
class SmaccSignal (line 43) | class SmaccSignal
FILE: smacc2/include/smacc2/smacc_signal_detector.hpp
type smacc2 (line 27) | namespace smacc2
type ExecutionModel (line 29) | enum class ExecutionModel
class SignalDetector (line 37) | class SignalDetector
method postEvent (line 61) | void postEvent(EventType * ev)
method getLogger (line 68) | inline rclcpp::Logger getLogger() { return getNode()->get_logger(); }
class SmExecution (line 122) | class SmExecution
method SmExecution (line 129) | SmExecution(const SmExecution &) = delete;
method SmExecution (line 130) | SmExecution & operator=(const SmExecution &) = delete;
method SmExecution (line 131) | SmExecution(SmExecution &&) = delete;
method SmExecution (line 132) | SmExecution & operator=(SmExecution &&) = delete;
function run (line 151) | void run(ExecutionModel executionModel = ExecutionModel::SINGLE_THREAD...
function SmExecution (line 205) | SmExecution & run_async()
method SmExecution (line 129) | SmExecution(const SmExecution &) = delete;
method SmExecution (line 130) | SmExecution & operator=(const SmExecution &) = delete;
method SmExecution (line 131) | SmExecution(SmExecution &&) = delete;
method SmExecution (line 132) | SmExecution & operator=(SmExecution &&) = delete;
FILE: smacc2/include/smacc2/smacc_state.hpp
type smacc2 (line 23) | namespace smacc2
class ISmaccState (line 25) | class ISmaccState
method ISmaccState (line 32) | inline ISmaccState * getParentState() { return parentState_; }
method getLogger (line 36) | inline rclcpp::Logger getLogger() { return *logger_; }
FILE: smacc2/include/smacc2/smacc_state_base.hpp
type smacc2 (line 31) | namespace smacc2
class SmaccState (line 39) | class SmaccState : public sc::simple_state<MostDerived, Context, Inner...
type my_context (line 55) | struct my_context
method my_context (line 57) | my_context(typename base_type::context_ptr_type pContext) : pConte...
method SmaccState (line 62) | SmaccState() = delete;
method SmaccState (line 65) | SmaccState(my_context ctx)
method getName (line 109) | std::string getName() override { return getShortName(); }
method getFullName (line 111) | std::string getFullName() { return demangleSymbol(typeid(MostDerived...
method getShortName (line 113) | std::string getShortName() { return smacc2::utils::cleanShortTypeNam...
method ISmaccState (line 115) | virtual ISmaccState * getParentState()
method exit (line 123) | void exit()
method runtimeConfigure (line 147) | void runtimeConfigure() {}
method onEntry (line 151) | void onEntry() {}
method onExit (line 155) | void onExit() {}
method getGlobalSMData (line 158) | bool getGlobalSMData(std::string name, T & ret)
method setGlobalSMData (line 165) | void setGlobalSMData(std::string name, T value)
method requiresComponent (line 171) | void requiresComponent(SmaccComponentType *& storage)
method ISmaccStateMachine (line 176) | virtual ISmaccStateMachine & getStateMachine() { return base_type::o...
method configure_orthogonal_runtime (line 179) | static void configure_orthogonal_runtime(
method configure_orthogonal_runtime (line 192) | static void configure_orthogonal_runtime(
method configure_orthogonal (line 205) | static void configure_orthogonal(Args &&... args)
method static_createStateReactor (line 217) | static std::shared_ptr<smacc2::introspection::StateReactorHandler> s...
method static_createEventGenerator (line 271) | static std::shared_ptr<smacc2::introspection::EventGeneratorHandler>...
method static_createStateReactor_aux (line 303) | static std::shared_ptr<smacc2::introspection::StateReactorHandler> s...
method checkWhileLoopConditionAndThrowEvent (line 332) | void checkWhileLoopConditionAndThrowEvent(bool (MostDerived::*condit...
method throwSequenceFinishedEvent (line 350) | void throwSequenceFinishedEvent() { this->postEvent<EvSequenceFinish...
method initial_deep_construct (line 362) | static void initial_deep_construct(outermost_context_base_type & out...
method deep_construct (line 368) | static void deep_construct(
method inner_context_ptr_type (line 376) | static inner_context_ptr_type shallow_construct(
method configure_orthogonal_internal (line 394) | static void configure_orthogonal_internal(
method entryStateInternal (line 415) | void entryStateInternal()
FILE: smacc2/include/smacc2/smacc_state_machine.hpp
type smacc2 (line 42) | namespace smacc2
type EventLifeTime (line 46) | enum class EventLifeTime
type StateMachineInternalAction (line 52) | enum class StateMachineInternalAction
class ISmaccStateMachine (line 64) | class ISmaccStateMachine
method TClientBehavior (line 85) | inline TClientBehavior * getClientBehavior(int index = 0)
method getCurrentStateInfo (line 118) | inline std::shared_ptr<SmaccStateInfo> getCurrentStateInfo() { retur...
method getLogger (line 165) | inline rclcpp::Logger getLogger() { return nh_->get_logger(); }
FILE: smacc2/include/smacc2/smacc_state_machine_base.hpp
type smacc2 (line 26) | namespace smacc2
type SmaccStateMachineBase (line 30) | struct SmaccStateMachineBase
method SmaccStateMachineBase (line 36) | SmaccStateMachineBase(
method reset (line 51) | void reset() override
method stop (line 58) | void stop() override
method eStop (line 64) | void eStop() override
method initiate_impl (line 70) | void initiate_impl() override
FILE: smacc2/include/smacc2/smacc_state_reactor.hpp
type smacc2 (line 31) | namespace smacc2
class ISmaccState (line 33) | class ISmaccState
class ISMaccStateMachine (line 34) | class ISMaccStateMachine
type state_reactors (line 36) | namespace state_reactors
type EmptyObjectTag (line 38) | struct EmptyObjectTag
class StateReactor (line 43) | class StateReactor
method notifyEvent (line 97) | void notifyEvent(TEvent * ev)
FILE: smacc2/include/smacc2/smacc_transition.hpp
type smacc2 (line 25) | namespace smacc2
class Transition (line 31) | class Transition
type reactions (line 39) | struct reactions
method react_without_action (line 41) | static boost::statechart::result react_without_action(State & stt)
method react_with_action (line 53) | static boost::statechart::result react_with_action(State & stt, co...
method react (line 71) | static boost::statechart::detail::reaction_result react(
FILE: smacc2/include/smacc2/smacc_types.hpp
type smacc2 (line 25) | namespace smacc2
class ISmaccState (line 27) | class ISmaccState
class ISmaccStateMachine (line 28) | class ISmaccStateMachine
class ISmaccClient (line 29) | class ISmaccClient
class ISmaccUpdatable (line 30) | class ISmaccUpdatable
class ISmaccComponent (line 31) | class ISmaccComponent
class ISmaccClientBehavior (line 32) | class ISmaccClientBehavior
class SmaccClientBehavior (line 33) | class SmaccClientBehavior
class SmaccAsyncClientBehavior (line 34) | class SmaccAsyncClientBehavior
class SignalDetector (line 35) | class SignalDetector
class StateReactor (line 37) | class StateReactor
class SmaccEventGenerator (line 38) | class SmaccEventGenerator
type client_bases (line 40) | namespace client_bases
class ISmaccActionClient (line 42) | class ISmaccActionClient
class ISmaccSubscriber (line 43) | class ISmaccSubscriber
type introspection (line 46) | namespace introspection
class SmaccStateMachineInfo (line 48) | class SmaccStateMachineInfo
class SmaccStateInfo (line 49) | class SmaccStateInfo
class StateReactorHandler (line 50) | class StateReactorHandler
class SmaccStateReactorInfo (line 51) | class SmaccStateReactorInfo
class SmaccEventGeneratorInfo (line 52) | class SmaccEventGeneratorInfo
class TypeInfo (line 53) | class TypeInfo
type default_transition_tags (line 58) | namespace default_transition_tags
type DEFAULT (line 63) | struct DEFAULT
type ABORT (line 67) | struct ABORT
type SUCCESS (line 71) | struct SUCCESS
type CANCEL (line 75) | struct CANCEL
type CONTINUELOOP (line 89) | struct CONTINUELOOP
type ENDLOOP (line 92) | struct ENDLOOP
type default_transition_name (line 96) | struct default_transition_name : SUCCESS
class Transition (line 106) | class Transition
FILE: smacc2/include/smacc2/smacc_updatable.hpp
type smacc2 (line 30) | namespace smacc2
class ISmaccUpdatable (line 32) | class ISmaccUpdatable
FILE: smacc2/src/smacc2/callback_counter_semaphore.cpp
type smacc2 (line 27) | namespace smacc2
FILE: smacc2/src/smacc2/client.cpp
type smacc2 (line 24) | namespace smacc2
FILE: smacc2/src/smacc2/client_bases/smacc_action_client.cpp
type smacc2 (line 22) | namespace smacc2
type client_bases (line 24) | namespace client_bases
FILE: smacc2/src/smacc2/client_bases/smacc_publisher_client.cpp
type smacc2 (line 23) | namespace smacc2
type client_bases (line 25) | namespace client_bases
FILE: smacc2/src/smacc2/client_bases/smacc_ros_launch_client.cpp
type smacc2 (line 23) | namespace smacc2
type client_bases (line 25) | namespace client_bases
FILE: smacc2/src/smacc2/client_bases/smacc_ros_launch_client_2.cpp
type smacc2 (line 36) | namespace smacc2
type client_bases (line 38) | namespace client_bases
function ProcessInfo (line 170) | ProcessInfo runProcess(const char * command)
function killProcessesRecursive (line 214) | void killProcessesRecursive(pid_t pid)
function killGrandchildren (line 258) | void killGrandchildren(pid_t originalPid) { killProcessesRecursive(o...
FILE: smacc2/src/smacc2/client_behaviors/cb_ros_launch.cpp
type smacc2 (line 22) | namespace smacc2
type client_behaviors (line 24) | namespace client_behaviors
function onStateOrthogonalAllocation (line 43) | void onStateOrthogonalAllocation()
FILE: smacc2/src/smacc2/client_behaviors/cb_ros_launch_2.cpp
type smacc2 (line 22) | namespace smacc2
type client_behaviors (line 24) | namespace client_behaviors
function onStateOrthogonalAllocation (line 44) | void onStateOrthogonalAllocation()
FILE: smacc2/src/smacc2/client_behaviors/cb_ros_stop_2.cpp
type smacc2 (line 22) | namespace smacc2
type client_behaviors (line 24) | namespace client_behaviors
function onStateOrthogonalAllocation (line 35) | void onStateOrthogonalAllocation()
FILE: smacc2/src/smacc2/client_behaviors/cb_sequence.cpp
type smacc2 (line 26) | namespace smacc2
type client_behaviors (line 28) | namespace client_behaviors
FILE: smacc2/src/smacc2/client_behaviors/cb_wait_action_server.cpp
type smacc2 (line 23) | namespace smacc2
type client_behaviors (line 25) | namespace client_behaviors
FILE: smacc2/src/smacc2/client_behaviors/cb_wait_node.cpp
type smacc2 (line 23) | namespace smacc2
type client_behaviors (line 25) | namespace client_behaviors
FILE: smacc2/src/smacc2/client_behaviors/cb_wait_topic.cpp
type smacc2 (line 23) | namespace smacc2
type client_behaviors (line 25) | namespace client_behaviors
FILE: smacc2/src/smacc2/common.cpp
type smacc2 (line 24) | namespace smacc2
type utils (line 26) | namespace utils
function cleanShortTypeName (line 28) | std::string cleanShortTypeName(const std::type_info & tinfo)
FILE: smacc2/src/smacc2/introspection/reflection.cpp
type smacc2 (line 24) | namespace smacc2
type introspection (line 26) | namespace introspection
function transitionInfoToMsg (line 30) | void transitionInfoToMsg(
FILE: smacc2/src/smacc2/introspection/string_type_walker.cpp
type smacc2 (line 35) | namespace smacc2
type introspection (line 37) | namespace introspection
function replace (line 39) | bool replace(std::string & str, const std::string & from, const std:...
function replace_back (line 47) | std::string replace_back(
FILE: smacc2/src/smacc2/orthogonal.cpp
type smacc2 (line 30) | namespace smacc2
FILE: smacc2/src/smacc2/signal_detector.cpp
type smacc2 (line 36) | namespace smacc2
function SmExecution (line 53) | SmExecution & SmExecution::getInstance()
function onSignalShutdown (line 421) | void onSignalShutdown(int /*sig*/)
function onSigQuit (line 440) | void onSigQuit(int)
FILE: smacc2/src/smacc2/smacc_client_async_behavior.cpp
type smacc2 (line 25) | namespace smacc2
FILE: smacc2/src/smacc2/smacc_client_behavior.cpp
type smacc2 (line 23) | namespace smacc2
FILE: smacc2/src/smacc2/smacc_client_behavior_base.cpp
type smacc2 (line 23) | namespace smacc2
FILE: smacc2/src/smacc2/smacc_component.cpp
type smacc2 (line 23) | namespace smacc2
function ISmaccStateMachine (line 52) | ISmaccStateMachine * ISmaccComponent::getStateMachine() { return this-...
FILE: smacc2/src/smacc2/smacc_event_generator.cpp
type smacc2 (line 23) | namespace smacc2
FILE: smacc2/src/smacc2/smacc_state.cpp
type smacc2 (line 24) | namespace smacc2
FILE: smacc2/src/smacc2/smacc_state_info.cpp
type smacc2 (line 24) | namespace smacc2
function SmaccStateType (line 57) | SmaccStateType SmaccStateInfo::getStateLevel()
FILE: smacc2/src/smacc2/smacc_state_machine.cpp
type smacc2 (line 31) | namespace smacc2
FILE: smacc2/src/smacc2/smacc_state_machine_info.cpp
type smacc2 (line 24) | namespace smacc2
FILE: smacc2/src/smacc2/smacc_tracing.cpp
function ros_trace_spinOnce (line 30) | void ros_trace_spinOnce() { CONDITIONAL_TP(spinOnce); }
function ros_trace_smacc2_event (line 32) | void ros_trace_smacc2_event(const char * event_type) { CONDITIONAL_TP(sm...
function ros_trace_smacc2_state_update_start (line 34) | void ros_trace_smacc2_state_update_start(const char * updatable_element_...
function ros_trace_smacc2_state_update_end (line 39) | void ros_trace_smacc2_state_update_end(const char * updatable_element_name)
function ros_trace_smacc2_state_onRuntimeConfigure_start (line 44) | void ros_trace_smacc2_state_onRuntimeConfigure_start(const char * state_...
function ros_trace_smacc2_state_onRuntimeConfigure_end (line 49) | void ros_trace_smacc2_state_onRuntimeConfigure_end(const char * state_name)
function ros_trace_smacc2_state_onEntry_start (line 54) | void ros_trace_smacc2_state_onEntry_start(const char * state_name)
function ros_trace_smacc2_state_onEntry_end (line 59) | void ros_trace_smacc2_state_onEntry_end(const char * state_name)
function ros_trace_smacc2_state_onExit_start (line 64) | void ros_trace_smacc2_state_onExit_start(const char * state_name)
function ros_trace_smacc2_state_onExit_end (line 69) | void ros_trace_smacc2_state_onExit_end(const char * state_name)
function ros_trace_smacc2_client_behavior_on_entry_start (line 74) | void ros_trace_smacc2_client_behavior_on_entry_start(
function ros_trace_smacc2_client_behavior_on_entry_end (line 81) | void ros_trace_smacc2_client_behavior_on_entry_end(
function ros_trace_smacc2_client_behavior_on_exit_start (line 88) | void ros_trace_smacc2_client_behavior_on_exit_start(
function ros_trace_smacc2_client_behavior_on_exit_end (line 95) | void ros_trace_smacc2_client_behavior_on_exit_end(
FILE: smacc2/src/smacc2/smacc_updatable.cpp
type smacc2 (line 23) | namespace smacc2
FILE: smacc2/src/smacc2/state_reactor.cpp
type smacc2 (line 27) | namespace smacc2
type introspection (line 60) | namespace introspection
FILE: smacc2_client_library/cl_foundation_pose/include/cl_foundation_pose/cl_foundation_pose.hpp
type cl_foundation_pose (line 27) | namespace cl_foundation_pose
class ClFoundationPose (line 31) | class ClFoundationPose : public smacc2::ISmaccClient
method ClFoundationPose (line 34) | ClFoundationPose() {}
method onInitialize (line 36) | void onInitialize() override
FILE: smacc2_client_library/cl_foundation_pose/include/cl_foundation_pose/client_behaviors/cb_pause_object_tracking.hpp
type cl_foundation_pose (line 25) | namespace cl_foundation_pose
class CbTrackObjectPause (line 28) | class CbTrackObjectPause : public smacc2::SmaccClientBehavior
method CbTrackObjectPause (line 34) | CbTrackObjectPause() {}
method onEntry (line 38) | virtual void onEntry() override
method onExit (line 45) | virtual void onExit() override
FILE: smacc2_client_library/cl_foundation_pose/include/cl_foundation_pose/client_behaviors/cb_track_object_pose.hpp
type cl_foundation_pose (line 25) | namespace cl_foundation_pose
class CbTrackObjectPose (line 28) | class CbTrackObjectPose : public smacc2::SmaccClientBehavior, public s...
method CbTrackObjectPose (line 36) | CbTrackObjectPose(std::string objectToTrackId, std::string globalFra...
method onEntry (line 43) | virtual void onEntry() override
method onExit (line 56) | virtual void onExit() override { objectTracker_->setEnabled(false); }
method update (line 58) | virtual void update() override
FILE: smacc2_client_library/cl_foundation_pose/include/cl_foundation_pose/components/cp_object_tracker_1.hpp
type cl_foundation_pose (line 21) | namespace cl_foundation_pose
class CpObjectTracker1 (line 26) | class CpObjectTracker1 : public smacc2::ISmaccComponent
method onInitialize (line 30) | void onInitialize()
method onDetection3DArrayReceived (line 39) | void onDetection3DArrayReceived(const vision_msgs::msg::Detection3DA...
method getPose (line 64) | std::optional<geometry_msgs::msg::PoseStamped> getPose(const std::st...
FILE: smacc2_client_library/cl_foundation_pose/include/cl_foundation_pose/components/cp_object_tracker_tf.hpp
type cl_foundation_pose (line 25) | namespace cl_foundation_pose
class CpObjectTrackerTf (line 30) | class CpObjectTrackerTf : public smacc2::ISmaccComponent, public smacc...
method CpObjectTrackerTf (line 45) | CpObjectTrackerTf(std::string global_frame_id = "map") : global_fram...
method setEnabled (line 47) | void setEnabled(bool enabled)
method isEnabled (line 53) | bool isEnabled() { return enabled_; }
method resetPoseEstimation (line 55) | void resetPoseEstimation()
method update (line 75) | void update() override
method onInitialize (line 102) | void onInitialize()
method updateAndGetGlobalPose (line 109) | std::optional<geometry_msgs::msg::PoseStamped> updateAndGetGlobalPose(
FILE: smacc2_client_library/cl_foundation_pose/include/cl_foundation_pose/components/tracker_utils.hpp
type cl_foundation_pose (line 19) | namespace cl_foundation_pose
type DetectedObject (line 22) | struct DetectedObject
method DetectedObject (line 30) | DetectedObject() { historicalPoses_.clear(); }
type EvObjectDetected (line 33) | struct EvObjectDetected : sc::event<EvObjectDetected>
FILE: smacc2_client_library/cl_gcalcli/include/cl_gcalcli/cl_gcalcli.hpp
type cl_gcalcli (line 26) | namespace cl_gcalcli
class ClGcalcli (line 53) | class ClGcalcli : public smacc2::ISmaccClient
method GcalcliConfig (line 68) | const GcalcliConfig & getConfig() const { return config_; }
method onComponentInitialization (line 74) | void onComponentInitialization()
method CpGcalcliConnection (line 91) | CpGcalcliConnection * getConnection() { return this->getComponent<Cp...
method CpCalendarPoller (line 93) | CpCalendarPoller * getPoller() { return this->getComponent<CpCalenda...
method CpCalendarEventListener (line 95) | CpCalendarEventListener * getEventListener()
FILE: smacc2_client_library/cl_gcalcli/include/cl_gcalcli/client_behaviors/cb_detect_calendar_event.hpp
type cl_gcalcli (line 25) | namespace cl_gcalcli
class CbDetectCalendarEvent (line 43) | class CbDetectCalendarEvent : public smacc2::SmaccAsyncClientBehavior
method getDetectedEvent (line 63) | std::optional<CalendarEvent> getDetectedEvent() const { return detec...
FILE: smacc2_client_library/cl_gcalcli/include/cl_gcalcli/client_behaviors/cb_event_detect.hpp
type cl_gcalcli (line 25) | namespace cl_gcalcli
class CbEventDetect (line 43) | class CbEventDetect : public smacc2::SmaccAsyncClientBehavior
method getDetectedEvent (line 62) | std::optional<CalendarEvent> getDetectedEvent() const { return detec...
FILE: smacc2_client_library/cl_gcalcli/include/cl_gcalcli/client_behaviors/cb_monitor_connection.hpp
type cl_gcalcli (line 23) | namespace cl_gcalcli
class CbMonitorConnection (line 33) | class CbMonitorConnection : public smacc2::SmaccClientBehavior
method CbMonitorConnection (line 36) | CbMonitorConnection() = default;
FILE: smacc2_client_library/cl_gcalcli/include/cl_gcalcli/client_behaviors/cb_quick_add.hpp
type cl_gcalcli (line 23) | namespace cl_gcalcli
class CbQuickAdd (line 37) | class CbQuickAdd : public smacc2::SmaccAsyncClientBehavior
FILE: smacc2_client_library/cl_gcalcli/include/cl_gcalcli/client_behaviors/cb_refresh_agenda.hpp
type cl_gcalcli (line 21) | namespace cl_gcalcli
class CbRefreshAgenda (line 30) | class CbRefreshAgenda : public smacc2::SmaccClientBehavior
method CbRefreshAgenda (line 33) | CbRefreshAgenda() = default;
method wasSuccessful (line 41) | bool wasSuccessful() const { return success_; }
FILE: smacc2_client_library/cl_gcalcli/include/cl_gcalcli/client_behaviors/cb_status.hpp
type cl_gcalcli (line 24) | namespace cl_gcalcli
class CbStatus (line 33) | class CbStatus : public smacc2::SmaccClientBehavior
method CbStatus (line 36) | CbStatus() = default;
method ConnectionState (line 44) | ConnectionState getConnectionState() const { return connection_state...
method isConnected (line 49) | bool isConnected() const { return connection_state_ == ConnectionSta...
method getEvents (line 54) | std::vector<CalendarEvent> getEvents() const { return events_; }
method getActiveEvents (line 59) | std::vector<CalendarEvent> getActiveEvents() const { return active_e...
FILE: smacc2_client_library/cl_gcalcli/include/cl_gcalcli/client_behaviors/cb_wait_connection.hpp
type cl_gcalcli (line 23) | namespace cl_gcalcli
class CbWaitConnection (line 32) | class CbWaitConnection : public smacc2::SmaccAsyncClientBehavior
FILE: smacc2_client_library/cl_gcalcli/include/cl_gcalcli/components/cp_calendar_event_listener.hpp
type cl_gcalcli (line 31) | namespace cl_gcalcli
class CpCalendarEventListener (line 45) | class CpCalendarEventListener : public smacc2::ISmaccComponent, public...
method onEventDetected (line 80) | smacc2::SmaccSignalConnection onEventDetected(
method onEventStarted (line 87) | smacc2::SmaccSignalConnection onEventStarted(
method onEventEnded (line 94) | smacc2::SmaccSignalConnection onEventEnded(void (T::*callback)(const...
method onStateOrthogonalAllocation (line 108) | void onStateOrthogonalAllocation()
FILE: smacc2_client_library/cl_gcalcli/include/cl_gcalcli/components/cp_calendar_poller.hpp
type cl_gcalcli (line 30) | namespace cl_gcalcli
class CpCalendarPoller (line 43) | class CpCalendarPoller : public smacc2::ISmaccComponent, public smacc2...
method onAgendaUpdated (line 90) | smacc2::SmaccSignalConnection onAgendaUpdated(
method onStateOrthogonalAllocation (line 103) | void onStateOrthogonalAllocation()
FILE: smacc2_client_library/cl_gcalcli/include/cl_gcalcli/components/cp_gcalcli_connection.hpp
type cl_gcalcli (line 29) | namespace cl_gcalcli
class CpGcalcliConnection (line 42) | class CpGcalcliConnection : public smacc2::ISmaccComponent, public sma...
method GcalcliConfig (line 88) | const GcalcliConfig & getConfig() const { return config_; }
method onConnectionLost (line 97) | smacc2::SmaccSignalConnection onConnectionLost(void (T::*callback)()...
method onConnectionRestored (line 103) | smacc2::SmaccSignalConnection onConnectionRestored(void (T::*callbac...
method onAuthenticationRequired (line 109) | smacc2::SmaccSignalConnection onAuthenticationRequired(void (T::*cal...
method onStateOrthogonalAllocation (line 124) | void onStateOrthogonalAllocation()
FILE: smacc2_client_library/cl_gcalcli/include/cl_gcalcli/events.hpp
type cl_gcalcli (line 23) | namespace cl_gcalcli
type EvConnectionLost (line 33) | struct EvConnectionLost : sc::event<EvConnectionLost<TSource, TOrthogo...
type EvConnectionRestored (line 43) | struct EvConnectionRestored : sc::event<EvConnectionRestored<TSource, ...
type EvAuthenticationRequired (line 53) | struct EvAuthenticationRequired : sc::event<EvAuthenticationRequired<T...
type EvCalendarEventDetected (line 64) | struct EvCalendarEventDetected : sc::event<EvCalendarEventDetected<TSo...
type EvCalendarEventStarted (line 77) | struct EvCalendarEventStarted : sc::event<EvCalendarEventStarted<TSour...
type EvCalendarEventEnded (line 88) | struct EvCalendarEventEnded : sc::event<EvCalendarEventEnded<TSource, ...
type EvAgendaUpdated (line 99) | struct EvAgendaUpdated : sc::event<EvAgendaUpdated<TSource, TOrthogonal>>
FILE: smacc2_client_library/cl_gcalcli/include/cl_gcalcli/types.hpp
type cl_gcalcli (line 22) | namespace cl_gcalcli
type ConnectionState (line 28) | enum class ConnectionState
type CalendarEvent (line 39) | struct CalendarEvent
method isActiveNow (line 53) | bool isActiveNow() const
method hasStartedWithinMinutes (line 62) | bool hasStartedWithinMinutes(int minutes) const
method willStartWithinMinutes (line 72) | bool willStartWithinMinutes(int minutes) const
method hasEnded (line 81) | bool hasEnded() const
method minutesUntilStart (line 90) | int minutesUntilStart() const
type GcalcliConfig (line 101) | struct GcalcliConfig
type EventWatch (line 128) | struct EventWatch
FILE: smacc2_client_library/cl_gcalcli/src/cl_gcalcli/cl_gcalcli.cpp
type cl_gcalcli (line 17) | namespace cl_gcalcli
FILE: smacc2_client_library/cl_gcalcli/src/cl_gcalcli/client_behaviors/cb_detect_calendar_event.cpp
type cl_gcalcli (line 21) | namespace cl_gcalcli
FILE: smacc2_client_library/cl_gcalcli/src/cl_gcalcli/client_behaviors/cb_event_detect.cpp
type cl_gcalcli (line 21) | namespace cl_gcalcli
FILE: smacc2_client_library/cl_gcalcli/src/cl_gcalcli/client_behaviors/cb_monitor_connection.cpp
type cl_gcalcli (line 17) | namespace cl_gcalcli
FILE: smacc2_client_library/cl_gcalcli/src/cl_gcalcli/client_behaviors/cb_quick_add.cpp
type cl_gcalcli (line 17) | namespace cl_gcalcli
FILE: smacc2_client_library/cl_gcalcli/src/cl_gcalcli/client_behaviors/cb_refresh_agenda.cpp
type cl_gcalcli (line 17) | namespace cl_gcalcli
FILE: smacc2_client_library/cl_gcalcli/src/cl_gcalcli/client_behaviors/cb_status.cpp
type cl_gcalcli (line 17) | namespace cl_gcalcli
FILE: smacc2_client_library/cl_gcalcli/src/cl_gcalcli/client_behaviors/cb_wait_connection.cpp
type cl_gcalcli (line 19) | namespace cl_gcalcli
FILE: smacc2_client_library/cl_gcalcli/src/cl_gcalcli/components/cp_calendar_event_listener.cpp
type cl_gcalcli (line 21) | namespace cl_gcalcli
FILE: smacc2_client_library/cl_gcalcli/src/cl_gcalcli/components/cp_calendar_poller.cpp
type cl_gcalcli (line 21) | namespace cl_gcalcli
FILE: smacc2_client_library/cl_gcalcli/src/cl_gcalcli/components/cp_gcalcli_connection.cpp
type cl_gcalcli (line 17) | namespace cl_gcalcli
function ConnectionState (line 57) | ConnectionState CpGcalcliConnection::getConnectionState() const
FILE: smacc2_client_library/cl_generic_sensor/include/cl_generic_sensor/cl_generic_sensor.hpp
type cl_generic_sensor (line 23) | namespace cl_generic_sensor
class ClGenericSensor (line 31) | class ClGenericSensor : public smacc2::ISmaccClient
method ClGenericSensor (line 42) | ClGenericSensor() {}
method ClGenericSensor (line 45) | ClGenericSensor(std::string topicName) : topicName_(topicName) {}
method ClGenericSensor (line 48) | ClGenericSensor(std::string topicName, rclcpp::Duration timeout)
method onComponentInitialization (line 59) | void onComponentInitialization()
method setTopicName (line 105) | void setTopicName(const std::string & topicName) { topicName_ = topi...
method setTimeout (line 108) | void setTimeout(const rclcpp::Duration & timeout) { timeout_ = timeo...
FILE: smacc2_client_library/cl_generic_sensor/include/cl_generic_sensor/client_behaviors/cb_default_generic_sensor_behavior.hpp
type cl_generic_sensor (line 25) | namespace cl_generic_sensor
class CbDefaultGenericSensorBehavior (line 30) | class CbDefaultGenericSensorBehavior : public smacc2::SmaccClientBehavior
method CbDefaultGenericSensorBehavior (line 41) | CbDefaultGenericSensorBehavior()
method getEventLabel (line 46) | static std::string getEventLabel()
method onStateOrthogonalAllocation (line 56) | void onStateOrthogonalAllocation()
method propagateMessageEvent (line 121) | void propagateMessageEvent(const TMessageType & msg)
method propagateTimeoutEvent (line 134) | void propagateTimeoutEvent()
method onEntry (line 143) | void onEntry() override
method onExit (line 170) | void onExit() override { RCLCPP_INFO(getLogger(), "[CbDefaultGeneric...
method onMessageCallback (line 173) | virtual void onMessageCallback(const TMessageType & /*msg*/)
FILE: smacc2_client_library/cl_generic_sensor/include/cl_generic_sensor/components/cp_message_timeout.hpp
type cl_generic_sensor (line 23) | namespace cl_generic_sensor
type components (line 25) | namespace components
type EvTopicMessageTimeout (line 31) | struct EvTopicMessageTimeout : sc::event<EvTopicMessageTimeout<TSour...
class CpMessageTimeout (line 38) | class CpMessageTimeout : public smacc2::ISmaccComponent
method CpMessageTimeout (line 49) | CpMessageTimeout() : initialized_(false) {}
method onMessageTimeout (line 55) | smacc2::SmaccSignalConnection onMessageTimeout(void (T::*callback)...
method onComponentInitialization (line 65) | void onComponentInitialization()
method onInitialize (line 87) | void onInitialize() override
method resetTimer (line 118) | void resetTimer(const MessageType & /*msg*/)
method timeoutCallback (line 131) | void timeoutCallback()
FILE: smacc2_client_library/cl_http/include/cl_http/cl_http.hpp
type cl_http (line 44) | namespace cl_http
class ClHttp (line 61) | class ClHttp : public smacc2::ISmaccClient
type kHttpRequestMethod (line 64) | enum class kHttpRequestMethod
method onComponentInitialization (line 81) | void onComponentInitialization()
FILE: smacc2_client_library/cl_http/include/cl_http/client_behaviors/cb_http_get_request.hpp
type cl_http (line 27) | namespace cl_http
class CbHttpGetRequest (line 29) | class CbHttpGetRequest : public CbHttpRequestBase
method CbHttpGetRequest (line 32) | CbHttpGetRequest() : CbHttpRequestBase(CpHttpRequestExecutor::HttpMe...
FILE: smacc2_client_library/cl_http/include/cl_http/client_behaviors/cb_http_post_request.hpp
type cl_http (line 27) | namespace cl_http
class CbHttpPostRequest (line 29) | class CbHttpPostRequest : public CbHttpRequestBase
method CbHttpPostRequest (line 32) | CbHttpPostRequest() : CbHttpRequestBase(CpHttpRequestExecutor::HttpM...
FILE: smacc2_client_library/cl_http/include/cl_http/client_behaviors/cb_http_request.hpp
type cl_http (line 28) | namespace cl_http
class CbHttpRequestBase (line 31) | class CbHttpRequestBase : public smacc2::SmaccClientBehavior
method CbHttpRequestBase (line 34) | CbHttpRequestBase(const CpHttpRequestExecutor::HttpMethod http_reque...
method onStateOrthogonalAllocation (line 40) | void onStateOrthogonalAllocation()
method runtimeConfigure (line 45) | virtual void runtimeConfigure() override
method onResponseReceived (line 53) | virtual void onResponseReceived(const CpHttpRequestExecutor::TRespon...
method onEntry (line 55) | virtual void onEntry() override { requestExecutor_->executeRequest(k...
method onExit (line 57) | virtual void onExit() override {}
FILE: smacc2_client_library/cl_http/include/cl_http/components/cp_http_connection_manager.hpp
type cl_http (line 28) | namespace cl_http
class CpHttpConnectionManager (line 33) | class CpHttpConnectionManager : public smacc2::ISmaccComponent
FILE: smacc2_client_library/cl_http/include/cl_http/components/cp_http_request_executor.hpp
type cl_http (line 27) | namespace cl_http
class CpHttpConnectionManager (line 31) | class CpHttpConnectionManager
class CpHttpSessionManager (line 32) | class CpHttpSessionManager
class CpHttpRequestExecutor (line 36) | class CpHttpRequestExecutor : public smacc2::ISmaccComponent
type HttpMethod (line 40) | enum class HttpMethod
method setDependencies (line 55) | void setDependencies(CpHttpConnectionManager * connMgr, CpHttpSessio...
FILE: smacc2_client_library/cl_http/include/cl_http/components/cp_http_session_manager.hpp
type cl_http (line 28) | namespace cl_http
class CpHttpSessionManager (line 33) | class CpHttpSessionManager : public smacc2::ISmaccComponent
class ServerConfig (line 60) | class ServerConfig
method isSSL (line 65) | bool isSSL() const { return ssl_; }
method getPort (line 66) | std::string getPort() const { return ssl_ ? "443" : "80"; }
method getServerName (line 67) | std::string getServerName() const { return server_name_; }
FILE: smacc2_client_library/cl_http/include/cl_http/http_session.hpp
type cl_http (line 33) | namespace cl_http
class http_session (line 35) | class http_session : public std::enable_shared_from_this<http_session>...
method getPort (line 50) | std::string getPort() override { return kPort; }
method setHeaders (line 64) | void setHeaders(const std::unordered_map<std::string, std::string> &...
FILE: smacc2_client_library/cl_http/include/cl_http/http_session_base.hpp
type cl_http (line 32) | namespace cl_http
class http_session_base (line 34) | class http_session_base
method on_handshake (line 60) | virtual void on_handshake(boost::beast::error_code /*ec*/) {}
method on_shutdown (line 61) | virtual void on_shutdown(boost::beast::error_code /*ec*/) {}
FILE: smacc2_client_library/cl_http/include/cl_http/ssl_http_session.hpp
type cl_http (line 35) | namespace cl_http
class ssl_http_session (line 37) | class ssl_http_session : public std::enable_shared_from_this<ssl_http_...
method getPort (line 54) | std::string getPort() override { return kPort; }
FILE: smacc2_client_library/cl_http/src/cl_http/cl_http.cpp
type cl_http (line 23) | namespace cl_http
FILE: smacc2_client_library/cl_http/src/cl_http/components/cp_http_connection_manager.cpp
type cl_http (line 23) | namespace cl_http
FILE: smacc2_client_library/cl_http/src/cl_http/components/cp_http_request_executor.cpp
type cl_http (line 25) | namespace cl_http
FILE: smacc2_client_library/cl_http/src/cl_http/components/cp_http_session_manager.cpp
type cl_http (line 25) | namespace cl_http
FILE: smacc2_client_library/cl_http/src/cl_http/http_session.cpp
type cl_http (line 24) | namespace cl_http
FILE: smacc2_client_library/cl_http/src/cl_http/ssl_http_session.cpp
type cl_http (line 24) | namespace cl_http
FILE: smacc2_client_library/cl_isaac_apriltag/include/cl_isaac_apriltag/cl_isaac_apriltag.hpp
type cl_isaac_apriltag (line 32) | namespace cl_isaac_apriltag
type EvUnvisitedAprilTagDetected (line 37) | struct EvUnvisitedAprilTagDetected : sc::event<EvUnvisitedAprilTagDete...
class ClIsaacApriltag (line 56) | class ClIsaacApriltag : public smacc2::ISmaccClient
method ClIsaacApriltag (line 59) | ClIsaacApriltag(std::string topic_name = "/tag_detections", std::str...
method onComponentInitialization (line 67) | void onComponentInitialization()
FILE: smacc2_client_library/cl_isaac_apriltag/include/cl_isaac_apriltag/client_behaviors/cb_detect_apriltag.hpp
type cl_isaac_apriltag (line 28) | namespace cl_isaac_apriltag
class CbDetectAprilTag (line 41) | class CbDetectAprilTag : public smacc2::SmaccAsyncClientBehavior
method CbDetectAprilTag (line 51) | CbDetectAprilTag() {}
method onOrthogonalAllocation (line 56) | void onOrthogonalAllocation()
method onEntry (line 62) | virtual void onEntry() override
method onAprilTagDetected (line 72) | void onAprilTagDetected(
FILE: smacc2_client_library/cl_isaac_apriltag/include/cl_isaac_apriltag/components/cp_april_visualization.hpp
type cl_isaac_apriltag (line 39) | namespace cl_isaac_apriltag
class CpAprilTagVisualization (line 49) | class CpAprilTagVisualization : public smacc2::ISmaccComponent, public...
method CpAprilTagVisualization (line 52) | CpAprilTagVisualization() {}
method onInitialize (line 56) | void onInitialize() override
method getGlobalApriltagTransform (line 65) | std::optional<tf2::Transform> getGlobalApriltagTransform()
method computeAggregatedMarker (line 71) | void computeAggregatedMarker()
method update (line 126) | virtual void update() override
FILE: smacc2_client_library/cl_isaac_apriltag/include/cl_isaac_apriltag/components/cp_apriltag_mission_state.hpp
type cl_isaac_apriltag (line 30) | namespace cl_isaac_apriltag
class CpAprilTagMissionState (line 40) | class CpAprilTagMissionState : public smacc2::ISmaccComponent
method CpAprilTagMissionState (line 43) | CpAprilTagMissionState() = default;
method onInitialize (line 47) | void onInitialize() override { RCLCPP_INFO(getLogger(), "[CpAprilTag...
method isTagVisited (line 54) | bool isTagVisited(const std::string & tag_frame_id) const
method markTagVisited (line 65) | void markTagVisited(const std::string & tag_frame_id)
method clearVisitedTags (line 81) | void clearVisitedTags()
method getVisitedTags (line 92) | std::vector<std::string> getVisitedTags() const
method selectTag (line 102) | void selectTag(const std::string & tag_frame_id)
method getSelectedTag (line 114) | std::optional<std::string> getSelectedTag() const
method clearSelectedTag (line 123) | void clearSelectedTag()
FILE: smacc2_client_library/cl_isaac_apriltag/include/cl_isaac_apriltag/components/cp_apriltag_tracker.hpp
type cl_isaac_apriltag (line 37) | namespace cl_isaac_apriltag
class CpAprilTagTracker (line 49) | class CpAprilTagTracker : public smacc2::ISmaccComponent
method CpAprilTagTracker (line 52) | CpAprilTagTracker(std::string target_frame = "map") : targetFrame_(t...
method onInitialize (line 56) | void onInitialize() override
method onComponentInitialization (line 63) | void onComponentInitialization()
method getTagsWithinTime (line 77) | std::map<std::string, geometry_msgs::msg::PoseStamped> getTagsWithin...
method getTagPose (line 114) | std::optional<geometry_msgs::msg::PoseStamped> getTagPose(const std:...
method onAprilTagDetected (line 135) | smacc2::SmaccSignalConnection onAprilTagDetected(
method onAprilTagMessage (line 155) | void onAprilTagMessage(const AprilTagDetectionArray & msg)
FILE: smacc2_client_library/cl_keyboard/include/cl_keyboard/cl_keyboard.hpp
type cl_keyboard (line 30) | namespace cl_keyboard
class ClKeyboard (line 32) | class ClKeyboard : public smacc2::ISmaccClient
method onComponentInitialization (line 40) | void onComponentInitialization()
FILE: smacc2_client_library/cl_keyboard/include/cl_keyboard/client_behaviors/cb_default_keyboard_behavior.hpp
type cl_keyboard (line 22) | namespace cl_keyboard
class CbDefaultKeyboardBehavior (line 24) | class CbDefaultKeyboardBehavior : public smacc2::SmaccClientBehavior
method onEntry (line 30) | void onEntry()
method onStateOrthogonalAllocation (line 37) | void onStateOrthogonalAllocation()
method OnKeyPress (line 96) | void OnKeyPress(char character) { postEventKeyPress(character); }
method postKeyEvent (line 99) | void postKeyEvent()
FILE: smacc2_client_library/cl_keyboard/include/cl_keyboard/components/cp_keyboard_listener_1.hpp
type cl_keyboard (line 27) | namespace cl_keyboard
type EvKeyPressA (line 31) | struct EvKeyPressA : sc::event<EvKeyPressA<TSource, TOrthogonal>>
type EvKeyPressB (line 36) | struct EvKeyPressB : sc::event<EvKeyPressB<TSource, TOrthogonal>>
type EvKeyPressC (line 41) | struct EvKeyPressC : sc::event<EvKeyPressC<TSource, TOrthogonal>>
type EvKeyPressD (line 46) | struct EvKeyPressD : sc::event<EvKeyPressD<TSource, TOrthogonal>>
type EvKeyPressE (line 51) | struct EvKeyPressE : sc::event<EvKeyPressE<TSource, TOrthogonal>>
type EvKeyPressF (line 56) | struct EvKeyPressF : sc::event<EvKeyPressF<TSource, TOrthogonal>>
type EvKeyPressG (line 61) | struct EvKeyPressG : sc::event<EvKeyPressG<TSource, TOrthogonal>>
type EvKeyPressH (line 66) | struct EvKeyPressH : sc::event<EvKeyPressH<TSource, TOrthogonal>>
type EvKeyPressI (line 71) | struct EvKeyPressI : sc::event<EvKeyPressI<TSource, TOrthogonal>>
type EvKeyPressJ (line 76) | struct EvKeyPressJ : sc::event<EvKeyPressJ<TSource, TOrthogonal>>
type EvKeyPressK (line 81) | struct EvKeyPressK : sc::event<EvKeyPressK<TSource, TOrthogonal>>
type EvKeyPressL (line 86) | struct EvKeyPressL : sc::event<EvKeyPressL<TSource, TOrthogonal>>
type EvKeyPressM (line 91) | struct EvKeyPressM : sc::event<EvKeyPressM<TSource, TOrthogonal>>
type EvKeyPressN (line 96) | struct EvKeyPressN : sc::event<EvKeyPressN<TSource, TOrthogonal>>
type EvKeyPressO (line 101) | struct EvKeyPressO : sc::event<EvKeyPressO<TSource, TOrthogonal>>
type EvKeyPressP (line 106) | struct EvKeyPressP : sc::event<EvKeyPressP<TSource, TOrthogonal>>
type EvKeyPressQ (line 111) | struct EvKeyPressQ : sc::event<EvKeyPressQ<TSource, TOrthogonal>>
type EvKeyPressR (line 116) | struct EvKeyPressR : sc::event<EvKeyPressR<TSource, TOrthogonal>>
type EvKeyPressS (line 121) | struct EvKeyPressS : sc::event<EvKeyPressS<TSource, TOrthogonal>>
type EvKeyPressT (line 126) | struct EvKeyPressT : sc::event<EvKeyPressT<TSource, TOrthogonal>>
type EvKeyPressU (line 131) | struct EvKeyPressU : sc::event<EvKeyPressU<TSource, TOrthogonal>>
type EvKeyPressV (line 136) | struct EvKeyPressV : sc::event<EvKeyPressV<TSource, TOrthogonal>>
type EvKeyPressW (line 141) | struct EvKeyPressW : sc::event<EvKeyPressW<TSource, TOrthogonal>>
type EvKeyPressX (line 146) | struct EvKeyPressX : sc::event<EvKeyPressX<TSource, TOrthogonal>>
type EvKeyPressY (line 151) | struct EvKeyPressY : sc::event<EvKeyPressY<TSource, TOrthogonal>>
type EvKeyPressZ (line 156) | struct EvKeyPressZ : sc::event<EvKeyPressZ<TSource, TOrthogonal>>
type components (line 161) | namespace components
class CpKeyboardListener1 (line 163) | class CpKeyboardListener1 : public smacc2::ISmaccComponent
method CpKeyboardListener1 (line 166) | CpKeyboardListener1() {}
method onComponentInitialization (line 172) | void onComponentInitialization()
method OnKeyPress (line 247) | void OnKeyPress(void (T::*callback)(char keypress), T * object)
method onKeyboardMessage (line 252) | void onKeyboardMessage(const std_msgs::msg::UInt16 & unicode_keychar)
method postKeyEvent (line 259) | void postKeyEvent()
FILE: smacc2_client_library/cl_keyboard/servers/keyboard_server_node.py
function getKey (line 36) | def getKey():
class KeyboardPublisher (line 45) | class KeyboardPublisher(Node):
method __init__ (line 46) | def __init__(self):
method timer_update (line 53) | def timer_update(self):
function main (line 70) | def main(args=None):
FILE: smacc2_client_library/cl_keyboard/src/cl_keyboard/cl_keyboard.cpp
type cl_keyboard (line 23) | namespace cl_keyboard
FILE: smacc2_client_library/cl_lifecycle_node/include/cl_lifecycle_node/cl_lifecycle_node.hpp
type cl_lifecycle_node (line 30) | namespace cl_lifecycle_node
type EvLifecycleNodeChangeState (line 33) | struct EvLifecycleNodeChangeState
type EvTransitionCreate (line 40) | struct EvTransitionCreate : public sc::event<EvTransitionCreate<TSourc...
type EvTransitionConfigure (line 45) | struct EvTransitionConfigure : public sc::event<EvTransitionConfigure<...
type EvTransitionCleanup (line 50) | struct EvTransitionCleanup : sc::event<EvTransitionCleanup<TSourceObje...
type EvTransitionActivate (line 55) | struct EvTransitionActivate : sc::event<EvTransitionActivate<TSourceOb...
type EvTransitionDeactivate (line 60) | struct EvTransitionDeactivate : sc::event<EvTransitionDeactivate<TSour...
type EvTransitionUnconfiguredShutdown (line 65) | struct EvTransitionUnconfiguredShutdown
type EvTransitionInactiveShutdown (line 71) | struct EvTransitionInactiveShutdown
type EvTransitionActiveShutdown (line 77) | struct EvTransitionActiveShutdown
type EvTransitionDestroy (line 83) | struct EvTransitionDestroy : sc::event<EvTransitionDestroy<TSourceObje...
type EvTransitionOnConfigureSuccess (line 88) | struct EvTransitionOnConfigureSuccess
type EvTransitionOnConfigureFailure (line 94) | struct EvTransitionOnConfigureFailure
type EvTransitionOnConfigureError (line 100) | struct EvTransitionOnConfigureError
type EvTransitionOnActivateSuccess (line 106) | struct EvTransitionOnActivateSuccess
type EvTransitionOnActivateFailure (line 112) | struct EvTransitionOnActivateFailure
type EvTransitionOnActivateError (line 118) | struct EvTransitionOnActivateError
type EvTransitionOnDeactivateSuccess (line 124) | struct EvTransitionOnDeactivateSuccess
type EvTransitionOnDeactivateFailure (line 130) | struct EvTransitionOnDeactivateFailure
type EvTransitionOnDeactivateError (line 136) | struct EvTransitionOnDeactivateError
type EvTransitionOnCleanupSuccess (line 142) | struct EvTransitionOnCleanupSuccess
type EvTransitionOnCleanupFailure (line 148) | struct EvTransitionOnCleanupFailure
type EvTransitionOnCleanupError (line 154) | struct EvTransitionOnCleanupError
type EvTransitionOnShutdownSuccess (line 160) | struct EvTransitionOnShutdownSuccess
type EvTransitionOnShutdownFailure (line 166) | struct EvTransitionOnShutdownFailure
type EvTransitionOnShutdownError (line 172) | struct EvTransitionOnShutdownError
type EvTransitionOnErrorSuccess (line 178) | struct EvTransitionOnErrorSuccess
type EvTransitionOnErrorFailure (line 184) | struct EvTransitionOnErrorFailure
type EvTransitionOnErrorError (line 190) | struct EvTransitionOnErrorError : sc::event<EvTransitionOnErrorError<T...
class ClLifecycleNode (line 194) | class ClLifecycleNode : public smacc2::ISmaccClient
method onStateOrthogonalAllocation (line 228) | void onStateOrthogonalAllocation()
FILE: smacc2_client_library/cl_lifecycle_node/include/cl_lifecycle_node/client_behaviors/cb_activate.hpp
type cl_lifecycle_node (line 27) | namespace cl_lifecycle_node
class CbActivate (line 29) | class CbActivate : public smacc2::SmaccAsyncClientBehavior
method CbActivate (line 32) | CbActivate() {}
method onStateOrthogonalAllocation (line 36) | void onStateOrthogonalAllocation()
method onEntry (line 48) | virtual void onEntry() override { lifecycleNodeClient_->activate(); }
FILE: smacc2_client_library/cl_lifecycle_node/include/cl_lifecycle_node/client_behaviors/cb_cleanup.hpp
type cl_lifecycle_node (line 27) | namespace cl_lifecycle_node
class CbCleanup (line 29) | class CbCleanup : public smacc2::SmaccAsyncClientBehavior
method CbCleanup (line 32) | CbCleanup() {}
method onStateOrthogonalAllocation (line 36) | void onStateOrthogonalAllocation()
method onEntry (line 48) | virtual void onEntry() override { lifecycleNodeClient_->cleanup(); }
FILE: smacc2_client_library/cl_lifecycle_node/include/cl_lifecycle_node/client_behaviors/cb_configure.hpp
type cl_lifecycle_node (line 27) | namespace cl_lifecycle_node
class CbConfigure (line 29) | class CbConfigure : public smacc2::SmaccAsyncClientBehavior
method CbConfigure (line 32) | CbConfigure() {}
method onStateOrthogonalAllocation (line 36) | void onStateOrthogonalAllocation()
method onEntry (line 53) | virtual void onEntry() override { lifecycleNodeClient_->configure(); }
FILE: smacc2_client_library/cl_lifecycle_node/include/cl_lifecycle_node/client_behaviors/cb_deactivate.hpp
type cl_lifecycle_node (line 27) | namespace cl_lifecycle_node
class CbDeactivate (line 29) | class CbDeactivate : public smacc2::SmaccAsyncClientBehavior
method CbDeactivate (line 32) | CbDeactivate() {}
method onStateOrthogonalAllocation (line 36) | void onStateOrthogonalAllocation()
method onEntry (line 48) | virtual void onEntry() override { lifecycleNodeClient_->deactivate(); }
FILE: smacc2_client_library/cl_lifecycle_node/include/cl_lifecycle_node/client_behaviors/cb_deactivate_on_exit.hpp
type cl_lifecycle_node (line 27) | namespace cl_lifecycle_node
class CbDeactivateOnExit (line 29) | class CbDeactivateOnExit : public smacc2::SmaccAsyncClientBehavior
method CbDeactivateOnExit (line 32) | CbDeactivateOnExit() {}
method onStateOrthogonalAllocation (line 36) | void onStateOrthogonalAllocation()
method onExit (line 48) | virtual void onExit() override { lifecycleNodeClient_->deactivate(); }
FILE: smacc2_client_library/cl_lifecycle_node/include/cl_lifecycle_node/client_behaviors/cb_destroy.hpp
type cl_lifecycle_node (line 27) | namespace cl_lifecycle_node
class CbDestroy (line 29) | class CbDestroy : public smacc2::SmaccAsyncClientBehavior
method CbDestroy (line 32) | CbDestroy() {}
method onStateOrthogonalAllocation (line 36) | void onStateOrthogonalAllocation()
method onEntry (line 48) | virtual void onEntry() override { lifecycleNodeClient_->destroy(); }
FILE: smacc2_client_library/cl_lifecycle_node/include/cl_lifecycle_node/client_behaviors/cb_shutdown.hpp
type cl_lifecycle_node (line 27) | namespace cl_lifecycle_node
class CbShutdown (line 29) | class CbShutdown : public smacc2::SmaccAsyncClientBehavior
method CbShutdown (line 32) | CbShutdown() {}
method onStateOrthogonalAllocation (line 36) | void onStateOrthogonalAllocation()
method onEntry (line 48) | virtual void onEntry() override { lifecycleNodeClient_->shutdown(); }
FILE: smacc2_client_library/cl_lifecycle_node/include/cl_lifecycle_node/components/cp_lifecycle_event_monitor.hpp
type cl_lifecycle_node (line 29) | namespace cl_lifecycle_node
class CpLifecycleEventMonitor (line 31) | class CpLifecycleEventMonitor
method setOwner (line 114) | void setOwner(smacc2::ISmaccClient * owner, smacc2::ISmaccStateMachi...
method onStateOrthogonalAllocation (line 183) | void onStateOrthogonalAllocation()
type EvTransitionConfigure (line 35) | struct EvTransitionConfigure
type EvTransitionActivate (line 37) | struct EvTransitionActivate
type EvTransitionDeactivate (line 39) | struct EvTransitionDeactivate
type EvTransitionCleanup (line 41) | struct EvTransitionCleanup
type EvTransitionUnconfiguredShutdown (line 43) | struct EvTransitionUnconfiguredShutdown
type EvTransitionInactiveShutdown (line 45) | struct EvTransitionInactiveShutdown
type EvTransitionActiveShutdown (line 47) | struct EvTransitionActiveShutdown
type EvTransitionDestroy (line 49) | struct EvTransitionDestroy
type EvTransitionOnConfigureSuccess (line 51) | struct EvTransitionOnConfigureSuccess
type EvTransitionOnConfigureFailure (line 53) | struct EvTransitionOnConfigureFailure
type EvTransitionOnConfigureError (line 55) | struct EvTransitionOnConfigureError
type EvTransitionOnActivateSuccess (line 57) | struct EvTransitionOnActivateSuccess
type EvTransitionOnActivateFailure (line 59) | struct EvTransitionOnActivateFailure
type EvTransitionOnActivateError (line 61) | struct EvTransitionOnActivateError
type EvTransitionOnDeactivateSuccess (line 63) | struct EvTransitionOnDeactivateSuccess
type EvTransitionOnDeactivateFailure (line 65) | struct EvTransitionOnDeactivateFailure
type EvTransitionOnDeactivateError (line 67) | struct EvTransitionOnDeactivateError
type EvTransitionOnCleanupSuccess (line 69) | struct EvTransitionOnCleanupSuccess
type EvTransitionOnCleanupFailure (line 71) | struct EvTransitionOnCleanupFailure
type EvTransitionOnCleanupError (line 73) | struct EvTransitionOnCleanupError
type EvTransitionOnShutdownSuccess (line 75) | struct EvTransitionOnShutdownSuccess
type EvTransitionOnShutdownFailure (line 77) | struct EvTransitionOnShutdownFailure
type EvTransitionOnShutdownError (line 79) | struct EvTransitionOnShutdownError
type EvTransitionOnErrorSuccess (line 81) | struct EvTransitionOnErrorSuccess
type EvTransitionOnErrorFailure (line 83) | struct EvTransitionOnErrorFailure
class CpLifecycleEventMonitor (line 98) | class CpLifecycleEventMonitor : public smacc2::ISmaccComponent
method setOwner (line 114) | void setOwner(smacc2::ISmaccClient * owner, smacc2::ISmaccStateMachi...
method onStateOrthogonalAllocation (line 183) | void onStateOrthogonalAllocation()
type cl_lifecycle_node (line 86) | namespace cl_lifecycle_node
class CpLifecycleEventMonitor (line 31) | class CpLifecycleEventMonitor
method setOwner (line 114) | void setOwner(smacc2::ISmaccClient * owner, smacc2::ISmaccStateMachi...
method onStateOrthogonalAllocation (line 183) | void onStateOrthogonalAllocation()
type EvTransitionConfigure (line 35) | struct EvTransitionConfigure
type EvTransitionActivate (line 37) | struct EvTransitionActivate
type EvTransitionDeactivate (line 39) | struct EvTransitionDeactivate
type EvTransitionCleanup (line 41) | struct EvTransitionCleanup
type EvTransitionUnconfiguredShutdown (line 43) | struct EvTransitionUnconfiguredShutdown
type EvTransitionInactiveShutdown (line 45) | struct EvTransitionInactiveShutdown
type EvTransitionActiveShutdown (line 47) | struct EvTransitionActiveShutdown
type EvTransitionDestroy (line 49) | struct EvTransitionDestroy
type EvTransitionOnConfigureSuccess (line 51) | struct EvTransitionOnConfigureSuccess
type EvTransitionOnConfigureFailure (line 53) | struct EvTransitionOnConfigureFailure
type EvTransitionOnConfigureError (line 55) | struct EvTransitionOnConfigureError
type EvTransitionOnActivateSuccess (line 57) | struct EvTransitionOnActivateSuccess
type EvTransitionOnActivateFailure (line 59) | struct EvTransitionOnActivateFailure
type EvTransitionOnActivateError (line 61) | struct EvTransitionOnActivateError
type EvTransitionOnDeactivateSuccess (line 63) | struct EvTransitionOnDeactivateSuccess
type EvTransitionOnDeactivateFailure (line 65) | struct EvTransitionOnDeactivateFailure
type EvTransitionOnDeactivateError (line 67) | struct EvTransitionOnDeactivateError
type EvTransitionOnCleanupSuccess (line 69) | struct EvTransitionOnCleanupSuccess
type EvTransitionOnCleanupFailure (line 71) | struct EvTransitionOnCleanupFailure
type EvTransitionOnCleanupError (line 73) | struct EvTransitionOnCleanupError
type EvTransitionOnShutdownSuccess (line 75) | struct EvTransitionOnShutdownSuccess
type EvTransitionOnShutdownFailure (line 77) | struct EvTransitionOnShutdownFailure
type EvTransitionOnShutdownError (line 79) | struct EvTransitionOnShutdownError
type EvTransitionOnErrorSuccess (line 81) | struct EvTransitionOnErrorSuccess
type EvTransitionOnErrorFailure (line 83) | struct EvTransitionOnErrorFailure
class CpLifecycleEventMonitor (line 98) | class CpLifecycleEventMonitor : public smacc2::ISmaccComponent
method setOwner (line 114) | void setOwner(smacc2::ISmaccClient * owner, smacc2::ISmaccStateMachi...
method onStateOrthogonalAllocation (line 183) | void onStateOrthogonalAllocation()
FILE: smacc2_client_library/cl_lifecycle_node/include/cl_lifecycle_node/components/cp_lifecycle_state_tracker.hpp
type cl_lifecycle_node (line 25) | namespace cl_lifecycle_node
class CpLifecycleStateTracker (line 33) | class CpLifecycleStateTracker : public smacc2::ISmaccComponent
method CpLifecycleStateTracker (line 36) | CpLifecycleStateTracker() = default;
FILE: smacc2_client_library/cl_lifecycle_node/src/cl_lifecycle_node/cl_lifecycle_node.cpp
type cl_lifecycle_node (line 24) | namespace cl_lifecycle_node
FILE: smacc2_client_library/cl_lifecycle_node/src/cl_lifecycle_node/components/cp_lifecycle_event_monitor.cpp
type cl_lifecycle_node (line 17) | namespace cl_lifecycle_node
FILE: smacc2_client_library/cl_lifecycle_node/src/cl_lifecycle_node/components/cp_lifecycle_state_tracker.cpp
type cl_lifecycle_node (line 17) | namespace cl_lifecycle_node
FILE: smacc2_client_library/cl_mission_tracker/include/cl_mission_tracker/cl_mission_tracker.hpp
type cl_mission_tracker (line 27) | namespace cl_mission_tracker
type EvBatteryLoad (line 32) | struct EvBatteryLoad : sc::event<EvBatteryLoad<AsyncCB, Orthogonal>>
type EvRadialMotion (line 38) | struct EvRadialMotion : sc::event<EvRadialMotion<AsyncCB, Orthogonal>>
type EvSPattern (line 44) | struct EvSPattern : sc::event<EvSPattern<AsyncCB, Orthogonal>>
type EvFPattern (line 50) | struct EvFPattern : sc::event<EvFPattern<AsyncCB, Orthogonal>>
class ClMissionTracker (line 65) | class ClMissionTracker : public smacc2::ISmaccClient
method ClMissionTracker (line 68) | ClMissionTracker() {}
method onComponentInitialization (line 73) | void onComponentInitialization()
FILE: smacc2_client_library/cl_mission_tracker/include/cl_mission_tracker/client_behaviors/cb_battery_decission.hpp
type cl_mission_tracker (line 27) | namespace cl_mission_tracker
class CbBatteryDecission (line 39) | class CbBatteryDecission : public smacc2::SmaccAsyncClientBehavior
method CbBatteryDecission (line 47) | CbBatteryDecission() {}
method onEntry (line 51) | virtual void onEntry() override { this->postEventFn_(); }
method onExit (line 53) | virtual void onExit() override {}
method onOrthogonalAllocation (line 56) | void onOrthogonalAllocation()
FILE: smacc2_client_library/cl_mission_tracker/include/cl_mission_tracker/components/cp_decision_manager.hpp
type cl_mission_tracker (line 26) | namespace cl_mission_tracker
class CpDecisionManager (line 36) | class CpDecisionManager : public smacc2::ISmaccComponent
method CpDecisionManager (line 39) | CpDecisionManager() = default;
method onInitialize (line 43) | void onInitialize() override { RCLCPP_INFO(getLogger(), "[CpDecision...
method getDecisionCounter (line 49) | int getDecisionCounter() const
method nextDecision (line 59) | int nextDecision()
method resetDecisionCounter (line 72) | void resetDecisionCounter()
method setDecisionCounter (line 83) | void setDecisionCounter(int value)
FILE: smacc2_client_library/cl_modbus_tcp_relay/include/cl_modbus_tcp_relay/cl_modbus_tcp_relay.hpp
type cl_modbus_tcp_relay (line 26) | namespace cl_modbus_tcp_relay
type EvConnectionLost (line 31) | struct EvConnectionLost : sc::event<EvConnectionLost<TSource, TOrthogo...
type EvConnectionRestored (line 36) | struct EvConnectionRestored : sc::event<EvConnectionRestored<TSource, ...
type EvRelayWriteSuccess (line 42) | struct EvRelayWriteSuccess : sc::event<EvRelayWriteSuccess<TSource, TO...
type EvRelayWriteFailure (line 47) | struct EvRelayWriteFailure : sc::event<EvRelayWriteFailure<TSource, TO...
class ClModbusTcpRelay (line 64) | class ClModbusTcpRelay : public smacc2::ISmaccClient
method onStateOrthogonalAllocation (line 74) | void onStateOrthogonalAllocation()
method CpModbusConnection (line 96) | CpModbusConnection * getConnectionComponent() { return connectionCom...
method CpModbusRelay (line 99) | CpModbusRelay * getRelayComponent() { return relayComponent_; }
FILE: smacc2_client_library/cl_modbus_tcp_relay/include/cl_modbus_tcp_relay/client_behaviors/cb_all_relays_off.hpp
type cl_modbus_tcp_relay (line 26) | namespace cl_modbus_tcp_relay
class CbAllRelaysOff (line 34) | class CbAllRelaysOff : public smacc2::SmaccAsyncClientBehavior
method CbAllRelaysOff (line 37) | CbAllRelaysOff() {}
method onStateOrthogonalAllocation (line 42) | void onStateOrthogonalAllocation()
method onEntry (line 50) | virtual void onEntry() override
FILE: smacc2_client_library/cl_modbus_tcp_relay/include/cl_modbus_tcp_relay/client_behaviors/cb_all_relays_on.hpp
type cl_modbus_tcp_relay (line 26) | namespace cl_modbus_tcp_relay
class CbAllRelaysOn (line 34) | class CbAllRelaysOn : public smacc2::SmaccAsyncClientBehavior
method CbAllRelaysOn (line 37) | CbAllRelaysOn() {}
method onStateOrthogonalAllocation (line 42) | void onStateOrthogonalAllocation()
method onEntry (line 50) | virtual void onEntry() override
FILE: smacc2_client_library/cl_modbus_tcp_relay/include/cl_modbus_tcp_relay/client_behaviors/cb_relay_off.hpp
type cl_modbus_tcp_relay (line 26) | namespace cl_modbus_tcp_relay
class CbRelayOff (line 34) | class CbRelayOff : public smacc2::SmaccAsyncClientBehavior
method CbRelayOff (line 41) | explicit CbRelayOff(int channel) : channel_(channel) {}
method onStateOrthogonalAllocation (line 46) | void onStateOrthogonalAllocation()
method onEntry (line 54) | virtual void onEntry() override
FILE: smacc2_client_library/cl_modbus_tcp_relay/include/cl_modbus_tcp_relay/client_behaviors/cb_relay_on.hpp
type cl_modbus_tcp_relay (line 26) | namespace cl_modbus_tcp_relay
class CbRelayOn (line 34) | class CbRelayOn : public smacc2::SmaccAsyncClientBehavior
method CbRelayOn (line 41) | explicit CbRelayOn(int channel) : channel_(channel) {}
method onStateOrthogonalAllocation (line 46) | void onStateOrthogonalAllocation()
method onEntry (line 54) | virtual void onEntry() override
FILE: smacc2_client_library/cl_modbus_tcp_relay/include/cl_modbus_tcp_relay/client_behaviors/cb_relay_status.hpp
type cl_modbus_tcp_relay (line 28) | namespace cl_modbus_tcp_relay
class CbRelayStatus (line 37) | class CbRelayStatus : public smacc2::SmaccAsyncClientBehavior
method CbRelayStatus (line 43) | CbRelayStatus() : channel_(std::nullopt) {}
method CbRelayStatus (line 49) | explicit CbRelayStatus(int channel) : channel_(channel) {}
method onStateOrthogonalAllocation (line 54) | void onStateOrthogonalAllocation()
method onEntry (line 62) | virtual void onEntry() override
method getChannelStates (line 78) | uint8_t getChannelStates() const { return channelStates_; }
method onStatusRead (line 85) | virtual void onStatusRead(uint8_t channelStates)
method readSingleChannel (line 96) | void readSingleChannel(int channel)
method readAllChannels (line 124) | void readAllChannels()
FILE: smacc2_client_library/cl_modbus_tcp_relay/include/cl_modbus_tcp_relay/components/cp_modbus_connection.hpp
type cl_modbus_tcp_relay (line 29) | namespace cl_modbus_tcp_relay
type EvConnectionLost (line 34) | struct EvConnectionLost
type EvConnectionRestored (line 37) | struct EvConnectionRestored
class CpModbusConnection (line 56) | class CpModbusConnection : public smacc2::ISmaccComponent, public smac...
method onStateOrthogonalAllocation (line 68) | void onStateOrthogonalAllocation()
method getIpAddress (line 88) | std::string getIpAddress() const { return ip_address_; }
method getPort (line 89) | int getPort() const { return port_; }
method getSlaveId (line 90) | int getSlaveId() const { return slave_id_; }
method onConnectionLost (line 99) | smacc2::SmaccSignalConnection onConnectionLost(void (T::*callback)()...
method onConnectionRestored (line 105) | smacc2::SmaccSignalConnection onConnectionRestored(void (T::*callbac...
method onConnectionError (line 111) | smacc2::SmaccSignalConnection onConnectionError(
FILE: smacc2_client_library/cl_modbus_tcp_relay/include/cl_modbus_tcp_relay/components/cp_modbus_relay.hpp
type cl_modbus_tcp_relay (line 28) | namespace cl_modbus_tcp_relay
type EvRelayWriteSuccess (line 33) | struct EvRelayWriteSuccess
type EvRelayWriteFailure (line 36) | struct EvRelayWriteFailure
class CpModbusRelay (line 51) | class CpModbusRelay : public smacc2::ISmaccComponent
method onStateOrthogonalAllocation (line 66) | void onStateOrthogonalAllocation()
method onWriteSuccess (line 91) | smacc2::SmaccSignalConnection onWriteSuccess(void (T::*callback)(int...
method onWriteFailure (line 97) | smacc2::SmaccSignalConnection onWriteFailure(
method onReadComplete (line 104) | smacc2::SmaccSignalConnection onReadComplete(void (T::*callback)(uin...
method channelToAddress (line 116) | int channelToAddress(int channel) const { return COIL_BASE_ADDRESS +...
method isValidChannel (line 119) | bool isValidChannel(int channel) const { return channel >= 1 && chan...
FILE: smacc2_client_library/cl_modbus_tcp_relay/src/cl_modbus_tcp_relay/cl_modbus_tcp_relay.cpp
type cl_modbus_tcp_relay (line 23) | namespace cl_modbus_tcp_relay
FILE: smacc2_client_library/cl_modbus_tcp_relay/src/cl_modbus_tcp_relay/components/cp_modbus_connection.cpp
type cl_modbus_tcp_relay (line 23) | namespace cl_modbus_tcp_relay
function modbus_t (line 172) | modbus_t * CpModbusConnection::getContext() { return ctx_; }
FILE: smacc2_client_library/cl_modbus_tcp_relay/src/cl_modbus_tcp_relay/components/cp_modbus_relay.cpp
type cl_modbus_tcp_relay (line 23) | namespace cl_modbus_tcp_relay
FILE: smacc2_client_library/cl_moveit2z/include/cl_moveit2z/cl_moveit2z.hpp
type cl_moveit2z (line 34) | namespace cl_moveit2z
type EvMoveGroupMotionExecutionSucceded (line 37) | struct EvMoveGroupMotionExecutionSucceded
type EvMoveGroupMotionExecutionFailed (line 43) | struct EvMoveGroupMotionExecutionFailed
class ClMoveit2z (line 78) | class ClMoveit2z : public smacc2::ISmaccClient
method onInitialize (line 94) | inline void onInitialize() override
method postEventMotionExecutionSucceded (line 102) | inline void postEventMotionExecutionSucceded()
method postEventMotionExecutionFailed (line 108) | inline void postEventMotionExecutionFailed()
method onStateOrthogonalAllocation (line 115) | void onStateOrthogonalAllocation()
method onMotionExecutionSuccedded (line 131) | smacc2::SmaccSignalConnection onMotionExecutionSuccedded(TCallback c...
method onMotionExecutionFailed (line 137) | smacc2::SmaccSignalConnection onMotionExecutionFailed(TCallback call...
FILE: smacc2_client_library/cl_moveit2z/include/cl_moveit2z/client_behaviors/cb_attach_object.hpp
type cl_moveit2z (line 28) | namespace cl_moveit2z
class CbAttachObject (line 38) | class CbAttachObject : public smacc2::SmaccAsyncClientBehavior
method CbAttachObject (line 45) | inline CbAttachObject(std::string targetObjectName) : targetObjectNa...
method CbAttachObject (line 50) | inline CbAttachObject() {}
method onEntry (line 59) | inline void onEntry() override
method onExit (line 97) | inline void onExit() override {}
FILE: smacc2_client_library/cl_moveit2z/include/cl_moveit2z/client_behaviors/cb_circular_pivot_motion.hpp
type cl_moveit2z (line 30) | namespace cl_moveit2z
class CbCircularPivotMotion (line 34) | class CbCircularPivotMotion : public CbMoveEndEffectorTrajectory
method CbCircularPivotMotion (line 43) | CbCircularPivotMotion(std::optional<std::string> tipLink = std::null...
method CbCircularPivotMotion (line 48) | CbCircularPivotMotion(
method CbCircularPivotMotion (line 58) | CbCircularPivotMotion(
method generateTrajectory (line 69) | virtual void generateTrajectory() override
method createMarkers (line 176) | virtual void createMarkers() override
method computeCurrentEndEffectorPoseRelativeToPivot (line 227) | void computeCurrentEndEffectorPoseRelativeToPivot()
FILE: smacc2_client_library/cl_moveit2z/include/cl_moveit2z/client_behaviors/cb_detach_object.hpp
type cl_moveit2z (line 27) | namespace cl_moveit2z
class CbDetachObject (line 37) | class CbDetachObject : public smacc2::SmaccAsyncClientBehavior
method onEntry (line 46) | inline void onEntry() override
method onExit (line 88) | inline void onExit() override {}
FILE: smacc2_client_library/cl_moveit2z/include/cl_moveit2z/client_behaviors/cb_end_effector_rotate.hpp
type cl_moveit2z (line 31) | namespace cl_moveit2z
class CbEndEffectorRotate (line 34) | class CbEndEffectorRotate : public CbCircularPivotMotion
method CbEndEffectorRotate (line 37) | CbEndEffectorRotate(double deltaRadians, std::optional<std::string> ...
method onEntry (line 45) | virtual void onEntry() override
FILE: smacc2_client_library/cl_moveit2z/include/cl_moveit2z/client_behaviors/cb_move_cartesian_relative2.hpp
type cl_moveit2z (line 32) | namespace cl_moveit2z
class CbMoveCartesianRelative2 (line 34) | class CbMoveCartesianRelative2 : public CbMoveEndEffectorTrajectory
method CbMoveCartesianRelative2 (line 41) | CbMoveCartesianRelative2(std::string referenceFrame, std::string tip...
method CbMoveCartesianRelative2 (line 47) | CbMoveCartesianRelative2(
method generateTrajectory (line 57) | void generateTrajectory() override
FILE: smacc2_client_library/cl_moveit2z/include/cl_moveit2z/client_behaviors/cb_move_end_effector.hpp
type cl_moveit2z (line 34) | namespace cl_moveit2z
class CbMoveEndEffector (line 36) | class CbMoveEndEffector : public smacc2::SmaccAsyncClientBehavior
method CbMoveEndEffector (line 43) | CbMoveEndEffector() {}
method CbMoveEndEffector (line 45) | CbMoveEndEffector(geometry_msgs::msg::PoseStamped target_pose, std::...
method onEntry (line 51) | virtual void onEntry() override
method moveToAbsolutePose (line 75) | bool moveToAbsolutePose(
FILE: smacc2_client_library/cl_moveit2z/include/cl_moveit2z/client_behaviors/cb_move_end_effector_trajectory.hpp
type cl_moveit2z (line 38) | namespace cl_moveit2z
type EvJointDiscontinuity (line 41) | struct EvJointDiscontinuity : sc::event<EvJointDiscontinuity<AsyncCB, ...
type EvIncorrectInitialPosition (line 47) | struct EvIncorrectInitialPosition : sc::event<EvIncorrectInitialPositi...
type ComputeJointTrajectoryErrorCode (line 52) | enum class ComputeJointTrajectoryErrorCode
class CbMoveEndEffectorTrajectory (line 60) | class CbMoveEndEffectorTrajectory : public smacc2::SmaccAsyncClientBeh...
method CbMoveEndEffectorTrajectory (line 70) | CbMoveEndEffectorTrajectory(std::optional<std::string> tipLink = std...
method CbMoveEndEffectorTrajectory (line 74) | CbMoveEndEffectorTrajectory(
method onStateOrthogonalAllocation (line 82) | void onStateOrthogonalAllocation()
method onEntry (line 110) | virtual void onEntry() override
method onExit (line 201) | virtual void onExit() override {}
method ComputeJointTrajectoryErrorCode (line 204) | ComputeJointTrajectoryErrorCode computeJointSpaceTrajectory(
method executeJointSpaceTrajectory (line 458) | void executeJointSpaceTrajectory(
method generateTrajectory (line 528) | virtual void generateTrajectory()
method createMarkers (line 534) | virtual void createMarkers()
method getCurrentEndEffectorPose (line 586) | void getCurrentEndEffectorPose(
method initializeROS (line 638) | void initializeROS()
FILE: smacc2_client_library/cl_moveit2z/include/cl_moveit2z/client_behaviors/cb_move_joints.hpp
type cl_moveit2z (line 34) | namespace cl_moveit2z
class CbMoveJoints (line 36) | class CbMoveJoints : public smacc2::SmaccAsyncClientBehavior
method CbMoveJoints (line 43) | CbMoveJoints() {}
method CbMoveJoints (line 45) | CbMoveJoints(const std::map<std::string, double> & jointValueTarget)
method onEntry (line 50) | virtual void onEntry() override
method onExit (line 66) | virtual void onExit() override {}
method currentJointStatesToString (line 69) | static std::string currentJointStatesToString(
method moveJoints (line 92) | void moveJoints(moveit::planning_interface::MoveGroupInterface & mov...
FILE: smacc2_client_library/cl_moveit2z/include/cl_moveit2z/client_behaviors/cb_move_known_state.hpp
type cl_moveit2z (line 31) | namespace cl_moveit2z
class CbMoveKnownState (line 33) | class CbMoveKnownState : public CbMoveJoints
method CbMoveKnownState (line 36) | CbMoveKnownState(std::string pkg, std::string config_path) : pkg_(pk...
method onEntry (line 42) | void onEntry() override
method loadJointStatesFromFile (line 50) | std::map<std::string, double> loadJointStatesFromFile(std::string pk...
FILE: smacc2_client_library/cl_moveit2z/include/cl_moveit2z/client_behaviors/cb_undo_last_trajectory.hpp
type cl_moveit2z (line 26) | namespace cl_moveit2z
class CbUndoLastTrajectory (line 28) | class CbUndoLastTrajectory : public CbMoveEndEffectorTrajectory
method CbUndoLastTrajectory (line 31) | CbUndoLastTrajectory() {}
method CbUndoLastTrajectory (line 33) | CbUndoLastTrajectory(int backIndex) : backIndex_(backIndex) {}
method onEntry (line 37) | virtual void onEntry() override
method generateTrajectory (line 69) | virtual void generateTrajectory() {}
FILE: smacc2_client_library/cl_moveit2z/include/cl_moveit2z/components/cp_grasping_objects.hpp
type cl_moveit2z (line 28) | namespace cl_moveit2z
class CpGraspingComponent (line 30) | class CpGraspingComponent : public smacc2::ISmaccComponent
method getGraspingObject (line 41) | inline bool getGraspingObject(std::string name, moveit_msgs::msg::Co...
method createGraspableBox (line 54) | inline void createGraspableBox(
FILE: smacc2_client_library/cl_moveit2z/include/cl_moveit2z/components/cp_joint_space_trajectory_planner.hpp
type cl_moveit2z (line 38) | namespace cl_moveit2z
type JointTrajectoryErrorCode (line 43) | enum class JointTrajectoryErrorCode
type JointTrajectoryOptions (line 55) | struct JointTrajectoryOptions
type JointTrajectoryResult (line 69) | struct JointTrajectoryResult
method JointTrajectoryResult (line 77) | JointTrajectoryResult()
class CpJointSpaceTrajectoryPlanner (line 94) | class CpJointSpaceTrajectoryPlanner : public smacc2::ISmaccComponent
method CpJointSpaceTrajectoryPlanner (line 97) | CpJointSpaceTrajectoryPlanner() = default;
method onInitialize (line 103) | inline void onInitialize() override
method JointTrajectoryResult (line 120) | inline JointTrajectoryResult planFromWaypoints(
FILE: smacc2_client_library/cl_moveit2z/include/cl_moveit2z/components/cp_motion_planner.hpp
type cl_moveit2z (line 36) | namespace cl_moveit2z
type PlanningOptions (line 41) | struct PlanningOptions
type PlanningResult (line 54) | struct PlanningResult
method PlanningResult (line 61) | PlanningResult()
class CpMotionPlanner (line 79) | class CpMotionPlanner : public smacc2::ISmaccComponent
method CpMotionPlanner (line 82) | CpMotionPlanner() = default;
method onInitialize (line 88) | inline void onInitialize() override
method PlanningResult (line 102) | inline PlanningResult planToPose(
method PlanningResult (line 176) | inline PlanningResult planToJointTarget(
method PlanningResult (line 243) | inline PlanningResult planCartesianPath(
method getCurrentState (line 311) | inline moveit::core::RobotStatePtr getCurrentState(double waitTime =...
method applyPlanningOptions (line 341) | inline void applyPlanningOptions(
FILE: smacc2_client_library/cl_moveit2z/include/cl_moveit2z/components/cp_tf_listener.hpp
type cl_moveit2z (line 34) | namespace cl_moveit2z
class CpTfListener (line 45) | class CpTfListener : public smacc2::ISmaccComponent
method CpTfListener (line 48) | CpTfListener() = default;
method onInitialize (line 57) | inline void onInitialize() override
method lookupTransform (line 81) | inline std::optional<geometry_msgs::msg::TransformStamped> lookupTra...
method transformPose (line 115) | inline std::optional<geometry_msgs::msg::PoseStamped> transformPose(
method canTransform (line 151) | inline bool canTransform(
method getBuffer (line 175) | inline std::shared_ptr<tf2_ros::Buffer> getBuffer()
FILE: smacc2_client_library/cl_moveit2z/include/cl_moveit2z/components/cp_trajectory_executor.hpp
type cl_moveit2z (line 36) | namespace cl_moveit2z
type ExecutionOptions (line 41) | struct ExecutionOptions
type ExecutionResult (line 52) | struct ExecutionResult
method ExecutionResult (line 59) | ExecutionResult() : success(false), errorCode(), errorMessage(""), e...
class CpTrajectoryExecutor (line 76) | class CpTrajectoryExecutor : public smacc2::ISmaccComponent
method CpTrajectoryExecutor (line 79) | CpTrajectoryExecutor() = default;
method onInitialize (line 85) | inline void onInitialize() override
method ExecutionResult (line 114) | inline ExecutionResult execute(
method ExecutionResult (line 187) | inline ExecutionResult executePlan(
method cancel (line 199) | inline void cancel()
method CpTrajectoryHistory (line 226) | inline CpTrajectoryHistory * getTrajectoryHistory() { return traject...
method applyExecutionOptions (line 238) | inline void applyExecutionOptions(
method recordToHistory (line 259) | inline void recordToHistory(
FILE: smacc2_client_library/cl_moveit2z/include/cl_moveit2z/components/cp_trajectory_history.hpp
type cl_moveit2z (line 28) | namespace cl_moveit2z
type TrajectoryHistoryEntry (line 30) | struct TrajectoryHistoryEntry
class CpTrajectoryHistory (line 37) | class CpTrajectoryHistory : public smacc2::ISmaccComponent
method getLastTrajectory (line 40) | inline bool getLastTrajectory(int backIndex, moveit_msgs::msg::Robot...
method getLastTrajectory (line 67) | inline bool getLastTrajectory(moveit_msgs::msg::RobotTrajectory & tr...
method pushTrajectory (line 72) | inline void pushTrajectory(
FILE: smacc2_client_library/cl_moveit2z/include/cl_moveit2z/components/cp_trajectory_visualizer.hpp
type cl_moveit2z (line 34) | namespace cl_moveit2z
class CpTrajectoryVisualizer (line 44) | class CpTrajectoryVisualizer : public smacc2::ISmaccComponent, public ...
method CpTrajectoryVisualizer (line 52) | CpTrajectoryVisualizer(double publishRate = 10.0) : enabled_(false),...
method onInitialize (line 59) | inline void onInitialize() override
method update (line 72) | inline void update() override
method setTrajectory (line 99) | inline void setTrajectory(
method clearMarkers (line 176) | inline void clearMarkers()
method setColor (line 201) | inline void setColor(float r, float g, float b, float a = 1.0)
method setScale (line 212) | inline void setScale(double scale) { markerScale_ = scale; }
method setEnabled (line 217) | inline void setEnabled(bool enabled)
method isEnabled (line 226) | inline bool isEnabled() const { return enabled_; }
FILE: smacc2_client_library/cl_moveit2z/src/cl_moveit2z/cl_moveit2z.cpp
type cl_moveit2z (line 23) | namespace cl_moveit2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/cl_nav2z.hpp
type cl_nav2z (line 22) | namespace cl_nav2z
class ClNav2Z (line 27) | class ClNav2Z : public smacc2::ISmaccClient
method ClNav2Z (line 37) | ClNav2Z(std::string actionServerName = "/navigate_to_pose") : action...
method onComponentInitialization (line 45) | void onComponentInitialization()
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_abort_navigation.hpp
type cl_nav2z (line 29) | namespace cl_nav2z
class CbAbortNavigation (line 31) | class CbAbortNavigation : public smacc2::SmaccAsyncClientBehavior
method onStateOrthogonalAllocation (line 37) | void onStateOrthogonalAllocation()
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_absolute_rotate.hpp
type cl_nav2z (line 27) | namespace cl_nav2z
class CbAbsoluteRotate (line 29) | class CbAbsoluteRotate : public CbNav2ZClientBehaviorBase
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_active_stop.hpp
type cl_nav2z (line 26) | namespace cl_nav2z
type CbActiveStop (line 28) | struct CbActiveStop : public smacc2::SmaccAsyncClientBehavior
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_load_waypoints_file.hpp
type cl_nav2z (line 26) | namespace cl_nav2z
type CbLoadWaypointsFile (line 28) | struct CbLoadWaypointsFile : public smacc2::SmaccAsyncClientBehavior
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_nav2z_client_behavior_base.hpp
type cl_nav2z (line 28) | namespace cl_nav2z
class CbNav2ZClientBehaviorBase (line 31) | class CbNav2ZClientBehaviorBase : public smacc2::SmaccAsyncClientBehavior
method onStateOrthogonalAllocation (line 37) | void onStateOrthogonalAllocation()
method sendGoal (line 48) | void sendGoal(nav2_msgs::action::NavigateToPose::Goal & goal)
method cancelGoal (line 56) | void cancelGoal()
method onNavigationSucceeded (line 66) | smacc2::SmaccSignalConnection onNavigationSucceeded(
method onNavigationAborted (line 77) | smacc2::SmaccSignalConnection onNavigationAborted(
method onNavigationCancelled (line 88) | smacc2::SmaccSignalConnection onNavigationCancelled(
method onNavigationResult (line 113) | virtual void onNavigationResult(const components::CpNav2ActionInterf...
method onNavigationActionSuccess (line 114) | virtual void onNavigationActionSuccess(const components::CpNav2Actio...
method onNavigationActionAbort (line 117) | virtual void onNavigationActionAbort(const components::CpNav2ActionI...
type SpinningPlanner (line 120) | enum class SpinningPlanner
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_navigate_backwards.hpp
type cl_nav2z (line 29) | namespace cl_nav2z
class CbNavigateBackwards (line 32) | class CbNavigateBackwards : public CbNav2ZClientBehaviorBase
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_navigate_forward.hpp
type cl_nav2z (line 31) | namespace cl_nav2z
type CbNavigateForwardOptions (line 33) | struct CbNavigateForwardOptions
class CbNavigateForward (line 48) | class CbNavigateForward : public CbNav2ZClientBehaviorBase
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_navigate_global_position.hpp
type cl_nav2z (line 28) | namespace cl_nav2z
type CbNavigateGlobalPositionOptions (line 30) | struct CbNavigateGlobalPositionOptions
class CbNavigateGlobalPosition (line 41) | class CbNavigateGlobalPosition : public CbNav2ZClientBehaviorBase
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_navigate_named_waypoint.hpp
type cl_nav2z (line 27) | namespace cl_nav2z
class CbNavigateNamedWaypoint (line 29) | class CbNavigateNamedWaypoint : public CbNavigateNextWaypoint
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_navigate_next_waypoint.hpp
type cl_nav2z (line 27) | namespace cl_nav2z
class CbNavigateNextWaypoint (line 29) | class CbNavigateNextWaypoint : public CbNav2ZClientBehaviorBase
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_navigate_next_waypoint_free.hpp
type cl_nav2z (line 24) | namespace cl_nav2z
class CbNavigateNextWaypointFree (line 27) | class CbNavigateNextWaypointFree : public cl_nav2z::CbPositionControlF...
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_navigate_next_waypoint_until_reached.hpp
type cl_nav2z (line 25) | namespace cl_nav2z
type EvGoalWaypointReached (line 28) | struct EvGoalWaypointReached : sc::event<EvGoalWaypointReached<AsyncCB...
class CbNavigateNextWaypointUntilReached (line 32) | class CbNavigateNextWaypointUntilReached : public CbNavigateNextWaypoint
method onStateOrthogonalAllocation (line 42) | void onStateOrthogonalAllocation()
method onNavigationActionSuccess (line 54) | void onNavigationActionSuccess(
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_pause_slam.hpp
type cl_nav2z (line 26) | namespace cl_nav2z
class CbPauseSlam (line 28) | class CbPauseSlam : public smacc2::client_behaviors::CbServiceCall<sla...
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_position_control_free_space.hpp
type cl_nav2z (line 27) | namespace cl_nav2z
type CbPositionControlFreeSpace (line 29) | struct CbPositionControlFreeSpace : public smacc2::SmaccAsyncClientBeh...
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_pure_spinning.hpp
type cl_nav2z (line 26) | namespace cl_nav2z
type CbPureSpinning (line 28) | struct CbPureSpinning : public smacc2::SmaccAsyncClientBehavior
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_resume_slam.hpp
type cl_nav2z (line 26) | namespace cl_nav2z
class CbResumeSlam (line 28) | class CbResumeSlam : public smacc2::client_behaviors::CbServiceCall<sl...
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_retry_behavior.hpp
type cl_nav2z (line 26) | namespace cl_nav2z
class CbRetry (line 31) | class CbRetry : public TCbRelativeMotion
method CbRetry (line 34) | CbRetry() {}
method onEntry (line 35) | void onEntry() override
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_rotate.hpp
type cl_nav2z (line 26) | namespace cl_nav2z
class CbRotate (line 28) | class CbRotate : public CbNav2ZClientBehaviorBase
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_rotate_look_at.hpp
type cl_nav2z (line 28) | namespace cl_nav2z
class CbRotateLookAt (line 30) | class CbRotateLookAt : public CbAbsoluteRotate
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_save_slam_map.hpp
type cl_nav2z (line 29) | namespace cl_nav2z
type CbSaveSlamMap (line 35) | struct CbSaveSlamMap : public CbServiceCall<nav2_msgs::srv::SaveMap>
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_seek_waypoint.hpp
type cl_nav2z (line 27) | namespace cl_nav2z
class CbSeekWaypoint (line 29) | class CbSeekWaypoint : public smacc2::SmaccClientBehavior
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_spiral_motion.hpp
type cl_nav2z (line 26) | namespace cl_nav2z
type CbSpiralMotionOptions (line 32) | struct CbSpiralMotionOptions
type CbSpiralMotion (line 43) | struct CbSpiralMotion : public smacc2::SmaccAsyncClientBehavior
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_stop_navigation.hpp
type cl_nav2z (line 28) | namespace cl_nav2z
class CbStopNavigation (line 30) | class CbStopNavigation : public CbNavigateGlobalPosition
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_track_path_odometry.hpp
type cl_nav2z (line 26) | namespace cl_nav2z
type CbTrackPathOdometry (line 28) | struct CbTrackPathOdometry : public smacc2::SmaccAsyncClientBehavior
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_track_path_slam.hpp
type cl_nav2z (line 26) | namespace cl_nav2z
type CbTrackPathSLAM (line 28) | struct CbTrackPathSLAM : public smacc2::SmaccAsyncClientBehavior
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_undo_path_backwards.hpp
type cl_nav2z (line 27) | namespace cl_nav2z
type CbUndoPathBackwardsOptions (line 31) | struct CbUndoPathBackwardsOptions
class CbUndoPathBackwards (line 40) | class CbUndoPathBackwards : public CbNav2ZClientBehaviorBase
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_wait_nav2_nodes.hpp
type cl_nav2z (line 27) | namespace cl_nav2z
type Nav2Nodes (line 29) | enum class Nav2Nodes
class CbWaitNav2Nodes (line 43) | class CbWaitNav2Nodes : public smacc2::SmaccAsyncClientBehavior
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_wait_pose.hpp
type cl_nav2z (line 25) | namespace cl_nav2z
type WaitPoseStandardReferenceFrame (line 28) | enum class WaitPoseStandardReferenceFrame
class CbWaitPose (line 36) | class CbWaitPose : public smacc2::SmaccAsyncClientBehavior
method onStateOrthogonalAllocation (line 48) | void onStateOrthogonalAllocation()
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/client_behaviors/cb_wait_transform.hpp
type cl_nav2z (line 32) | namespace cl_nav2z
class CbWaitTransform (line 34) | class CbWaitTransform : public smacc2::SmaccAsyncClientBehavior
method onStateOrthogonalAllocation (line 42) | void onStateOrthogonalAllocation()
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/components/amcl/cp_amcl.hpp
type cl_nav2z (line 25) | namespace cl_nav2z
class CpAmcl (line 27) | class CpAmcl : public smacc2::ISmaccComponent
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/components/costmap_switch/cp_costmap_switch.hpp
type cl_nav2z (line 37) | namespace cl_nav2z
class CpCostmapProxy (line 39) | class CpCostmapProxy
method getNode (line 90) | inline rclcpp::Node::SharedPtr getNode() { return nh_; }
class CpCostmapSwitch (line 41) | class CpCostmapSwitch : public smacc2::ISmaccComponent
type StandardLayers (line 44) | enum class StandardLayers
class CpCostmapProxy (line 78) | class CpCostmapProxy
method getNode (line 90) | inline rclcpp::Node::SharedPtr getNode() { return nh_; }
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/components/goal_checker_switcher/cp_goal_checker_switcher.hpp
type cl_nav2z (line 28) | namespace cl_nav2z
class CpGoalCheckerSwitcher (line 31) | class CpGoalCheckerSwitcher : public smacc2::ISmaccComponent
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/components/nav2_action_interface/cp_nav2_action_interface.hpp
type cl_nav2z (line 26) | namespace cl_nav2z
type components (line 28) | namespace components
class CpNav2ActionInterface (line 32) | class CpNav2ActionInterface : public smacc2::ISmaccComponent
method CpNav2ActionInterface (line 56) | CpNav2ActionInterface() = default;
method sendNavigationGoal (line 60) | std::shared_future<typename GoalHandle::SharedPtr> sendNavigationG...
method sendGoal (line 86) | std::shared_future<typename GoalHandle::SharedPtr> sendGoal(Goal &...
method cancelNavigation (line 97) | bool cancelNavigation()
method isNavigationServerReady (line 109) | bool isNavigationServerReady() const { return actionClient_ && act...
method waitForNavigationServer (line 111) | void waitForNavigationServer()
method onComponentInitialization (line 121) | void onComponentInitialization()
method onInitialize (line 155) | void onInitialize() override
method ActionClient (line 183) | ActionClient * getActionClient() const { return actionClient_; }
method onNavigationSucceeded (line 187) | smacc2::SmaccSignalConnection onNavigationSucceeded(
method onNavigationAborted (line 195) | smacc2::SmaccSignalConnection onNavigationAborted(
method onNavigationCancelled (line 202) | smacc2::SmaccSignalConnection onNavigationCancelled(
method onNavigationFeedback (line 210) | smacc2::SmaccSignalConnection onNavigationFeedback(
method onNavigationSuccessCallback (line 220) | void onNavigationSuccessCallback(const WrappedResult & result)
method onNavigationAbortedCallback (line 230) | void onNavigationAbortedCallback(const WrappedResult & result)
method onNavigationCancelledCallback (line 240) | void onNavigationCancelledCallback(const WrappedResult & result)
method onNavigationFeedbackCallback (line 250) | void onNavigationFeedbackCallback(const Feedback & feedback)
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/components/odom_tracker/cp_odom_tracker.hpp
type cl_nav2z (line 41) | namespace cl_nav2z
type odom_tracker (line 43) | namespace odom_tracker
type WorkingMode (line 45) | enum class WorkingMode : uint8_t
type OdomTrackerStrategy (line 52) | enum class OdomTrackerStrategy
class CpOdomTracker (line 60) | class CpOdomTracker : public smacc2::ISmaccComponent
method setOdomFrame (line 119) | inline void setOdomFrame(std::string odomFrame)
type PathInfo (line 180) | struct PathInfo
function p2pDistance (line 208) | inline double p2pDistance(
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/components/planner_switcher/cp_planner_switcher.hpp
type cl_nav2z (line 27) | namespace cl_nav2z
class CpPlannerSwitcher (line 31) | class CpPlannerSwitcher : public smacc2::ISmaccComponent
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/components/pose/cp_pose.hpp
type cl_nav2z (line 35) | namespace cl_nav2z
type StandardReferenceFrames (line 37) | enum class StandardReferenceFrames
class CpPose (line 43) | class CpPose : public smacc2::ISmaccComponent, public smacc2::ISmaccUp...
method toPoseMsg (line 57) | inline geometry_msgs::msg::Pose toPoseMsg()
method toPoseStampedMsg (line 63) | inline geometry_msgs::msg::PoseStamped toPoseStampedMsg()
method setReferenceFrame (line 77) | inline void setReferenceFrame(std::string referenceFrame) { referenc...
method freezeReferenceFrame (line 86) | void freezeReferenceFrame()
method unfreezeReferenceFrame (line 91) | void unfreezeReferenceFrame() { frozenReferenceFrameTime = std::null...
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/components/slam_toolbox/cp_slam_toolbox.hpp
type cl_nav2z (line 27) | namespace cl_nav2z
class CpSlamToolbox (line 31) | class CpSlamToolbox : public smacc2::ISmaccComponent
type SlamToolboxState (line 37) | enum class SlamToolboxState
method SlamToolboxState (line 43) | inline SlamToolboxState getState() { return state_; }
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/components/waypoints_navigator/cp_waypoints_event_dispatcher.hpp
type cl_nav2z (line 25) | namespace cl_nav2z
type EvWaypoint0 (line 33) | struct EvWaypoint0 : sc::event<EvWaypoint0<TSource, TOrthogonal>>
type EvWaypoint1 (line 39) | struct EvWaypoint1 : sc::event<EvWaypoint1<TSource, TOrthogonal>>
type EvWaypoint2 (line 45) | struct EvWaypoint2 : sc::event<EvWaypoint2<TSource, TOrthogonal>>
type EvWaypoint3 (line 51) | struct EvWaypoint3 : sc::event<EvWaypoint3<TSource, TOrthogonal>>
type EvWaypoint4 (line 57) | struct EvWaypoint4 : sc::event<EvWaypoint4<TSource, TOrthogonal>>
type EvWaypoint5 (line 63) | struct EvWaypoint5 : sc::event<EvWaypoint5<TSource, TOrthogonal>>
type EvWaypoint6 (line 69) | struct EvWaypoint6 : sc::event<EvWaypoint6<TSource, TOrthogonal>>
type EvWaypoint7 (line 75) | struct EvWaypoint7 : sc::event<EvWaypoint7<TSource, TOrthogonal>>
type EvWaypoint8 (line 81) | struct EvWaypoint8 : sc::event<EvWaypoint8<TSource, TOrthogonal>>
type EvWaypoint9 (line 87) | struct EvWaypoint9 : sc::event<EvWaypoint9<TSource, TOrthogonal>>
type EvWaypoint10 (line 93) | struct EvWaypoint10 : sc::event<EvWaypoint10<TSource, TOrthogonal>>
type EvWaypoint11 (line 99) | struct EvWaypoint11 : sc::event<EvWaypoint11<TSource, TOrthogonal>>
type EvWaypoint12 (line 105) | struct EvWaypoint12 : sc::event<EvWaypoint12<TSource, TOrthogonal>>
type EvWaypoint13 (line 111) | struct EvWaypoint13 : sc::event<EvWaypoint13<TSource, TOrthogonal>>
type EvWaypoint14 (line 117) | struct EvWaypoint14 : sc::event<EvWaypoint14<TSource, TOrthogonal>>
type EvWaypoint15 (line 123) | struct EvWaypoint15 : sc::event<EvWaypoint15<TSource, TOrthogonal>>
type EvWaypoint16 (line 129) | struct EvWaypoint16 : sc::event<EvWaypoint16<TSource, TOrthogonal>>
type EvWaypoint17 (line 135) | struct EvWaypoint17 : sc::event<EvWaypoint17<TSource, TOrthogonal>>
type EvWaypoint18 (line 141) | struct EvWaypoint18 : sc::event<EvWaypoint18<TSource, TOrthogonal>>
type EvWaypoint19 (line 147) | struct EvWaypoint19 : sc::event<EvWaypoint19<TSource, TOrthogonal>>
type EvWaypoint20 (line 153) | struct EvWaypoint20 : sc::event<EvWaypoint20<TSource, TOrthogonal>>
type EvWaypoint21 (line 159) | struct EvWaypoint21 : sc::event<EvWaypoint21<TSource, TOrthogonal>>
type EvWaypoint22 (line 165) | struct EvWaypoint22 : sc::event<EvWaypoint22<TSource, TOrthogonal>>
type EvWaypoint23 (line 171) | struct EvWaypoint23 : sc::event<EvWaypoint23<TSource, TOrthogonal>>
type EvWaypoint24 (line 177) | struct EvWaypoint24 : sc::event<EvWaypoint24<TSource, TOrthogonal>>
type EvWaypoint25 (line 183) | struct EvWaypoint25 : sc::event<EvWaypoint25<TSource, TOrthogonal>>
type EvWaypoint26 (line 189) | struct EvWaypoint26 : sc::event<EvWaypoint26<TSource, TOrthogonal>>
type EvWaypoint27 (line 195) | struct EvWaypoint27 : sc::event<EvWaypoint27<TSource, TOrthogonal>>
type EvWaypoint28 (line 201) | struct EvWaypoint28 : sc::event<EvWaypoint28<TSource, TOrthogonal>>
type EvWaypoint29 (line 207) | struct EvWaypoint29 : sc::event<EvWaypoint29<TSource, TOrthogonal>>
type EvWaypoint30 (line 213) | struct EvWaypoint30 : sc::event<EvWaypoint30<TSource, TOrthogonal>>
type EvWaypoint31 (line 219) | struct EvWaypoint31 : sc::event<EvWaypoint31<TSource, TOrthogonal>>
type EvWaypoint32 (line 225) | struct EvWaypoint32 : sc::event<EvWaypoint32<TSource, TOrthogonal>>
type EvWaypoint33 (line 231) | struct EvWaypoint33 : sc::event<EvWaypoint33<TSource, TOrthogonal>>
type EvWaypoint34 (line 237) | struct EvWaypoint34 : sc::event<EvWaypoint34<TSource, TOrthogonal>>
type EvWaypoint35 (line 243) | struct EvWaypoint35 : sc::event<EvWaypoint35<TSource, TOrthogonal>>
type EvWaypoint36 (line 249) | struct EvWaypoint36 : sc::event<EvWaypoint36<TSource, TOrthogonal>>
type EvWaypoint37 (line 255) | struct EvWaypoint37 : sc::event<EvWaypoint37<TSource, TOrthogonal>>
type EvWaypoint38 (line 261) | struct EvWaypoint38 : sc::event<EvWaypoint38<TSource, TOrthogonal>>
type EvWaypoint39 (line 267) | struct EvWaypoint39 : sc::event<EvWaypoint39<TSource, TOrthogonal>>
type EvWaypoint40 (line 273) | struct EvWaypoint40 : sc::event<EvWaypoint40<TSource, TOrthogonal>>
type EvWaypoint41 (line 279) | struct EvWaypoint41 : sc::event<EvWaypoint41<TSource, TOrthogonal>>
type EvWaypoint42 (line 285) | struct EvWaypoint42 : sc::event<EvWaypoint42<TSource, TOrthogonal>>
type EvWaypoint43 (line 291) | struct EvWaypoint43 : sc::event<EvWaypoint43<TSource, TOrthogonal>>
type EvWaypoint44 (line 297) | struct EvWaypoint44 : sc::event<EvWaypoint44<TSource, TOrthogonal>>
type EvWaypoint45 (line 303) | struct EvWaypoint45 : sc::event<EvWaypoint45<TSource, TOrthogonal>>
type EvWaypoint46 (line 309) | struct EvWaypoint46 : sc::event<EvWaypoint46<TSource, TOrthogonal>>
type EvWaypoint47 (line 315) | struct EvWaypoint47 : sc::event<EvWaypoint47<TSource, TOrthogonal>>
type EvWaypoint48 (line 321) | struct EvWaypoint48 : sc::event<EvWaypoint48<TSource, TOrthogonal>>
type EvWaypoint49 (line 327) | struct EvWaypoint49 : sc::event<EvWaypoint49<TSource, TOrthogonal>>
type EvWaypoint50 (line 333) | struct EvWaypoint50 : sc::event<EvWaypoint50<TSource, TOrthogonal>>
type EvWaypoint51 (line 339) | struct EvWaypoint51 : sc::event<EvWaypoint51<TSource, TOrthogonal>>
type EvWaypoint52 (line 345) | struct EvWaypoint52 : sc::event<EvWaypoint52<TSource, TOrthogonal>>
type EvWaypoint53 (line 351) | struct EvWaypoint53 : sc::event<EvWaypoint53<TSource, TOrthogonal>>
type EvWaypoint54 (line 357) | struct EvWaypoint54 : sc::event<EvWaypoint54<TSource, TOrthogonal>>
type EvWaypoint55 (line 363) | struct EvWaypoint55 : sc::event<EvWaypoint55<TSource, TOrthogonal>>
type EvWaypoint56 (line 369) | struct EvWaypoint56 : sc::event<EvWaypoint56<TSource, TOrthogonal>>
type EvWaypoint57 (line 375) | struct EvWaypoint57 : sc::event<EvWaypoint57<TSource, TOrthogonal>>
type EvWaypoint58 (line 381) | struct EvWaypoint58 : sc::event<EvWaypoint58<TSource, TOrthogonal>>
type EvWaypoint59 (line 387) | struct EvWaypoint59 : sc::event<EvWaypoint59<TSource, TOrthogonal>>
type EvWaypoint60 (line 393) | struct EvWaypoint60 : sc::event<EvWaypoint60<TSource, TOrthogonal>>
type EvWaypoint61 (line 399) | struct EvWaypoint61 : sc::event<EvWaypoint61<TSource, TOrthogonal>>
type EvWaypoint62 (line 405) | struct EvWaypoint62 : sc::event<EvWaypoint62<TSource, TOrthogonal>>
type EvWaypoint63 (line 411) | struct EvWaypoint63 : sc::event<EvWaypoint63<TSource, TOrthogonal>>
type EvWaypoint64 (line 417) | struct EvWaypoint64 : sc::event<EvWaypoint64<TSource, TOrthogonal>>
type EvWaypoint65 (line 423) | struct EvWaypoint65 : sc::event<EvWaypoint65<TSource, TOrthogonal>>
type EvWaypoint66 (line 429) | struct EvWaypoint66 : sc::event<EvWaypoint66<TSource, TOrthogonal>>
type EvWaypoint67 (line 435) | struct EvWaypoint67 : sc::event<EvWaypoint67<TSource, TOrthogonal>>
type EvWaypoint68 (line 441) | struct EvWaypoint68 : sc::event<EvWaypoint68<TSource, TOrthogonal>>
type EvWaypoint69 (line 447) | struct EvWaypoint69 : sc::event<EvWaypoint69<TSource, TOrthogonal>>
type EvWaypoint70 (line 453) | struct EvWaypoint70 : sc::event<EvWaypoint70<TSource, TOrthogonal>>
type EvWaypoint71 (line 459) | struct EvWaypoint71 : sc::event<EvWaypoint71<TSource, TOrthogonal>>
type EvWaypoint72 (line 465) | struct EvWaypoint72 : sc::event<EvWaypoint72<TSource, TOrthogonal>>
type EvWaypoint73 (line 471) | struct EvWaypoint73 : sc::event<EvWaypoint73<TSource, TOrthogonal>>
type EvWaypoint74 (line 477) | struct EvWaypoint74 : sc::event<EvWaypoint74<TSource, TOrthogonal>>
type EvWaypoint75 (line 483) | struct EvWaypoint75 : sc::event<EvWaypoint75<TSource, TOrthogonal>>
type EvWaypoint76 (line 489) | struct EvWaypoint76 : sc::event<EvWaypoint76<TSource, TOrthogonal>>
type EvWaypoint77 (line 495) | struct EvWaypoint77 : sc::event<EvWaypoint77<TSource, TOrthogonal>>
type EvWaypoint78 (line 501) | struct EvWaypoint78 : sc::event<EvWaypoint78<TSource, TOrthogonal>>
type EvWaypoint79 (line 507) | struct EvWaypoint79 : sc::event<EvWaypoint79<TSource, TOrthogonal>>
type EvWaypoint80 (line 513) | struct EvWaypoint80 : sc::event<EvWaypoint80<TSource, TOrthogonal>>
type EvWaypoint81 (line 519) | struct EvWaypoint81 : sc::event<EvWaypoint81<TSource, TOrthogonal>>
type EvWaypoint82 (line 525) | struct EvWaypoint82 : sc::event<EvWaypoint82<TSource, TOrthogonal>>
type EvWaypoint83 (line 531) | struct EvWaypoint83 : sc::event<EvWaypoint83<TSource, TOrthogonal>>
type EvWaypoint84 (line 537) | struct EvWaypoint84 : sc::event<EvWaypoint84<TSource, TOrthogonal>>
type EvWaypoint85 (line 543) | struct EvWaypoint85 : sc::event<EvWaypoint85<TSource, TOrthogonal>>
type EvWaypoint86 (line 549) | struct EvWaypoint86 : sc::event<EvWaypoint86<TSource, TOrthogonal>>
type EvWaypoint87 (line 555) | struct EvWaypoint87 : sc::event<EvWaypoint87<TSource, TOrthogonal>>
type EvWaypoint88 (line 561) | struct EvWaypoint88 : sc::event<EvWaypoint88<TSource, TOrthogonal>>
type EvWaypoint89 (line 567) | struct EvWaypoint89 : sc::event<EvWaypoint89<TSource, TOrthogonal>>
type EvWaypoint90 (line 573) | struct EvWaypoint90 : sc::event<EvWaypoint90<TSource, TOrthogonal>>
type EvWaypoint91 (line 579) | struct EvWaypoint91 : sc::event<EvWaypoint91<TSource, TOrthogonal>>
type EvWaypoint92 (line 585) | struct EvWaypoint92 : sc::event<EvWaypoint92<TSource, TOrthogonal>>
type EvWaypoint93 (line 591) | struct EvWaypoint93 : sc::event<EvWaypoint93<TSource, TOrthogonal>>
type EvWaypoint94 (line 597) | struct EvWaypoint94 : sc::event<EvWaypoint94<TSource, TOrthogonal>>
type EvWaypoint95 (line 603) | struct EvWaypoint95 : sc::event<EvWaypoint95<TSource, TOrthogonal>>
type EvWaypoint96 (line 609) | struct EvWaypoint96 : sc::event<EvWaypoint96<TSource, TOrthogonal>>
type EvWaypoint97 (line 615) | struct EvWaypoint97 : sc::event<EvWaypoint97<TSource, TOrthogonal>>
type EvWaypoint98 (line 621) | struct EvWaypoint98 : sc::event<EvWaypoint98<TSource, TOrthogonal>>
type EvWaypoint99 (line 627) | struct EvWaypoint99 : sc::event<EvWaypoint99<TSource, TOrthogonal>>
type EvWaypoint100 (line 633) | struct EvWaypoint100 : sc::event<EvWaypoint100<TSource, TOrthogonal>>
type EvWaypoint101 (line 639) | struct EvWaypoint101 : sc::event<EvWaypoint101<TSource, TOrthogonal>>
type EvWaypoint102 (line 645) | struct EvWaypoint102 : sc::event<EvWaypoint102<TSource, TOrthogonal>>
type EvWaypoint103 (line 651) | struct EvWaypoint103 : sc::event<EvWaypoint103<TSource, TOrthogonal>>
type EvWaypoint104 (line 657) | struct EvWaypoint104 : sc::event<EvWaypoint104<TSource, TOrthogonal>>
type EvWaypoint105 (line 663) | struct EvWaypoint105 : sc::event<EvWaypoint105<TSource, TOrthogonal>>
type EvWaypoint106 (line 669) | struct EvWaypoint106 : sc::event<EvWaypoint106<TSource, TOrthogonal>>
type EvWaypoint107 (line 675) | struct EvWaypoint107 : sc::event<EvWaypoint107<TSource, TOrthogonal>>
type EvWaypoint108 (line 681) | struct EvWaypoint108 : sc::event<EvWaypoint108<TSource, TOrthogonal>>
type EvWaypoint109 (line 687) | struct EvWaypoint109 : sc::event<EvWaypoint109<TSource, TOrthogonal>>
type EvWaypoint110 (line 693) | struct EvWaypoint110 : sc::event<EvWaypoint110<TSource, TOrthogonal>>
type EvWaypoint111 (line 699) | struct EvWaypoint111 : sc::event<EvWaypoint111<TSource, TOrthogonal>>
type EvWaypoint112 (line 705) | struct EvWaypoint112 : sc::event<EvWaypoint112<TSource, TOrthogonal>>
type EvWaypoint113 (line 711) | struct EvWaypoint113 : sc::event<EvWaypoint113<TSource, TOrthogonal>>
type EvWaypoint114 (line 717) | struct EvWaypoint114 : sc::event<EvWaypoint114<TSource, TOrthogonal>>
type EvWaypoint115 (line 723) | struct EvWaypoint115 : sc::event<EvWaypoint115<TSource, TOrthogonal>>
type EvWaypoint116 (line 729) | struct EvWaypoint116 : sc::event<EvWaypoint116<TSource, TOrthogonal>>
type EvWaypoint117 (line 735) | struct EvWaypoint117 : sc::event<EvWaypoint117<TSource, TOrthogonal>>
type EvWaypoint118 (line 741) | struct EvWaypoint118 : sc::event<EvWaypoint118<TSource, TOrthogonal>>
type EvWaypoint119 (line 747) | struct EvWaypoint119 : sc::event<EvWaypoint119<TSource, TOrthogonal>>
type EvWaypoint120 (line 753) | struct EvWaypoint120 : sc::event<EvWaypoint120<TSource, TOrthogonal>>
type EvWaypoint121 (line 759) | struct EvWaypoint121 : sc::event<EvWaypoint121<TSource, TOrthogonal>>
type EvWaypoint122 (line 765) | struct EvWaypoint122 : sc::event<EvWaypoint122<TSource, TOrthogonal>>
type EvWaypoint123 (line 771) | struct EvWaypoint123 : sc::event<EvWaypoint123<TSource, TOrthogonal>>
type EvWaypoint124 (line 777) | struct EvWaypoint124 : sc::event<EvWaypoint124<TSource, TOrthogonal>>
type EvWaypoint125 (line 783) | struct EvWaypoint125 : sc::event<EvWaypoint125<TSource, TOrthogonal>>
type EvWaypoint126 (line 789) | struct EvWaypoint126 : sc::event<EvWaypoint126<TSource, TOrthogonal>>
type EvWaypoint127 (line 795) | struct EvWaypoint127 : sc::event<EvWaypoint127<TSource, TOrthogonal>>
type EvWaypoint128 (line 801) | struct EvWaypoint128 : sc::event<EvWaypoint128<TSource, TOrthogonal>>
type EvWaypoint129 (line 807) | struct EvWaypoint129 : sc::event<EvWaypoint129<TSource, TOrthogonal>>
type EvWaypoint130 (line 813) | struct EvWaypoint130 : sc::event<EvWaypoint130<TSource, TOrthogonal>>
type EvWaypoint131 (line 819) | struct EvWaypoint131 : sc::event<EvWaypoint131<TSource, TOrthogonal>>
type EvWaypoint132 (line 825) | struct EvWaypoint132 : sc::event<EvWaypoint132<TSource, TOrthogonal>>
type EvWaypoint133 (line 831) | struct EvWaypoint133 : sc::event<EvWaypoint133<TSource, TOrthogonal>>
type EvWaypoint134 (line 837) | struct EvWaypoint134 : sc::event<EvWaypoint134<TSource, TOrthogonal>>
type EvWaypoint135 (line 843) | struct EvWaypoint135 : sc::event<EvWaypoint135<TSource, TOrthogonal>>
type EvWaypoint136 (line 849) | struct EvWaypoint136 : sc::event<EvWaypoint136<TSource, TOrthogonal>>
type EvWaypoint137 (line 855) | struct EvWaypoint137 : sc::event<EvWaypoint137<TSource, TOrthogonal>>
type EvWaypoint138 (line 861) | struct EvWaypoint138 : sc::event<EvWaypoint138<TSource, TOrthogonal>>
type EvWaypoint139 (line 867) | struct EvWaypoint139 : sc::event<EvWaypoint139<TSource, TOrthogonal>>
type EvWaypoint140 (line 873) | struct EvWaypoint140 : sc::event<EvWaypoint140<TSource, TOrthogonal>>
type EvWaypoint141 (line 879) | struct EvWaypoint141 : sc::event<EvWaypoint141<TSource, TOrthogonal>>
type EvWaypoint142 (line 885) | struct EvWaypoint142 : sc::event<EvWaypoint142<TSource, TOrthogonal>>
type EvWaypoint143 (line 891) | struct EvWaypoint143 : sc::event<EvWaypoint143<TSource, TOrthogonal>>
type EvWaypoint144 (line 897) | struct EvWaypoint144 : sc::event<EvWaypoint144<TSource, TOrthogonal>>
type EvWaypoint145 (line 903) | struct EvWaypoint145 : sc::event<EvWaypoint145<TSource, TOrthogonal>>
type EvWaypoint146 (line 909) | struct EvWaypoint146 : sc::event<EvWaypoint146<TSource, TOrthogonal>>
type EvWaypoint147 (line 915) | struct EvWaypoint147 : sc::event<EvWaypoint147<TSource, TOrthogonal>>
type EvWaypoint148 (line 921) | struct EvWaypoint148 : sc::event<EvWaypoint148<TSource, TOrthogonal>>
type EvWaypoint149 (line 927) | struct EvWaypoint149 : sc::event<EvWaypoint149<TSource, TOrthogonal>>
type EvWaypoint150 (line 933) | struct EvWaypoint150 : sc::event<EvWaypoint150<TSource, TOrthogonal>>
type EvWaypoint151 (line 939) | struct EvWaypoint151 : sc::event<EvWaypoint151<TSource, TOrthogonal>>
type EvWaypoint152 (line 945) | struct EvWaypoint152 : sc::event<EvWaypoint152<TSource, TOrthogonal>>
type EvWaypoint153 (line 951) | struct EvWaypoint153 : sc::event<EvWaypoint153<TSource, TOrthogonal>>
type EvWaypoint154 (line 957) | struct EvWaypoint154 : sc::event<EvWaypoint154<TSource, TOrthogonal>>
type EvWaypoint155 (line 963) | struct EvWaypoint155 : sc::event<EvWaypoint155<TSource, TOrthogonal>>
type EvWaypoint156 (line 969) | struct EvWaypoint156 : sc::event<EvWaypoint156<TSource, TOrthogonal>>
type EvWaypoint157 (line 975) | struct EvWaypoint157 : sc::event<EvWaypoint157<TSource, TOrthogonal>>
type EvWaypoint158 (line 981) | struct EvWaypoint158 : sc::event<EvWaypoint158<TSource, TOrthogonal>>
type EvWaypoint159 (line 987) | struct EvWaypoint159 : sc::event<EvWaypoint159<TSource, TOrthogonal>>
type EvWaypoint160 (line 993) | struct EvWaypoint160 : sc::event<EvWaypoint160<TSource, TOrthogonal>>
type EvWaypoint161 (line 999) | struct EvWaypoint161 : sc::event<EvWaypoint161<TSource, TOrthogonal>>
type EvWaypoint162 (line 1005) | struct EvWaypoint162 : sc::event<EvWaypoint162<TSource, TOrthogonal>>
type EvWaypoint163 (line 1011) | struct EvWaypoint163 : sc::event<EvWaypoint163<TSource, TOrthogonal>>
type EvWaypoint164 (line 1017) | struct EvWaypoint164 : sc::event<EvWaypoint164<TSource, TOrthogonal>>
type EvWaypoint165 (line 1023) | struct EvWaypoint165 : sc::event<EvWaypoint165<TSource, TOrthogonal>>
type EvWaypoint166 (line 1029) | struct EvWaypoint166 : sc::event<EvWaypoint166<TSource, TOrthogonal>>
type EvWaypoint167 (line 1035) | struct EvWaypoint167 : sc::event<EvWaypoint167<TSource, TOrthogonal>>
type EvWaypoint168 (line 1041) | struct EvWaypoint168 : sc::event<EvWaypoint168<TSource, TOrthogonal>>
type EvWaypoint169 (line 1047) | struct EvWaypoint169 : sc::event<EvWaypoint169<TSource, TOrthogonal>>
type EvWaypoint170 (line 1053) | struct EvWaypoint170 : sc::event<EvWaypoint170<TSource, TOrthogonal>>
type EvWaypoint171 (line 1059) | struct EvWaypoint171 : sc::event<EvWaypoint171<TSource, TOrthogonal>>
type EvWaypoint172 (line 1065) | struct EvWaypoint172 : sc::event<EvWaypoint172<TSource, TOrthogonal>>
type EvWaypoint173 (line 1071) | struct EvWaypoint173 : sc::event<EvWaypoint173<TSource, TOrthogonal>>
type EvWaypoint174 (line 1077) | struct EvWaypoint174 : sc::event<EvWaypoint174<TSource, TOrthogonal>>
type EvWaypoint175 (line 1083) | struct EvWaypoint175 : sc::event<EvWaypoint175<TSource, TOrthogonal>>
type EvWaypoint176 (line 1089) | struct EvWaypoint176 : sc::event<EvWaypoint176<TSource, TOrthogonal>>
type EvWaypoint177 (line 1095) | struct EvWaypoint177 : sc::event<EvWaypoint177<TSource, TOrthogonal>>
type EvWaypoint178 (line 1101) | struct EvWaypoint178 : sc::event<EvWaypoint178<TSource, TOrthogonal>>
type EvWaypoint179 (line 1107) | struct EvWaypoint179 : sc::event<EvWaypoint179<TSource, TOrthogonal>>
type EvWaypoint180 (line 1113) | struct EvWaypoint180 : sc::event<EvWaypoint180<TSource, TOrthogonal>>
type EvWaypoint181 (line 1119) | struct EvWaypoint181 : sc::event<EvWaypoint181<TSource, TOrthogonal>>
type EvWaypoint182 (line 1125) | struct EvWaypoint182 : sc::event<EvWaypoint182<TSource, TOrthogonal>>
type EvWaypoint183 (line 1131) | struct EvWaypoint183 : sc::event<EvWaypoint183<TSource, TOrthogonal>>
type EvWaypoint184 (line 1137) | struct EvWaypoint184 : sc::event<EvWaypoint184<TSource, TOrthogonal>>
type EvWaypoint185 (line 1143) | struct EvWaypoint185 : sc::event<EvWaypoint185<TSource, TOrthogonal>>
type EvWaypoint186 (line 1149) | struct EvWaypoint186 : sc::event<EvWaypoint186<TSource, TOrthogonal>>
type EvWaypoint187 (line 1155) | struct EvWaypoint187 : sc::event<EvWaypoint187<TSource, TOrthogonal>>
type EvWaypoint188 (line 1161) | struct EvWaypoint188 : sc::event<EvWaypoint188<TSource, TOrthogonal>>
type EvWaypoint189 (line 1167) | struct EvWaypoint189 : sc::event<EvWaypoint189<TSource, TOrthogonal>>
type EvWaypoint190 (line 1173) | struct EvWaypoint190 : sc::event<EvWaypoint190<TSource, TOrthogonal>>
type EvWaypoint191 (line 1179) | struct EvWaypoint191 : sc::event<EvWaypoint191<TSource, TOrthogonal>>
type EvWaypoint192 (line 1185) | struct EvWaypoint192 : sc::event<EvWaypoint192<TSource, TOrthogonal>>
type EvWaypoint193 (line 1191) | struct EvWaypoint193 : sc::event<EvWaypoint193<TSource, TOrthogonal>>
type EvWaypoint194 (line 1197) | struct EvWaypoint194 : sc::event<EvWaypoint194<TSource, TOrthogonal>>
type EvWaypoint195 (line 1203) | struct EvWaypoint195 : sc::event<EvWaypoint195<TSource, TOrthogonal>>
type EvWaypoint196 (line 1209) | struct EvWaypoint196 : sc::event<EvWaypoint196<TSource, TOrthogonal>>
type EvWaypoint197 (line 1215) | struct EvWaypoint197 : sc::event<EvWaypoint197<TSource, TOrthogonal>>
type EvWaypoint198 (line 1221) | struct EvWaypoint198 : sc::event<EvWaypoint198<TSource, TOrthogonal>>
type EvWaypoint199 (line 1227) | struct EvWaypoint199 : sc::event<EvWaypoint199<TSource, TOrthogonal>>
type EvWaypoint200 (line 1233) | struct EvWaypoint200 : sc::event<EvWaypoint200<TSource, TOrthogonal>>
type EvWaypoint201 (line 1239) | struct EvWaypoint201 : sc::event<EvWaypoint201<TSource, TOrthogonal>>
type EvWaypoint202 (line 1245) | struct EvWaypoint202 : sc::event<EvWaypoint202<TSource, TOrthogonal>>
type EvWaypoint203 (line 1251) | struct EvWaypoint203 : sc::event<EvWaypoint203<TSource, TOrthogonal>>
type EvWaypoint204 (line 1257) | struct EvWaypoint204 : sc::event<EvWaypoint204<TSource, TOrthogonal>>
type EvWaypoint205 (line 1263) | struct EvWaypoint205 : sc::event<EvWaypoint205<TSource, TOrthogonal>>
type EvWaypoint206 (line 1269) | struct EvWaypoint206 : sc::event<EvWaypoint206<TSource, TOrthogonal>>
type EvWaypoint207 (line 1275) | struct EvWaypoint207 : sc::event<EvWaypoint207<TSource, TOrthogonal>>
type EvWaypoint208 (line 1281) | struct EvWaypoint208 : sc::event<EvWaypoint208<TSource, TOrthogonal>>
type EvWaypoint209 (line 1287) | struct EvWaypoint209 : sc::event<EvWaypoint209<TSource, TOrthogonal>>
type EvWaypoint210 (line 1293) | struct EvWaypoint210 : sc::event<EvWaypoint210<TSource, TOrthogonal>>
type EvWaypoint211 (line 1299) | struct EvWaypoint211 : sc::event<EvWaypoint211<TSource, TOrthogonal>>
type EvWaypoint212 (line 1305) | struct EvWaypoint212 : sc::event<EvWaypoint212<TSource, TOrthogonal>>
type EvWaypoint213 (line 1311) | struct EvWaypoint213 : sc::event<EvWaypoint213<TSource, TOrthogonal>>
type EvWaypoint214 (line 1317) | struct EvWaypoint214 : sc::event<EvWaypoint214<TSource, TOrthogonal>>
type EvWaypoint215 (line 1323) | struct EvWaypoint215 : sc::event<EvWaypoint215<TSource, TOrthogonal>>
type EvWaypoint216 (line 1329) | struct EvWaypoint216 : sc::event<EvWaypoint216<TSource, TOrthogonal>>
type EvWaypoint217 (line 1335) | struct EvWaypoint217 : sc::event<EvWaypoint217<TSource, TOrthogonal>>
type EvWaypoint218 (line 1341) | struct EvWaypoint218 : sc::event<EvWaypoint218<TSource, TOrthogonal>>
type EvWaypoint219 (line 1347) | struct EvWaypoint219 : sc::event<EvWaypoint219<TSource, TOrthogonal>>
type EvWaypoint220 (line 1353) | struct EvWaypoint220 : sc::event<EvWaypoint220<TSource, TOrthogonal>>
type EvWaypoint221 (line 1359) | struct EvWaypoint221 : sc::event<EvWaypoint221<TSource, TOrthogonal>>
type EvWaypoint222 (line 1365) | struct EvWaypoint222 : sc::event<EvWaypoint222<TSource, TOrthogonal>>
type EvWaypoint223 (line 1371) | struct EvWaypoint223 : sc::event<EvWaypoint223<TSource, TOrthogonal>>
type EvWaypoint224 (line 1377) | struct EvWaypoint224 : sc::event<EvWaypoint224<TSource, TOrthogonal>>
type EvWaypoint225 (line 1383) | struct EvWaypoint225 : sc::event<EvWaypoint225<TSource, TOrthogonal>>
type EvWaypoint226 (line 1389) | struct EvWaypoint226 : sc::event<EvWaypoint226<TSource, TOrthogonal>>
type EvWaypoint227 (line 1395) | struct EvWaypoint227 : sc::event<EvWaypoint227<TSource, TOrthogonal>>
type EvWaypoint228 (line 1401) | struct EvWaypoint228 : sc::event<EvWaypoint228<TSource, TOrthogonal>>
type EvWaypoint229 (line 1407) | struct EvWaypoint229 : sc::event<EvWaypoint229<TSource, TOrthogonal>>
type EvWaypoint230 (line 1413) | struct EvWaypoint230 : sc::event<EvWaypoint230<TSource, TOrthogonal>>
type EvWaypoint231 (line 1419) | struct EvWaypoint231 : sc::event<EvWaypoint231<TSource, TOrthogonal>>
type EvWaypoint232 (line 1425) | struct EvWaypoint232 : sc::event<EvWaypoint232<TSource, TOrthogonal>>
type EvWaypoint233 (line 1431) | struct EvWaypoint233 : sc::event<EvWaypoint233<TSource, TOrthogonal>>
type EvWaypoint234 (line 1437) | struct EvWaypoint234 : sc::event<EvWaypoint234<TSource, TOrthogonal>>
type EvWaypoint235 (line 1443) | struct EvWaypoint235 : sc::event<EvWaypoint235<TSource, TOrthogonal>>
type EvWaypoint236 (line 1449) | struct EvWaypoint236 : sc::event<EvWaypoint236<TSource, TOrthogonal>>
type EvWaypoint237 (line 1455) | struct EvWaypoint237 : sc::event<EvWaypoint237<TSource, TOrthogonal>>
type EvWaypoint238 (line 1461) | struct EvWaypoint238 : sc::event<EvWaypoint238<TSource, TOrthogonal>>
type EvWaypoint239 (line 1467) | struct EvWaypoint239 : sc::event<EvWaypoint239<TSource, TOrthogonal>>
type EvWaypoint240 (line 1473) | struct EvWaypoint240 : sc::event<EvWaypoint240<TSource, TOrthogonal>>
type EvWaypoint241 (line 1479) | struct EvWaypoint241 : sc::event<EvWaypoint241<TSource, TOrthogonal>>
type EvWaypoint242 (line 1485) | struct EvWaypoint242 : sc::event<EvWaypoint242<TSource, TOrthogonal>>
type EvWaypoint243 (line 1491) | struct EvWaypoint243 : sc::event<EvWaypoint243<TSource, TOrthogonal>>
type EvWaypoint244 (line 1497) | struct EvWaypoint244 : sc::event<EvWaypoint244<TSource, TOrthogonal>>
type EvWaypoint245 (line 1503) | struct EvWaypoint245 : sc::event<EvWaypoint245<TSource, TOrthogonal>>
type EvWaypoint246 (line 1509) | struct EvWaypoint246 : sc::event<EvWaypoint246<TSource, TOrthogonal>>
type EvWaypoint247 (line 1515) | struct EvWaypoint247 : sc::event<EvWaypoint247<TSource, TOrthogonal>>
type EvWaypoint248 (line 1521) | struct EvWaypoint248 : sc::event<EvWaypoint248<TSource, TOrthogonal>>
type EvWaypoint249 (line 1527) | struct EvWaypoint249 : sc::event<EvWaypoint249<TSource, TOrthogonal>>
type EvWaypoint250 (line 1533) | struct EvWaypoint250 : sc::event<EvWaypoint250<TSource, TOrthogonal>>
type EvWaypoint251 (line 1539) | struct EvWaypoint251 : sc::event<EvWaypoint251<TSource, TOrthogonal>>
type EvWaypoint252 (line 1545) | struct EvWaypoint252 : sc::event<EvWaypoint252<TSource, TOrthogonal>>
type EvWaypoint253 (line 1551) | struct EvWaypoint253 : sc::event<EvWaypoint253<TSource, TOrthogonal>>
type EvWaypoint254 (line 1557) | struct EvWaypoint254 : sc::event<EvWaypoint254<TSource, TOrthogonal>>
type EvWaypoint255 (line 1563) | struct EvWaypoint255 : sc::event<EvWaypoint255<TSource, TOrthogonal>>
type EvWaypoint256 (line 1569) | struct EvWaypoint256 : sc::event<EvWaypoint256<TSource, TOrthogonal>>
class ClNav2Z (line 1577) | class ClNav2Z
class WaypointEventDispatcher (line 1581) | class WaypointEventDispatcher
function configurePostEvWaypoint (line 1594) | void configurePostEvWaypoint(
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/components/waypoints_navigator/cp_waypoints_navigator.hpp
type cl_nav2z (line 30) | namespace cl_nav2z
class ClNav2Z (line 32) | class ClNav2Z
type EvWaypointFinal (line 35) | struct EvWaypointFinal : sc::event<EvWaypointFinal>
type NavigateNextWaypointOptions (line 39) | struct NavigateNextWaypointOptions
class CpWaypointNavigator (line 48) | class CpWaypointNavigator : public CpWaypointNavigatorBase
method onStateOrthogonalAllocation (line 59) | void onStateOrthogonalAllocation()
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/components/waypoints_navigator/cp_waypoints_navigator_base.hpp
type cl_nav2z (line 28) | namespace cl_nav2z
type Pose2D (line 30) | struct Pose2D
method Pose2D (line 32) | Pose2D(double x, double y, double yaw)
class CpWaypointNavigatorBase (line 47) | class CpWaypointNavigatorBase : public smacc2::ISmaccComponent
method onStateOrthogonalAllocation (line 59) | void onStateOrthogonalAllocation()
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/include/cl_nav2z/components/waypoints_navigator/cp_waypoints_visualizer.hpp
type cl_nav2z (line 30) | namespace cl_nav2z
class ClNav2Z (line 32) | class ClNav2Z
class CpWaypointsVisualizer (line 34) | class CpWaypointsVisualizer : public smacc2::ISmaccComponent, public s...
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/scripts/lidar_completion.py
class LidarProcessor (line 24) | class LidarProcessor(Node):
method __init__ (line 25) | def __init__(self):
method lidar_callback (line 46) | def lidar_callback(self, msg):
method merge_lidar_msgs (line 56) | def merge_lidar_msgs(self):
function main (line 96) | def main(args=None):
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/cl_nav2z.cpp
type cl_nav2z (line 18) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_abort_navigation.cpp
type cl_nav2z (line 30) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_absolute_rotate.cpp
type cl_nav2z (line 30) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_active_stop.cpp
type cl_nav2z (line 27) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_load_waypoints_file.cpp
type cl_nav2z (line 25) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_nav2z_client_behavior_base.cpp
type cl_nav2z (line 23) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_navigate_backward.cpp
type cl_nav2z (line 30) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_navigate_forward.cpp
type cl_nav2z (line 28) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_navigate_global_position.cpp
type cl_nav2z (line 28) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_navigate_named_waypoint.cpp
type cl_nav2z (line 23) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_navigate_next_waypoint.cpp
type cl_nav2z (line 23) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_navigate_next_waypoint_free.cpp
type cl_nav2z (line 22) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_navigate_next_waypoint_until_reached.cpp
type cl_nav2z (line 23) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_pause_slam.cpp
type cl_nav2z (line 22) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_position_control_free_space.cpp
type cl_nav2z (line 28) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_pure_spinning.cpp
type cl_nav2z (line 26) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_resume_slam.cpp
type cl_nav2z (line 22) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_rotate.cpp
type cl_nav2z (line 27) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_rotate_look_at.cpp
type cl_nav2z (line 30) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_save_slam_map.cpp
type cl_nav2z (line 33) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_seek_waypoint.cpp
type cl_nav2z (line 23) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_spiral_motion.cpp
type cl_nav2z (line 27) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_stop_navigation.cpp
type cl_nav2z (line 30) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_track_path_odometry.cpp
type cl_nav2z (line 25) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_track_path_slam.cpp
type cl_nav2z (line 25) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_undo_path_backwards.cpp
type cl_nav2z (line 26) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_wait_nav2_nodes.cpp
type cl_nav2z (line 24) | namespace cl_nav2z
function toString (line 98) | std::string toString(Nav2Nodes value)
function Nav2Nodes (line 117) | Nav2Nodes fromString(std::string id)
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_wait_pose.cpp
type cl_nav2z (line 27) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/client_behaviors/cb_wait_transform.cpp
type cl_nav2z (line 22) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/components/amcl/cp_amcl.cpp
type cl_nav2z (line 24) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/components/costmap_switch/cp_costmap_switch.cpp
type cl_nav2z (line 17) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/components/goal_checker_switcher/cp_goal_checker_switcher.cpp
type cl_nav2z (line 22) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/components/odom_tracker/cp_odom_tracker.cpp
type cl_nav2z (line 30) | namespace cl_nav2z
type odom_tracker (line 32) | namespace odom_tracker
function parameterDeclareAndtryGetOrSet (line 47) | void parameterDeclareAndtryGetOrSet(
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/components/odom_tracker/cp_odom_tracker_node.cpp
class CpOdomTrackerActionServer (line 30) | class CpOdomTrackerActionServer
method CpOdomTrackerActionServer (line 36) | CpOdomTrackerActionServer() : odomTracker("move_base") {}
method execute (line 43) | void execute(
method run (line 101) | void run()
function main (line 117) | int main(int argc, char ** argv)
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/components/planner_switcher/cp_planner_switcher.cpp
type cl_nav2z (line 23) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/components/pose/cp_pose.cpp
type cl_nav2z (line 26) | namespace cl_nav2z
function referenceFrameToString (line 42) | std::string referenceFrameToString(StandardReferenceFrames referenceFr...
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/components/slam_toolbox/cp_slam_toolbox.cpp
type cl_nav2z (line 23) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/components/waypoints_navigator/cp_waypoints_event_dispatcher.cpp
type cl_nav2z (line 23) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/components/waypoints_navigator/cp_waypoints_navigator.cpp
type cl_nav2z (line 35) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/cl_nav2z/src/cl_nav2z/components/waypoints_navigator/cp_waypoints_visualizer.cpp
type cl_nav2z (line 23) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/custom_planners/backward_global_planner/include/backward_global_planner/backward_global_planner.hpp
type cl_nav2z (line 29) | namespace cl_nav2z
type backward_global_planner (line 31) | namespace backward_global_planner
class BackwardGlobalPlanner (line 33) | class BackwardGlobalPlanner : public nav2_core::GlobalPlanner
FILE: smacc2_client_library/cl_nav2z/custom_planners/backward_global_planner/src/backward_global_planner/backward_global_planner.cpp
type cl_nav2z (line 40) | namespace cl_nav2z
type backward_global_planner (line 42) | namespace backward_global_planner
FILE: smacc2_client_library/cl_nav2z/custom_planners/backward_local_planner/include/backward_local_planner/backward_local_planner.hpp
type cl_nav2z (line 36) | namespace cl_nav2z
type backward_local_planner (line 38) | namespace backward_local_planner
class BackwardLocalPlanner (line 40) | class BackwardLocalPlanner : public nav2_core::Controller
FILE: smacc2_client_library/cl_nav2z/custom_planners/backward_local_planner/src/backward_local_planner/backward_local_planner.cpp
type cl_nav2z (line 37) | namespace cl_nav2z
type backward_local_planner (line 39) | namespace backward_local_planner
function tryGetOrSet (line 88) | void tryGetOrSet(rclcpp_lifecycle::LifecycleNode::SharedPtr & node, ...
FILE: smacc2_client_library/cl_nav2z/custom_planners/forward_global_planner/include/forward_global_planner/forward_global_planner.hpp
type cl_nav2z (line 30) | namespace cl_nav2z
type forward_global_planner (line 32) | namespace forward_global_planner
class ForwardGlobalPlanner (line 34) | class ForwardGlobalPlanner : public nav2_core::GlobalPlanner
FILE: smacc2_client_library/cl_nav2z/custom_planners/forward_global_planner/src/forward_global_planner/forward_global_planner.cpp
type cl_nav2z (line 38) | namespace cl_nav2z
type forward_global_planner (line 40) | namespace forward_global_planner
FILE: smacc2_client_library/cl_nav2z/custom_planners/forward_local_planner/include/forward_local_planner/forward_local_planner.hpp
type cl_nav2z (line 35) | namespace cl_nav2z
type forward_local_planner (line 37) | namespace forward_local_planner
class ForwardLocalPlanner (line 39) | class ForwardLocalPlanner : public nav2_core::Controller
FILE: smacc2_client_library/cl_nav2z/custom_planners/forward_local_planner/src/forward_local_planner/forward_local_planner.cpp
type cl_nav2z (line 34) | namespace cl_nav2z
type forward_local_planner (line 36) | namespace forward_local_planner
function clamp (line 282) | void clamp(
FILE: smacc2_client_library/cl_nav2z/custom_planners/nav2z_planners_common/include/nav2z_planners_common/common.hpp
function declareOrSet (line 34) | void declareOrSet(rclcpp_lifecycle::LifecycleNode::SharedPtr & node, std...
FILE: smacc2_client_library/cl_nav2z/custom_planners/nav2z_planners_common/include/nav2z_planners_common/nav2z_client_tools.hpp
type cl_nav2z (line 27) | namespace cl_nav2z
FILE: smacc2_client_library/cl_nav2z/custom_planners/nav2z_planners_common/src/nav2z_planners_common/common.cpp
type cl_nav2z (line 35) | namespace cl_nav2z
function makePureSpinningSubPlan (line 37) | geometry_msgs::msg::PoseStamped makePureSpinningSubPlan(
function makePureStraightSubPlan (line 93) | geometry_msgs::msg::PoseStamped makePureStraightSubPlan(
FILE: smacc2_client_library/cl_nav2z/custom_planners/pure_spinning_local_planner/include/pure_spinning_local_planner/pure_spinning_local_planner.hpp
type cl_nav2z (line 37) | namespace cl_nav2z
type pure_spinning_local_planner (line 39) | namespace pure_spinning_local_planner
class PureSpinningLocalPlanner (line 41) | class PureSpinningLocalPlanner : public nav2_core::Controller
FILE: smacc2_client_library/cl_nav2z/custom_planners/pure_spinning_local_planner/src/pure_spinning_local_planner/pure_spinning_local_planner.cpp
type cl_nav2z (line 22) | namespace cl_nav2z
type pure_spinning_local_planner (line 24) | namespace pure_spinning_local_planner
function tryGetOrSet (line 27) | void tryGetOrSet(rclcpp_lifecycle::LifecycleNode::SharedPtr & node, ...
function publishGoalMarker (line 214) | void publishGoalMarker(double /*x*/, double /*y*/, double /*phi*/) {}
FILE: smacc2_client_library/cl_nav2z/custom_planners/undo_path_global_planner/include/undo_path_global_planner/undo_path_global_planner.hpp
type cl_nav2z (line 29) | namespace cl_nav2z
type undo_path_global_planner (line 31) | namespace undo_path_global_planner
class UndoPathGlobalPlanner (line 33) | class UndoPathGlobalPlanner : public nav2_core::GlobalPlanner
FILE: smacc2_client_library/cl_nav2z/custom_planners/undo_path_global_planner/src/undo_path_global_planner/undo_path_global_planner.cpp
type cl_nav2z (line 36) | namespace cl_nav2z
type undo_path_global_planner (line 38) | namespace undo_path_global_planner
FILE: smacc2_client_library/cl_px4_mr/include/cl_px4_mr/cl_px4_mr.hpp
type cl_px4_mr (line 28) | namespace cl_px4_mr
class ClPx4Mr (line 31) | class ClPx4Mr : public smacc2::ISmaccClient
method onComponentInitialization (line 38) | void onComponentInitialization()
FILE: smacc2_client_library/cl_px4_mr/include/cl_px4_mr/client_behaviors/cb_arm_px4.hpp
type cl_px4_mr (line 20) | namespace cl_px4_mr
class CpVehicleCommand (line 23) | class CpVehicleCommand
class CpVehicleStatus (line 24) | class CpVehicleStatus
class CpOffboardKeepAlive (line 25) | class CpOffboardKeepAlive
class CbArmPX4 (line 27) | class CbArmPX4 : public smacc2::SmaccAsyncClientBehavior
FILE: smacc2_client_library/cl_px4_mr/include/cl_px4_mr/client_behaviors/cb_change_altitude.hpp
type cl_px4_mr (line 19) | namespace cl_px4_mr
class CpTrajectorySetpoint (line 22) | class CpTrajectorySetpoint
class CpGoalChecker (line 23) | class CpGoalChecker
class CpVehicleLocalPosition (line 24) | class CpVehicleLocalPosition
class CbChangeAltitude (line 26) | class CbChangeAltitude : public smacc2::SmaccAsyncClientBehavior
FILE: smacc2_client_library/cl_px4_mr/include/cl_px4_mr/client_behaviors/cb_connect_micro_ros_agent.hpp
type cl_px4_mr (line 23) | namespace cl_px4_mr
class CpMicroRosAgent (line 26) | class CpMicroRosAgent
class CbConnectMicroRosAgent (line 28) | class CbConnectMicroRosAgent : public smacc2::SmaccAsyncClientBehavior
FILE: smacc2_client_library/cl_px4_mr/include/cl_px4_mr/client_behaviors/cb_disarm_px4.hpp
type cl_px4_mr (line 19) | namespace cl_px4_mr
class CpVehicleCommand (line 22) | class CpVehicleCommand
class CpVehicleStatus (line 23) | class CpVehicleStatus
class CbDisarmPX4 (line 25) | class CbDisarmPX4 : public smacc2::SmaccAsyncClientBehavior
FILE: smacc2_client_library/cl_px4_mr/include/cl_px4_mr/client_behaviors/cb_figure_eight.hpp
type cl_px4_mr (line 21) | namespace cl_px4_mr
class CpTrajectorySetpoint (line 24) | class CpTrajectorySetpoint
class CbFigureEight (line 26) | class CbFigureEight : public smacc2::SmaccAsyncClientBehavior, public ...
FILE: smacc2_client_library/cl_px4_mr/include/cl_px4_mr/client_behaviors/cb_follow_waypoints.hpp
type cl_px4_mr (line 22) | namespace cl_px4_mr
class CpTrajectorySetpoint (line 25) | class CpTrajectorySetpoint
class CpGoalChecker (line 26) | class CpGoalChecker
class CbFollowWaypoints (line 28) | class CbFollowWaypoints : public smacc2::SmaccAsyncClientBehavior
FILE: smacc2_client_library/cl_px4_mr/include/cl_px4_mr/client_behaviors/cb_go_to_location.hpp
type cl_px4_mr (line 20) | namespace cl_px4_mr
class CpTrajectorySetpoint (line 23) | class CpTrajectorySetpoint
class CpGoalChecker (line 24) | class CpGoalChecker
class CbGoToLocation (line 26) | class CbGoToLocation : public smacc2::SmaccAsyncClientBehavior
FILE: smacc2_client_library/cl_px4_mr/include/cl_px4_mr/client_behaviors/cb_hold_position.hpp
type cl_px4_mr (line 20) | namespace cl_px4_mr
class CpTrajectorySetpoint (line 23) | class CpTrajectorySetpoint
class CbHoldPosition (line 25) | class CbHoldPosition : public smacc2::SmaccAsyncClientBehavior, public...
FILE: smacc2_client_library/cl_px4_mr/include/cl_px4_mr/client_behaviors/cb_land.hpp
type cl_px4_mr (line 19) | namespace cl_px4_mr
class CpVehicleCommand (line 22) | class CpVehicleCommand
class CpVehicleStatus (line 23) | class CpVehicleStatus
class CpOffboardKeepAlive (line 24) | class CpOffboardKeepAlive
class CbLand (line 26) | class CbLand : public smacc2::SmaccAsyncClientBehavior
FILE: smacc2_client_library/cl_px4_mr/include/cl_px4_mr/client_behaviors/cb_orbit_location.hpp
type cl_px4_mr (line 21) | namespace cl_px4_mr
class CpTrajectorySetpoint (line 24) | class CpTrajectorySetpoint
class CpVehicleLocalPosition (line 25) | class CpVehicleLocalPosition
class CbOrbitLocation (line 27) | class CbOrbitLocation : public smacc2::SmaccAsyncClientBehavior, publi...
FILE: smacc2_client_library/cl_px4_mr/include/cl_px4_mr/client_behaviors/cb_return_to_home.hpp
type cl_px4_mr (line 19) | namespace cl_px4_mr
class CpTrajectorySetpoint (line 22) | class CpTrajectorySetpoint
class CpGoalChecker (line 23) | class CpGoalChecker
class CbReturnToHome (line 25) | class CbReturnToHome : public smacc2::SmaccAsyncClientBehavior
FILE: smacc2_client_library/cl_px4_mr/include/cl_px4_mr/client_behaviors/cb_spiral_pattern.hpp
type cl_px4_mr (line 21) | namespace cl_px4_mr
class CpTrajectorySetpoint (line 24) | class CpTrajectorySetpoint
class CpVehicleLocalPosition (line 25) | class CpVehicleLocalPosition
class CbSpiralPattern (line 27) | class CbSpiralPattern : public smacc2::SmaccAsyncClientBehavior, publi...
FILE: smacc2_client_library/cl_px4_mr/include/cl_px4_mr/client_behaviors/cb_takeoff.hpp
type cl_px4_mr (line 19) | namespace cl_px4_mr
class CpVehicleCommand (line 22) | class CpVehicleCommand
class CpOffboardKeepAlive (line 23) | class CpOffboardKeepAlive
class CpTrajectorySetpoint (line 24) | class CpTrajectorySetpoint
class CpGoalChecker (line 25) | class CpGoalChecker
class CpVehicleLocalPosition (line 26) | class CpVehicleLocalPosition
class CbTakeOff (line 28) | class CbTakeOff : public smacc2::SmaccAsyncClientBehavior
FILE: smacc2_client_library/cl_px4_mr/include/cl_px4_mr/client_behaviors/cb_yaw_rotate.hpp
type cl_px4_mr (line 20) | namespace cl_px4_mr
class CpTrajectorySetpoint (line 23) | class CpTrajectorySetpoint
class CpVehicleLocalPosition (line 24) | class CpVehicleLocalPosition
class CbYawRotate (line 26) | class CbYawRotate : public smacc2::SmaccAsyncClientBehavior, public sm...
FILE: smacc2_client_library/cl_px4_mr/include/cl_px4_mr/components/cp_goal_checker.hpp
type cl_px4_mr (line 20) | namespace cl_px4_mr
class CpVehicleLocalPosition (line 23) | class CpVehicleLocalPosition
class CpGoalChecker (line 25) | class CpGoalChecker : public smacc2::ISmaccComponent, public smacc2::I...
FILE: smacc2_client_library/cl_px4_mr/include/cl_px4_mr/components/cp_micro_ros_agent.hpp
type cl_px4_mr (line 23) | namespace cl_px4_mr
class CpMicroRosAgent (line 26) | class CpMicroRosAgent : public smacc2::ISmaccComponent
FILE: smacc2_client_library/cl_px4_mr/include/cl_px4_mr/components/cp_offboard_keep_alive.hpp
type cl_px4_mr (line 21) | namespace cl_px4_mr
class CpTrajectorySetpoint (line 24) | class CpTrajectorySetpoint
class CpOffboardKeepAlive (line 26) | class CpOffboardKeepAlive : public smacc2::ISmaccComponent, public sma...
FILE: smacc2_client_library/cl_px4_mr/include/cl_px4_mr/components/cp_trajectory_setpoint.hpp
type cl_px4_mr (line 23) | namespace cl_px4_mr
class CpVehicleLocalPosition (line 26) | class CpVehicleLocalPosition
class CpTrajectorySetpoint (line 28) | class CpTrajectorySetpoint : public smacc2::ISmaccComponent
FILE: smacc2_client_library/cl_px4_mr/include/cl_px4_mr/components/cp_vehicle_command.hpp
type cl_px4_mr (line 21) | namespace cl_px4_mr
class CpVehicleCommand (line 24) | class CpVehicleCommand : public smacc2::ISmaccComponent
FILE: smacc2_client_library/cl_px4_mr/include/cl_px4_mr/components/cp_vehicle_command_ack.hpp
type cl_px4_mr (line 21) | namespace cl_px4_mr
class CpVehicleCommandAck (line 24) | class CpVehicleCommandAck : public smacc2::ISmaccComponent
FILE: smacc2_client_library/cl_px4_mr/include/cl_px4_mr/components/cp_vehicle_local_position.hpp
type cl_px4_mr (line 22) | namespace cl_px4_mr
class CpVehicleLocalPosition (line 25) | class CpVehicleLocalPosition : public smacc2::ISmaccComponent
FILE: smacc2_client_library/cl_px4_mr/include/cl_px4_mr/components/cp_vehicle_status.hpp
type cl_px4_mr (line 22) | namespace cl_px4_mr
class CpVehicleStatus (line 25) | class CpVehicleStatus : public smacc2::ISmaccComponent
FILE: smacc2_client_library/cl_px4_mr/src/cl_px4_mr/cl_px4_mr.cpp
type cl_px4_mr (line 17) | namespace cl_px4_mr
FILE: smacc2_client_library/cl_px4_mr/src/cl_px4_mr/client_behaviors/cb_arm_px4.cpp
type cl_px4_mr (line 23) | namespace cl_px4_mr
FILE: smacc2_client_library/cl_px4_mr/src/cl_px4_mr/client_behaviors/cb_change_altitude.cpp
type cl_px4_mr (line 20) | namespace cl_px4_mr
FILE: smacc2_client_library/cl_px4_mr/src/cl_px4_mr/client_behaviors/cb_connect_micro_ros_agent.cpp
type cl_px4_mr (line 20) | namespace cl_px4_mr
FILE: smacc2_client_library/cl_px4_mr/src/cl_px4_mr/client_behaviors/cb_disarm_px4.cpp
type cl_px4_mr (line 19) | namespace cl_px4_mr
FILE: smacc2_client_library/cl_px4_mr/src/cl_px4_mr/client_behaviors/cb_figure_eight.cpp
type cl_px4_mr (line 18) | namespace cl_px4_mr
FILE: smacc2_client_library/cl_px4_mr/src/cl_px4_mr/client_behaviors/cb_follow_waypoints.cpp
type cl_px4_mr (line 19) | namespace cl_px4_mr
FILE: smacc2_client_library/cl_px4_mr/src/cl_px4_mr/client_behaviors/cb_go_to_location.cpp
type cl_px4_mr (line 19) | namespace cl_px4_mr
FILE: smacc2_client_library/cl_px4_mr/src/cl_px4_mr/client_behaviors/cb_hold_position.cpp
type cl_px4_mr (line 18) | namespace cl_px4_mr
FILE: smacc2_client_library/cl_px4_mr/src/cl_px4_mr/client_behaviors/cb_land.cpp
type cl_px4_mr (line 20) | namespace cl_px4_mr
FILE: smacc2_client_library/cl_px4_mr/src/cl_px4_mr/client_behaviors/cb_orbit_location.cpp
type cl_px4_mr (line 19) | namespace cl_px4_mr
FILE: smacc2_client_library/cl_px4_mr/src/cl_px4_mr/client_behaviors/cb_return_to_home.cpp
type cl_px4_mr (line 19) | namespace cl_px4_mr
FILE: smacc2_client_library/cl_px4_mr/src/cl_px4_mr/client_behaviors/cb_spiral_pattern.cpp
type cl_px4_mr (line 19) | namespace cl_px4_mr
FILE: smacc2_client_library/cl_px4_mr/src/cl_px4_mr/client_behaviors/cb_takeoff.cpp
type cl_px4_mr (line 25) | namespace cl_px4_mr
FILE: smacc2_client_library/cl_px4_mr/src/cl_px4_mr/client_behaviors/cb_yaw_rotate.cpp
type cl_px4_mr (line 19) | namespace cl_px4_mr
FILE: smacc2_client_library/cl_px4_mr/src/cl_px4_mr/components/cp_goal_checker.cpp
type cl_px4_mr (line 18) | namespace cl_px4_mr
FILE: smacc2_client_library/cl_px4_mr/src/cl_px4_mr/components/cp_micro_ros_agent.cpp
type cl_px4_mr (line 29) | namespace cl_px4_mr
function pid_t (line 160) | pid_t CpMicroRosAgent::getPid() const
FILE: smacc2_client_library/cl_px4_mr/src/cl_px4_mr/components/cp_offboard_keep_alive.cpp
type cl_px4_mr (line 18) | namespace cl_px4_mr
FILE: smacc2_client_library/cl_px4_mr/src/cl_px4_mr/components/cp_trajectory_setpoint.cpp
type cl_px4_mr (line 18) | namespace cl_px4_mr
FILE: smacc2_client_library/cl_px4_mr/src/cl_px4_mr/components/cp_vehicle_command.cpp
type cl_px4_mr (line 17) | namespace cl_px4_mr
FILE: smacc2_client_library/cl_px4_mr/src/cl_px4_mr/components/cp_vehicle_command_ack.cpp
type cl_px4_mr (line 17) | namespace cl_px4_mr
FILE: smacc2_client_library/cl_px4_mr/src/cl_px4_mr/components/cp_vehicle_local_position.cpp
type cl_px4_mr (line 17) | namespace cl_px4_mr
FILE: smacc2_client_library/cl_px4_mr/src/cl_px4_mr/components/cp_vehicle_status.cpp
type cl_px4_mr (line 17) | namespace cl_px4_mr
FILE: smacc2_client_library/cl_ros2_timer/include/cl_ros2_timer/cl_ros2_timer.hpp
type cl_ros2_timer (line 24) | namespace cl_ros2_timer
type EvTimer (line 27) | struct EvTimer : sc::event<EvTimer<TSource, TOrthogonal>>
class ClRos2Timer (line 31) | class ClRos2Timer : public smacc2::ISmaccClient
method onComponentInitialization (line 40) | void onComponentInitialization()
FILE: smacc2_client_library/cl_ros2_timer/include/cl_ros2_timer/client_behaviors/cb_ros2_timer.hpp
type cl_ros2_timer (line 20) | namespace cl_ros2_timer
class CbTimer (line 22) | class CbTimer : public smacc2::SmaccClientBehavior
method onEntry (line 25) | void onEntry() override
method onExit (line 37) | void onExit() override {}
method onStateOrthogonalAllocation (line 40) | void onStateOrthogonalAllocation()
method onClientTimerTickCallback (line 46) | void onClientTimerTickCallback() { this->postTimerEvent_(); }
FILE: smacc2_client_library/cl_ros2_timer/include/cl_ros2_timer/client_behaviors/cb_timer_countdown_loop.hpp
type cl_ros2_timer (line 20) | namespace cl_ros2_timer
class CbTimerCountdownLoop (line 22) | class CbTimerCountdownLoop : public smacc2::SmaccClientBehavior
method CbTimerCountdownLoop (line 25) | explicit CbTimerCountdownLoop(int64_t triggerTickCount)
method onEntry (line 30) | void onEntry() override
method onExit (line 42) | void onExit() override {}
method onStateOrthogonalAllocation (line 45) | void onStateOrthogonalAllocation()
method onTimerTick (line 52) | smacc2::SmaccSignalConnection onTimerTick(void (T::*callback)(), T *...
method onClientTimerTickCallback (line 64) | void onClientTimerTickCallback()
FILE: smacc2_client_library/cl_ros2_timer/include/cl_ros2_timer/client_behaviors/cb_timer_countdown_once.hpp
type cl_ros2_timer (line 20) | namespace cl_ros2_timer
class CbTimerCountdownOnce (line 22) | class CbTimerCountdownOnce : public smacc2::SmaccClientBehavior
method CbTimerCountdownOnce (line 25) | CbTimerCountdownOnce(int64_t triggerTickCount)
method onEntry (line 30) | void onEntry() override
method onExit (line 42) | void onExit() override {}
method onStateOrthogonalAllocation (line 45) | void onStateOrthogonalAllocation()
method onTimerTick (line 52) | smacc2::SmaccSignalConnection onTimerTick(void (T::*callback)(), T *...
method onClientTimerTickCallback (line 64) | void onClientTimerTickCallback()
FILE: smacc2_client_library/cl_ros2_timer/include/cl_ros2_timer/components/cp_timer_listener_1.hpp
type cl_ros2_timer (line 20) | namespace cl_ros2_timer
type EvTimer (line 24) | struct EvTimer
type components (line 26) | namespace components
class CpTimerListener1 (line 29) | class CpTimerListener1 : public smacc2::ISmaccComponent
method CpTimerListener1 (line 32) | CpTimerListener1() {}
method onStateOrthogonalAllocation (line 37) | void onStateOrthogonalAllocation()
method onInitialize (line 45) | void onInitialize() override
method onTimerCompleted (line 59) | smacc2::SmaccSignalConnection onTimerCompleted(void (T::*callback)...
method onTimerTickCallback (line 68) | void onTimerTickCallback()
FILE: smacc2_client_library/cl_ros2_timer/src/cl_ros2_timer.cpp
type cl_ros2_timer (line 17) | namespace cl_ros2_timer
FILE: smacc2_event_generator_library/eg_conditional_generator/include/eg_conditional_generator/eg_conditional_generator.hpp
type smacc2 (line 23) | namespace smacc2
type event_generators (line 25) | namespace event_generators
type EvTrue (line 28) | struct EvTrue : sc::event<EvTrue<TSource, TState>>
type EvFalse (line 33) | struct EvFalse : sc::event<EvFalse<TSource, TState>>
type ConditionalGeneratorMode (line 37) | enum class ConditionalGeneratorMode
class EgConditionalGenerator (line 44) | class EgConditionalGenerator : public smacc2::SmaccEventGenerator, p...
method onStateOrthogonalAllocation (line 54) | void onStateOrthogonalAllocation()
FILE: smacc2_event_generator_library/eg_conditional_generator/src/eg_conditional_generator/eg_conditional_generator.cpp
type smacc2 (line 17) | namespace smacc2
type event_generators (line 19) | namespace event_generators
FILE: smacc2_event_generator_library/eg_random_generator/include/eg_random_generator/eg_random_generator.hpp
type smacc2 (line 23) | namespace smacc2
type state_reactors (line 25) | namespace state_reactors
type EventA (line 28) | struct EventA : sc::event<EventA<TSource, TState>>
type EventB (line 33) | struct EventB : sc::event<EventB<TSource, TState>>
type EventC (line 38) | struct EventC : sc::event<EventC<TSource, TState>>
type RandomGenerateReactorMode (line 42) | enum class RandomGenerateReactorMode
class EgRandomGenerator (line 50) | class EgRandomGenerator : public SmaccEventGenerator, public ISmaccU...
method onStateOrthogonalAllocation (line 60) | void onStateOrthogonalAllocation()
FILE: smacc2_event_generator_library/eg_random_generator/src/eg_random_generator/eg_random_generator.cpp
type smacc2 (line 17) | namespace smacc2
type state_reactors (line 19) | namespace state_reactors
FILE: smacc2_performance_tools/performance_tests/sm_atomic_performance_trace_1/include/sm_atomic_performance_trace_1/sm_atomic_performance_trace_1.hpp
type sm_atomic_performance_trace_1 (line 20) | namespace sm_atomic_performance_trace_1
class State1 (line 23) | class State1
class State2 (line 24) | class State2
type SmAtomicPerformanceTrace1 (line 28) | struct SmAtomicPerformanceTrace1
method onInitialize (line 33) | void onInitialize() override {}
FILE: smacc2_performance_tools/performance_tests/sm_atomic_performance_trace_1/include/sm_atomic_performance_trace_1/states/st_state_1.hpp
type sm_atomic_performance_trace_1 (line 17) | namespace sm_atomic_performance_trace_1
type State1 (line 22) | struct State1 : smacc2::SmaccState<State1, SmAtomicPerformanceTrace1>
method staticConfigure (line 35) | static void staticConfigure() {}
method runtimeConfigure (line 37) | void runtimeConfigure() {}
method onEntry (line 39) | void onEntry() { this->postEvent<EvStateRequestFinish<State1>>(); }
method onExit (line 41) | void onExit() {}
FILE: smacc2_performance_tools/performance_tests/sm_atomic_performance_trace_1/include/sm_atomic_performance_trace_1/states/st_state_2.hpp
type sm_atomic_performance_trace_1 (line 17) | namespace sm_atomic_performance_trace_1
type State2 (line 20) | struct State2 : smacc2::SmaccState<State2, SmAtomicPerformanceTrace1>
method staticConfigure (line 33) | static void staticConfigure() {}
method runtimeConfigure (line 35) | void runtimeConfigure() {}
method onEntry (line 37) | void onEntry() { this->postEvent<EvStateRequestFinish<State2>>(); }
method onExit (line 39) | void onExit() {}
FILE: smacc2_performance_tools/performance_tests/sm_atomic_performance_trace_1/src/sm_atomic_performance_trace_1/sm_atomic_performance_trace_1_node.cpp
function main (line 18) | int main(int argc, char ** argv)
FILE: smacc2_performance_tools/performance_tests/sm_atomic_subscribers_performance_test/include/sm_atomic_subscribers_performance_test/orthogonals/or_subscriber.hpp
type sm_atomic_subscribers_performance_test (line 20) | namespace sm_atomic_subscribers_performance_test
class OrSubscriber (line 24) | class OrSubscriber : public smacc2::Orthogonal<OrSubscriber>
method onInitialize (line 27) | void onInitialize() override
FILE: smacc2_performance_tools/performance_tests/sm_atomic_subscribers_performance_test/include/sm_atomic_subscribers_performance_test/sm_atomic_subscribers_performance_test.hpp
type sm_atomic_subscribers_performance_test (line 21) | namespace sm_atomic_subscribers_performance_test
class State1 (line 24) | class State1
class State2 (line 25) | class State2
type SmAtomicSubscribersPerformanceTest (line 29) | struct SmAtomicSubscribersPerformanceTest
method onInitialize (line 34) | void onInitialize() override { this->createOrthogonal<OrSubscriber>(...
FILE: smacc2_performance_tools/performance_tests/sm_atomic_subscribers_performance_test/include/sm_atomic_subscribers_performance_test/states/st_state_1.hpp
type sm_atomic_subscribers_performance_test (line 17) | namespace sm_atomic_subscribers_performance_test
type State1 (line 22) | struct State1 : smacc2::SmaccState<State1, SmAtomicSubscribersPerforma...
method staticConfigure (line 35) | static void staticConfigure() {}
method runtimeConfigure (line 37) | void runtimeConfigure() {}
method onEntry (line 39) | void onEntry() {}
method onExit (line 41) | void onExit() {}
FILE: smacc2_performance_tools/performance_tests/sm_atomic_subscribers_performance_test/include/sm_atomic_subscribers_performance_test/states/st_state_2.hpp
type sm_atomic_subscribers_performance_test (line 17) | namespace sm_atomic_subscribers_performance_test
type State2 (line 20) | struct State2 : smacc2::SmaccState<State2, SmAtomicSubscribersPerforma...
method staticConfigure (line 33) | static void staticConfigure() {}
method runtimeConfigure (line 35) | void runtimeConfigure() {}
method onEntry (line 37) | void onEntry() {}
method onExit (line 39) | void onExit() {}
FILE: smacc2_performance_tools/performance_tests/sm_atomic_subscribers_performance_test/servers/basic_publisher.py
class TemperatureSensorNode (line 23) | class TemperatureSensorNode(Node):
method __init__ (line 24) | def __init__(self):
method publish_temperature (line 29) | def publish_temperature(self):
function main (line 36) | def main(args=None):
FILE: smacc2_performance_tools/performance_tests/sm_atomic_subscribers_performance_test/src/sm_atomic_subscribers_performance_test/sm_atomic_subscribers_performance_test_node.cpp
function main (line 18) | int main(int argc, char ** argv)
FILE: smacc2_performance_tools/performance_tests/sm_coretest_transition_speed_1/include/sm_coretest_transition_speed_1/sm_coretest_transition_speed_1.hpp
type sm_coretest_transition_speed_1 (line 26) | namespace sm_coretest_transition_speed_1
type State1 (line 29) | struct State1
type State2 (line 30) | struct State2
type SmCoretestTransitionSpeed1 (line 42) | struct SmCoretestTransitionSpeed1
method onInitialize (line 47) | void onInitialize() override
FILE: smacc2_performance_tools/performance_tests/sm_coretest_transition_speed_1/include/sm_coretest_transition_speed_1/states/st_state_1.hpp
type sm_coretest_transition_speed_1 (line 24) | namespace sm_coretest_transition_speed_1
type State1 (line 42) | struct State1 : smacc2::SmaccState<State1, SmCoretestTransitionSpeed1>
method staticConfigure (line 55) | static void staticConfigure() {}
method runtimeConfigure (line 57) | void runtimeConfigure() {}
method onEntry (line 59) | void onEntry()
method onExit (line 83) | void onExit() {}
FILE: smacc2_performance_tools/performance_tests/sm_coretest_transition_speed_1/include/sm_coretest_transition_speed_1/states/st_state_2.hpp
type sm_coretest_transition_speed_1 (line 27) | namespace sm_coretest_transition_speed_1
type State2 (line 37) | struct State2 : smacc2::SmaccState<State2, SmCoretestTransitionSpeed1>
method staticConfigure (line 49) | static void staticConfigure() {}
method runtimeConfigure (line 51) | void runtimeConfigure() {}
method onEntry (line 53) | void onEntry()
method onExit (line 61) | void onExit() {}
FILE: smacc2_performance_tools/performance_tests/sm_coretest_transition_speed_1/src/sm_coretest_transition_speed_1/sm_coretest_transition_speed_1_node.cpp
function main (line 22) | int main(int argc, char ** argv)
FILE: smacc2_sm_reference_library/_smacc2_sm_template/include/sm_name/orthogonals/or_timer.hpp
type $sm_name$ (line 22) | namespace $sm_name$
class OrTimer (line 26) | class OrTimer : public smacc2::Orthogonal<OrTimer>
method onInitialize (line 29) | void onInitialize() override { auto client = this->createClient<cl_r...
FILE: smacc2_sm_reference_library/_smacc2_sm_template/include/sm_name/sm_name.hpp
type $sm_name$ (line 26) | namespace $sm_name$
type State1 (line 32) | struct State1
type State2 (line 33) | struct State2
type $SmName$ (line 37) | struct $SmName$
method onInitialize (line 42) | void onInitialize() override
FILE: smacc2_sm_reference_library/_smacc2_sm_template/include/sm_name/states/st_state_1.hpp
type $sm_name$ (line 29) | namespace $sm_name$
type State1 (line 43) | struct State1 : smacc2::SmaccState<State1, $SmName$>
method staticConfigure (line 55) | static void staticConfigure()
method runtimeConfigure (line 63) | void runtimeConfigure() {}
method onEntry (line 65) | void onEntry()
method onExit (line 72) | void onExit()
FILE: smacc2_sm_reference_library/_smacc2_sm_template/include/sm_name/states/st_state_2.hpp
type $sm_name$ (line 27) | namespace $sm_name$
type State2 (line 40) | struct State2 : smacc2::SmaccState<State2, $SmName$>
method staticConfigure (line 52) | static void staticConfigure()
method runtimeConfigure (line 59) | void runtimeConfigure()
method onEntry (line 66) | void onEntry() {
method onExit (line 75) | void onExit()
FILE: smacc2_sm_reference_library/_smacc2_sm_template/src/sm_name/sm_name_node.cpp
function main (line 19) | int main(int argc, char ** argv)
FILE: smacc2_sm_reference_library/sm_advanced_recovery_1/include/sm_advanced_recovery_1/clients/cl_subscriber/cl_subscriber.hpp
type sm_advanced_recovery_1 (line 19) | namespace sm_advanced_recovery_1
type cl_subscriber (line 21) | namespace cl_subscriber
class ClSubscriber (line 23) | class ClSubscriber : public smacc2::client_bases::SmaccSubscriberCli...
FILE: smacc2_sm_reference_library/sm_advanced_recovery_1/include/sm_advanced_recovery_1/clients/cl_subscriber/client_behaviors/cb_default_subscriber_behavior.hpp
type sm_advanced_recovery_1 (line 18) | namespace sm_advanced_recovery_1
type cl_subscriber (line 20) | namespace cl_subscriber
class CbDefaultSubscriberBehavior (line 22) | class CbDefaultSubscriberBehavior : public smacc2::SmaccClientBehavior
method onEntry (line 27) | void onEntry() {}
FILE: smacc2_sm_reference_library/sm_advanced_recovery_1/include/sm_advanced_recovery_1/clients/cl_subscriber/client_behaviors/cb_watchdog_subscriber_behavior.hpp
type sm_advanced_recovery_1 (line 18) | namespace sm_advanced_recovery_1
type cl_subscriber (line 20) | namespace cl_subscriber
class CbWatchdogSubscriberBehavior (line 22) | class CbWatchdogSubscriberBehavior : public smacc2::SmaccClientBehavior
method onEntry (line 27) | void onEntry() {}
FILE: smacc2_sm_reference_library/sm_advanced_recovery_1/include/sm_advanced_recovery_1/mode_states/ms_recover.hpp
type sm_advanced_recovery_1 (line 16) | namespace sm_advanced_recovery_1
class MsRecover (line 19) | class MsRecover : public smacc2::SmaccState<MsRecover, SmAdvancedRecov...
FILE: smacc2_sm_reference_library/sm_advanced_recovery_1/include/sm_advanced_recovery_1/mode_states/ms_run.hpp
type sm_advanced_recovery_1 (line 16) | namespace sm_advanced_recovery_1
class MsRun (line 19) | class MsRun : public smacc2::SmaccState<MsRun, SmAdvancedRecovery1, St...
FILE: smacc2_sm_reference_library/sm_advanced_recovery_1/include/sm_advanced_recovery_1/orthogonals/or_keyboard.hpp
type sm_advanced_recovery_1 (line 19) | namespace sm_advanced_recovery_1
class OrKeyboard (line 21) | class OrKeyboard : public smacc2::Orthogonal<OrKeyboard>
method onInitialize (line 24) | virtual void onInitialize() override
FILE: smacc2_sm_reference_library/sm_advanced_recovery_1/include/sm_advanced_recovery_1/orthogonals/or_subscriber.hpp
type sm_advanced_recovery_1 (line 20) | namespace sm_advanced_recovery_1
class OrSubscriber (line 24) | class OrSubscriber : public smacc2::Orthogonal<OrSubscriber>
method onInitialize (line 27) | virtual void onInitialize() override
FILE: smacc2_sm_reference_library/sm_advanced_recovery_1/include/sm_advanced_recovery_1/orthogonals/or_timer.hpp
type sm_advanced_recovery_1 (line 21) | namespace sm_advanced_recovery_1
class OrTimer (line 24) | class OrTimer : public smacc2::Orthogonal<OrTimer>
method onInitialize (line 27) | virtual void onInitialize() override
FILE: smacc2_sm_reference_library/sm_advanced_recovery_1/include/sm_advanced_recovery_1/sm_advanced_recovery_1.
Condensed preview — 1357 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (4,247K chars).
[
{
"path": ".clang-format",
"chars": 320,
"preview": "---\nLanguage: Cpp\nBasedOnStyle: Google\n\nColumnLimit: 100\nAccessModifierOffset: -2\nAlignAfterOpenBracket: AlwaysB"
},
{
"path": ".claude/settings.json",
"chars": 1559,
"preview": "{\n \"permissions\": {\n \"allow\": [\n \"WebSearch\",\n \"Bash(find:*)\",\n \"Bash(colcon build:*)\",\n \"Bash(source:*)"
},
{
"path": ".github/Doxyfile",
"chars": 106374,
"preview": "# Doxyfile 1.8.11\n\n# This file describes the settings to be used by the documentation system\n# doxygen (www.doxygen.org)"
},
{
"path": ".github/ISSUE_TEMPLATE/compilation_error_report.md",
"chars": 1215,
"preview": "---\nname: Compilation error report\nabout: Create a report to help us catch compilation errors and correct them\ntitle: ''"
},
{
"path": ".github/ISSUE_TEMPLATE/runtime_error_report.md",
"chars": 1289,
"preview": "---\nname: Runtime error report\nabout: Create a report to help us catch runtime errors and improve\ntitle: ''\nlabels: bug\n"
},
{
"path": ".github/SMACC2-not-released.jazzy.repos",
"chars": 1205,
"preview": "repositories:\n# moveit2:\n# type: git\n# url: https://github.com/ros-planning/moveit2.git\n# version: feature/mul"
},
{
"path": ".github/SMACC2.jazzy.repos",
"chars": 221,
"preview": "repositories:\n px4_msgs:\n type: git\n url: https://github.com/PX4/px4_msgs.git\n version: release/1.16\n micro-R"
},
{
"path": ".github/mergify.yml",
"chars": 600,
"preview": "pull_request_rules:\n - name: ask to resolve conflict\n conditions:\n - conflict\n - author!=mergify\n actio"
},
{
"path": ".github/workflows/README.md",
"chars": 4302,
"preview": "## Repository Status, Packages and Documentation - Detailed overview\n\nROS2 Distro | Branch | Build status | Documentatio"
},
{
"path": ".github/workflows/ci-format.yml",
"chars": 662,
"preview": "# This is a format job. Pre-commit has a first-party GitHub action, so we use\n# that: https://github.com/pre-commit/acti"
},
{
"path": ".github/workflows/ci-ros-lint.yaml",
"chars": 1357,
"preview": "name: ROS Lint\non:\n pull_request:\n\njobs:\n ament_lint:\n name: ament_${{ matrix.linter }}\n runs-on: ubuntu-24.04\n "
},
{
"path": ".github/workflows/doxygen-check-build.yml",
"chars": 237,
"preview": "name: \"Pull request Doc Check\"\non:\n pull_request:\n\njobs:\n check-doc:\n runs-on: ubuntu-latest\n steps:\n - uses:"
},
{
"path": ".github/workflows/doxygen-deploy.yml",
"chars": 742,
"preview": "name: \"Doxygen Deployment\"\non:\n workflow_dispatch:\n push:\n branches: [jazzy]\n\njobs:\n deploy-doc:\n runs-on: ubun"
},
{
"path": ".github/workflows/jazzy-binary-build.yml",
"chars": 1213,
"preview": "name: jazzy Binary Build\non:\n pull_request:\n branches:\n - jazzy\n push:\n branches:\n - jazzy"
},
{
"path": ".github/workflows/jazzy-bloom-release.yml",
"chars": 1281,
"preview": "name: jazzy bloom-release\n\non:\n push:\n paths:\n - package.xml\n - '*/package.xml'\n branches: jazzy\n wo"
},
{
"path": ".github/workflows/jazzy-semi-binary-build.yml",
"chars": 1177,
"preview": "name: jazzy Semi-Binary Build\non:\n pull_request:\n branches:\n - jazzy\n push:\n branches:\n - "
},
{
"path": ".gitignore",
"chars": 49,
"preview": "dependencies\nbuild\ninstall\nlog\nbin\n.ccache\n.work\n"
},
{
"path": ".pre-commit-config.yaml",
"chars": 3443,
"preview": "# To use:\n#\n# pre-commit run -a\n#\n# Or:\n#\n# pre-commit install # (runs every time you commit in git)\n#\n# To upd"
},
{
"path": "CLAUDE.md",
"chars": 13152,
"preview": "//////////////////////////////////////////////////////////////////////////////\n\n# SMACC2 Object Lifetimes\nSMACC2 runtime"
},
{
"path": "CONTRIBUTING.md",
"chars": 3762,
"preview": "# Contributing Guidelines\nThank you for your interest in contributing to `smacc2`.\nWhether it's a bug report, new featur"
},
{
"path": "LICENSE",
"chars": 11358,
"preview": "\n Apache License\n Version 2.0, January 2004\n "
},
{
"path": "README.md",
"chars": 11264,
"preview": "# SMACC2\n\nSMACC2 is an event-driven, asynchronous, behavioral state machine library for real-time ROS 2 (Robotic Operati"
},
{
"path": "docs/cl_modbus_tcp_relay_plan.md",
"chars": 23802,
"preview": "# cl_modbus_tcp_relay Implementation Plan\n\n## Overview\nCreate a SMACC2 client library for controlling an 8-channel Modbu"
},
{
"path": "smacc2/CHANGELOG.rst",
"chars": 6784,
"preview": "Changelog for package smacc2\n================================\n\n3.0.1 (2025-01-16)\n-------------------\n### Added\n- **ROS2"
},
{
"path": "smacc2/CMakeLists.txt",
"chars": 1454,
"preview": "cmake_minimum_required(VERSION 3.5)\nproject(smacc2)\n\n# Default to C++17\nif(NOT CMAKE_CXX_STANDARD)\n set(CMAKE_CXX_STAND"
},
{
"path": "smacc2/include/smacc2/callback_counter_semaphore.hpp",
"chars": 1486,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/client_bases/smacc_action_client.hpp",
"chars": 1782,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/client_bases/smacc_action_client_base.hpp",
"chars": 15939,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/client_bases/smacc_publisher_client.hpp",
"chars": 2510,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/client_bases/smacc_ros_launch_client.hpp",
"chars": 1748,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/client_bases/smacc_ros_launch_client_2.hpp",
"chars": 2262,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/client_bases/smacc_service_client.hpp",
"chars": 2180,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/client_bases/smacc_service_server_client.hpp",
"chars": 3042,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/client_bases/smacc_subscriber_client.hpp",
"chars": 4266,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/client_behaviors/cb_call_service.hpp",
"chars": 3633,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/client_behaviors/cb_ros_launch.hpp",
"chars": 2007,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/client_behaviors/cb_ros_launch_2.hpp",
"chars": 2028,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/client_behaviors/cb_ros_stop_2.hpp",
"chars": 1860,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/client_behaviors/cb_sequence.hpp",
"chars": 2862,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/client_behaviors/cb_service_server_callback_base.hpp",
"chars": 1265,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/client_behaviors/cb_sleep_for.hpp",
"chars": 1650,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/client_behaviors/cb_subscription_callback_base.hpp",
"chars": 1468,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/client_behaviors/cb_wait_action_server.hpp",
"chars": 1870,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/client_behaviors/cb_wait_action_server_2.hpp",
"chars": 2910,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/client_behaviors/cb_wait_node.hpp",
"chars": 1460,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/client_behaviors/cb_wait_topic.hpp",
"chars": 1491,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/client_behaviors/cb_wait_topic_message.hpp",
"chars": 2774,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/client_core_components/cp_action_client.hpp",
"chars": 9995,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2/include/smacc2/client_core_components/cp_ros2_timer.hpp",
"chars": 2953,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/client_core_components/cp_service_client.hpp",
"chars": 12455,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2/include/smacc2/client_core_components/cp_subprocess_executor.hpp",
"chars": 5716,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2/include/smacc2/client_core_components/cp_topic_publisher.hpp",
"chars": 2509,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/client_core_components/cp_topic_subscriber.hpp",
"chars": 4015,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/common.hpp",
"chars": 2338,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/component.hpp",
"chars": 3264,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/impl/smacc_asynchronous_client_behavior_impl.hpp",
"chars": 2742,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/impl/smacc_client_behavior_impl.hpp",
"chars": 2736,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/impl/smacc_client_impl.hpp",
"chars": 4392,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/impl/smacc_component_impl.hpp",
"chars": 4015,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/impl/smacc_event_generator_impl.hpp",
"chars": 1369,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/impl/smacc_orthogonal_impl.hpp",
"chars": 6261,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/impl/smacc_state_impl.hpp",
"chars": 8459,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/impl/smacc_state_machine_impl.hpp",
"chars": 24393,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/impl/smacc_state_reactor_impl.hpp",
"chars": 3326,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/introspection/introspection.hpp",
"chars": 7961,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/introspection/smacc_state_info.hpp",
"chars": 6912,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/introspection/smacc_state_machine_info.hpp",
"chars": 19546,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/introspection/smacc_type_info.hpp",
"chars": 2131,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/introspection/state_traits.hpp",
"chars": 2565,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/smacc.hpp",
"chars": 1110,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/smacc_asynchronous_client_behavior.hpp",
"chars": 4436,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/smacc_client.hpp",
"chars": 4296,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/smacc_client_behavior.hpp",
"chars": 1196,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/smacc_client_behavior_base.hpp",
"chars": 2436,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/smacc_default_events.hpp",
"chars": 6426,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/smacc_event_generator.hpp",
"chars": 1672,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/smacc_fifo_scheduler.hpp",
"chars": 774,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/smacc_fifo_worker.hpp",
"chars": 833,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/smacc_orthogonal.hpp",
"chars": 2761,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/smacc_signal.hpp",
"chars": 2051,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/smacc_signal_detector.hpp",
"chars": 7798,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/smacc_state.hpp",
"chars": 3775,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/smacc_state_base.hpp",
"chars": 18676,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/smacc_state_machine.hpp",
"chars": 7934,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/smacc_state_machine_base.hpp",
"chars": 3156,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/smacc_state_reactor.hpp",
"chars": 2891,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/smacc_tracing/smacc_tracing.hpp",
"chars": 2356,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/smacc_tracing/trace_provider.hpp",
"chars": 4054,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/smacc_transition.hpp",
"chars": 3072,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/smacc_types.hpp",
"chars": 2374,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/include/smacc2/smacc_updatable.hpp",
"chars": 1448,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/package.xml",
"chars": 1076,
"preview": "<?xml version=\"1.0\"?>\n<?xml-model href=\"http://download.ros.org/schema/package_format3.xsd\" schematypens=\"http://www.w3."
},
{
"path": "smacc2/scripts/trace.sh",
"chars": 984,
"preview": "#!/bin/bash\nros2 trace -u ros2:smacc2_event ros2:smacc2_client_behavior_on_exit_end ros2:smacc2_client_behavior_on_exit_"
},
{
"path": "smacc2/src/smacc2/callback_counter_semaphore.cpp",
"chars": 2807,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/client.cpp",
"chars": 1908,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/client_bases/smacc_action_client.cpp",
"chars": 1120,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/client_bases/smacc_publisher_client.cpp",
"chars": 1154,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/client_bases/smacc_ros_launch_client.cpp",
"chars": 3039,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/client_bases/smacc_ros_launch_client_2.cpp",
"chars": 8248,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/client_behaviors/cb_ros_launch.cpp",
"chars": 3216,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/client_behaviors/cb_ros_launch_2.cpp",
"chars": 3503,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/client_behaviors/cb_ros_stop_2.cpp",
"chars": 1487,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/client_behaviors/cb_sequence.cpp",
"chars": 3950,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/client_behaviors/cb_wait_action_server.cpp",
"chars": 2119,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/client_behaviors/cb_wait_node.cpp",
"chars": 1764,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/client_behaviors/cb_wait_topic.cpp",
"chars": 2046,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/common.cpp",
"chars": 1407,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/introspection/reflection.cpp",
"chars": 2298,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/introspection/string_type_walker.cpp",
"chars": 11531,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/orthogonal.cpp",
"chars": 5332,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/signal_detector.cpp",
"chars": 15205,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/smacc_client_async_behavior.cpp",
"chars": 5296,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/smacc_client_behavior.cpp",
"chars": 1262,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/smacc_client_behavior_base.cpp",
"chars": 2194,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/smacc_component.cpp",
"chars": 1733,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/smacc_event_generator.cpp",
"chars": 1320,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/smacc_state.cpp",
"chars": 3414,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/smacc_state_info.cpp",
"chars": 3531,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/smacc_state_machine.cpp",
"chars": 9677,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/smacc_state_machine_info.cpp",
"chars": 8264,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/smacc_tracing.cpp",
"chars": 3446,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/smacc_updatable.cpp",
"chars": 1647,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/state_reactor.cpp",
"chars": 2139,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2/src/smacc2/trace_provider.cpp",
"chars": 702,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2_client_library/CLAUDE.md",
"chars": 46057,
"preview": "\r\n//////////////////////////////////////////////////////////////////////////////\r\n\r\n# Code style guidelines\r\n\r\n### Namin"
},
{
"path": "smacc2_client_library/cl_foundation_pose/CMakeLists.txt",
"chars": 703,
"preview": "cmake_minimum_required(VERSION 3.5)\nproject(cl_foundation_pose)\n\nif(NOT CMAKE_CXX_STANDARD)\n set(CMAKE_CXX_STANDARD 17)"
},
{
"path": "smacc2_client_library/cl_foundation_pose/include/cl_foundation_pose/cl_foundation_pose.hpp",
"chars": 1428,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2_client_library/cl_foundation_pose/include/cl_foundation_pose/client_behaviors/cb_pause_object_tracking.hpp",
"chars": 1623,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2_client_library/cl_foundation_pose/include/cl_foundation_pose/client_behaviors/cb_track_object_pose.hpp",
"chars": 2328,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2_client_library/cl_foundation_pose/include/cl_foundation_pose/components/cp_object_tracker_1.hpp",
"chars": 2779,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2_client_library/cl_foundation_pose/include/cl_foundation_pose/components/cp_object_tracker_tf.hpp",
"chars": 8033,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2_client_library/cl_foundation_pose/include/cl_foundation_pose/components/tracker_utils.hpp",
"chars": 1060,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2_client_library/cl_foundation_pose/package.xml",
"chars": 692,
"preview": "<?xml version=\"1.0\"?>\n<?xml-model href=\"http://download.ros.org/schema/package_format3.xsd\" schematypens=\"http://www.w3."
},
{
"path": "smacc2_client_library/cl_gcalcli/CMakeLists.txt",
"chars": 1437,
"preview": "cmake_minimum_required(VERSION 3.5)\nproject(cl_gcalcli)\n\n# Default to C++17\nif(NOT CMAKE_CXX_STANDARD)\n set(CMAKE_CXX_S"
},
{
"path": "smacc2_client_library/cl_gcalcli/README.md",
"chars": 9873,
"preview": "# cl_gcalcli - SMACC2 Google Calendar Client\n\nA SMACC2 client library for Google Calendar integration via the `gcalcli` "
},
{
"path": "smacc2_client_library/cl_gcalcli/docs/cl_gcalcli_implementation_plan.md",
"chars": 8427,
"preview": "# Implementation Plan: cl_gcalcli SMACC2 Client Library\n\n## Overview\n\nCreate a new SMACC2 client library (`cl_gcalcli`) "
},
{
"path": "smacc2_client_library/cl_gcalcli/include/cl_gcalcli/cl_gcalcli.hpp",
"chars": 3412,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_gcalcli/include/cl_gcalcli/client_behaviors/cb_detect_calendar_event.hpp",
"chars": 2414,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_gcalcli/include/cl_gcalcli/client_behaviors/cb_event_detect.hpp",
"chars": 2377,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_gcalcli/include/cl_gcalcli/client_behaviors/cb_monitor_connection.hpp",
"chars": 1444,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_gcalcli/include/cl_gcalcli/client_behaviors/cb_quick_add.hpp",
"chars": 1569,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_gcalcli/include/cl_gcalcli/client_behaviors/cb_refresh_agenda.hpp",
"chars": 1262,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_gcalcli/include/cl_gcalcli/client_behaviors/cb_status.hpp",
"chars": 1837,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_gcalcli/include/cl_gcalcli/client_behaviors/cb_wait_connection.hpp",
"chars": 1398,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_gcalcli/include/cl_gcalcli/client_behaviors.hpp",
"chars": 1086,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_gcalcli/include/cl_gcalcli/components/cp_calendar_event_listener.hpp",
"chars": 5344,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_gcalcli/include/cl_gcalcli/components/cp_calendar_poller.hpp",
"chars": 4493,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_gcalcli/include/cl_gcalcli/components/cp_gcalcli_connection.hpp",
"chars": 4953,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_gcalcli/include/cl_gcalcli/events.hpp",
"chars": 2959,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_gcalcli/include/cl_gcalcli/types.hpp",
"chars": 3753,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_gcalcli/package.xml",
"chars": 565,
"preview": "<?xml version=\"1.0\"?>\n<?xml-model href=\"http://download.ros.org/schema/package_format3.xsd\" schematypens=\"http://www.w3."
},
{
"path": "smacc2_client_library/cl_gcalcli/src/cl_gcalcli/cl_gcalcli.cpp",
"chars": 861,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_gcalcli/src/cl_gcalcli/client_behaviors/cb_detect_calendar_event.cpp",
"chars": 3168,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_gcalcli/src/cl_gcalcli/client_behaviors/cb_event_detect.cpp",
"chars": 3074,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_gcalcli/src/cl_gcalcli/client_behaviors/cb_monitor_connection.cpp",
"chars": 1754,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_gcalcli/src/cl_gcalcli/client_behaviors/cb_quick_add.cpp",
"chars": 2140,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_gcalcli/src/cl_gcalcli/client_behaviors/cb_refresh_agenda.cpp",
"chars": 1439,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_gcalcli/src/cl_gcalcli/client_behaviors/cb_status.cpp",
"chars": 1701,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_gcalcli/src/cl_gcalcli/client_behaviors/cb_wait_connection.cpp",
"chars": 2348,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_gcalcli/src/cl_gcalcli/components/cp_calendar_event_listener.cpp",
"chars": 7009,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_gcalcli/src/cl_gcalcli/components/cp_calendar_poller.cpp",
"chars": 10041,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_gcalcli/src/cl_gcalcli/components/cp_gcalcli_connection.cpp",
"chars": 6592,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_generic_sensor/CHANGELOG.rst",
"chars": 3268,
"preview": "Changelog for package multirole_sensor_client\n=============================================\n\n2.3.16 (2023-07-16)\n-------"
},
{
"path": "smacc2_client_library/cl_generic_sensor/CMakeLists.txt",
"chars": 875,
"preview": "cmake_minimum_required(VERSION 3.5)\nproject(cl_generic_sensor)\n\n# Default to C++17\nif(NOT CMAKE_CXX_STANDARD)\n set(CMAK"
},
{
"path": "smacc2_client_library/cl_generic_sensor/README.md",
"chars": 6389,
"preview": "# Generic Sensor Client\n\nA SMACC2 client library for subscribing to ROS topics with optional timeout watchdog functional"
},
{
"path": "smacc2_client_library/cl_generic_sensor/include/cl_generic_sensor/cl_generic_sensor.hpp",
"chars": 3725,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2_client_library/cl_generic_sensor/include/cl_generic_sensor/client_behaviors/cb_default_generic_sensor_behavior.hpp",
"chars": 5899,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2_client_library/cl_generic_sensor/include/cl_generic_sensor/components/README.md",
"chars": 2519,
"preview": "# Multirole Sensor Client Components\n\nThis directory contains reusable components for the multirole sensor client librar"
},
{
"path": "smacc2_client_library/cl_generic_sensor/include/cl_generic_sensor/components/cp_message_timeout.hpp",
"chars": 4237,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2_client_library/cl_generic_sensor/package.xml",
"chars": 567,
"preview": "<?xml version=\"1.0\"?>\n<?xml-model href=\"http://download.ros.org/schema/package_format3.xsd\" schematypens=\"http://www.w3."
},
{
"path": "smacc2_client_library/cl_generic_sensor/src/cl_generic_sensor/cl_generic_sensor.cpp",
"chars": 857,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2_client_library/cl_http/CHANGELOG.rst",
"chars": 4480,
"preview": "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nChangelog for package cl_http\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n2.3.19 (2025-06-17)\n-"
},
{
"path": "smacc2_client_library/cl_http/CMakeLists.txt",
"chars": 1149,
"preview": "cmake_minimum_required(VERSION 3.5)\nproject(cl_http)\n\n# Default to C++17\nif(NOT CMAKE_CXX_STANDARD)\n set(CMAKE_CXX_STAN"
},
{
"path": "smacc2_client_library/cl_http/README.md",
"chars": 9422,
"preview": "# HTTP Client (cl_http)\n\nSMACC2 client library for making HTTP/HTTPS requests using Boost.Beast.\n\n## Architecture\n/home/"
},
{
"path": "smacc2_client_library/cl_http/include/cl_http/cl_http.hpp",
"chars": 3889,
"preview": "// Copyright 2023 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_http/include/cl_http/client_behaviors/cb_http_get_request.hpp",
"chars": 1196,
"preview": "// Copyright 2023 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_http/include/cl_http/client_behaviors/cb_http_post_request.hpp",
"chars": 1198,
"preview": "// Copyright 2023 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_http/include/cl_http/client_behaviors/cb_http_request.hpp",
"chars": 2074,
"preview": "// Copyright 2023 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_http/include/cl_http/components/cp_http_connection_manager.hpp",
"chars": 1646,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_http/include/cl_http/components/cp_http_request_executor.hpp",
"chars": 2461,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_http/include/cl_http/components/cp_http_session_manager.hpp",
"chars": 2336,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_http/include/cl_http/http_session.hpp",
"chars": 2736,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2_client_library/cl_http/include/cl_http/http_session_base.hpp",
"chars": 2338,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2_client_library/cl_http/include/cl_http/ssl_http_session.hpp",
"chars": 3111,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2_client_library/cl_http/package.xml",
"chars": 517,
"preview": "<?xml version=\"1.0\"?>\n<?xml-model href=\"http://download.ros.org/schema/package_format3.xsd\" schematypens=\"http://www.w3."
},
{
"path": "smacc2_client_library/cl_http/src/cl_http/cl_http.cpp",
"chars": 1456,
"preview": "// Copyright 2023 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_http/src/cl_http/components/cp_http_connection_manager.cpp",
"chars": 1683,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_http/src/cl_http/components/cp_http_request_executor.cpp",
"chars": 2294,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_http/src/cl_http/components/cp_http_session_manager.cpp",
"chars": 2656,
"preview": "// Copyright 2024 RobosoftAI Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not u"
},
{
"path": "smacc2_client_library/cl_http/src/cl_http/http_session.cpp",
"chars": 3770,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2_client_library/cl_http/src/cl_http/ssl_http_session.cpp",
"chars": 5406,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2_client_library/cl_isaac_apriltag/CMakeLists.txt",
"chars": 801,
"preview": "cmake_minimum_required(VERSION 3.5)\nproject(cl_isaac_apriltag)\n\nif(NOT CMAKE_CXX_STANDARD)\n set(CMAKE_CXX_STANDARD 17)\n"
},
{
"path": "smacc2_client_library/cl_isaac_apriltag/COLCON_IGNORE",
"chars": 164,
"preview": "# This package requires isaac_ros_apriltag_interfaces which is part of NVIDIA Isaac ROS.\n# Remove this file when Isaac R"
},
{
"path": "smacc2_client_library/cl_isaac_apriltag/include/cl_isaac_apriltag/cl_isaac_apriltag.hpp",
"chars": 3098,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2_client_library/cl_isaac_apriltag/include/cl_isaac_apriltag/client_behaviors/cb_detect_apriltag.hpp",
"chars": 3486,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2_client_library/cl_isaac_apriltag/include/cl_isaac_apriltag/components/cp_april_visualization.hpp",
"chars": 6079,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2_client_library/cl_isaac_apriltag/include/cl_isaac_apriltag/components/cp_apriltag_mission_state.hpp",
"chars": 4115,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2_client_library/cl_isaac_apriltag/include/cl_isaac_apriltag/components/cp_apriltag_tracker.hpp",
"chars": 7310,
"preview": "// Copyright 2025 Robosoft Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use"
},
{
"path": "smacc2_client_library/cl_isaac_apriltag/package.xml",
"chars": 737,
"preview": "<?xml version=\"1.0\"?>\n<?xml-model href=\"http://download.ros.org/schema/package_format3.xsd\" schematypens=\"http://www.w3."
},
{
"path": "smacc2_client_library/cl_keyboard/CHANGELOG.rst",
"chars": 1046,
"preview": "Changelog for package cl_keyboard\n==================================\n\n.. note::\n This package was created in September"
}
]
// ... and 1157 more files (download for full content)
About this extraction
This page contains the full source code of the robosoft-ai/SMACC2 GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1357 files (3.8 MB), approximately 1.1M tokens, and a symbol index with 7584 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.