@@ -6,6 +6,8 @@ from rosidl_parser.definition import (
6
6
ACTION_GOAL_SUFFIX,
7
7
ACTION_RESULT_SERVICE_SUFFIX,
8
8
ACTION_RESULT_SUFFIX,
9
+ SERVICE_REQUEST_MESSAGE_SUFFIX,
10
+ SERVICE_RESPONSE_MESSAGE_SUFFIX,
9
11
)
10
12
11
13
action_msg_specs = []
@@ -100,31 +102,74 @@ impl rosidl_runtime_rs::ActionImpl for @(type_name) {
100
102
type CancelGoalService = action_msgs :: srv :: rmw :: CancelGoal ;
101
103
type GetResultService = crate :: @ (subfolder):: rmw :: @ (type_name)@ (ACTION_RESULT_SERVICE_SUFFIX);
102
104
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
105
128
}
106
129
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 )
109
132
}
110
133
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 ();
113
136
message .goal_id .uuid = * goal_id;
114
- message .feedback = feedback . clone () ;
137
+ message .feedback = feedback;
115
138
message
116
139
}
117
140
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
120
147
}
121
148
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) {
124
161
status,
125
162
result,
126
163
}
127
164
}
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
+ }
128
173
}
129
174
130
175
@ [end for ]
0 commit comments