Skip to content

refactor(gateway): triggers work on any host of the core - #763

Open
bburda wants to merge 5 commits into
feat/gateway-core-11-core-host-wiringfrom
feat/gateway-core-12-core-triggers
Open

bburda wants to merge 5 commits into
feat/gateway-core-11-core-host-wiringfrom
feat/gateway-core-12-core-triggers

Conversation

@bburda

@bburda bburda commented Oct 26, 2026

Copy link
Copy Markdown
Collaborator

Pull Request

Summary

make_trigger_host(config, notifier, conditions, wiring) builds the trigger store and manager from TriggerHostConfig (the triggers.* names and defaults). Fault-event triggers are fed by TriggerFaultFeed from a FaultEventSource. Data triggers on a host without topics are fed by PollingDataItemSource, which reads the item the way the data route does and hands the trigger the data value, as a topic trigger gets the message. The node keeps its topic path and its behaviour.


Issue


Type

  • Bug fix
  • New feature or tests
  • Breaking change
  • Documentation only

Testing

  • scripts/check_cores_without_ros/run.sh: a fault trigger fires on a confirmation from a shared event source while the SSE stream still gets it, a data trigger on plugin data fires once when the value enters the range, and the trigger limit answers 503.
  • ./scripts/test.sh integ --packages-select ros2_medkit_integration_tests covers the node path (test_triggers_*, test_fault_triggers_api).

Checklist

  • Breaking changes are clearly described (and announced in docs / changelog if needed)
  • Tests were added or updated if needed
  • Docs were updated if behavior or public API changed

A host builds the trigger store and manager from a neutral config, feeds fault triggers from a FaultEventSource and reads data items of plugin-served entities by polling. The ROS 2 node uses the same builder and keeps its topic transport and fault subscriber as adapters.
The check program creates a fault trigger and a data trigger over HTTP on a host with one fault event source and a plugin-served data item, and checks the trigger count limit. The docs describe the builder, the sources and the new host-only polling interval.
…r does

The polling source delivers the data field of the item body, the same value a topic trigger gets, so one trigger path works on both hosts. A body with no data field is delivered whole.
@bburda bburda self-assigned this Oct 26, 2026
@bburda
bburda added this pull request to stack #759 October 26, 2026 19:47

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant