diff --git a/CHANGELOG.md b/CHANGELOG.md index 405b2042..565a33f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ Release Versions: ## Upcoming changes (in development) +- Add and install component descriptions (#31) - Apply AICA C++ style guide (#30) - Add option to publish outputs manually instead of periodically (#23) - Add unittests for modulo component service calls and triggers (#20) diff --git a/VERSION b/VERSION index bda8fbec..5bc1cc43 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.2.6 +2.2.7 diff --git a/doxygen/doxygen.conf b/doxygen/doxygen.conf index da255975..0a51eb94 100644 --- a/doxygen/doxygen.conf +++ b/doxygen/doxygen.conf @@ -38,7 +38,7 @@ PROJECT_NAME = "Modulo" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 2.2.6 +PROJECT_NUMBER = 2.2.7 # 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 diff --git a/source/modulo_component_interfaces/package.xml b/source/modulo_component_interfaces/package.xml index 971bb746..3a96f230 100644 --- a/source/modulo_component_interfaces/package.xml +++ b/source/modulo_component_interfaces/package.xml @@ -2,7 +2,7 @@ modulo_component_interfaces - 2.2.6 + 2.2.7 Interface package for communicating with modulo components through the ROS framework Enrico Eberhard GPLv3 diff --git a/source/modulo_components/CMakeLists.txt b/source/modulo_components/CMakeLists.txt index fa86af2b..1295495d 100644 --- a/source/modulo_components/CMakeLists.txt +++ b/source/modulo_components/CMakeLists.txt @@ -30,6 +30,10 @@ ament_auto_add_library(${PROJECT_NAME} SHARED # Install Python modules ament_python_install_package(${PROJECT_NAME} SCRIPTS_DESTINATION lib/${PROJECT_NAME}) +# Install descriptions +install(DIRECTORY ./component_descriptions + DESTINATION .) + if(BUILD_TESTING) find_package(ament_cmake_gtest REQUIRED) find_package(ament_cmake_pytest REQUIRED) diff --git a/source/modulo_components/component_descriptions/modulo_component.json b/source/modulo_components/component_descriptions/modulo_component.json new file mode 100644 index 00000000..78ec6697 --- /dev/null +++ b/source/modulo_components/component_descriptions/modulo_component.json @@ -0,0 +1,31 @@ +{ + "name": "Component", + "description": { + "brief": "A wrapper for rclcpp::Node to simplify application composition through unified component interfaces.", + "details": "This class is intended for direct inheritance to implement custom components that perform one-shot or externally triggered operations." + }, + "virtual": true, + "registration": "modulo_components::Component", + "inherits": "", + "parameters": [ + { + "display_name": "Period", + "description": "The time interval in seconds for all periodic callbacks", + "parameter_name": "period", + "parameter_type": "double", + "default_value": "0.1" + } + ], + "predicates": [ + { + "display_name": "In error state", + "description": "True if the component is in error state", + "predicate_name": "in_error_state" + }, + { + "display_name": "Is finished", + "description": "True if the on_execute_callback() method of one-shot components successfully finished", + "predicate_name": "is_finished" + } + ] +} \ No newline at end of file diff --git a/source/modulo_components/component_descriptions/modulo_lifecycle_component.json b/source/modulo_components/component_descriptions/modulo_lifecycle_component.json new file mode 100644 index 00000000..afff8a96 --- /dev/null +++ b/source/modulo_components/component_descriptions/modulo_lifecycle_component.json @@ -0,0 +1,46 @@ +{ + "name": "Lifecycle Component", + "description": { + "brief": "A wrapper for rclcpp_lifecycle::LifecycleNode to simplify application composition through unified component interfaces while supporting lifecycle states and transitions.", + "details": "This class is intended for direct inheritance to implement custom state-based components that perform different behaviors based on their state and on state transitions." + }, + "virtual": true, + "registration": "modulo_components::LifecycleComponent", + "inherits": "", + "parameters": [ + { + "display_name": "Period", + "description": "The time interval in seconds for all periodic callbacks", + "parameter_name": "period", + "parameter_type": "double", + "default_value": "0.1" + } + ], + "predicates": [ + { + "display_name": "In error state", + "description": "True if the component is in error state", + "predicate_name": "in_error_state" + }, + { + "display_name": "Is unconfigured", + "description": "True if the component is in an unconfigured state, either through construction or cleanup transition", + "predicate_name": "is_unconfigured" + }, + { + "display_name": "Is inactive", + "description": "True if the component is in an inactive state, either through the configuration or deactivation transition", + "predicate_name": "is_inactive" + }, + { + "display_name": "Is active", + "description": "True if the component is in an active state, executing the step function periodically", + "predicate_name": "is_active" + }, + { + "display_name": "Is finalized", + "description": "True if component is in a finalized state, either through the shutdown or error transition", + "predicate_name": "is_finalized" + } + ] +} \ No newline at end of file diff --git a/source/modulo_components/package.xml b/source/modulo_components/package.xml index 428fad1f..4050d153 100644 --- a/source/modulo_components/package.xml +++ b/source/modulo_components/package.xml @@ -2,7 +2,7 @@ modulo_components - 2.2.6 + 2.2.7 Modulo base classes that wrap ROS2 Nodes as modular components for the AICA application framework Baptiste Busch Enrico Eberhard diff --git a/source/modulo_core/package.xml b/source/modulo_core/package.xml index b1a45807..3259b96b 100644 --- a/source/modulo_core/package.xml +++ b/source/modulo_core/package.xml @@ -2,7 +2,7 @@ modulo_core - 2.2.6 + 2.2.7 Modulo Core communication and translation utilities for interoperability with AICA Control Libraries Baptiste Busch Enrico Eberhard diff --git a/source/modulo_utils/package.xml b/source/modulo_utils/package.xml index 5550f389..6d01ae57 100644 --- a/source/modulo_utils/package.xml +++ b/source/modulo_utils/package.xml @@ -2,7 +2,7 @@ modulo_utils - 2.2.6 + 2.2.7 Modulo utils package for shared test fixtures Dominic Reber GPLv3