Skip to content

Enabling Event Payloads for Action Results - sm_nav2_unit_test_1 compilation warnings#688

Merged
brettpac merged 1 commit intojazzyfrom
brettpac_branch
Dec 21, 2025
Merged

Enabling Event Payloads for Action Results - sm_nav2_unit_test_1 compilation warnings#688
brettpac merged 1 commit intojazzyfrom
brettpac_branch

Conversation

@brettpac
Copy link
Collaborator

Commit Summary: Enable Event Payloads for Action Results

Problem

Building sm_nav2_unit_test_1 produced 5 compiler warnings:

  • Unused variable actionClient in cl_nav2z.hpp:42
  • Unused parameter result in cp_nav2_action_interface.hpp:124,130,136
  • Unused parameter feedback in cp_nav2_action_interface.hpp:142

Root Cause

Action events (EvActionSucceeded, EvActionAborted, EvActionCancelled) had their
resultMessage fields commented out. The event posting lambdas received result
and feedback data but discarded it, creating unused parameter warnings.

Solution

Instead of suppressing the warnings, we enabled event payloads to align with
the intended SMACC2 architecture where events can carry result data.

Files Modified

smacc2/include/smacc2/smacc_default_events.hpp

  • Uncommented resultMessage field in EvActionResult (line 50)
  • Uncommented resultMessage field in EvActionSucceeded (line 56)
  • Uncommented resultMessage field in EvActionAborted (line 74)
  • Uncommented resultMessage field in EvActionCancelled (line 92)

smacc2/include/smacc2/client_core_components/cp_action_client.hpp

  • Modified postResultEvent() to populate ev->resultMessage = result
  • Changed parameter from const WrappedResult & /* result */ to use result

cl_nav2z/include/cl_nav2z/components/nav2_action_interface/cp_nav2_action_interface.hpp

  • Added ev->resultMessage = result in postNavigationSuccessEvent lambda
  • Added ev->resultMessage = result in postNavigationAbortedEvent lambda
  • Added ev->resultMessage = result in postNavigationCancelledEvent lambda
  • Uncommented ev->feedbackMessage = feedback in postNavigationFeedbackEvent
  • Fixed feedback event template: EvActionFeedback<Feedback, TOrthogonal>

cl_nav2z/include/cl_nav2z/cl_nav2z.hpp

  • Added type aliases required for event system:
    • ActionType = nav2_msgs::action::NavigateToPose
    • GoalHandle = rclcpp_action::ClientGoalHandle
    • WrappedResult = typename GoalHandle::WrappedResult
    • Feedback = typename ActionType::Feedback
  • Removed unused variable assignment from createComponent call

Architectural Impact

  • Events now carry WrappedResult containing goal_id, result code, and result data
  • State reactors can access result data directly from events
  • Aligns CpNav2ActionInterface with core CpActionClient pattern
  • SharedPtr in WrappedResult ensures safe memory management across threads

Packages Affected

  • smacc2 (framework core)
  • cl_nav2z (client library)
  • All state machines using cl_nav2z require rebuild

@brettpac brettpac merged commit c3e1059 into jazzy Dec 21, 2025
5 checks passed
@brettpac brettpac deleted the brettpac_branch branch December 21, 2025 22:00
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