vda5050_core 0.1.0rc1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- vda5050_core-0.1.0rc1/CHANGELOG.rst +40 -0
- vda5050_core-0.1.0rc1/CMakeLists.txt +430 -0
- vda5050_core-0.1.0rc1/PKG-INFO +15 -0
- vda5050_core-0.1.0rc1/cmake/vda5050_add_gmock.cmake +46 -0
- vda5050_core-0.1.0rc1/cmake/vda5050_add_gtest.cmake +46 -0
- vda5050_core-0.1.0rc1/cmake/vda5050_ament_lint_common.cmake +58 -0
- vda5050_core-0.1.0rc1/cmake/vda5050_configure_target_alias.cmake +60 -0
- vda5050_core-0.1.0rc1/cmake/vda5050_coreConfig.cmake.in +14 -0
- vda5050_core-0.1.0rc1/colcon.pkg +8 -0
- vda5050_core-0.1.0rc1/examples/CMakeLists.txt +55 -0
- vda5050_core-0.1.0rc1/examples/client/adapter_example.cpp +135 -0
- vda5050_core-0.1.0rc1/examples/execution/custom_base.cpp +117 -0
- vda5050_core-0.1.0rc1/examples/execution/engine_example.cpp +89 -0
- vda5050_core-0.1.0rc1/examples/execution/handler_integration.cpp +195 -0
- vda5050_core-0.1.0rc1/examples/execution/provider_example.cpp +78 -0
- vda5050_core-0.1.0rc1/examples/master/master_example.cpp +225 -0
- vda5050_core-0.1.0rc1/examples/master/order_publisher.cpp +319 -0
- vda5050_core-0.1.0rc1/examples/python/master_example.py +86 -0
- vda5050_core-0.1.0rc1/examples/python/rmf_migration_client_example.py +107 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/client/adapter/action_execution.hpp +68 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/client/adapter/action_request.hpp +79 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/client/adapter/adapter.hpp +89 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/client/adapter/edge_request.hpp +90 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/client/adapter/execution.hpp +66 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/client/adapter/localization_request.hpp +58 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/client/adapter/node_request.hpp +71 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/client/adapter/order_execution.hpp +67 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/client/adapter/state_manager.hpp +141 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/client/adapter/transformation.hpp +62 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/client/contexts/agv_context.hpp +98 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/client/resources/config.hpp +69 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/client/resources/order_execution.hpp +76 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/client/strategies/order_acceptance.hpp +66 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/client/strategies/order_validator.hpp +90 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/client/updates/order.hpp +54 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/errors/error_codes.hpp +70 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/errors/error_factory.hpp +53 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/errors/validation_result.hpp +96 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/execution/base.hpp +56 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/execution/context_interface.hpp +105 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/execution/engine.hpp +143 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/execution/event_queue.hpp +65 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/execution/handler.hpp +92 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/execution/protocol_adapter.hpp +308 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/execution/provider.hpp +76 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/execution/strategy_interface.hpp +57 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/json_utils/layout_serialization.hpp +678 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/json_utils/serialization.hpp +4195 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/json_utils/traits.hpp +1443 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/layout/edge.hpp +61 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/layout/graph.hpp +320 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/layout/layout.hpp +64 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/layout/layout_action.hpp +84 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/layout/layout_loader.hpp +68 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/layout/lif.hpp +70 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/layout/load_restriction.hpp +54 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/layout/node.hpp +75 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/layout/station.hpp +74 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/layout/trajectory.hpp +67 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/layout/validate_layout.hpp +61 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/layout/vehicle_type_edge_property.hpp +94 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/layout/vehicle_type_node_property.hpp +52 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/logger/logger.hpp +154 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/master/actions/action_factory.hpp +69 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/master/actions/instant_action_assignment_result.hpp +79 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/master/actions/instant_actions_publisher.hpp +84 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/master/agv.hpp +434 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/master/contexts/master_context.hpp +82 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/master/heartbeat.hpp +115 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/master/loaded_graph_holder.hpp +60 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/master/master.hpp +487 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/master/master_types.hpp +69 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/master/order/active_order_snapshot.hpp +50 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/master/order/order_assignment_result.hpp +77 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/master/order/order_lifecycle_manager.hpp +190 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/master/order/order_publisher.hpp +65 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/master/order/order_stitcher.hpp +83 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/master/pose_view.hpp +54 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/master/standard_names.hpp +79 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/master/updates/agv_updates.hpp +146 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/transport/mqtt_client_interface.hpp +115 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/transport/paho_mqtt_client.hpp +188 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/action.hpp +82 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/action_parameter.hpp +64 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/action_parameter_factsheet.hpp +78 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/action_scope.hpp +42 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/action_state.hpp +80 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/action_status.hpp +55 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/agv_action.hpp +88 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/agv_class.hpp +45 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/agv_geometry.hpp +74 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/agv_kinematic.hpp +42 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/agv_position.hpp +98 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/battery_state.hpp +79 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/blocking_type.hpp +42 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/bounding_box_reference.hpp +75 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/connection.hpp +63 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/connection_state.hpp +44 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/control_point.hpp +68 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/e_stop.hpp +45 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/edge.hpp +158 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/edge_state.hpp +84 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/envelope2d.hpp +72 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/envelope3d.hpp +78 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/error.hpp +78 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/error_level.hpp +39 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/error_reference.hpp +66 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/factsheet.hpp +101 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/header.hpp +88 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/info.hpp +77 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/info_level.hpp +39 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/info_reference.hpp +65 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/instant_actions.hpp +68 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/load.hpp +92 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/load_dimensions.hpp +68 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/load_set.hpp +149 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/load_specification.hpp +72 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/max_array_lens.hpp +132 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/max_string_lens.hpp +132 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/node.hpp +91 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/node_position.hpp +104 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/node_state.hpp +86 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/operating_mode.hpp +56 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/optional_parameter.hpp +74 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/order.hpp +92 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/orientation_type.hpp +39 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/physical_parameters.hpp +95 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/polygon_point.hpp +61 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/position.hpp +67 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/protocol_features.hpp +68 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/protocol_limits.hpp +71 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/safety_state.hpp +67 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/state.hpp +185 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/support.hpp +39 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/timing.hpp +74 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/trajectory.hpp +76 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/type_specification.hpp +96 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/value_data_type.hpp +54 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/velocity.hpp +67 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/visualization.hpp +73 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/wheel_definition.hpp +93 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/types/wheel_definition_type.hpp +38 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/validation/action_conflict_validator.hpp +40 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/validation/capability_validator.hpp +45 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/validation/content_validator.hpp +61 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/validation/factsheet_alignment.hpp +45 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/validation/instant_action_mode_validator.hpp +45 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/validation/operating_mode_control.hpp +34 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/validation/order_graph_validator.hpp +56 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/validation/pre_send_validator.hpp +52 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/validation/predefined_action_types.hpp +41 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/validation/protocol_limits_validator.hpp +45 -0
- vda5050_core-0.1.0rc1/include/vda5050_core/validation/traversability_validator.hpp +39 -0
- vda5050_core-0.1.0rc1/package.xml +37 -0
- vda5050_core-0.1.0rc1/pyproject.toml +77 -0
- vda5050_core-0.1.0rc1/python/CMakeLists.txt +86 -0
- vda5050_core-0.1.0rc1/python/include/vda5050_core/rmf_migration.hpp +297 -0
- vda5050_core-0.1.0rc1/python/include/vda5050_core_py/client.hpp +32 -0
- vda5050_core-0.1.0rc1/python/include/vda5050_core_py/master.hpp +32 -0
- vda5050_core-0.1.0rc1/python/include/vda5050_core_py/rmf_migration.hpp +32 -0
- vda5050_core-0.1.0rc1/python/include/vda5050_core_py/transport.hpp +32 -0
- vda5050_core-0.1.0rc1/python/include/vda5050_core_py/types.hpp +32 -0
- vda5050_core-0.1.0rc1/python/src/client.cpp +90 -0
- vda5050_core-0.1.0rc1/python/src/core.cpp +39 -0
- vda5050_core-0.1.0rc1/python/src/master.cpp +305 -0
- vda5050_core-0.1.0rc1/python/src/rmf_migration.cpp +677 -0
- vda5050_core-0.1.0rc1/python/src/transport.cpp +131 -0
- vda5050_core-0.1.0rc1/python/src/types.cpp +1165 -0
- vda5050_core-0.1.0rc1/python/tests/conftest.py +37 -0
- vda5050_core-0.1.0rc1/python/tests/test_client.py +30 -0
- vda5050_core-0.1.0rc1/python/tests/test_master.py +100 -0
- vda5050_core-0.1.0rc1/python/tests/test_rmf_migration.py +40 -0
- vda5050_core-0.1.0rc1/python/tests/test_types_json.py +138 -0
- vda5050_core-0.1.0rc1/python/vda5050_core/__init__.py +17 -0
- vda5050_core-0.1.0rc1/python/vda5050_core/__init__.pyi +12 -0
- vda5050_core-0.1.0rc1/python/vda5050_core/_core/__init__.pyi +14 -0
- vda5050_core-0.1.0rc1/python/vda5050_core/_core/client.pyi +65 -0
- vda5050_core-0.1.0rc1/python/vda5050_core/_core/master.pyi +354 -0
- vda5050_core-0.1.0rc1/python/vda5050_core/_core/rmf_migration.pyi +112 -0
- vda5050_core-0.1.0rc1/python/vda5050_core/_core/transport.pyi +35 -0
- vda5050_core-0.1.0rc1/python/vda5050_core/_core/types.pyi +1446 -0
- vda5050_core-0.1.0rc1/python/vda5050_core/client.py +17 -0
- vda5050_core-0.1.0rc1/python/vda5050_core/master.py +17 -0
- vda5050_core-0.1.0rc1/python/vda5050_core/rmf_migration.py +17 -0
- vda5050_core-0.1.0rc1/python/vda5050_core/transport.py +17 -0
- vda5050_core-0.1.0rc1/python/vda5050_core/types.py +17 -0
- vda5050_core-0.1.0rc1/scripts/generate_stubs.py +88 -0
- vda5050_core-0.1.0rc1/scripts/install-native-deps.sh +211 -0
- vda5050_core-0.1.0rc1/scripts/stub_header.txt +3 -0
- vda5050_core-0.1.0rc1/src/client/adapter/action_execution.cpp +99 -0
- vda5050_core-0.1.0rc1/src/client/adapter/action_request.cpp +95 -0
- vda5050_core-0.1.0rc1/src/client/adapter/adapter.cpp +751 -0
- vda5050_core-0.1.0rc1/src/client/adapter/adapter_impl.hpp +174 -0
- vda5050_core-0.1.0rc1/src/client/adapter/edge_request.cpp +114 -0
- vda5050_core-0.1.0rc1/src/client/adapter/execution.cpp +85 -0
- vda5050_core-0.1.0rc1/src/client/adapter/localization_request.cpp +61 -0
- vda5050_core-0.1.0rc1/src/client/adapter/node_request.cpp +93 -0
- vda5050_core-0.1.0rc1/src/client/adapter/order_execution.cpp +87 -0
- vda5050_core-0.1.0rc1/src/client/adapter/state_manager.cpp +445 -0
- vda5050_core-0.1.0rc1/src/client/adapter/transformation.cpp +85 -0
- vda5050_core-0.1.0rc1/src/client/contexts/agv_context.cpp +99 -0
- vda5050_core-0.1.0rc1/src/client/resources/order_execution.cpp +65 -0
- vda5050_core-0.1.0rc1/src/client/strategies/order_acceptance.cpp +227 -0
- vda5050_core-0.1.0rc1/src/client/strategies/order_validator.cpp +227 -0
- vda5050_core-0.1.0rc1/src/execution/engine.cpp +90 -0
- vda5050_core-0.1.0rc1/src/execution/event_queue.cpp +90 -0
- vda5050_core-0.1.0rc1/src/execution/handler.cpp +150 -0
- vda5050_core-0.1.0rc1/src/execution/protocol_adapter.cpp +162 -0
- vda5050_core-0.1.0rc1/src/execution/provider.cpp +44 -0
- vda5050_core-0.1.0rc1/src/layout/graph.cpp +642 -0
- vda5050_core-0.1.0rc1/src/layout/layout_loader.cpp +239 -0
- vda5050_core-0.1.0rc1/src/layout/validate_layout.cpp +280 -0
- vda5050_core-0.1.0rc1/src/logger/logger.cpp +112 -0
- vda5050_core-0.1.0rc1/src/master/actions/action_factory.cpp +138 -0
- vda5050_core-0.1.0rc1/src/master/actions/instant_actions_publisher.cpp +122 -0
- vda5050_core-0.1.0rc1/src/master/agv.cpp +1241 -0
- vda5050_core-0.1.0rc1/src/master/contexts/master_context.cpp +237 -0
- vda5050_core-0.1.0rc1/src/master/heartbeat.cpp +227 -0
- vda5050_core-0.1.0rc1/src/master/master.cpp +1276 -0
- vda5050_core-0.1.0rc1/src/master/order/order_lifecycle_manager.cpp +634 -0
- vda5050_core-0.1.0rc1/src/master/order/order_publisher.cpp +146 -0
- vda5050_core-0.1.0rc1/src/master/order/order_stitcher.cpp +171 -0
- vda5050_core-0.1.0rc1/src/transport/paho_mqtt_client.cpp +273 -0
- vda5050_core-0.1.0rc1/src/validation/action_conflict_validator.cpp +136 -0
- vda5050_core-0.1.0rc1/src/validation/capability_validator.cpp +219 -0
- vda5050_core-0.1.0rc1/src/validation/content_validator.cpp +247 -0
- vda5050_core-0.1.0rc1/src/validation/factsheet_alignment.cpp +89 -0
- vda5050_core-0.1.0rc1/src/validation/instant_action_mode_validator.cpp +66 -0
- vda5050_core-0.1.0rc1/src/validation/operating_mode_control.cpp +29 -0
- vda5050_core-0.1.0rc1/src/validation/order_graph_validator.cpp +219 -0
- vda5050_core-0.1.0rc1/src/validation/pre_send_validator.cpp +102 -0
- vda5050_core-0.1.0rc1/src/validation/predefined_action_types.cpp +47 -0
- vda5050_core-0.1.0rc1/src/validation/protocol_limits_validator.cpp +152 -0
- vda5050_core-0.1.0rc1/src/validation/traversability_validator.cpp +202 -0
- vda5050_core-0.1.0rc1/test/client/adapter_test_fixture.hpp +195 -0
- vda5050_core-0.1.0rc1/test/client/mock_mqtt_client.hpp +48 -0
- vda5050_core-0.1.0rc1/test/client/test_adapter_action.cpp +226 -0
- vda5050_core-0.1.0rc1/test/client/test_adapter_lifecycle.cpp +155 -0
- vda5050_core-0.1.0rc1/test/client/test_adapter_localization.cpp +227 -0
- vda5050_core-0.1.0rc1/test/client/test_adapter_navigation.cpp +399 -0
- vda5050_core-0.1.0rc1/test/client/test_adapter_order.cpp +139 -0
- vda5050_core-0.1.0rc1/test/client/test_agv_context.cpp +209 -0
- vda5050_core-0.1.0rc1/test/client/test_execution.cpp +308 -0
- vda5050_core-0.1.0rc1/test/client/test_order_acceptance.cpp +514 -0
- vda5050_core-0.1.0rc1/test/client/test_order_execution_resource.cpp +171 -0
- vda5050_core-0.1.0rc1/test/client/test_order_types.cpp +94 -0
- vda5050_core-0.1.0rc1/test/client/test_order_validator.cpp +299 -0
- vda5050_core-0.1.0rc1/test/client/test_state_manager.cpp +444 -0
- vda5050_core-0.1.0rc1/test/client/test_transformation.cpp +96 -0
- vda5050_core-0.1.0rc1/test/execution/test_engine.cpp +325 -0
- vda5050_core-0.1.0rc1/test/execution/test_event_queue.cpp +176 -0
- vda5050_core-0.1.0rc1/test/execution/test_handler.cpp +241 -0
- vda5050_core-0.1.0rc1/test/execution/test_protocol_adapter.cpp +334 -0
- vda5050_core-0.1.0rc1/test/execution/test_provider.cpp +197 -0
- vda5050_core-0.1.0rc1/test/json_utils/generator/generator.hpp +886 -0
- vda5050_core-0.1.0rc1/test/json_utils/generator/generator_ros2.hpp +904 -0
- vda5050_core-0.1.0rc1/test/json_utils/test_json_utils.cpp +166 -0
- vda5050_core-0.1.0rc1/test/json_utils/test_json_utils_ros2.cpp +169 -0
- vda5050_core-0.1.0rc1/test/layout/data/sample_layout.json +57 -0
- vda5050_core-0.1.0rc1/test/layout/test_unit_graph.cpp +786 -0
- vda5050_core-0.1.0rc1/test/layout/test_unit_loader.cpp +446 -0
- vda5050_core-0.1.0rc1/test/logger/test_unit_default_logger.cpp +36 -0
- vda5050_core-0.1.0rc1/test/logger/test_unit_logger.cpp +126 -0
- vda5050_core-0.1.0rc1/test/master/test_fixture_agv.hpp +172 -0
- vda5050_core-0.1.0rc1/test/master/test_fixture_communication_mqtt.hpp +101 -0
- vda5050_core-0.1.0rc1/test/master/test_integration_heartbeat.cpp +395 -0
- vda5050_core-0.1.0rc1/test/master/test_integration_master_assign_instant_actions.cpp +689 -0
- vda5050_core-0.1.0rc1/test/master/test_integration_master_assign_order.cpp +639 -0
- vda5050_core-0.1.0rc1/test/master/test_integration_master_broker_status.cpp +218 -0
- vda5050_core-0.1.0rc1/test/master/test_integration_master_logic.cpp +477 -0
- vda5050_core-0.1.0rc1/test/master/test_integration_master_mode_handling.cpp +433 -0
- vda5050_core-0.1.0rc1/test/master/test_integration_master_mqtt.cpp +201 -0
- vda5050_core-0.1.0rc1/test/master/test_integration_master_state_timeout.cpp +400 -0
- vda5050_core-0.1.0rc1/test/master/test_integration_master_teardown.cpp +176 -0
- vda5050_core-0.1.0rc1/test/master/test_master_onboard_batch.cpp +224 -0
- vda5050_core-0.1.0rc1/test/master/test_unit_action_factory.cpp +157 -0
- vda5050_core-0.1.0rc1/test/master/test_unit_agv_connection_state.cpp +173 -0
- vda5050_core-0.1.0rc1/test/master/test_unit_agv_lifecycle.cpp +358 -0
- vda5050_core-0.1.0rc1/test/master/test_unit_agv_operational_state.cpp +271 -0
- vda5050_core-0.1.0rc1/test/master/test_unit_agv_order_lifecycle.cpp +89 -0
- vda5050_core-0.1.0rc1/test/master/test_unit_agv_pose_view.cpp +333 -0
- vda5050_core-0.1.0rc1/test/master/test_unit_master_context.cpp +473 -0
- vda5050_core-0.1.0rc1/test/master/test_unit_order_lifecycle_manager.cpp +952 -0
- vda5050_core-0.1.0rc1/test/master/test_unit_order_publisher.cpp +495 -0
- vda5050_core-0.1.0rc1/test/master/test_unit_order_stitcher.cpp +296 -0
- vda5050_core-0.1.0rc1/test/transport/test_integration_paho_mqtt_client.cpp +141 -0
- vda5050_core-0.1.0rc1/test/transport/test_unit_mqtt_client_interface.cpp +91 -0
- vda5050_core-0.1.0rc1/test/validation/test_unit_action_conflict_validator.cpp +391 -0
- vda5050_core-0.1.0rc1/test/validation/test_unit_capability_validator.cpp +438 -0
- vda5050_core-0.1.0rc1/test/validation/test_unit_content_validator.cpp +429 -0
- vda5050_core-0.1.0rc1/test/validation/test_unit_factsheet_alignment.cpp +159 -0
- vda5050_core-0.1.0rc1/test/validation/test_unit_instant_action_mode_validator.cpp +255 -0
- vda5050_core-0.1.0rc1/test/validation/test_unit_order_graph_validator.cpp +387 -0
- vda5050_core-0.1.0rc1/test/validation/test_unit_pre_send_validator.cpp +296 -0
- vda5050_core-0.1.0rc1/test/validation/test_unit_protocol_limits_validator.cpp +239 -0
- vda5050_core-0.1.0rc1/test/validation/test_unit_traversability_validator.cpp +430 -0
- vda5050_core-0.1.0rc1/uv.lock +194 -0
- vda5050_core-0.1.0rc1/vda5050_core-extras.cmake +18 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
2
|
+
Changelog for package vda5050_core
|
|
3
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
4
|
+
|
|
5
|
+
Forthcoming
|
|
6
|
+
-----------
|
|
7
|
+
* Client Library
|
|
8
|
+
|
|
9
|
+
* feat: provide initial adapter interface along with rmf migration guide (`#71 <https://github.com/ros-industrial/vda5050_core/issues/71>`_, `#80 <https://github.com/ros-industrial/vda5050_core/issues/80>`_, `#86 <https://github.com/ros-industrial/vda5050_core/issues/86>`_)
|
|
10
|
+
|
|
11
|
+
* docs: readme and how-to guides for client adapter (`#87 <https://github.com/ros-industrial/vda5050_core/issues/87>`_)
|
|
12
|
+
* feat: add order validator and acceptance strategy (`#31 <https://github.com/ros-industrial/vda5050_core/issues/31>`_, `#63 <https://github.com/ros-industrial/vda5050_core/issues/63>`_)
|
|
13
|
+
* feat: add AGVContext and execution tracking resource (`#62 <https://github.com/ros-industrial/vda5050_core/issues/62>`_, `#66 <https://github.com/ros-industrial/vda5050_core/issues/66>`_)
|
|
14
|
+
* feat: add concrete execution data types (`#53 <https://github.com/ros-industrial/vda5050_core/issues/53>`_)
|
|
15
|
+
* feat: add StateManager (`#14 <https://github.com/ros-industrial/vda5050_core/issues/14>`_)
|
|
16
|
+
|
|
17
|
+
* Master Library
|
|
18
|
+
|
|
19
|
+
* feat: add initial implementation of VDA5050 Master (`#20 <https://github.com/ros-industrial/vda5050_core/issues/20>`_, `#45 <https://github.com/ros-industrial/vda5050_core/issues/45>`_, `#59 <https://github.com/ros-industrial/vda5050_core/issues/59>`_, `#78 <https://github.com/ros-industrial/vda5050_core/issues/78>`_)
|
|
20
|
+
|
|
21
|
+
* feat: add order lifecycle, stitcher, instant actions, mode handling, and pose_view (`#69 <https://github.com/ros-industrial/vda5050_core/issues/69>`_, `#82 <https://github.com/ros-industrial/vda5050_core/issues/82>`_)
|
|
22
|
+
* feat: master-side event detectors and heartbeat hardening (`#58 <https://github.com/ros-industrial/vda5050_core/issues/58>`_)
|
|
23
|
+
* feat: add traversability, action-conflict, factsheet, and mode validators (`#56 <https://github.com/ros-industrial/vda5050_core/issues/56>`_)
|
|
24
|
+
* feat: add schema and pre-send validators (`#55 <https://github.com/ros-industrial/vda5050_core/issues/55>`_)
|
|
25
|
+
|
|
26
|
+
* Core Library
|
|
27
|
+
|
|
28
|
+
* feat(transport): add ProtocolAdapter `#48 <https://github.com/ros-industrial/vda5050_core/issues/48>`_, `#74 <https://github.com/ros-industrial/vda5050_core/issues/74>`_)
|
|
29
|
+
* feat(transport): add MQTT client interface with Paho as an default implementation (`#1 <https://github.com/ros-industrial/vda5050_core/issues/1>`_, `#17 <https://github.com/ros-industrial/vda5050_core/issues/17>`_, `#19 <https://github.com/ros-industrial/vda5050_core/issues/19>`_)
|
|
30
|
+
* feat(types): create C++ structs for VDA5050 2.0.0 spec (`#6 <https://github.com/ros-industrial/vda5050_core/issues/6>`_)
|
|
31
|
+
* feat(serialization): add common (de)serializers for C++ structs and ROS 2 msgs (`#10 <https://github.com/ros-industrial/vda5050_core/issues/10>`_, `#24 <https://github.com/ros-industrial/vda5050_core/issues/24>`_)
|
|
32
|
+
* feat(layout): add LIF topology graph and JSON loader (`#54 <https://github.com/ros-industrial/vda5050_core/issues/54>`_)
|
|
33
|
+
* feat(execution): add execution utilities (`#28 <https://github.com/ros-industrial/vda5050_core/issues/28>`_, `#36 <https://github.com/ros-industrial/vda5050_core/issues/36>`_, `#50 <https://github.com/ros-industrial/vda5050_core/issues/50>`_)
|
|
34
|
+
|
|
35
|
+
* Others
|
|
36
|
+
|
|
37
|
+
* C++ packaging related (`#27 <https://github.com/ros-industrial/vda5050_core/issues/27>`_, `#43 <https://github.com/ros-industrial/vda5050_core/issues/43>`_, `#44 <https://github.com/ros-industrial/vda5050_core/issues/44>`_)
|
|
38
|
+
* CI and Github Actions (`#35 <https://github.com/ros-industrial/vda5050_core/issues/35>`_, `#25 <https://github.com/ros-industrial/vda5050_core/issues/25>`_, `#6 <https://github.com/ros-industrial/vda5050_core/issues/6>`_)
|
|
39
|
+
|
|
40
|
+
* Contributors: Chen Bainian, Eileen Teoh Yan Zhen, John Arman Abogado, Leah, Saurabh Kamat, Lim Yew Hao, Glenn Tan, Shawn Chan, Tinapat Game Limsila
|
|
@@ -0,0 +1,430 @@
|
|
|
1
|
+
cmake_minimum_required(VERSION 3.8)
|
|
2
|
+
project(vda5050_core VERSION 0.0.0)
|
|
3
|
+
|
|
4
|
+
if(NOT CMAKE_CXX_STANDARD)
|
|
5
|
+
set(CMAKE_CXX_STANDARD 17)
|
|
6
|
+
endif()
|
|
7
|
+
|
|
8
|
+
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
|
9
|
+
add_compile_options(-Wall -Wextra -Wpedantic)
|
|
10
|
+
endif()
|
|
11
|
+
|
|
12
|
+
find_package(PahoMqttCpp REQUIRED)
|
|
13
|
+
find_package(fmt REQUIRED)
|
|
14
|
+
find_package(nlohmann_json REQUIRED)
|
|
15
|
+
|
|
16
|
+
include(GNUInstallDirs)
|
|
17
|
+
include(cmake/vda5050_configure_target_alias.cmake)
|
|
18
|
+
|
|
19
|
+
# Types
|
|
20
|
+
add_library(vda5050_types INTERFACE)
|
|
21
|
+
vda5050_configure_target_alias(
|
|
22
|
+
TARGET vda5050_types
|
|
23
|
+
NAMESPACE ${PROJECT_NAME}::
|
|
24
|
+
EXPORT_NAME types
|
|
25
|
+
)
|
|
26
|
+
target_include_directories(vda5050_types
|
|
27
|
+
INTERFACE
|
|
28
|
+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
29
|
+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
# JSON Utils
|
|
33
|
+
option(ENABLE_ROS2 "Enable ROS 2 message support in JSON utilities" OFF)
|
|
34
|
+
if(ENABLE_ROS2)
|
|
35
|
+
message(STATUS "Building vda5050_json_utils with ROS 2 support")
|
|
36
|
+
find_package(vda5050_interfaces REQUIRED)
|
|
37
|
+
else()
|
|
38
|
+
message(STATUS "Building vda5050_json_utils without ROS 2 support")
|
|
39
|
+
endif()
|
|
40
|
+
|
|
41
|
+
add_library(vda5050_json_utils INTERFACE)
|
|
42
|
+
vda5050_configure_target_alias(
|
|
43
|
+
TARGET vda5050_json_utils
|
|
44
|
+
NAMESPACE ${PROJECT_NAME}::
|
|
45
|
+
EXPORT_NAME json_utils
|
|
46
|
+
)
|
|
47
|
+
target_link_libraries(vda5050_json_utils
|
|
48
|
+
INTERFACE
|
|
49
|
+
${PROJECT_NAME}::types
|
|
50
|
+
nlohmann_json::nlohmann_json
|
|
51
|
+
)
|
|
52
|
+
target_include_directories(vda5050_json_utils
|
|
53
|
+
INTERFACE
|
|
54
|
+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
55
|
+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
if(ENABLE_ROS2)
|
|
59
|
+
target_link_libraries(vda5050_json_utils
|
|
60
|
+
INTERFACE
|
|
61
|
+
${vda5050_interfaces_LIBRARIES}
|
|
62
|
+
)
|
|
63
|
+
target_include_directories(vda5050_json_utils
|
|
64
|
+
INTERFACE
|
|
65
|
+
${vda5050_interfaces_INCLUDE_DIRS}
|
|
66
|
+
)
|
|
67
|
+
target_compile_definitions(vda5050_json_utils INTERFACE ENABLE_ROS2)
|
|
68
|
+
endif()
|
|
69
|
+
|
|
70
|
+
# Logger
|
|
71
|
+
add_library(vda5050_logger SHARED src/logger/logger.cpp)
|
|
72
|
+
vda5050_configure_target_alias(
|
|
73
|
+
TARGET vda5050_logger
|
|
74
|
+
NAMESPACE ${PROJECT_NAME}::
|
|
75
|
+
EXPORT_NAME logger
|
|
76
|
+
)
|
|
77
|
+
target_link_libraries(vda5050_logger PUBLIC fmt::fmt)
|
|
78
|
+
target_include_directories(vda5050_logger
|
|
79
|
+
PUBLIC
|
|
80
|
+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
81
|
+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
# Errors
|
|
85
|
+
add_library(vda5050_errors INTERFACE)
|
|
86
|
+
vda5050_configure_target_alias(
|
|
87
|
+
TARGET vda5050_errors
|
|
88
|
+
NAMESPACE ${PROJECT_NAME}::
|
|
89
|
+
EXPORT_NAME errors
|
|
90
|
+
)
|
|
91
|
+
target_include_directories(vda5050_errors
|
|
92
|
+
INTERFACE
|
|
93
|
+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
94
|
+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
# Validation
|
|
98
|
+
file(GLOB_RECURSE validation_srcs "src/validation/*.cpp")
|
|
99
|
+
add_library(vda5050_validation SHARED ${validation_srcs})
|
|
100
|
+
vda5050_configure_target_alias(
|
|
101
|
+
TARGET vda5050_validation
|
|
102
|
+
NAMESPACE ${PROJECT_NAME}::
|
|
103
|
+
EXPORT_NAME validation
|
|
104
|
+
)
|
|
105
|
+
target_link_libraries(vda5050_validation PUBLIC
|
|
106
|
+
${PROJECT_NAME}::types
|
|
107
|
+
${PROJECT_NAME}::errors
|
|
108
|
+
${PROJECT_NAME}::layout
|
|
109
|
+
fmt::fmt
|
|
110
|
+
)
|
|
111
|
+
target_include_directories(vda5050_validation
|
|
112
|
+
PUBLIC
|
|
113
|
+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
114
|
+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
# Transport
|
|
118
|
+
add_library(vda5050_transport SHARED src/transport/paho_mqtt_client.cpp)
|
|
119
|
+
vda5050_configure_target_alias(
|
|
120
|
+
TARGET vda5050_transport
|
|
121
|
+
NAMESPACE ${PROJECT_NAME}::
|
|
122
|
+
EXPORT_NAME transport
|
|
123
|
+
)
|
|
124
|
+
target_link_libraries(vda5050_transport
|
|
125
|
+
PUBLIC
|
|
126
|
+
PahoMqttCpp::paho-mqttpp3
|
|
127
|
+
${PROJECT_NAME}::logger
|
|
128
|
+
)
|
|
129
|
+
target_include_directories(vda5050_transport
|
|
130
|
+
PUBLIC
|
|
131
|
+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
132
|
+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
|
133
|
+
)
|
|
134
|
+
|
|
135
|
+
# Execution
|
|
136
|
+
file(GLOB_RECURSE execution_srcs "src/execution/*.cpp")
|
|
137
|
+
add_library(vda5050_execution SHARED ${execution_srcs})
|
|
138
|
+
vda5050_configure_target_alias(
|
|
139
|
+
TARGET vda5050_execution
|
|
140
|
+
NAMESPACE ${PROJECT_NAME}::
|
|
141
|
+
EXPORT_NAME execution
|
|
142
|
+
)
|
|
143
|
+
target_link_libraries(vda5050_execution
|
|
144
|
+
PUBLIC
|
|
145
|
+
${PROJECT_NAME}::types
|
|
146
|
+
${PROJECT_NAME}::json_utils
|
|
147
|
+
${PROJECT_NAME}::transport
|
|
148
|
+
)
|
|
149
|
+
target_include_directories(vda5050_execution
|
|
150
|
+
PUBLIC
|
|
151
|
+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
152
|
+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
|
153
|
+
)
|
|
154
|
+
|
|
155
|
+
# Client
|
|
156
|
+
file(GLOB_RECURSE client_srcs "src/client/*.cpp")
|
|
157
|
+
add_library(vda5050_client SHARED ${client_srcs})
|
|
158
|
+
vda5050_configure_target_alias(
|
|
159
|
+
TARGET vda5050_client
|
|
160
|
+
NAMESPACE ${PROJECT_NAME}::
|
|
161
|
+
EXPORT_NAME client
|
|
162
|
+
)
|
|
163
|
+
target_link_libraries(vda5050_client
|
|
164
|
+
PUBLIC
|
|
165
|
+
${PROJECT_NAME}::execution
|
|
166
|
+
${PROJECT_NAME}::types
|
|
167
|
+
${PROJECT_NAME}::validation
|
|
168
|
+
${PROJECT_NAME}::logger
|
|
169
|
+
)
|
|
170
|
+
target_include_directories(vda5050_client
|
|
171
|
+
PUBLIC
|
|
172
|
+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
173
|
+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
|
174
|
+
)
|
|
175
|
+
|
|
176
|
+
# Layout (LIF) — neutral namespace; master depends on it
|
|
177
|
+
file(GLOB_RECURSE layout_srcs "src/layout/*.cpp")
|
|
178
|
+
add_library(vda5050_layout SHARED ${layout_srcs})
|
|
179
|
+
vda5050_configure_target_alias(
|
|
180
|
+
TARGET vda5050_layout
|
|
181
|
+
NAMESPACE ${PROJECT_NAME}::
|
|
182
|
+
EXPORT_NAME layout
|
|
183
|
+
)
|
|
184
|
+
target_link_libraries(vda5050_layout
|
|
185
|
+
PUBLIC
|
|
186
|
+
${PROJECT_NAME}::types
|
|
187
|
+
${PROJECT_NAME}::json_utils
|
|
188
|
+
)
|
|
189
|
+
target_include_directories(vda5050_layout
|
|
190
|
+
PUBLIC
|
|
191
|
+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
192
|
+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
|
193
|
+
)
|
|
194
|
+
|
|
195
|
+
# Master
|
|
196
|
+
file(GLOB_RECURSE master_srcs "src/master/*.cpp")
|
|
197
|
+
add_library(vda5050_master SHARED ${master_srcs})
|
|
198
|
+
vda5050_configure_target_alias(
|
|
199
|
+
TARGET vda5050_master
|
|
200
|
+
NAMESPACE ${PROJECT_NAME}::
|
|
201
|
+
EXPORT_NAME master
|
|
202
|
+
)
|
|
203
|
+
target_link_libraries(vda5050_master
|
|
204
|
+
PUBLIC
|
|
205
|
+
${PROJECT_NAME}::types
|
|
206
|
+
${PROJECT_NAME}::json_utils
|
|
207
|
+
${PROJECT_NAME}::transport
|
|
208
|
+
${PROJECT_NAME}::execution
|
|
209
|
+
${PROJECT_NAME}::validation
|
|
210
|
+
${PROJECT_NAME}::errors
|
|
211
|
+
${PROJECT_NAME}::layout
|
|
212
|
+
)
|
|
213
|
+
target_include_directories(vda5050_master
|
|
214
|
+
PUBLIC
|
|
215
|
+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
216
|
+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
|
217
|
+
)
|
|
218
|
+
|
|
219
|
+
option(BUILD_PYTHON "Build Python bindings" ON)
|
|
220
|
+
|
|
221
|
+
if(BUILD_PYTHON)
|
|
222
|
+
add_subdirectory(python)
|
|
223
|
+
endif()
|
|
224
|
+
|
|
225
|
+
install(
|
|
226
|
+
DIRECTORY include/${PROJECT_NAME}/
|
|
227
|
+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}
|
|
228
|
+
)
|
|
229
|
+
|
|
230
|
+
install(
|
|
231
|
+
TARGETS
|
|
232
|
+
vda5050_types
|
|
233
|
+
vda5050_json_utils
|
|
234
|
+
vda5050_logger
|
|
235
|
+
vda5050_errors
|
|
236
|
+
vda5050_validation
|
|
237
|
+
vda5050_transport
|
|
238
|
+
vda5050_execution
|
|
239
|
+
vda5050_client
|
|
240
|
+
vda5050_layout
|
|
241
|
+
vda5050_master
|
|
242
|
+
EXPORT export_${PROJECT_NAME}
|
|
243
|
+
LIBRARY DESTINATION lib
|
|
244
|
+
ARCHIVE DESTINATION lib
|
|
245
|
+
RUNTIME DESTINATION bin
|
|
246
|
+
)
|
|
247
|
+
|
|
248
|
+
# Export the targets and generate a plain CMake package config so consumers can
|
|
249
|
+
# `find_package(vda5050_core)` and link `vda5050_core::<component>`.
|
|
250
|
+
install(EXPORT export_${PROJECT_NAME}
|
|
251
|
+
NAMESPACE ${PROJECT_NAME}::
|
|
252
|
+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
|
|
253
|
+
FILE ${PROJECT_NAME}Targets.cmake
|
|
254
|
+
)
|
|
255
|
+
|
|
256
|
+
option(BUILD_EXAMPLES "Build examples" ON)
|
|
257
|
+
|
|
258
|
+
if(BUILD_EXAMPLES)
|
|
259
|
+
add_subdirectory(examples)
|
|
260
|
+
endif()
|
|
261
|
+
|
|
262
|
+
option(BUILD_TESTING "Build tests" ON)
|
|
263
|
+
|
|
264
|
+
if(BUILD_TESTING)
|
|
265
|
+
enable_testing()
|
|
266
|
+
|
|
267
|
+
# In ROS2 environment, keep the ament linters and register tests with
|
|
268
|
+
# the ament backends (selected inside vda5050_add_gtest/gmock by the
|
|
269
|
+
# ament_cmake_FOUND variables set here).
|
|
270
|
+
find_package(ament_cmake QUIET)
|
|
271
|
+
if(ament_cmake_FOUND)
|
|
272
|
+
find_package(ament_cmake_gtest REQUIRED)
|
|
273
|
+
find_package(ament_cmake_gmock REQUIRED)
|
|
274
|
+
|
|
275
|
+
include(cmake/vda5050_ament_lint_common.cmake)
|
|
276
|
+
vda5050_ament_lint_common()
|
|
277
|
+
endif()
|
|
278
|
+
|
|
279
|
+
include(cmake/vda5050_add_gmock.cmake)
|
|
280
|
+
include(cmake/vda5050_add_gtest.cmake)
|
|
281
|
+
|
|
282
|
+
set(json_tests test/json_utils/test_json_utils.cpp)
|
|
283
|
+
if(ENABLE_ROS2)
|
|
284
|
+
list(APPEND json_tests test/json_utils/test_json_utils_ros2.cpp)
|
|
285
|
+
endif()
|
|
286
|
+
vda5050_add_gmock(test_json_utils ${json_tests})
|
|
287
|
+
target_link_libraries(test_json_utils vda5050_core::json_utils)
|
|
288
|
+
|
|
289
|
+
vda5050_add_gmock(test_logger
|
|
290
|
+
test/logger/test_unit_default_logger.cpp
|
|
291
|
+
test/logger/test_unit_logger.cpp
|
|
292
|
+
)
|
|
293
|
+
target_link_libraries(test_logger vda5050_core::logger)
|
|
294
|
+
|
|
295
|
+
vda5050_add_gmock(test_transport
|
|
296
|
+
test/transport/test_unit_mqtt_client_interface.cpp
|
|
297
|
+
test/transport/test_integration_paho_mqtt_client.cpp
|
|
298
|
+
)
|
|
299
|
+
target_link_libraries(test_transport vda5050_core::transport)
|
|
300
|
+
|
|
301
|
+
vda5050_add_gmock(test_client
|
|
302
|
+
test/client/test_order_types.cpp
|
|
303
|
+
test/client/test_order_execution_resource.cpp
|
|
304
|
+
test/client/test_agv_context.cpp
|
|
305
|
+
test/client/test_order_validator.cpp
|
|
306
|
+
test/client/test_order_acceptance.cpp
|
|
307
|
+
test/client/test_execution.cpp
|
|
308
|
+
test/client/test_transformation.cpp
|
|
309
|
+
test/client/test_state_manager.cpp
|
|
310
|
+
test/client/test_adapter_lifecycle.cpp
|
|
311
|
+
test/client/test_adapter_navigation.cpp
|
|
312
|
+
test/client/test_adapter_order.cpp
|
|
313
|
+
test/client/test_adapter_action.cpp
|
|
314
|
+
test/client/test_adapter_localization.cpp
|
|
315
|
+
)
|
|
316
|
+
|
|
317
|
+
target_link_libraries(test_client
|
|
318
|
+
vda5050_core::client
|
|
319
|
+
)
|
|
320
|
+
|
|
321
|
+
vda5050_add_gmock(test_execution
|
|
322
|
+
test/execution/test_engine.cpp
|
|
323
|
+
test/execution/test_event_queue.cpp
|
|
324
|
+
test/execution/test_handler.cpp
|
|
325
|
+
test/execution/test_protocol_adapter.cpp
|
|
326
|
+
test/execution/test_provider.cpp
|
|
327
|
+
)
|
|
328
|
+
target_link_libraries(test_execution vda5050_core::execution)
|
|
329
|
+
|
|
330
|
+
vda5050_add_gmock(test_master_comm
|
|
331
|
+
test/master/test_integration_heartbeat.cpp
|
|
332
|
+
test/master/test_integration_master_logic.cpp
|
|
333
|
+
test/master/test_integration_master_mqtt.cpp
|
|
334
|
+
test/master/test_integration_master_teardown.cpp
|
|
335
|
+
)
|
|
336
|
+
target_link_libraries(test_master_comm vda5050_core::master)
|
|
337
|
+
|
|
338
|
+
vda5050_add_gmock(test_master_integration
|
|
339
|
+
test/master/test_integration_master_assign_order.cpp
|
|
340
|
+
test/master/test_integration_master_assign_instant_actions.cpp
|
|
341
|
+
test/master/test_integration_master_mode_handling.cpp
|
|
342
|
+
test/master/test_integration_master_state_timeout.cpp
|
|
343
|
+
test/master/test_integration_master_broker_status.cpp
|
|
344
|
+
test/master/test_master_onboard_batch.cpp
|
|
345
|
+
)
|
|
346
|
+
target_link_libraries(test_master_integration vda5050_core::master)
|
|
347
|
+
|
|
348
|
+
vda5050_add_gmock(test_master_agv
|
|
349
|
+
test/master/test_unit_agv_connection_state.cpp
|
|
350
|
+
test/master/test_unit_agv_operational_state.cpp
|
|
351
|
+
test/master/test_unit_agv_lifecycle.cpp
|
|
352
|
+
test/master/test_unit_agv_order_lifecycle.cpp
|
|
353
|
+
test/master/test_unit_agv_pose_view.cpp
|
|
354
|
+
)
|
|
355
|
+
target_link_libraries(test_master_agv vda5050_core::master)
|
|
356
|
+
|
|
357
|
+
vda5050_add_gmock(test_master_context
|
|
358
|
+
test/master/test_unit_master_context.cpp
|
|
359
|
+
)
|
|
360
|
+
target_link_libraries(test_master_context vda5050_core::master)
|
|
361
|
+
|
|
362
|
+
vda5050_add_gmock(test_validation
|
|
363
|
+
test/validation/test_unit_content_validator.cpp
|
|
364
|
+
test/validation/test_unit_order_graph_validator.cpp
|
|
365
|
+
test/validation/test_unit_pre_send_validator.cpp
|
|
366
|
+
test/validation/test_unit_traversability_validator.cpp
|
|
367
|
+
test/validation/test_unit_capability_validator.cpp
|
|
368
|
+
test/validation/test_unit_protocol_limits_validator.cpp
|
|
369
|
+
test/validation/test_unit_action_conflict_validator.cpp
|
|
370
|
+
test/validation/test_unit_instant_action_mode_validator.cpp
|
|
371
|
+
test/validation/test_unit_factsheet_alignment.cpp
|
|
372
|
+
)
|
|
373
|
+
target_link_libraries(test_validation vda5050_core::validation)
|
|
374
|
+
|
|
375
|
+
vda5050_add_gmock(test_layout_loader
|
|
376
|
+
test/layout/test_unit_loader.cpp
|
|
377
|
+
)
|
|
378
|
+
target_link_libraries(test_layout_loader vda5050_core::layout)
|
|
379
|
+
target_compile_definitions(test_layout_loader PRIVATE
|
|
380
|
+
VDA5050_CORE__SAMPLE_LAYOUT_PATH="${CMAKE_CURRENT_SOURCE_DIR}/test/layout/data/sample_layout.json")
|
|
381
|
+
|
|
382
|
+
vda5050_add_gmock(test_layout_graph
|
|
383
|
+
test/layout/test_unit_graph.cpp
|
|
384
|
+
)
|
|
385
|
+
target_link_libraries(test_layout_graph vda5050_core::layout)
|
|
386
|
+
target_compile_definitions(test_layout_graph PRIVATE
|
|
387
|
+
VDA5050_CORE__SAMPLE_LAYOUT_PATH="${CMAKE_CURRENT_SOURCE_DIR}/test/layout/data/sample_layout.json")
|
|
388
|
+
|
|
389
|
+
vda5050_add_gmock(test_master_order
|
|
390
|
+
test/master/test_unit_order_publisher.cpp
|
|
391
|
+
test/master/test_unit_order_lifecycle_manager.cpp
|
|
392
|
+
test/master/test_unit_order_stitcher.cpp
|
|
393
|
+
)
|
|
394
|
+
target_link_libraries(test_master_order vda5050_core::master)
|
|
395
|
+
|
|
396
|
+
vda5050_add_gmock(test_master_actions
|
|
397
|
+
test/master/test_unit_action_factory.cpp
|
|
398
|
+
)
|
|
399
|
+
target_link_libraries(test_master_actions vda5050_core::master)
|
|
400
|
+
endif()
|
|
401
|
+
|
|
402
|
+
include(CMakePackageConfigHelpers)
|
|
403
|
+
configure_package_config_file(
|
|
404
|
+
${CMAKE_CURRENT_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake.in
|
|
405
|
+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
|
|
406
|
+
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
|
|
407
|
+
)
|
|
408
|
+
write_basic_package_version_file(
|
|
409
|
+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
|
|
410
|
+
VERSION ${PROJECT_VERSION}
|
|
411
|
+
COMPATIBILITY SameMinorVersion
|
|
412
|
+
)
|
|
413
|
+
|
|
414
|
+
# Install linter macro
|
|
415
|
+
install(FILES
|
|
416
|
+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
|
|
417
|
+
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
|
|
418
|
+
cmake/vda5050_ament_lint_common.cmake
|
|
419
|
+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
|
|
420
|
+
)
|
|
421
|
+
|
|
422
|
+
# Export ament index path
|
|
423
|
+
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/share/ament_index/resource_index/packages/${PROJECT_NAME} "")
|
|
424
|
+
install(
|
|
425
|
+
FILES ${CMAKE_CURRENT_BINARY_DIR}/share/ament_index/resource_index/packages/${PROJECT_NAME}
|
|
426
|
+
DESTINATION share/ament_index/resource_index/packages
|
|
427
|
+
)
|
|
428
|
+
|
|
429
|
+
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/share/${PROJECT_NAME}/hook/ament_prefix_path.dsv "prepend-non-duplicate;AMENT_PREFIX_PATH;")
|
|
430
|
+
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/share/${PROJECT_NAME}/hook/ament_prefix_path.dsv DESTINATION share/${PROJECT_NAME}/hook)
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: vda5050_core
|
|
3
|
+
Version: 0.1.0rc1
|
|
4
|
+
Summary: Tools for VDA5050 development workflows
|
|
5
|
+
Author-Email: Chen Bainian <chen_bainian@a-star.edu.sg>, Saurabh Kamat <saurabh_kamat@a-star.edu.sg>, Tinapat Game Limsila <limsila.limsila@gmail.com>
|
|
6
|
+
License-Expression: Apache-2.0
|
|
7
|
+
Classifier: Development Status :: 4 - Beta
|
|
8
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
14
|
+
Requires-Python: >=3.10
|
|
15
|
+
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Copyright (C) 2026 ROS-Industrial Consortium Asia Pacific
|
|
2
|
+
# Advanced Remanufacturing and Technology Centre
|
|
3
|
+
# A*STAR Research Entities (Co. Registration No. 199702110H)
|
|
4
|
+
#
|
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
# you may not use this file except in compliance with the License.
|
|
7
|
+
# You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
16
|
+
|
|
17
|
+
#
|
|
18
|
+
# Dual-mode gmock test registration for VDA5050.
|
|
19
|
+
#
|
|
20
|
+
# Drop-in replacement for ament_add_gmock(<target> <sources...>): link the test
|
|
21
|
+
# against its libraries with a normal target_link_libraries() call afterwards.
|
|
22
|
+
#
|
|
23
|
+
# When ament_cmake_gmock is available (the caller is expected to have run
|
|
24
|
+
# find_package(ament_cmake_gmock) so ament_cmake_gmock_FOUND is set), tests
|
|
25
|
+
# register via ament_add_gmock for `colcon test`. Otherwise they fall back to
|
|
26
|
+
# upstream GoogleTest (gmock + gtest + main via GTest::gmock_main).
|
|
27
|
+
#
|
|
28
|
+
# Each executable is registered as a single ctest entry (matching the ament
|
|
29
|
+
# behaviour), so the gtest cases within it run serially -- important for the
|
|
30
|
+
# integration tests that share a single MQTT broker.
|
|
31
|
+
#
|
|
32
|
+
# vda5050_add_gmock(<target> <source> [<source> ...])
|
|
33
|
+
#
|
|
34
|
+
function(vda5050_add_gmock target)
|
|
35
|
+
if(ament_cmake_gmock_FOUND)
|
|
36
|
+
ament_add_gmock(${target} ${ARGN})
|
|
37
|
+
else()
|
|
38
|
+
# Find GoogleTest on first use.
|
|
39
|
+
if(NOT GTest_FOUND)
|
|
40
|
+
find_package(GTest REQUIRED)
|
|
41
|
+
endif()
|
|
42
|
+
add_executable(${target} ${ARGN})
|
|
43
|
+
target_link_libraries(${target} GTest::gmock_main)
|
|
44
|
+
add_test(NAME ${target} COMMAND ${target})
|
|
45
|
+
endif()
|
|
46
|
+
endfunction()
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Copyright (C) 2026 ROS-Industrial Consortium Asia Pacific
|
|
2
|
+
# Advanced Remanufacturing and Technology Centre
|
|
3
|
+
# A*STAR Research Entities (Co. Registration No. 199702110H)
|
|
4
|
+
#
|
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
# you may not use this file except in compliance with the License.
|
|
7
|
+
# You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
16
|
+
|
|
17
|
+
#
|
|
18
|
+
# Dual-mode gtest test registration for VDA5050.
|
|
19
|
+
#
|
|
20
|
+
# Drop-in replacement for ament_add_gtest(<target> <sources...>): link the test
|
|
21
|
+
# against its libraries with a normal target_link_libraries() call afterwards.
|
|
22
|
+
#
|
|
23
|
+
# When ament_cmake_gtest is available (the caller is expected to have run
|
|
24
|
+
# find_package(ament_cmake_gtest) so ament_cmake_gtest_FOUND is set), tests
|
|
25
|
+
# register via ament_add_gtest for `colcon test`. Otherwise they fall back to
|
|
26
|
+
# upstream GoogleTest (gtest + main via GTest::gtest_main).
|
|
27
|
+
#
|
|
28
|
+
# Each executable is registered as a single ctest entry (matching the ament
|
|
29
|
+
# behaviour), so the gtest cases within it run serially -- important for the
|
|
30
|
+
# integration tests that share a single MQTT broker.
|
|
31
|
+
#
|
|
32
|
+
# vda5050_add_gtest(<target> <source> [<source> ...])
|
|
33
|
+
#
|
|
34
|
+
function(vda5050_add_gtest target)
|
|
35
|
+
if(ament_cmake_gtest_FOUND)
|
|
36
|
+
ament_add_gtest(${target} ${ARGN})
|
|
37
|
+
else()
|
|
38
|
+
# Find GoogleTest on first use.
|
|
39
|
+
if(NOT GTest_FOUND)
|
|
40
|
+
find_package(GTest REQUIRED)
|
|
41
|
+
endif()
|
|
42
|
+
add_executable(${target} ${ARGN})
|
|
43
|
+
target_link_libraries(${target} GTest::gtest_main)
|
|
44
|
+
add_test(NAME ${target} COMMAND ${target})
|
|
45
|
+
endif()
|
|
46
|
+
endfunction()
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Copyright (C) 2026 ROS-Industrial Consortium Asia Pacific
|
|
2
|
+
# Advanced Remanufacturing and Technology Centre
|
|
3
|
+
# A*STAR Research Entities (Co. Registration No. 199702110H)
|
|
4
|
+
#
|
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
# you may not use this file except in compliance with the License.
|
|
7
|
+
# You may obtain a copy of the License at
|
|
8
|
+
#
|
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
#
|
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
# See the License for the specific language governing permissions and
|
|
15
|
+
# limitations under the License.
|
|
16
|
+
|
|
17
|
+
#
|
|
18
|
+
# Run common ament linters for VDA5050
|
|
19
|
+
#
|
|
20
|
+
|
|
21
|
+
function(vda5050_ament_lint_common)
|
|
22
|
+
find_package(ament_cmake_cppcheck REQUIRED)
|
|
23
|
+
ament_cppcheck()
|
|
24
|
+
|
|
25
|
+
find_package(ament_cmake_cpplint REQUIRED)
|
|
26
|
+
set(cpplint_filters
|
|
27
|
+
"-whitespace/newline"
|
|
28
|
+
)
|
|
29
|
+
ament_cpplint(FILTERS "${cpplint_filters}")
|
|
30
|
+
|
|
31
|
+
# Only run ament_clang_format for 16.0.0 and higher
|
|
32
|
+
find_program(CLANG_FORMAT_EXECUTABLE NAMES clang-format)
|
|
33
|
+
if(CLANG_FORMAT_EXECUTABLE)
|
|
34
|
+
execute_process(
|
|
35
|
+
COMMAND ${CLANG_FORMAT_EXECUTABLE} --version
|
|
36
|
+
OUTPUT_VARIABLE CLANG_FORMAT_VERSION_OUTPUT
|
|
37
|
+
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
# Parse the version number from the output
|
|
41
|
+
# The output typically looks something like: "<platform> clang-format version 17.0.6-<platform-version>"
|
|
42
|
+
string(REGEX REPLACE ".*version \([0-9.]\+\).*" "\\1" CLANG_FORMAT_VERSION "${CLANG_FORMAT_VERSION_OUTPUT}")
|
|
43
|
+
|
|
44
|
+
message(STATUS "clang-format version: ${CLANG_FORMAT_VERSION}")
|
|
45
|
+
if(CLANG_FORMAT_VERSION VERSION_GREATER_EQUAL "16.0.0")
|
|
46
|
+
find_package(ament_cmake_clang_format REQUIRED)
|
|
47
|
+
ament_clang_format(
|
|
48
|
+
CONFIG_FILE "${CMAKE_CURRENT_SOURCE_DIR}/../.clang-format"
|
|
49
|
+
)
|
|
50
|
+
endif()
|
|
51
|
+
endif()
|
|
52
|
+
|
|
53
|
+
# Disable copyright check for older ament_copyright versions
|
|
54
|
+
find_package(ament_cmake_copyright 0.13.3 QUIET)
|
|
55
|
+
if(ament_cmake_copyright_FOUND)
|
|
56
|
+
ament_copyright()
|
|
57
|
+
endif()
|
|
58
|
+
endfunction()
|