diff --git a/rcljava/src/test/java/org/ros2/rcljava/action/MockActionClient.java b/rcljava/src/test/java/org/ros2/rcljava/action/MockActionClient.java index 72f0e7e4..3ff19de4 100644 --- a/rcljava/src/test/java/org/ros2/rcljava/action/MockActionClient.java +++ b/rcljava/src/test/java/org/ros2/rcljava/action/MockActionClient.java @@ -26,15 +26,15 @@ import org.ros2.rcljava.subscription.Subscription; public class MockActionClient { - class FeedbackCallback implements Consumer { - public List feedbackReceived; + class FeedbackCallback implements Consumer { + public List feedbackReceived; public FeedbackCallback() { feedbackReceived = Collections.synchronizedList( - new ArrayList()); + new ArrayList()); } - public void accept(final test_msgs.action.Fibonacci_Feedback feedback) { + public void accept(final test_msgs.action.Fibonacci_FeedbackMessage feedback) { this.feedbackReceived.add(feedback); } } @@ -56,7 +56,7 @@ public synchronized void accept(final action_msgs.msg.GoalStatusArray statusArra public Client cancelGoalClient; public FeedbackCallback feedbackCallback; public StatusCallback statusCallback; - public Subscription feedbackSubscription; + public Subscription feedbackSubscription; public Subscription statusSubscription; public MockActionClient(Node node, String actionName) throws IllegalAccessException, NoSuchFieldException { @@ -70,8 +70,8 @@ public MockActionClient(Node node, String actionName) throws IllegalAccessExcept // Create mock subscriptions that make up an action client feedbackCallback = new FeedbackCallback(); statusCallback = new StatusCallback(); - feedbackSubscription = node.createSubscription( - test_msgs.action.Fibonacci_Feedback.class, + feedbackSubscription = node.createSubscription( + test_msgs.action.Fibonacci_FeedbackMessage.class, actionName + "/_action/feedback", feedbackCallback); statusSubscription = node.createSubscription( diff --git a/rosidl_generator_java/cmake/rosidl_generator_java_generate_interfaces.cmake b/rosidl_generator_java/cmake/rosidl_generator_java_generate_interfaces.cmake index bc624c9a..92caebdf 100644 --- a/rosidl_generator_java/cmake/rosidl_generator_java_generate_interfaces.cmake +++ b/rosidl_generator_java/cmake/rosidl_generator_java_generate_interfaces.cmake @@ -82,6 +82,7 @@ foreach(_abs_idl_file ${rosidl_generate_interfaces_ABS_IDL_FILES}) "${_output_path}/${_parent_folder}/${_idl_name}_Goal.java" "${_output_path}/${_parent_folder}/${_idl_name}_Result.java" "${_output_path}/${_parent_folder}/${_idl_name}_Feedback.java" + "${_output_path}/${_parent_folder}/${_idl_name}_FeedbackMessage.java" "${_output_path}/${_parent_folder}/${_idl_name}_SendGoal.java" "${_output_path}/${_parent_folder}/${_idl_name}_SendGoal_Request.java" "${_output_path}/${_parent_folder}/${_idl_name}_SendGoal_Response.java" @@ -93,6 +94,7 @@ foreach(_abs_idl_file ${rosidl_generate_interfaces_ABS_IDL_FILES}) list(APPEND _generated_extension_${_typesupport_impl}_files "${_output_path}/${_parent_folder}/${_idl_name}_Goal.ep.${_typesupport_impl}.cpp") list(APPEND _generated_extension_${_typesupport_impl}_files "${_output_path}/${_parent_folder}/${_idl_name}_Result.ep.${_typesupport_impl}.cpp") list(APPEND _generated_extension_${_typesupport_impl}_files "${_output_path}/${_parent_folder}/${_idl_name}_Feedback.ep.${_typesupport_impl}.cpp") + list(APPEND _generated_extension_${_typesupport_impl}_files "${_output_path}/${_parent_folder}/${_idl_name}_FeedbackMessage.ep.${_typesupport_impl}.cpp") list(APPEND _generated_extension_${_typesupport_impl}_files "${_output_path}/${_parent_folder}/${_idl_name}_SendGoal.ep.${_typesupport_impl}.cpp") list(APPEND _generated_extension_${_typesupport_impl}_files "${_output_path}/${_parent_folder}/${_idl_name}_SendGoal_Request.ep.${_typesupport_impl}.cpp") list(APPEND _generated_extension_${_typesupport_impl}_files "${_output_path}/${_parent_folder}/${_idl_name}_SendGoal_Response.ep.${_typesupport_impl}.cpp") diff --git a/rosidl_generator_java/resource/action.java.em b/rosidl_generator_java/resource/action.java.em index cb6c1dd3..2656f192 100644 --- a/rosidl_generator_java/resource/action.java.em +++ b/rosidl_generator_java/resource/action.java.em @@ -13,6 +13,7 @@ type_name = action.namespaced_type.name goal_type_name = action.goal.structure.namespaced_type.name result_type_name = action.result.structure.namespaced_type.name feedback_type_name = action.feedback.structure.namespaced_type.name +feedback_message_type_name = action.feedback_message.structure.namespaced_type.name send_goal_type_name = action.send_goal_service.namespaced_type.name get_result_type_name = action.get_result_service.namespaced_type.name @@ -46,6 +47,14 @@ expand_template( output_file, template_basepath=template_basepath) +data.update({'message': action.feedback_message}) +output_file = os.path.join(output_dir, *namespaces[1:], feedback_message_type_name + '.java') +expand_template( + 'msg.java.em', + data, + output_file, + template_basepath=template_basepath) + data.update({'service': action.send_goal_service}) output_file = os.path.join(output_dir, *namespaces[1:], send_goal_type_name + '.java') expand_template( @@ -134,4 +143,6 @@ public class @(type_name) implements ActionDefinition { public static final Class<@(type_name)_Result> ResultType = @(type_name)_Result.class; public static final Class<@(type_name)_Feedback> FeedbackType = @(type_name)_Feedback.class; + + public static final Class<@(type_name)_FeedbackMessage> FeedbackMessageType = @(type_name)_FeedbackMessage.class; } diff --git a/rosidl_generator_java/resource/msg.cpp.em b/rosidl_generator_java/resource/msg.cpp.em index 733b0513..8553bfcb 100644 --- a/rosidl_generator_java/resource/msg.cpp.em +++ b/rosidl_generator_java/resource/msg.cpp.em @@ -66,6 +66,8 @@ for member in message.structure.members: include_prefix = include_prefix[:-8] elif include_prefix.endswith('__feedback'): include_prefix = include_prefix[:-10] + elif include_prefix.endswith('__feedback_message'): + include_prefix = include_prefix[:-18] elif include_prefix.endswith('__send_goal'): include_prefix = include_prefix[:-11] elif include_prefix.endswith('__get_result'): @@ -87,6 +89,8 @@ elif message_c_include_prefix.endswith('__result'): message_c_include_prefix = message_c_include_prefix[:-8] elif message_c_include_prefix.endswith('__feedback'): message_c_include_prefix = message_c_include_prefix[:-10] +elif message_c_include_prefix.endswith('__feedback_message'): + message_c_include_prefix = message_c_include_prefix[:-18] elif message_c_include_prefix.endswith('__send_goal'): message_c_include_prefix = message_c_include_prefix[:-11] elif message_c_include_prefix.endswith('__get_result'):