ros action feedback and status support in cxx api of dora#1148
ros action feedback and status support in cxx api of dora#1148bobdingAI merged 3 commits intodora-rs:mainfrom
Conversation
|
I think this pr is ready to merge. |
There was a problem hiding this comment.
Pull Request Overview
This PR adds support for ROS action feedback and status handling in the C++ API of dora, extending beyond the existing response-only support. The changes enable action clients to properly receive and process feedback and status updates during action execution.
Key Changes:
- Added custom type converters for action-related message types (GoalStatus, GoalInfo, UUID, Time)
- Separated action client event streams into three distinct channels: response, feedback, and status
- Introduced dedicated matcher functions to identify each stream type in combined events
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| libraries/extensions/ros2-bridge/msg-gen/src/types/message.rs | Added From trait implementations for action_msgs types and builtin_interfaces::Time to enable conversion between ros2_client and FFI types |
| libraries/extensions/ros2-bridge/msg-gen/src/types/action.rs | Refactored action client to support separate feedback and status streams alongside the existing response stream, with corresponding matcher functions |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| tracing::warn!("rcl_interfaces::Time conversion overflow"); | ||
| i32::MAX | ||
| } else if quot < (i32::MIN as i64) { | ||
| tracing::warn!("rcl_interfaces::Time conversion underflow"); |
There was a problem hiding this comment.
The warning messages reference 'rcl_interfaces::Time' but the actual type being converted is 'builtin_interfaces::Time' as shown in the function signature and struct name.
| let quot_sat = if quot >= (i32::MIN as i64) { | ||
| quot as i32 | ||
| } else { | ||
| tracing::warn!("rcl_interfaces::Time conversion underflow"); |
There was a problem hiding this comment.
The warning messages reference 'rcl_interfaces::Time' but the actual type being converted is 'builtin_interfaces::Time' as shown in the function signature and struct name.
| response_id: response_id, | ||
| feedback_id: feedback_id, | ||
| status_id: status_id, |
There was a problem hiding this comment.
Redundant field initialization syntax. Since the variable names match the field names, these can use the shorthand syntax: response_id, feedback_id, status_id.
| response_id: response_id, | |
| feedback_id: feedback_id, | |
| status_id: status_id, | |
| response_id, | |
| feedback_id, | |
| status_id, |
No description provided.