9
9
import inspect
10
10
from feeding_web_app_ros2_msgs .action import SortByCharacterFrequency
11
11
12
- class MinimalAction (Node ):
13
12
13
+ class MinimalAction (Node ):
14
14
def __init__ (self , sleep_time = 0.1 ):
15
- super ().__init__ (' sort_by_character_frequency' )
15
+ super ().__init__ (" sort_by_character_frequency" )
16
16
self .sleep_time = sleep_time
17
17
self ._action_server = ActionServer (
18
18
self ,
19
19
SortByCharacterFrequency ,
20
- ' sort_by_character_frequency' ,
20
+ " sort_by_character_frequency" ,
21
21
self .execute_callback ,
22
22
goal_callback = self .goal_callback ,
23
- cancel_callback = self .cancel_callback )
23
+ cancel_callback = self .cancel_callback ,
24
+ )
24
25
25
26
def goal_callback (self , goal_request ):
26
27
"""Accept or reject a client request to begin an action."""
27
28
# This server allows multiple goals in parallel
28
- self .get_logger ().info (' Received goal request' )
29
+ self .get_logger ().info (" Received goal request" )
29
30
return GoalResponse .ACCEPT
30
31
31
32
def cancel_callback (self , goal_handle ):
32
33
"""Accept or reject a client request to cancel an action."""
33
- self .get_logger ().info (' Received cancel request' )
34
+ self .get_logger ().info (" Received cancel request" )
34
35
return CancelResponse .ACCEPT
35
36
36
37
async def execute_callback (self , goal_handle ):
37
- self .get_logger ().info ('Executing goal...%s | %s' % (goal_handle , repr (goal_handle .request .input )))
38
+ self .get_logger ().info (
39
+ "Executing goal...%s | %s" % (goal_handle , repr (goal_handle .request .input ))
40
+ )
38
41
input = goal_handle .request .input
39
42
40
43
feedback_msg = SortByCharacterFrequency .Feedback ()
@@ -43,7 +46,7 @@ async def execute_callback(self, goal_handle):
43
46
for i in range (len (input )):
44
47
# Check if there is a cancel request
45
48
if goal_handle .is_cancel_requested :
46
- self .get_logger ().info (' Goal canceled' )
49
+ self .get_logger ().info (" Goal canceled" )
47
50
goal_handle .canceled ()
48
51
return SortByCharacterFrequency .Result ()
49
52
@@ -55,18 +58,20 @@ async def execute_callback(self, goal_handle):
55
58
56
59
# Update our progress
57
60
feedback_msg .progress = float (i ) / float (len (input ))
58
- self .get_logger ().info (' Feedback: %f' % feedback_msg .progress )
61
+ self .get_logger ().info (" Feedback: %f" % feedback_msg .progress )
59
62
goal_handle .publish_feedback (feedback_msg )
60
63
61
- # Sleep (to simulate the delay that a robot might have during a
64
+ # Sleep (to simulate the delay that a robot might have during a
62
65
# ROS action)
63
66
time .sleep (self .sleep_time )
64
67
65
68
goal_handle .succeed ()
66
69
67
70
result = SortByCharacterFrequency .Result ()
68
71
uniqueLetters = "" .join (character_frequency .keys ())
69
- result .result = "" .join (sorted (uniqueLetters , key = lambda x : character_frequency [x ], reverse = True ))
72
+ result .result = "" .join (
73
+ sorted (uniqueLetters , key = lambda x : character_frequency [x ], reverse = True )
74
+ )
70
75
return result
71
76
72
77
@@ -81,5 +86,5 @@ def main(args=None):
81
86
rclpy .spin (minimal_action , executor = executor )
82
87
83
88
84
- if __name__ == ' __main__' :
85
- main ()
89
+ if __name__ == " __main__" :
90
+ main ()
0 commit comments