@@ -6,6 +6,8 @@ from rosidl_parser.definition import (
66 ACTION_GOAL_SUFFIX,
77 ACTION_RESULT_SERVICE_SUFFIX,
88 ACTION_RESULT_SUFFIX,
9+ SERVICE_REQUEST_MESSAGE_SUFFIX,
10+ SERVICE_RESPONSE_MESSAGE_SUFFIX,
911)
1012
1113action_msg_specs = []
@@ -100,31 +102,74 @@ impl rosidl_runtime_rs::ActionImpl for @(type_name) {
100102 type CancelGoalService = action_msgs :: srv :: rmw :: CancelGoal ;
101103 type GetResultService = crate :: @ (subfolder):: rmw :: @ (type_name)@ (ACTION_RESULT_SERVICE_SUFFIX);
102104
103- fn get_goal_request_uuid (request : & << Self :: SendGoalService as rosidl_runtime_rs :: Service > :: Request as rosidl_runtime_rs :: Message > :: RmwMsg ) -> [u8; 16 ] {
104- request .goal_id .uuid
105+ fn create_goal_request (goal_id : & [u8; 16 ], goal : crate :: @ (subfolder):: rmw :: @ (type_name)@ (ACTION_GOAL_SUFFIX)) -> crate :: @ (subfolder):: rmw :: @ (type_name)@ (ACTION_GOAL_SERVICE_SUFFIX)@ (SERVICE_REQUEST_MESSAGE_SUFFIX) {
106+ crate :: @ (subfolder):: rmw :: @ (type_name)@ (ACTION_GOAL_SERVICE_SUFFIX)@ (SERVICE_REQUEST_MESSAGE_SUFFIX) {
107+ goal_id : unique_identifier_msgs :: msg :: rmw :: UUID { uuid : * goal_id },
108+ goal,
109+ }
110+ }
111+
112+ fn get_goal_request_uuid (request : & crate :: @ (subfolder):: rmw :: @ (type_name)@ (ACTION_GOAL_SERVICE_SUFFIX)@ (SERVICE_REQUEST_MESSAGE_SUFFIX)) -> & [u8; 16 ] {
113+ & request .goal_id .uuid
114+ }
115+
116+ fn create_goal_response (accepted : bool, stamp : (i32, u32)) -> crate :: @ (subfolder):: rmw :: @ (type_name)@ (ACTION_GOAL_SERVICE_SUFFIX)@ (SERVICE_RESPONSE_MESSAGE_SUFFIX) {
117+ crate :: @ (subfolder):: rmw :: @ (type_name)@ (ACTION_GOAL_SERVICE_SUFFIX)@ (SERVICE_RESPONSE_MESSAGE_SUFFIX) {
118+ accepted,
119+ stamp : builtin_interfaces :: msg :: rmw :: Time {
120+ sec : stamp.0 ,
121+ nanosec : stamp.1 ,
122+ },
123+ }
124+ }
125+
126+ fn get_goal_response_accepted (response : & crate :: @ (subfolder):: rmw :: @ (type_name)@ (ACTION_GOAL_SERVICE_SUFFIX)@ (SERVICE_RESPONSE_MESSAGE_SUFFIX)) -> bool {
127+ response .accepted
105128 }
106129
107- fn set_goal_response_accepted (response : & mut << Self :: SendGoalService as rosidl_runtime_rs :: Service > :: Response as rosidl_runtime_rs :: Message > :: RmwMsg , accepted : bool ) {
108- response .accepted = accepted;
130+ fn get_goal_response_stamp (response : & crate :: @ (subfolder) :: rmw :: @ (type_name) @ (ACTION_GOAL_SERVICE_SUFFIX) @ (SERVICE_RESPONSE_MESSAGE_SUFFIX)) -> (i32, u32 ) {
131+ ( response .stamp . sec , response . stamp . nanosec )
109132 }
110133
111- fn create_feedback_message (goal_id : & [u8; 16 ], feedback : & << Self as rosidl_runtime_rs :: Action > :: Feedback as rosidl_runtime_rs :: Message > :: RmwMsg ) -> < Self ::FeedbackMessage as rosidl_runtime_rs::Message> :: RmwMsg {
112- let mut message = < Self ::FeedbackMessage as rosidl_runtime_rs::Message> :: RmwMsg :: default ();
134+ fn create_feedback_message (goal_id : & [u8; 16 ], feedback : crate :: @ (subfolder) :: rmw :: @ (type_name) @ (ACTION_FEEDBACK_SUFFIX)) -> crate :: @ (subfolder) :: rmw :: @ (type_name) @ (ACTION_FEEDBACK_MESSAGE_SUFFIX) {
135+ let mut message = crate :: @ (subfolder) :: rmw :: @ (type_name) @ (ACTION_FEEDBACK_MESSAGE_SUFFIX) :: default ();
113136 message .goal_id .uuid = * goal_id;
114- message .feedback = feedback . clone () ;
137+ message .feedback = feedback;
115138 message
116139 }
117140
118- fn get_result_request_uuid (request : & << Self :: GetResultService as rosidl_runtime_rs :: Service > :: Request as rosidl_runtime_rs :: Message > :: RmwMsg ) -> [u8; 16 ] {
119- request .goal_id .uuid
141+ fn get_feedback_message_uuid (feedback : & crate :: @ (subfolder):: rmw :: @ (type_name)@ (ACTION_FEEDBACK_MESSAGE_SUFFIX)) -> & [u8; 16 ] {
142+ & feedback .goal_id .uuid
143+ }
144+
145+ fn get_feedback_message_feedback (feedback : & crate :: @ (subfolder):: rmw :: @ (type_name)@ (ACTION_FEEDBACK_MESSAGE_SUFFIX)) -> & crate :: @ (subfolder):: rmw :: @ (type_name)@ (ACTION_FEEDBACK_SUFFIX) {
146+ & feedback .feedback
120147 }
121148
122- fn create_result_response (status : i8, result : << Self as Action> :: Result as Message> :: RmwMsg ) -> << Self :: GetResultService as Service> :: Response as Message> :: RmwMsg {
123- << Self :: GetResultService as rosidl_runtime_rs :: Service > :: Response as rosidl_runtime_rs :: Message > :: RmwMsg {
149+ fn create_result_request (goal_id : & [u8; 16 ]) -> crate :: @ (subfolder):: rmw :: @ (type_name)@ (ACTION_RESULT_SERVICE_SUFFIX)@ (SERVICE_REQUEST_MESSAGE_SUFFIX) {
150+ crate :: @ (subfolder):: rmw :: @ (type_name)@ (ACTION_RESULT_SERVICE_SUFFIX)@ (SERVICE_REQUEST_MESSAGE_SUFFIX) {
151+ goal_id : unique_identifier_msgs :: msg :: rmw :: UUID { uuid : * goal_id },
152+ }
153+ }
154+
155+ fn get_result_request_uuid (request : & crate :: @ (subfolder):: rmw :: @ (type_name)@ (ACTION_RESULT_SERVICE_SUFFIX)@ (SERVICE_REQUEST_MESSAGE_SUFFIX)) -> & [u8; 16 ] {
156+ & request .goal_id .uuid
157+ }
158+
159+ fn create_result_response (status : i8, result : crate :: @ (subfolder):: rmw :: @ (type_name)@ (ACTION_RESULT_SUFFIX)) -> crate :: @ (subfolder):: rmw :: @ (type_name)@ (ACTION_RESULT_SERVICE_SUFFIX)@ (SERVICE_RESPONSE_MESSAGE_SUFFIX) {
160+ crate :: @ (subfolder):: rmw :: @ (type_name)@ (ACTION_RESULT_SERVICE_SUFFIX)@ (SERVICE_RESPONSE_MESSAGE_SUFFIX) {
124161 status,
125162 result,
126163 }
127164 }
165+
166+ fn get_result_response_result (response : & crate :: @ (subfolder):: rmw :: @ (type_name)@ (ACTION_RESULT_SERVICE_SUFFIX)@ (SERVICE_RESPONSE_MESSAGE_SUFFIX)) -> & crate :: @ (subfolder):: rmw :: @ (type_name)@ (ACTION_RESULT_SUFFIX) {
167+ & response .result
168+ }
169+
170+ fn get_result_response_status (response : & crate :: @ (subfolder):: rmw :: @ (type_name)@ (ACTION_RESULT_SERVICE_SUFFIX)@ (SERVICE_RESPONSE_MESSAGE_SUFFIX)) -> i8 {
171+ response .status
172+ }
128173}
129174
130175@ [end for ]
0 commit comments