@@ -27,35 +27,36 @@ fn handle_cancel(_goal_handle: Arc<GoalHandleFibonacci>) -> rclrs::CancelRespons
27
27
fn execute ( goal_handle : Arc < GoalHandleFibonacci > ) {
28
28
println ! ( "Executing goal" ) ;
29
29
let feedback = example_interfaces:: action:: Fibonacci_Feedback {
30
- sequence : Vec :: new ( ) ,
31
- } ;
32
- feedback. sequence . push ( 0 ) ;
33
- feedback. sequence . push ( 1 ) ;
34
- let result = example_interfaces:: action:: Fibonacci_Result {
35
- sequence : Vec :: new ( ) ,
30
+ sequence : [ 0 , 1 ] . to_vec ( ) ,
36
31
} ;
37
32
38
- let mut i = 1 ;
39
- while i < goal_handle. goal ( ) . unwrap ( ) . order && rclrs:: ok ( ) {
33
+ for i in 1 ..goal_handle. goal_request . order {
40
34
if goal_handle. is_canceling ( ) {
41
- result. sequence = feedback. sequence . clone ( ) ;
35
+ let result = example_interfaces:: action:: Fibonacci_Result {
36
+ sequence : Vec :: new ( ) ,
37
+ } ;
38
+
42
39
goal_handle. canceled ( & result) ;
43
40
println ! ( "Goal canceled" ) ;
44
41
return ;
45
42
}
46
- // Update sequence
47
- feedback. sequence . push ( feedback. sequence [ i as usize ] + feedback. sequence [ ( i - 1 ) as usize ] ) ;
43
+
44
+ // Update sequence sequence
45
+ feedback
46
+ . sequence
47
+ . push ( feedback. sequence [ i as usize ] + feedback. sequence [ ( i - 1 ) as usize ] ) ;
48
48
// Publish feedback
49
49
goal_handle. publish_feedback ( & feedback) ;
50
50
println ! ( "Publishing feedback" ) ;
51
51
thread:: sleep ( std:: time:: Duration :: from_millis ( 100 ) ) ;
52
52
}
53
- // Check if goal is done
54
- if rclrs:: ok ( ) {
55
- result. sequence = feedback. sequence . clone ( ) ;
56
- goal_handle. succeed ( & result) ;
57
- println ! ( "Goal succeeded" ) ;
58
- }
53
+
54
+ let result = example_interfaces:: action:: Fibonacci_Result {
55
+ sequence : Vec :: new ( ) ,
56
+ } ;
57
+ result. sequence = feedback. sequence . clone ( ) ;
58
+ goal_handle. succeed ( & result) ;
59
+ println ! ( "Goal succeeded" ) ;
59
60
}
60
61
61
62
fn handle_accepted ( goal_handle : Arc < GoalHandleFibonacci > ) {
0 commit comments