Repository navigation
Conversation
A program that hosts the core builds a plugin context from GatewayServices and gives it to PluginManager::set_context(). Its node() is null, and the ROS 2 node derives its context from the same class and overrides only node().
A host builds the threshold-rule engine and its evaluation thread from a config with the fault_triggers.* names and defaults. The ROS 2 node uses the same builder and keeps its gate on the parameter and on loaded plugins.
The warning for a data trigger whose resource path has no source now reads the same on a host without topics. The status and the error code of the responses do not change.
docker build -q hides the compiler output behind an exit code. When it fails, run.sh now repeats the build with the full log.
…thout ROS The check loads a plugin built without ROS through the core PluginManager and drives the fault-trigger engine through the host's single fault event source. The Dockerfile builds with four jobs and checks the plugin for rclcpp too.
…gger engine The gateway README and the design index describe the two builders and the null node of a host without ROS. The check README lists what the new check covers.
…ore-13-core-plugin-context # Conflicts: # src/ros2_medkit_gateway/README.md
The context takes a nullable GatewayServices pointer, so make_gateway_plugin_context(nullptr, ...) no longer binds a reference to a null node. Without services it answers no entities and locking as disabled, and capabilities and samplers still work.
…ore-13-core-plugin-context # Conflicts: # src/ros2_medkit_gateway/src/plugins/plugin_context.cpp
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request
Summary
make_core_plugin_context(services, wiring)builds the context plugins get fromGatewayServices. On a host without a ROS nodenode()is null; the node's context derives from it and only adds the node. The plugin API version does not change.make_fault_trigger_host(config, wiring)builds the threshold-rule engine behind/apps/{id}/fault-triggersand its loop fromFaultTriggerHostConfig.Also:
scripts/check_cores_without_ros/run.shprints the build log when the build fails, and the notice for an unresolved data point no longer names a ROS 2 topic.Issue
Type
Testing
scripts/check_cores_without_ros/run.shbuilds a plugin without ROS, loads it through the corePluginManager, and checks its routes, its data provider and the services it reaches. A fault-trigger rule reports a fault through the host's fault manager, and the SSE stream and the freeze-frame capture get it../scripts/test.shfor the plugin and fault-trigger tests,./scripts/test.sh integ --packages-select ros2_medkit_integration_tests.Checklist